JavaScript must be enabled to play.
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>> <!-- <<effects>> --> <!-- commented this out - why were we running effects without a working player init'd? --> <<if $options.images is 1>> <img class="resize" src="img/misc/banner.png"> <</if>> This work of fiction contains content of a sexual nature and is inappropriate for minors. All characters <span class="camouflage text"><a onclick="V.debug = 1, V.options.debugdisable = 'f', V.options.maxStates = 5">de</a></span>picted are at least 18 years of age. Everything is consensual role play, and any animals are actually people in costumes. <br><br> <div class="small-description"> - Save files are stored in your browser's cache. Save to file or text in the "Export/Import" tab in "Saves" to avoid losing them. <br> - Be sure to check the "Options" tab on the sidebar for more in-game settings! <br><br></div> <<set $settingsExitPassage to "Start2">> <<initsettings>> <<settingsStart>>
<<variablesStart2>> <!-- <<effects>> --> <!-- commented this out - why were we running effects without a working player init'd? --> 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! <<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! <<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! <</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]]>><<cheatStart>><<upperstrip>><<lowerstrip>><<underlowerstrip>><</link>> <br> <<link [[Robin Low Trauma Low Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Robin")].love to 0>><<set $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("Robin")].love to 50>><<set $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("Robin")].love to 90>><<set $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("Robin")].love to 0>><<set $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("Robin")].love to 50>><<set $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("Robin")].love to 90>><<set $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $blackwolfhunt to 1>><<set $wolfpacktrust to 10>><</link>> <br><br> <<link [[Winter Start|Orphanage Intro]]>><<set Time.startDate to new DateTime(2022, 12, 4, 7)>><<set $weather to "snow">><</link>> (Begins the game at the start of winter. For testing.) <br> <<link [[Christmas Start|Orphanage Intro]]>><<npc Kylar>><<person1>><<endevent>><<set $NPCName[$NPCNameList.indexOf("Kylar")].state to "active">><<set Time.startDate to new DateTime(2022, 12, 23, 7)>><<set $weather to "snow">><<set $money += 50000>><</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)>><<set $weather to "clear">><</link>> (Begins the game 2 days before Valentine's Day. For testing.) <br> <</if>>
<<widget "versioninfo">> <br><br> Degrees of Lewdity <<print StartConfig.version>> <<if StartConfig.versionName>><br><<print StartConfig.versionName>><</if>> <<if StartConfig.sneaky>><br>SNEAKY BUILD<</if>> <br><br> "Maybe Pile" edition <br><br> Updates and more information can be found at [[https://vrelnir.blogspot.com/| "https://vrelnir.blogspot.com/"]] <br><br> Support development at [[https://subscribestar.adult/vrelnir| "https://subscribestar.adult/vrelnir"]] <br><br> <</widget>>
<<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 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 "npcList">> /* note: anus, ballssize, buttsize, bottomsize are currently unused. and why is speechXescape even there? */ <<set $baseNPC = {penis: 0, vagina: 0, breastsdesc: 0, chest: 0, lactation: 0, lefthand: 0, righthand: 0, anus: 0, mouth: 0, gender: 0, description: 0, fullDescription: 0, insecurity: 0, pronoun: 0, pronouns: {he: 0, his: 0}, penissize: 0, breastsize: 0, bottomsize: 0, ballssize: 0, penisdesc: 0, breastdesc: 0, health: 0, healthmax: 0, skincolour: 0, teen: 0, adult: 0, intro:0, speechpenisescape: 0, speechvaginaescape: 0, speechanusescape:0, type: 0, stance: 0, monster: 0, active: 0}>> <<set _n1 to clone($baseNPC)>> <<set _n2 to clone($baseNPC)>> <<set _n3 to clone($baseNPC)>> <<set _n4 to clone($baseNPC)>> <<set _n5 to clone($baseNPC)>> <<set _n6 to clone($baseNPC)>> <<set $NPCList = [_n1, _n2, _n3, _n4, _n5, _n6]>> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].lefthand to "none">> <<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].gender to 0>> <<set $NPCList[_i].pronoun to 0>> <<set $NPCList[_i].description to 0>> <<set $NPCList[_i].type to 0>> <<set $NPCList[_i].stance to 0>> <<set $NPCList[_i].monster to 0>> <</for>> <<set $BeastList to ["dog","cat","pig","wolf","dolphin","lizard","bear","boar","creature","horse","fox","hawk","cow","spider"]>> <<set $npcListVersion to 2>> <</widget>>
<<widget "npcNamed">> <!-- To add new Named NPC, add new npc name to setup.NPCNameList in variables-static.twee, and tag values to end. Rest of code should automatically scope based on size of list. --> <!-- NPC descriptions is 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"]>> %/ <<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"]>> <<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"]>> <!-- 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"]>> <<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"]>> <<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 $NPCName[$NPCNameList.indexOf(_upperCaseName)].init to V['init' + _lowerCaseName]>> <<run delete V['init' + _lowerCaseName]>> <</if>> <<if V[_lowerCaseName + 'gender'] isnot undefined>> <<set $NPCName[$NPCNameList.indexOf(_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 $NPCName[$NPCNameList.indexOf(_upperCaseName)][_attribute] to V[_lowerCaseName + _attribute]>> <<run delete V[_lowerCaseName + _attribute]>> <</if>> <</for>> <<elseif $npcNamedVersion is 1>> <<if V[_lowerCaseName + 'gender'] isnot undefined>> <<set $NPCName[$NPCNameList.indexOf(_upperCaseName)].pronoun to V[_lowerCaseName + 'gender']>> <<run delete V[_lowerCaseName + 'gender']>> <</if>> <<if V[_lowerCaseName + 'penis'] isnot undefined>> <<set $NPCName[$NPCNameList.indexOf(_upperCaseName)].penis to V[_lowerCaseName + 'penis']>> <<run delete V[_lowerCaseName + 'penis']>> <</if>> <<if V[_lowerCaseName + 'vagina'] isnot undefined>> <<set $NPCName[$NPCNameList.indexOf(_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} }>> <<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 ["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 "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 ["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 "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>> <<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">> /* 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, 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>> <</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">> <<if _args[0]>> <<set _preset to "">> <<switch _args[0]>> <<case "vrelDefault">> <<set _preset to '{"general":{"options":{"tipdisable":"f","numberify_enabled":1,"timestyle":"military","showCaptionText":true,"sidebarStats":"disabled","sidebarTime":"disabled","combatControls":"radio","images":1,"silhouetteEnabled":true,"tanImgEnabled":true,"tanningEnabled":true,"sidebarAnimations":true,"blinkingEnabled":true,"combatAnimations":true},{"map":{"movement":true,"top":false,"markers":false},"malechance":50,"dgchance":0,"cbchance":0,"malevictimchance":50,"homochance":4,"breast_mod":0,"penis_mod":0,"blackchance":10,"straponchance":0,"alluremod":1,"beastmalechance":80,"monsterchance":50,"monsterhallucinations":"t","blackwolfmonster":0,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"debugdisable":"t","statdisable":"f","cheatdisabletoggle":"t","confirmSave":false,"confirmLoad":false,"confirmDelete":true,"reducedLineHeight":false},"npc":{"Avery":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Bailey":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Briar":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Charlie":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Darryl":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Doren":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Eden":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Gwylan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Harper":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Jordan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Kylar":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Landry":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Leighton":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Mason":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Morgan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"River":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Robin":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Sam":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Sirris":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Whitney":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Winter":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Black Wolf":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Niki":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Quinn":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Remy":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Alex":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"a","ballsExist":false,"freckles":false,"breastsize":0,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif","gamemode":"normal","asphyxiaLvl":3,"pbdisable":"t"}}'>> <<case "lollipopScythe">> <<set _preset to '{"general":{"options":{"tipdisable":"t","numberify_enabled":1,"timestyle":"military","showCaptionText":true,"sidebarStats":"disabled","sidebarTime":"disabled","combatControls":"radio","images":1,"silhouetteEnabled":true,"tanImgEnabled":true,"tanningEnabled":true,"sidebarAnimations":true,"blinkingEnabled":true,"combatAnimations":true},"map":{"movement":true,"top":true,"markers":true},"malechance":75,"dgchance":25,"cbchance":0,"malevictimchance":90,"homochance":75,"breast_mod":0,"penis_mod":2,"blackchance":10,"straponchance":25,"alluremod":1,"beastmalechance":100,"monsterchance":0,"monsterhallucinations":"t","blackwolfmonster":0,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f", "slugdisable":"f", "waspdisable":"f", "lurkerdisable":"f", "beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"debugdisable":"f","statdisable":"f","cheatdisabletoggle":"t","confirmSave":false,"confirmLoad":false,"confirmDelete":true,"reducedLineHeight":true},"npc":{"Avery":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Bailey":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Briar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Charlie":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Darryl":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Doren":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Eden":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Gwylan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"Harper":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Jordan":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Kylar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Landry":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Leighton":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Mason":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Morgan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"River":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Robin":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Sam":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Sirris":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Whitney":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Winter":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Black Wolf":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Niki":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Quinn":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Remy":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Alex":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"h","gender_body":"f","ballsExist":true,"freckles":false,"breastsize":4,"penissize":0,"bottomsize":0},"skinColor":{"natural":"light","range":40},"bodysize":0,"breastsensitivity":3,"genitalsensitivity":3,"eyeselect":"pink","hairselect":"platinumblond","hairlength":400,"awareselect":"innocent","background":"beautiful","gamemode":"hard","asphyxiaLvl":3,"pbdisable":"t"}}'>> <<case "purityGuy">> <<set _preset to '{"general":{"options":{"tipdisable":"f","numberify_enabled":1,"timestyle":"ampm","showCaptionText":true,"sidebarStats":"all","sidebarTime":"top","combatControls":"radio","images":1,"silhouetteEnabled":true,"tanImgEnabled":true,"tanningEnabled":true,"sidebarAnimations":true,"blinkingEnabled":true,"combatAnimations":true},"map":{"movement":true,"top":false,"markers":true},"malechance":50,"dgchance":0,"cbchance":0,"malevictimchance":10,"homochance":10,"breast_mod":0,"penis_mod":0,"blackchance":0,"straponchance":0,"alluremod":1.2,"beastmalechance":50,"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":2,"bestialitydisable":"f","swarmdisable":"t","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"t","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":6,"bottomsizemax":4,"penissizemax":4,"penissizemin":-1,"debugdisable":"f","statdisable":"f","cheatdisabletoggle":"t","confirmSave":true,"confirmLoad":true,"confirmDelete":true,"reducedLineHeight":false},"npc":{"Avery":{"pronoun":"f","gender":"f","penissize":1,"breastsize":4},"Bailey":{"pronoun":"m","gender":"m","penissize":3,"breastsize":2},"Briar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Charlie":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Darryl":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Doren":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Eden":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Gwylan":{"pronoun":"f","gender":"f","penissize":1,"breastsize":0},"Harper":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Jordan":{"pronoun":"f","gender":"f","penissize":3,"breastsize":5},"Kylar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Landry":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Leighton":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Mason":{"pronoun":"f","gender":"f","penissize":3,"breastsize":2},"Morgan":{"pronoun":"f","gender":"f","penissize":3,"breastsize":3},"River":{"pronoun":"f","gender":"f","penissize":3,"breastsize":0},"Robin":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Sam":{"pronoun":"f","gender":"f","penissize":1,"breastsize":3},"Sirris":{"pronoun":"f","gender":"f","penissize":3,"breastsize":0},"Whitney":{"pronoun":"f","gender":"f","penissize":4,"breastsize":0},"Winter":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Black Wolf":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Niki":{"pronoun":"f","gender":"f","penissize":3,"breastsize":2},"Quinn":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Remy":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Alex":{"pronoun":"f","gender":"f","penissize":1,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"f","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":1},"skinColor":{"natural":"light","range":0},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"amber","hairselect":"blond","hairlength":400,"awareselect":"innocent","background":"beautiful","gamemode":"normal","asphyxiaLvl":3,"pbdisable":"t"}}'>> <<case "fangi">> <<set _preset to '{"general":{"options":{"tipdisable":"f","numberify_enabled":1,"timestyle":"military","showCaptionText":true,"sidebarStats":"disabled","sidebarTime":"disabled","combatControls":"radio","images":1,"silhouetteEnabled":true,"tanImgEnabled":true,"tanningEnabled":true,"blinkingEnabled":true,"sidebarAnimations":true,"combatAnimations":true},"map":{"movement":true,"top":false,"markers":false},"malechance":0,"dgchance":0,"cbchance":0,"malevictimchance":1,"homochance":75,"breast_mod":0,"penis_mod":0,"blackchance":10,"straponchance":0,"alluremod":1,"beastmalechance":0,"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":1,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"debugdisable":"f","statdisable":"f","cheatdisabletoggle":"f","confirmSave":false,"confirmLoad":false,"confirmDelete":true,"reducedLineHeight":false},"npc":{"Avery":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Bailey":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Briar":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Charlie":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Darryl":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Doren":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Eden":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Gwylan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Harper":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Jordan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Kylar":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Landry":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Leighton":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Mason":{"pronoun":"f","gender":"f","penissize":0,"breastsize":2},"Morgan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"River":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Robin":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Sam":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Sirris":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Whitney":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Winter":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Black Wolf":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Niki":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Quinn":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Remy":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Alex":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"f","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","gamemode":"normal","asphyxiaLvl":3,"pbdisable":"t"}}'>> <<case "femaleWaif">> <<set _preset to '{"starting":{"player":{"gender":"f","gender_body":"f","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","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","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","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","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","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":{"maleChanceMale":50,"maleChanceFemale":50,"malevictimchance":50}}'>> <<case "genericNpcAllMaleGender">> <<set _preset to '{"general":{"maleChanceMale":100,"maleChanceFemale":100,"malevictimchance":100}}'>> <<case "genericNpc75MaleGender">> <<set _preset to '{"general":{"maleChanceMale":75,"maleChanceFemale":75,"malevictimchance":75}}'>> <<case "genericNpcAllFemaleGender">> <<set _preset to '{"general":{"maleChanceMale":0,"maleChanceFemale":0,"malevictimchance":0}}'>> <<case "genericNpc75FemaleGender">> <<set _preset to '{"general":{"maleChanceMale":25,"maleChanceFemale":25,"malevictimchance":25}}'>> <<case "beastDefaultGenders">> <<set _preset to '{"general":{"beastMaleChanceMale":50,"beastMaleChanceFemale":50,"bestialitydisable":"f"}}'>> <<case "beastMaleGenders">> <<set _preset to '{"general":{"beastMaleChanceMale":100,"beastMaleChanceFemale":100,"bestialitydisable":"f"}}'>> <<case "beast75MaleGenders">> <<set _preset to '{"general":{"beastMaleChanceMale":75,"beastMaleChanceFemale":75,"bestialitydisable":"f"}}'>> <<case "beastFemaleGenders">> <<set _preset to '{"general":{"beastMaleChanceMale":0,"beastMaleChanceFemale":0,"bestialitydisable":"f"}}'>> <<case "beast75FemaleGenders">> <<set _preset to '{"general":{"beastMaleChanceMale":25,"beastMaleChanceFemale":25,"bestialitydisable":"f"}}'>> <<case "beastDisable">> <<set _preset to '{"general":{"bestialitydisable":"t"}}'>> <<case _kinkPreset>> <<switch _kinkPreset>> <<case "kinkDefault">> <<set _preset to '{"general":{"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","parasitepregdisable":"f","watersportsdisable":"t","facesitdisable":"f","spiderdisable":"f","bodywritingLvl":3,"parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f","playerPregnancyHumanDisable":"f","playerPregnancyBeastDisable":"f","hypnosisdisable":"f"}}'>> <<case "kinkVanilla">> <<set _preset to '{"general":{"bestialitydisable":"t","swarmdisable":"t","slimedisable":"t","voredisable":"t","tentacledisable":"t","plantdisable":"t","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"t","parasitepregdisable":"t","watersportsdisable":"t","facesitdisable":"t","spiderdisable":"t","bodywritingLvl":2,"parasitedisable":"t", "slugdisable":"t","waspdisable":"t","lurkerdisable":"t","beedisable":"t","horsedisable":"t","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f","playerPregnancyHumanDisable":"f","playerPregnancyBeastDisable":"t","hypnosisdisable":"t"}}'>> <<case "kinkNoBeasts">> <<set _preset to '{"general":{"bestialitydisable":"t","swarmdisable":"t","slimedisable":"f","voredisable":"t","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","parasitepregdisable":"t","watersportsdisable":"t","facesitdisable":"f","spiderdisable":"t","bodywritingLvl":3,"parasitedisable":"t","slugdisable":"t","waspdisable":"t","lurkerdisable":"t","beedisable":"t","horsedisable":"t","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f","playerPregnancyHumanDisable":"f","playerPregnancyBeastDisable":"t","hypnosisdisable":"f"}}'>> <<case "kinkEverything">> <<set _preset to '{"general":{"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","parasitepregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingLvl":3,"parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f","playerPregnancyHumanDisable":"f","playerPregnancyBeastDisable":"f","hypnosisdisable":"f"}}'>> <</switch>> <<case _namedNpcPreset>> <<switch _namedNpcPreset>> <<case "namedNpcDefaultGender">> <<set _preset to '{"npc":{"Avery":{"pronoun":"none","gender":"none"},"Bailey":{"pronoun":"none","gender":"none"},"Briar":{"pronoun":"none","gender":"none"},"Charlie":{"pronoun":"none","gender":"none"},"Darryl":{"pronoun":"none","gender":"none"},"Doren":{"pronoun":"none","gender":"none"},"Eden":{"pronoun":"none","gender":"none"},"Gwylan":{"pronoun":"none","gender":"none"},"Harper":{"pronoun":"none","gender":"none"},"Jordan":{"pronoun":"none","gender":"none"},"Kylar":{"pronoun":"none","gender":"none"},"Landry":{"pronoun":"none","gender":"none"},"Leighton":{"pronoun":"none","gender":"none"},"Mason":{"pronoun":"none","gender":"none"},"Morgan":{"pronoun":"none","gender":"none"},"River":{"pronoun":"none","gender":"none"},"Robin":{"pronoun":"none","gender":"none"},"Sam":{"pronoun":"none","gender":"none"},"Sirris":{"pronoun":"none","gender":"none"},"Whitney":{"pronoun":"none","gender":"none"},"Winter":{"pronoun":"none","gender":"none"},"Black Wolf":{"pronoun":"none","gender":"none"},"Niki":{"pronoun":"none","gender":"none"},"Quinn":{"pronoun":"none","gender":"none"},"Remy":{"pronoun":"none","gender":"none"},"Alex":{"pronoun":"none","gender":"none"},"Great Hawk":{"pronoun":"none","gender":"none"},"Wren":{"pronoun":"none","gender":"none"},"Sydney":{"pronoun":"none","gender":"none"}}}'>> <<case "namedNpcAllMaleGender">> <<set _preset to '{"npc":{"Avery":{"pronoun":"m","gender":"m"},"Bailey":{"pronoun":"m","gender":"m"},"Briar":{"pronoun":"m","gender":"m"},"Charlie":{"pronoun":"m","gender":"m"},"Darryl":{"pronoun":"m","gender":"m"},"Doren":{"pronoun":"m","gender":"m"},"Eden":{"pronoun":"m","gender":"m"},"Gwylan":{"pronoun":"m","gender":"m"},"Harper":{"pronoun":"m","gender":"m"},"Jordan":{"pronoun":"m","gender":"m"},"Kylar":{"pronoun":"m","gender":"m"},"Landry":{"pronoun":"m","gender":"m"},"Leighton":{"pronoun":"m","gender":"m"},"Mason":{"pronoun":"m","gender":"m"},"Morgan":{"pronoun":"m","gender":"m"},"River":{"pronoun":"m","gender":"m"},"Robin":{"pronoun":"m","gender":"m"},"Sam":{"pronoun":"m","gender":"m"},"Sirris":{"pronoun":"m","gender":"m"},"Whitney":{"pronoun":"m","gender":"m"},"Winter":{"pronoun":"m","gender":"m"},"Black Wolf":{"pronoun":"m","gender":"m"},"Niki":{"pronoun":"m","gender":"m"},"Quinn":{"pronoun":"m","gender":"m"},"Remy":{"pronoun":"m","gender":"m"},"Alex":{"pronoun":"m","gender":"m"},"Great Hawk":{"pronoun":"m","gender":"m"},"Wren":{"pronoun":"m","gender":"m"},"Sydney":{"pronoun":"m","gender":"m"}}}'>> <<case "namedNpcAllFemaleGender">> <<set _preset to '{"npc":{"Avery":{"pronoun":"f","gender":"f"},"Bailey":{"pronoun":"f","gender":"f"},"Briar":{"pronoun":"f","gender":"f"},"Charlie":{"pronoun":"f","gender":"f"},"Darryl":{"pronoun":"f","gender":"f"},"Doren":{"pronoun":"f","gender":"f"},"Eden":{"pronoun":"f","gender":"f"},"Gwylan":{"pronoun":"f","gender":"f"},"Harper":{"pronoun":"f","gender":"f"},"Jordan":{"pronoun":"f","gender":"f"},"Kylar":{"pronoun":"f","gender":"f"},"Landry":{"pronoun":"f","gender":"f"},"Leighton":{"pronoun":"f","gender":"f"},"Mason":{"pronoun":"f","gender":"f"},"Morgan":{"pronoun":"f","gender":"f"},"River":{"pronoun":"f","gender":"f"},"Robin":{"pronoun":"f","gender":"f"},"Sam":{"pronoun":"f","gender":"f"},"Sirris":{"pronoun":"f","gender":"f"},"Whitney":{"pronoun":"f","gender":"f"},"Winter":{"pronoun":"f","gender":"f"},"Black Wolf":{"pronoun":"f","gender":"f"},"Niki":{"pronoun":"f","gender":"f"},"Quinn":{"pronoun":"f","gender":"f"},"Remy":{"pronoun":"f","gender":"f"},"Alex":{"pronoun":"f","gender":"f"},"Great Hawk":{"pronoun":"f","gender":"f"},"Wren":{"pronoun":"f","gender":"f"},"Sydney":{"pronoun":"f","gender":"f"}}}'>> <</switch>> <<case _monstersPreset>> <<switch _monstersPreset>> <<case "monstersDefault">> <<set _preset to '{"general":{"monsterchance":20,"monsterhallucinations":"t","blackwolfmonster":0,"greathawkmonster":0,"bestialitydisable":"f"}}'>> <<case "monstersNone">> <<set _preset to '{"general":{"monsterchance":0,"monsterhallucinations":"f","blackwolfmonster":0,"greathawkmonster":0,"bestialitydisable":"f"}}'>> <<case "monstersAll">> <<set _preset to '{"general":{"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":2,"greathawkmonster":2,"bestialitydisable":"f"}}'>> <</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>> <<displaySettings _presetPage>> <</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">><</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"> <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>> <</silently>> </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> <</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>> <div class="settingsToggleItem"> <span class="gold"><<print $_label>>:</span> <<presetConfirm $_value $_label>> </div> <</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","options"].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" "dgchance" "cbchance" "malevictimchance" "npcVirginityChance" "npcVirginityChanceAdult" "straponchance" "blackchance" "beastmalechance" "beastMaleChanceMale" "beastMaleChanceFemale" "monsterchance">> <<set _object to _validatorObject[$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<print _displayName>> <span class="green"><<print (_altValue2 isnot undefined ? _altValue2 : $_value) + "%">></span> <<case "eyeselect" "hairselect" "awareselect" "background" "gamemode" "startingseason">> <<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" >> <<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 ? "Neck" : (_altValue2 isnot undefined ? _altValue2 : $_value) gte 200 ? "Chest" : "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" "tanImgEnabled" "tanningEnabled" "characterLightEnabled" "halfClosedEnabled" "combatAnimations" "blinkingEnabled" "sidebarAnimations">> <<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 _displayName to _validatorObject[$_label]["displayName"]>> <<set _previousValue to _validatorObject[$_label]>> <<set _changedValue to (_altValue2 isnot undefined ? _validatorObject[$_label][_altValue2] : _validatorObject[$_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 _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst() + " months">></span> <<case "wolfPregnancyWeeks">> <<set _displayName to _validatorObject[$_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" "tanImgEnabled" "tanningEnabled" "images" "sidebarAnimations" "blinkingEnabled" "combatAnimations" "halfClosedEnabled" "characterLightEnabled" "lightSpotlight" "lightGradient" "lightGlow" "lightFlat" "lightCombat" "lightTFColor" "maxStates" "newWardrobeStyle" "useNarrowMarket" "skipStatisticsConfirmation" "passageCount" "playtime" "pepperSprayDisplay" "condomsDisplay" "closeButtonMobile" "oldclock" "showDebugRenderer" "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 "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 "natural" "range">> <<set _object to _validatorObject["skinColor"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["skinColor"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<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 "bestialitydisable" "slimedisable" "voredisable" "tentacledisable" "analdisable" "analdoubledisable" "analingusdisablegiving" "analingusdisablereceiving" "vaginaldoubledisable" "transformdisable" "transformdisabledivine" "pbdisable" "breastfeedingdisable" "parasitepregdisable" "watersportsdisable" "spiderdisable" "facesitdisable" "parasitedisable" "swarmdisable" "slugdisable" "waspdisable" "beedisable" "lurkerdisable" "horsedisable" "pregnancyspeechdisable" "plantdisable" "footdisable" "toydildodisable" "toywhipdisable" "toymultiplepenetration" "hypnosisdisable" "ruffledisable" "forcedcrossdressingdisable" "playerPregnancyHumanDisable" "playerPregnancyBeastDisable" "npcPregnancyDisable" "incompletePregnancyDisable" "cycledisable" "cheatdisabletoggle">> <<set _displayName to _validatorObject[$_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 "breastsizemin" "breastsizemax" "penissizemin" "penissizemax" "bottomsizemin" "bottomsizemax" "blackwolfmonster" "greathawkmonster" "bodywritingLvl" "asphyxiaLvl" "NudeGenderDC" "condomLvl">> <<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 $_currentGender 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 "clothesPriceUnderwear" "clothesPriceSchool" "clothesPriceLewd" "furniturePriceFactor" "clothesPrice" "rentmod" "tending_yield_factor">> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue * 100 + "%">></span> <<case "pronoun" "gender" "penissize" "breastsize" "bottomsize" "gender_body" "ballsExist" "freckles">> <<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 "gender">> <<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 $_currentGender to (_altValue2 isnot undefined ? _validatorObject["player"][$_label]["textMap"][_altValue2] : _validatorObject["player"][$_label]["textMap"][$_value])>> <<print _displayName>> <span class="green"><<print $_currentGender>></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 $_currentGender 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 $_currentGender 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.versionName>> <<print StartConfig.versionName>><</if>><<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="mobileStats"></div> <div id="exportWarning" @class="'no-numberify ' + (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">> <<script>> updateExportDay(); Save.export("degrees-of-lewdity"); <</script>> <</link>> | <</if>> <<link "Help me export">> <<overlayReplace "saves">> <!-- This calls an asynchronous callback and prone to failure. --> <<run T.tab.setActive(1)>> <<replace #customOverlayContent>><<optionsExportImport>><</replace>> <</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>> <<if $replayScene isnot undefined>> <<if $replayScene.startPassage is $passage or $passage is "Scene Viewer End">> <<elseif !$replayScene.passages.includes($passage)>> <!-- todo: replace goto with something that doesn't have a potential to fuck up the history --> <<goto "Scene Viewer End">> <</if>> <<if $replayScene is undefined>> <<elseif $replayScene.startPassage>> <<run delete $replayScene.startPassage>> <</if>> <</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 $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 $options.maxStates gt 1>> Alternatively, return to the previous passage using the history depth function. <</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 $cheatdisable is "f">> 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 $options.maxStates gt 1>> Alternatively, return to the previous passage using the history depth function. <</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 objectAssignDeep(V, _normalised)>><</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>>
<<set $passagePrev to $passage ? $passage : "none">> <<set $passage to $passageOverride ? $passageOverride : passage()>> <<set $tags to tags()>> <<if !["Start", "Start2", "Clothes Testing", "Renderer Test Page", "Tips"].includes($passage) && !$bypassHeader>> <<doVersionCheck>> <<if !["Settings", "Asylum Settings", "Cabin Settings", "Wolf Cave Settings", "Farm Settings", "Livestock Settings", "Prison Settings"].includes($passage)>> <<if $passagePrev isnot $passage>> <<set $passageChangesCount to $passageChangesCount ? $passageChangesCount + 1 : 1>> <</if>> <<set $passageCount to $passageCount ? $passageCount + 1 : 1>> <</if>> <</if>> /* Set current time */ <<set Time.set()>> <<unset $passageOverride>> <<unset $bypassHeader>>
<<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 ($saveVersions ? $saveVersions.last().replace(/[^0-9.]+/g, "").split(".") : 0)>> <<set _version to (_version ? _version[0]*1000000 + _version[1]*10000 + _version[2]*100 + _version[3]*1 : 0)>> <<backComp>> <<updatehistorycontrols>> <<set _preventUpdate to true>> /*prevent rewriting autosaves */ <<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()>> <</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 $options to { neverNudeMenus: false, autosaveDisabled: false, showCaptionText: true, sidebarRenderer: "canvas", sidebarStats: "disabled", sidebarTime: "disabled", combatControls: "radio", targetYourself: false, scrollRemember: false, mapMovement: true, mapLegacy: false, mapMarkers: false, mapTop: false, images: 1, combatImages: 1, bodywritingImages: true, silhouetteEnabled: true, tanImgEnabled: true, tanningEnabled: true, sidebarAnimations: true, blinkingEnabled: true, combatAnimations: true, halfClosedEnabled: false, characterLightEnabled: true, lightSpotlight: 0.2, lightGradient: 0.1, lightGlow: 0.1, lightFlat: 0, lightCombat: 0.2, lightTFColor: 0.2, maxStates: 1, numpad: false, newWardrobeStyle: true, useNarrowMarket: false, skipStatisticsConfirmation: false, showDebugRenderer: false, pepperSprayDisplay: "sprays", condomsDisplay: "standard", closeButtonMobile: false, zoom: 100, numberify_enabled: 1, timestyle: "military", oldclock: false, tipdisable: "f", passageCount: "disabled", playtime: false, traitOverlayFormat: "table", debugdisable: "t" }>> <<set Time.startDate to new DateTime()>> <<set $timeStamp to 0>> <<if StartConfig.enableImages is false>> <<set $options.images to 0>> <<set $options.combatImages to 0>> <</if>> <!-- ToDo: Canvas, remove block when combat is updated to canvas renderer --> <<if Browser.isMobile.any()>> <<set $options.combatAnimations to false>> <</if>> <<if StartConfig.debug is true>> <<set $debug to 1>> <<else>> <<set $debug to 0>> <</if>> <<if $objectVersion is undefined>> <<set $objectVersion to { "updateClothes": 29, "feats": 1, "wardrobes": 2, "customColors": 4, "uncomfortable": 2, "special_clothes": 5, "chastity": 3, "skinColor": 1, "prenancyObjectRepair": 2, "museumAntiques": 9, "npcClothes": 1, "animations": 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 $clothing_number to 13>> <<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}}>> <<npcList>> <<npcNamed>> <<set $controlmax to 1000>> <<set $control to 1000>> <<clothinginit>> <<parasiteinit>> <<skinColorInit>> <<init_names>> <<set $money to 500>> <<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 0>> <<set $ironmanmode to false>> <<set $crimehistory to 0>> <<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 $malechance to 50>> <<set $maleChanceMale to 50>> <<set $maleChanceFemale to 50>> <<set $maleChanceSplit to "f">> <<set $malevictimchance to 50>> <<set $homochance to 4>> <<set $beastmalechance to 80>> <<set $beastMaleChanceMale to 80>> <<set $beastMaleChanceFemale to 80>> <<set $beastMaleChanceSplit to "f">> <<set $monsterhallucinations to "t">> <<set $monsterchance to 50>> <<set $deviancy to 0>> <<set $baileydefeated to 0>> <<set $baileydefeatedlewd to 0>> <<set $baileydefeatedchain to 0>> <<set $soldCount to 0>> <<set $robinmoney to 300>> <<set $alluremod 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>> <<set $corruption_slime to 0>> <<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 $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 $tending_yield_factor 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 $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>> <<if $debug>> <<set $options.maxStates to 5>> <</if>> <<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 0>> <<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 $dgchance to 0>> <<set $cbchance to 0>> <<set $straponchance to 0>> <<set $breast_mod to 0>> <<set $penis_mod 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 $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 $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 $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 $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>> <<set $dockhours to 0>> <<if $rng gte 95>> <<set $brothel_basement_price to 3000>> <<elseif $rng gte 85>> <<set $brothel_basement_price to 2000>> <<elseif $rng gte 45>> <<set $brothel_basement_price to 1000>> <<else>> <<set $brothel_basement_price to 500>> <</if>> <<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 $psych 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 $hypnosis to 0>> <<set $hypnotised to 0>> <<set $pillsconsumed to 0>> <<set $medicated to 0>> <<set $trance to 0>> <<set $harperexam to 0>> <<set $schoolLessonsMissed = { science: 0, maths: 0, english: 0, history: 0, swimming: 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 $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 $edenforesthunt to 0>> <<set $blackwolfhunt to 0>> <<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 $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_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 $insecurity_pregnancy 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>> <<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*/ <<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>> <<setupTransformationPiecesObject>> <<if $facestyle is undefined>> <<set $facestyle 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.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>> <<set $leftEyeColour to "purple">> <<set $rightEyeColour to "purple">> <<set $prepareSaveDetails to true>> <<if $saveDetails is undefined>> <<set $saveDetails to { exported:{ days: clone(0), frequency: 15, count: 0, dayCount: 0, }, auto:{ count: 0 }, slot:{ count: 0, dayCount: 0, }, playTime: 0, loadTime: new Date(), loadCount: 0, f: 3, }>> <<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, }>> <<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 "">> <</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. */ <<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.gender 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>> <<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 $cheatdisable is "f" and !$debug or $rentmod 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.gender is "f">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<set $penisuse to "none">> <<set $penisstate to "none">> <<set $player.sex to "f">> <<set $player.vaginaExist to true>> <<set $player.penisExist to false>> <<set $player.ballsExist to false>> <<elseif $player.gender is "m">> <<set $vaginause to "none">> <<set $vaginastate to "none">> <<set $penisuse to 0>> <<set $penisstate to 0>> <<set $player.sex to "m">> <<set $player.vaginaExist to false>> <<set $player.penisExist to true>> <<set $player.ballsExist to true>> <<elseif $player.gender is "h">> <<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>> <</if>> <<physicalAdjustmentsInit>> <<set $player.perceived_breastsize = $player.breastsize>> <<set $player.perceived_bottomsize = $player.bottomsize>> <<if $startingseason is "random">> <<set $startingseason to ["autumn","winter","spring","summer"].random()>> <</if>> /* Default start date: 6 sept (sunday), 2020, 07:00 */ /* Do not change start date during gameplay as time is relative to the start date */ <<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>> <<set Time.set()>> <<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.gender is "f">> <<set $player.gender_posture to "m">> <<elseif $player.gender 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, Alex: 0, Sydney: 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 $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 $kylar to { raped: 0, riddle: 0, timer: {halls:0,street:0,home:0,love:0}, fameStage: 0, }>> <<set $kylarSeen to []>> <<set $museumAntiqueJournalHints to []>> <<specialClothesSetup>> <<pregnancyVar>> <<specialClothesEffectsSetup>> <<weather_select>> <<set $warmth to 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: {}, ex: {}, pharm: {}, prison: {} }>> <<set $weekly to { theft: {}, sewers: {} }>> <<if $feats.allSaves.points gt 0>> <<applyFeatsBoost>> <</if>> <</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'*/ <<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"]>> /* this initialises the C.npc object */ <<run initCNPC()>> <<set setup.skinColor to { tanLoc: ["body", "breasts", "penis", "swimshorts", "swimsuitTop", "swimsuitBottom", "bikiniTop", "bikiniBottom", "tshirt"], 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 }, ], 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: 60, hEnd: 60, sStart: 0.25, sEnd: 0.25, 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 }, ], slime: { hStart: 200, hEnd: 200, sStart: 0.3, sEnd: 0.5,bStart: 3.6, bEnd: 3.1 }, }>> <<set setup.tanImg to { "sidebar":{ "t":{ "basehead":"img/bodyRed/basehead.png", "basenoarms":"img/bodyRed/basenoarms.png", "blush1":"img/bodyRed/blush1.png", "blush2":"img/bodyRed/blush2.png", "blush3":"img/bodyRed/blush3.png", "blush4":"img/bodyRed/blush4.png", "blush5":"img/bodyRed/blush5.png", "leftarm":"img/bodyRed/leftarm.png", "leftarmidle":"img/bodyRed/leftarmidle.png", "mouthcry":"img/bodyRed/mouthcry.png", "mouthfrown":"img/bodyRed/mouthfrown.png", "mouthneutral":"img/bodyRed/mouthneutral.png", "mouthsmile":"img/bodyRed/mouthsmile.png", "rightarm":"img/bodyRed/rightarm.png", "rightarmidle":"img/bodyRed/rightarmidle.png", "breasts1":"img/bodyRed/breasts/breasts1.png", "breasts1_clothed":"img/bodyRed/breasts/breasts1.png", "breasts2":"img/bodyRed/breasts/breasts2.png", "breasts2_clothed":"img/bodyRed/breasts/breasts2.png", "breasts3":"img/bodyRed/breasts/breasts3.png", "breasts3_clothed":"img/bodyRed/breasts/breasts3_clothed.png", "breasts4":"img/bodyRed/breasts/breasts4.png", "breasts4_clothed":"img/bodyRed/breasts/breasts4_clothed.png", "breasts5":"img/bodyRed/breasts/breasts5.png", "breasts5_clothed":"img/bodyRed/breasts/breasts6_clothed.png", "breasts6":"img/bodyRed/breasts/breasts6.png", "breasts6_clothed":"img/bodyRed/breasts/breasts6_clothed.png", "penis-2":"img/bodyRed/penis/penis-2.png", "penis-1":"img/bodyRed/penis/penis-1.png", "penis0":"img/bodyRed/penis/penis0.png", "penis1":"img/bodyRed/penis/penis1.png", "penis2":"img/bodyRed/penis/penis2.png", "penis3":"img/bodyRed/penis/penis3.png", "penis4":"img/bodyRed/penis/penis4.png", "penis5":"img/bodyRed/penis/penis5.png", "penisnoballs-2":"img/bodyRed/penisnoballs/penis-2.png", "penisnoballs-1":"img/bodyRed/penisnoballs/penis-1.png", "penisnoballs0":"img/bodyRed/penisnoballs/penis0.png", "penisnoballs1":"img/bodyRed/penisnoballs/penis1.png", "penisnoballs2":"img/bodyRed/penisnoballs/penis2.png", "penisnoballs3":"img/bodyRed/penisnoballs/penis3.png", "penisnoballs4":"img/bodyRed/penisnoballs/penis4.png", "penisnoballs5":"img/bodyRed/penisnoballs/penis5.png", "penis_chastity":"img/bodyRed/penis/penis_chastity.png", "penis_virgin-2":"img/bodyRed/penis/penis_virgin-2.png", "penis_virgin-1":"img/bodyRed/penis/penis_virgin-1.png", "penis_virgin0":"img/bodyRed/penis/penis_virgin0.png", "penis_virgin1":"img/bodyRed/penis/penis_virgin1.png", "penis_virgin2":"img/bodyRed/penis/penis_virgin2.png", "penis_virgin3":"img/bodyRed/penis/penis_virgin3.png", "penis_virgin4":"img/bodyRed/penis/penis_virgin4.png", "penis_virgin5":"img/bodyRed/penis/penis_virgin5.png", "penis_virginnoballs-2":"img/bodyRed/penis/penis_virgin-2.png", "penis_virginnoballs-1":"img/bodyRed/penis/penis_virgin-1.png", "penis_virginnoballs0":"img/bodyRed/penis/penis_virgin0.png", "penis_virginnoballs1":"img/bodyRed/penis/penis_virgin1.png", "penis_virginnoballs2":"img/bodyRed/penisnoballs/penis_virgin2.png", "penis_virginnoballs3":"img/bodyRed/penisnoballs/penis_virgin3.png", "penis_virginnoballs4":"img/bodyRed/penisnoballs/penis_virgin4.png", "penis_virginnoballs5":"img/bodyRed/penisnoballs/penis_virgin5.png", "baseTanSwimsuit_UUpper":"img/bodyRed/tan/under_upper/swimsuit/swimsuit.png", "baseTanSwimsuit_ULower":"img/bodyRed/tan/under_lower/swimsuit.png", "baseTanBikini_UUpper":"img/bodyRed/tan/under_upper/bikini/", "baseTanBikini_ULower":"img/bodyRed/tan/under_lower/bikini.png", "baseTanSwimshorts":"img/bodyRed/tan/under_lower/swimshorts.png", "preggyBelly":"img/bodyRed/preggyBelly/pregnancy_belly_" }, "f":{ "basehead":"img/body/basehead.png", "basenoarms":"img/body/basenoarms.png", "blush1":"img/body/blush1.png", "blush2":"img/body/blush2.png", "blush3":"img/body/blush3.png", "blush4":"img/body/blush4.png", "blush5":"img/body/blush5.png", "leftarm":"img/body/leftarm.png", "leftarmidle":"img/body/leftarmidle.png", "mouthcry":"img/body/mouthcry.png", "mouthfrown":"img/body/mouthfrown.png", "mouthneutral":"img/body/mouthneutral.png", "mouthsmile":"img/body/mouthsmile.png", "rightarm":"img/body/rightarm.png", "rightarmidle":"img/body/rightarmidle.png", "breasts1":"img/body/breasts/breasts1.png", "breasts1_clothed":"img/body/breasts/breasts1.png", "breasts2":"img/body/breasts/breasts2.png", "breasts2_clothed":"img/body/breasts/breasts2.png", "breasts3":"img/body/breasts/breasts3.png", "breasts3_clothed":"img/body/breasts/breasts3_clothed.png", "breasts4":"img/body/breasts/breasts4.png", "breasts4_clothed":"img/body/breasts/breasts4_clothed.png", "breasts5":"img/body/breasts/breasts5.png", "breasts5_clothed":"img/body/breasts/breasts6_clothed.png", "breasts6":"img/body/breasts/breasts6.png", "breasts6_clothed":"img/body/breasts/breasts6_clothed.png", "penis-2":"img/body/penis/penis-2.png", "penis-1":"img/body/penis/penis-1.png", "penis0":"img/body/penis/penis0.png", "penis1":"img/body/penis/penis1.png", "penis2":"img/body/penis/penis2.png", "penis3":"img/body/penis/penis3.png", "penis4":"img/body/penis/penis4.png", "penis5":"img/body/penis/penis5.png", "penisnoballs-2":"img/body/penisnoballs/penis-2.png", "penisnoballs-1":"img/body/penisnoballs/penis-1.png", "penisnoballs0":"img/body/penisnoballs/penis0.png", "penisnoballs1":"img/body/penisnoballs/penis1.png", "penisnoballs2":"img/body/penisnoballs/penis2.png", "penisnoballs3":"img/body/penisnoballs/penis3.png", "penisnoballs4":"img/body/penisnoballs/penis4.png", "penisnoballs5":"img/body/penisnoballs/penis5.png", "penis_chastity":"img/body/penis/penis_chastity.png", "penis_virgin-2":"img/body/penis/penis_virgin-2.png", "penis_virgin-1":"img/body/penis/penis_virgin-1.png", "penis_virgin0":"img/body/penis/penis_virgin0.png", "penis_virgin1":"img/body/penis/penis_virgin1.png", "penis_virgin2":"img/body/penis/penis_virgin2.png", "penis_virgin3":"img/body/penis/penis_virgin3.png", "penis_virgin4":"img/body/penis/penis_virgin4.png", "penis_virgin5":"img/body/penis/penis_virgin5.png", "penis_virginnoballs-2":"img/body/penisnoballs/penis_virgin-2.png", "penis_virginnoballs-1":"img/body/penisnoballs/penis_virgin-1.png", "penis_virginnoballs0":"img/body/penisnoballs/penis_virgin0.png", "penis_virginnoballs1":"img/body/penisnoballs/penis_virgin1.png", "penis_virginnoballs2":"img/body/penisnoballs/penis_virgin2.png", "penis_virginnoballs3":"img/body/penisnoballs/penis_virgin3.png", "penis_virginnoballs4":"img/body/penisnoballs/penis_virgin4.png", "penis_virginnoballs5":"img/body/penisnoballs/penis_virgin5.png", "preggyBelly":"img/body/preggyBelly/pregnancy_belly_" } }, "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", "penisentrance":"img/sex/closeRed/missionary/penisentrance.png", "penispenetrated":"img/sex/closeRed/missionary/penispenetrated.png", "chastitypenis":"img/sex/closeRed/missionary/chastitypenis.png", "chastitypenissmall":"img/sex/closeRed/missionary/chastitypenissmall.png", "chastitypenisflat":"img/sex/closeRed/missionary/chastitypenisflat.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", "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", "penisentrance1":"img/sex/closeRed/missionary/beast/penisentrance1.png", "penisimminent1":"img/sex/closeRed/missionary/beast/penisimminent1.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", "penisentrance":"img/sex/close/missionary/penisentrance.png", "penispenetrated":"img/sex/close/missionary/penispenetrated.png", "chastitypenis":"img/sex/close/missionary/chastitypenis.png", "chastitypenissmall":"img/sex/close/missionary/chastitypenissmall.png", "chastitypenisflat":"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", "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", "penisentrance1":"img/sex/close/missionary/beast/penisentrance1.png", "penisimminent1":"img/sex/close/missionary/beast/penisimminent1.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", "penisentrance":"img/sex/closeRed/doggy/penisentrance.png", "penispenetrated":"img/sex/closeRed/doggy/penispenetrated.png", "chastitypenis":"img/sex/closeRed/doggy/chastitypenis.png", "chastitypenissmall":"img/sex/closeRed/doggy/chastitypenissmall.png", "chastitypenisflat":"img/sex/closeRed/doggy/chastitypenisflat.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", "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", "penisentrance1":"img/sex/closeRed/doggy/beast/penisentrance1.png", "penisimminent1":"img/sex/closeRed/doggy/beast/penisimminent1.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", "penisentrance":"img/sex/close/doggy/penisentrance.png", "penispenetrated":"img/sex/close/doggy/penispenetrated.png", "chastitypenis":"img/sex/close/doggy/chastitypenis.png", "chastitypenissmall":"img/sex/close/doggy/chastitypenissmall.png", "chastitypenisflat":"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", "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", "penisentrance1":"img/sex/close/doggy/beast/penisentrance1.png", "penisimminent1":"img/sex/close/doggy/beast/penisimminent1.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" ], "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","legs","feet"], "body": ["upper","lower","under_upper","under_lower","head","face","neck","hands","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' ] }>> <<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" ]>> <<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.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", "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*/ <<set setup.pregnancy to { canBePregnant: ["Black Wolf"], canImpregnatePlayer: ["Black Wolf"], infertile: ["Bailey", "Leighton"], ignoresIncompeteCheck: ["Ivory Wraith"], typesEnabled: ["human" , "wolf", "wolfboy", "wolfgirl"], randomAlwaysKeep: ["wolf_cave"] }>> <</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.gender 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 $avaliableMapsVersion>> <<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>> <<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 $NPCName[$NPCNameList.indexOf("Whitney")].state is undefined and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1>> <<set $NPCName[$NPCNameList.indexOf("Whitney")].state to "active">> <<set $NPCName[$NPCNameList.indexOf("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.gender 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 ($NPCName[$NPCNameList.indexOf("Avery")].state is undefined or $NPCName[$NPCNameList.indexOf("Avery")].state is "") and $NPCName[$NPCNameList.indexOf("Avery")].init is 1>> <<npcset Avery state "active">> <</if>> <<if ($NPCName[$NPCNameList.indexOf("Robin")].state is undefined or $NPCName[$NPCNameList.indexOf("Robin")].state is "") and $NPCName[$NPCNameList.indexOf("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"]>> <<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 $NPCName[$NPCNameList.indexOf("Kylar")].init is 1 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "">> <<set $NPCName[$NPCNameList.indexOf("Kylar")].init to 0>> <</if>> <<if $corruption_slime is undefined>> <<set $corruption_slime 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 ndef $pillory_tenant>> /* 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.skinColor is undefined>> <<skinColorInitOldSave>> <</if>> <<if $skinColor.tanningEnabled is "t">> <<set $skinColor.tanningEnabled to true>> <</if>> <<if $skinColor.tanningEnabled is "f">> <<set $skinColor.tanningEnabled to false>> <</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 ($cheatdisable is "f" 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">> <<set $newWardrobeStyle to true>> <</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.gender is "f">> <<set $player.gender_posture to "m">> <<elseif $player.gender 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>> <!-- specialClothesSetup 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>> --> <<if $objectVersion.specialClothesEffectsSetup lt 1 or $objectVersion.specialClothesEffectsSetup is undefined>> <<specialClothesEffectsSetup>> <<set $objectVersion.specialClothesEffectsSetup to 1>> <</if>> <<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 $niki_seen is undefined and $chef_state gte 5>> <<set $niki_seen to "chef">> <</if>> <<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 $remy_seen is undefined>> <<set $remy_seen to "livestock">> <<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>> /* <<if $weather is undefined or $weather.current is undefined>> <<set $weather to { current: either("clear", "clear", "clear", "clear", "overcast", "overcast", "overcast", "overcast", "rain", "rain"), sevendayforcast:[], chance: [], rainydays: [], rainstreak: false, weekdaylist: [], raindaystart: 0, lastrainmax: 0 }>> <<weatherinit>> <</if>> */ <<if $clothing_number isnot 13>> <<set $clothing_number to 13>> <</if>> <<if $warmth is undefined>> <<set $warmth to 0>> <<set $chill_day to 0>> <<switch $season>> <<case "spring">> <<set $chill_day += 70>> <<case "summer">> <<case "autumn">> <<set $chill_day += 80>> <<case "winter">> <<set $chill_day += 150>> <</switch>> <<if $weather is "snow">> <<set $chill_day += 50>> <</if>> <<set $chill to $chill_day>> <</if>> <<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 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, f: 3, }>> <<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 $NPCName[$NPCNameList.indexOf("Great Hawk")].type is "bird">> <<set $NPCName[$NPCNameList.indexOf("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>> <<npcPregnancyUpdater>> <<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.gender isnot "m")>> /* <<set $vaginaexist to ($player.gender isnot "m" ? 1 : 0)>> */ <<set $player.penisExist to ($player.gender isnot "f")>> /* <<set $penisexist to ($player.gender 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>> <<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 $NPCName[$NPCNameList.indexOf("Robin")].outfits isnot undefined and !$NPCName[$NPCNameList.indexOf("Robin")].outfits.includes("maleSchool")>> <<set $_robin to $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("Robin")].cdquest is undefined>> <<set $NPCName[$NPCNameList.indexOf("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>> <!-- 0.3.8.2: starting season backwards compatibility check --> <<if $startingseason is undefined>> <<set $startingseason to "autumn">> <</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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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, tanImgEnabled: $skinColor.tanImgEnabled !== undefined ? $skinColor.tanImgEnabled !== "f" : true, tanningEnabled: $skinColor.tanningEnabled !== undefined ? $skinColor.tanningEnabled === "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 : 1, numpad: $numpad !== undefined ? $numpad : false, newWardrobeStyle: $newWardrobeStyle !== undefined ? $newWardrobeStyle : true, 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 $NPCName[$NPCNameList.indexOf("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 40 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 40>> <!--Should'nt need to re-run that often--> <<run clothesDataTrimmerLoop()>> <</if>> <<set $objectVersion.updateClothes to 40>> <!--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`--> <</if>> <<if $objectVersion.specialClothes lt 13 or $objectVersion.specialClothes is undefined>> <<specialClothesSetup>> <<specialClothesUpdate>> <<set $objectVersion.specialClothes to 13>> <</if>> <<if $objectVersion.museumAntiques lte 13 and $museumAntiques.antiques.antiquewhitescrystal isnot undefined>> <<run delete $museumAntiques.antiques.antiquewhitescrystal>> <</if>> <<if $objectVersion.museumAntiques lt 14 or $objectVersion.museumAntiques is undefined>> /*Moved undefined checks for new antiques to the widget below*/ <<updateMuseumAntiques>> <<set $objectVersion.museumAntiques to 14>> <</if>> <<pregnancyVar>> <<updateNewNamedNpcs>> <!-- Jimmy: Reset NPC slots if necessary by checking .type === 0 Old versions prior to 3.4.* did not have empty slots properly set to baseNPC. --> <<for $_i = 0; $_i < $NPCList.length; $_i++>> <<if $combat isnot 1>> <<if $NPCList[$_i].type is 0>> <<set $NPCList[$_i] to clone(setup.baseNPC)>> <</if>> <<elseif $NPCList[$_i].active is "active">> <<set $NPCList[$_i].type to (typeof $NPCList[$_i].type isnot "string" ? "human" : $NPCList[$_i].type)>> <</if>> <</for>> <!-- 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 $NPCName[$NPCNameList.indexOf("Robin")].init is 1>> <<if !$NPCName[$NPCNameList.indexOf("Robin")].outfits>> <<initNNPCClothes "Robin">> <</if>> <<if !$NPCName[$NPCNameList.indexOf("Robin")].outfits.includes($halloween_robin_costume)>> <<addNNPCOutfit "Robin" $halloween_robin_costume>> <</if>> <</if>> <<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "prison">> <<if !$NPCName[$NPCNameList.indexOf("Kylar")].outfits>> <<initNNPCClothes "Kylar">> <</if>> <<if !$NPCName[$NPCNameList.indexOf("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>> <<npcPregnancyUpdater>><!--Has checks to make sure it only changes data when required, don't block behind a check--> <<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>> /* End of Code that should not be moved */ <!-- 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"]>> <!-- 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: give existing clothing (school shirt) a default accessory colour. (Light blue) --> <<script>> const itemChanger = item => { if (item.index === 5) { /* We found our school shirt. */ if (item.accessory_colour === 0) { item.accessory_colour = "light blue"; item.accessory_colour_combat = "light blue"; } } }; V.wardrobe.upper.forEach(itemChanger); itemChanger(V.worn.upper); <</script>> <!-- <= 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>> <<set $options.oldclock to $oldclock>> <<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.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>> <!-- v0.3.13.5 disable combat animations on mobile due to system breakdown.--> <!-- ToDo: Canvas, revert in future update when combat is updated to canvas renderer --> <<if Browser.isMobile.any() and $options.combatAnimations is true and $combatFix is undefined>> <<set $combatFix to 1>> <<set $options.combatAnimations to false>> <</if>> <<if $debugdisable is 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 initialization 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); T.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, V.real_month, V.real_monthday, V.real_hour, V.real_minute).timeStamp; Time.startDate = startDate.addDays(-V.days); 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]); <</script>> <<pass _passMinutes>> <</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.gender is "f">> <<set $player.gender_posture to "m">> <<elseif $player.gender 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 1>> <<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.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.gender 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.gender is "h" and !$virginityProtected and ($player.virginity.vaginal isnot true or $player.virginity.penile isnot true)>> <<fallenTransform>> <</if>> <</if>> <<set $tfFIX to 2>> <</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>> <</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 "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 to 0>> <</if>> <</if>> <</widget>> <!-- Set model options & filters from player body Requires prior <<selectmodel "main">> --> <<widget "modelprepare-player-body">> /*Prep for image checks*/ <<set _disabled to ["disabled","hidden"]>> <!-- unwrap tanLoc/tanValues array --> <<twinescript>> let tanValByName = { body: 0, breasts: -0.01, penis: -0.01, swimshorts: -0.01, swimsuitTop: -0.01, swimsuitBottom: -0.01, bikiniTop: -0.01, bikiniBottom: -0.01, tshirt: -0.01 /* No sprites yet? */ }; for (let i = 0; i < setup.skinColor.tanLoc.length; i++) { tanValByName[setup.skinColor.tanLoc[i]] = $skinColor.tanValues[i] / 100; } _modeloptions.skin_type = $skinColor.natural || "light"; _modeloptions.skin_tone = tanValByName["body"]; if ($options.tanningEnabled is true){ for (let loc in tanValByName) { if (loc !== 'body') { _modeloptions['skin_tone_'+loc] = tanValByName[loc]; } } } else { _modeloptions.show_tanlines = false; } <</twinescript>> <<if $makeup.eyeshadow != 0>> <<set _modeloptions.eyeshadow_colour to $makeup.eyeshadow>> <</if>> <<if $makeup.mascara != 0>> <<set _modeloptions.mascara_colour to $makeup.mascara>> <</if>> <<if $makeup.mascara_running != 0>> <<set _modeloptions.mascara_running to $makeup.mascara_running>> <</if>> <<if $makeup.lipstick != 0>> <<set _modeloptions.lipstick_colour to $makeup.lipstick>> <</if>> <<if $possessed>> <<set _modeloptions.left_eye = (["haunt", "despair"].includes($wraith.state) ? "red possessed" : "blue possessed")>> <<set _modeloptions.right_eye = (["haunt", "despair"].includes($wraith.state) ? "red possessed" : "blue possessed")>> <<else>> <<set _modeloptions.left_eye = $makeup.eyelenses.left != 0 ? $makeup.eyelenses.left : $leftEyeColour>> <<set _modeloptions.right_eye = $makeup.eyelenses.right != 0 ? $makeup.eyelenses.right : $rightEyeColour>> <</if>> <<set _modeloptions.hair_colour = $haircolour>> <<set _modeloptions.hair_fringe_colour = $hairfringecolour>> <<set _modeloptions.hair_colour_gradient = $hairColourGradient>> <<set _modeloptions.hair_fringe_colour_gradient = $hairFringeColourGradient>> <<set _modeloptions.hair_colour_style to $hairColourStyle>> <<set _modeloptions.hair_fringe_colour_style to $hairFringeColourStyle>> <<set _modeloptions.brows_colour = ($makeup.browscolour != 0 ? $makeup.browscolour : $naturalhaircolour)>> <<set _modeloptions.pbhair_colour = ($makeup.pbcolour != 0 ? $makeup.pbcolour : $naturalhaircolour)>> <!-- ██████ █████ ███████ ███████ ██ ██ ██ ██ ██ ██ ██████ ███████ ███████ █████ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ███████ ███████ --> <<switch $player.perceived_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 0 1 2>> <<set _modeloptions.breast_size to 1>> <</switch>> <<set _modeloptions.breasts to "default">> <<if $sexStats>> <<set _modeloptions.belly to playerBellySize() || $bellySizeDebug>> <<set _bellySize to playerBellySize() || $bellySizeDebug>> <</if>> <<if $wraithSkin>> <<set _modeloptions.mannequin to true>> <<set _modeloptions.skin_type to 'custom'>> <<set _modeloptions.filters.body to {blend:'#ffffff',blendMode:'multiply',desaturate:true}>> <<set _modeloptions.filters.breasts to _modeloptions.filters.body>> <<set _modeloptions.filters.penis to _modeloptions.filters.body>> <<set _modeloptions.show_tanlines to false>> <</if>> <!-- - ██ ██ █████ ██ ██████ - ██ ██ ██ ██ ██ ██ ██ - ███████ ███████ ██ ██████ - ██ ██ ██ ██ ██ ██ ██ - ██ ██ ██ ██ ██ ██ ██ - - --> <<set _modeloptions.hair_sides_length to $hairlengthstage>> <<set _modeloptions.hair_sides_type to $hairtype>> <<set _modeloptions.hair_sides_position to $hairposition>> <<set _modeloptions.hair_fringe_length to $fringelengthstage>> <<set _modeloptions.hair_fringe_type to $fringetype>> <!-- - █████ ██████ ███ ███ ███████ - ██ ██ ██ ██ ████ ████ ██ - ███████ ██████ ██ ████ ██ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ - ██ ██ ██ ██ ██ ██ ███████ - --> <<if $leftarm isnot "bound" and $leftarm isnot "grappled">> <<if $dontHide is false and $worn.over_upper.exposed gte 1 and ($worn.upper.exposed gte 1 or $upperwetstage gte 3) and ($exposed gte 2 and $uncomfortable.nude is true or $exposed is 1 and $uncomfortable.underwear is true)>> <<set _coverBreasts to true>> <<set _modeloptions.arm_left to "cover">> <!-- might be changed back to "idle" if covering with wings --> <<else>> <<set _coverBreasts to false>> <<set _modeloptions.arm_left to "idle">> <</if>> <<else>> <<set _modeloptions.arm_left to "none">> <</if>> <<if $rightarm isnot "bound" and $rightarm isnot "grappled">> <<if $dontHide is false and $worn.over_lower.exposed gte 1 and ($worn.lower.exposed gte 1 or $lowerwetstage gte 3) and ($exposed gte 2 and $uncomfortable.nude is true or $exposed is 1 and $uncomfortable.underwear is true)>> <<set _coverCrotch to true>> <<set _modeloptions.arm_right to "cover">> <!-- might be changed back to "idle" if covering with wings/tail --> <<else>> <<set _coverCrotch to false>> <<set _modeloptions.arm_right to "idle">> <</if>> <<else>> <<set _modeloptions.arm_right to "none">> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled">> <<if _coverBreasts is false>> <<if $exposed gte 2 and $dontHide is false and $transformationParts.traits.flaunting is "default">> <<set _modeloptions.demon_wings_state to "flaunt">> <<else>> <<set _modeloptions.demon_wings_state to "idle">> <</if>> <<set _modeloptions.angel_wing_right to "idle">> <<set _modeloptions.fallen_wing_right to "idle">> <<set _modeloptions.bird_wing_right to "idle">> <<elseif _coverBreasts is true>> <<if !_disabled.includes($transformationParts.demon.wings)>> <<set _modeloptions.demon_wings_state to ($transformationParts.traits.flaunting is "default" ? "flaunt" : "cover")>> <<set _modeloptions.arm_left to "idle">> <<elseif !_disabled.includes($transformationParts.angel.wings)>> <<set _modeloptions.angel_wing_right to "cover">> <<set _modeloptions.arm_left to "idle">> <<elseif !_disabled.includes($transformationParts.fallenAngel.wings)>> <<set _modeloptions.fallen_wing_right to "cover">> <<set _modeloptions.arm_left to "idle">> <<elseif !_disabled.includes($transformationParts.bird.wings)>> <<set _modeloptions.bird_wing_right to "cover">> <<set _modeloptions.arm_left to "idle">> <</if>> <</if>> <</if>> <<if $rightarm isnot "bound" and $rightarm isnot "grappled">> <<if _coverCrotch is false>> <<if !_disabled.includes($transformationParts.demon.tail)>> <<if $exposed gte 2 and $dontHide is false and $transformationParts.traits.flaunting is "default">> <<set _modeloptions.demon_tail_state to "flaunt">> <<set _modeloptions.cat_tail_state to "flaunt">> <<else>> <<set _modeloptions.demon_tail_state to "idle">> <<set _modeloptions.cat_tail_state to "idle">> <</if>> <</if>> <<set _modeloptions.angel_wing_left to "idle">> <<set _modeloptions.fallen_wing_left to "idle">> <<set _modeloptions.bird_wing_left to "idle">> <<elseif _coverCrotch is true>> <<if !_disabled.includes($transformationParts.demon.tail)>> <<set _modeloptions.demon_tail_state to ($transformationParts.traits.flaunting is "default" ? "flaunt" : "cover")>> <<set _modeloptions.cat_tail_state to "cover">> <<set _modeloptions.arm_right to "idle">> <<elseif !_disabled.includes($transformationParts.angel.wings)>> <<set _modeloptions.angel_wing_left to "cover">> <<set _modeloptions.arm_right to "idle">> <<elseif !_disabled.includes($transformationParts.fallenAngel.wings)>> <<set _modeloptions.fallen_wing_left to "cover">> <<set _modeloptions.arm_right to "idle">> <<elseif !_disabled.includes($transformationParts.bird.wings)>> <<set _modeloptions.bird_wing_left to "cover">> <<set _modeloptions.arm_right to "idle">> <</if>> <</if>> <</if>> <!-- - ██ ██ ██████ ██ ████████ ██ ███ ██ ██████ ███████ - ██ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ - ██ █ ██ ██████ ██ ██ ██ ██ ██ ██ ██ ███ ███████ - ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ - ███ ███ ██ ██ ██ ██ ██ ██ ████ ██████ ███████ --> <<if $options.bodywritingImages is true>> <<for _label, _value range $skin>> <<if _value.writing>> <<set _modeloptions["writing_"+_label] to setup.bodywriting_namebyindex[_value.index]>> <</if>> <</for>> <</if>> <!-- - ███████ █████ ██████ ███████ - ██ ██ ██ ██ ██ - █████ ███████ ██ █████ - ██ ██ ██ ██ ██ - ██ ██ ██ ██████ ███████ --> <<set _modeloptions.facestyle to $facestyle>> <<set _modeloptions.freckles = $player.freckles == true and $makeup.concealer != 1>> <<set _modeloptions.toast = _toast == true>> <!-- Eyes --> <<if $possessed>> <<set _modeloptions.trauma to $possessed>> <<else>> <<set _modeloptions.trauma to $trauma gte ($traumamax * 0.9)>> <</if>> <<set _modeloptions.blink to $options.blinkingEnabled>> <<set _modeloptions.eyes_bloodshot to $pain gte 100 and $willpowerpain is 0 or $tiredness >= C.tiredness.max>> <<set _modeloptions.eyes_half to $options.halfClosedEnabled and ($arousal gte ($arousalmax / 5) * 4 or $orgasmdown gte 1) and $trauma lt ($traumamax * 0.9) and $pain lt 60 and $eyelidTEST is true or ($possessed or $tiredness >= C.tiredness.max * 0.75)>> <!-- Brows --> <<if $trauma gte $traumamax or $possessed>> <<set _modeloptions.brows = "top">> <<elseif $pain gte 60>> <<set _modeloptions.brows = "low">> <<elseif $arousal gte ($arousalmax / 5) * 4 or $orgasmdown gte 1>> <<set _modeloptions.brows = "orgasm">> <<elseif $pain gte 20>> <<set _modeloptions.brows = "mid">> <<else>> <<set _modeloptions.brows = "top">> <</if>> <!-- Mouth --> <<if $trauma gte $traumamax>> <<set _modeloptions.mouth = "neutral">> <<elseif $pain gte 60 or $orgasmdown gte 1 or ($possessed)>> <<set _modeloptions.mouth = "cry">> <<elseif $exposed is 2 and $uncomfortable.nude is true and $dontHide is false or $pain gte 20>> <<set _modeloptions.mouth = "frown">> <<elseif $pain gte 1 or ($exposed is 1 and $uncomfortable.underwear is true) or ($combat is 1 and $consensual isnot 1)>> <<set _modeloptions.mouth = "neutral">> <<elseif $stress >= ($stressmax / 5) * 3 or !($control >= ($controlmax / 5) * 1)>> <!-- $stress == You are strained. or $control == You are scared.--> <<set _modeloptions.mouth = "neutral">> <<else>> <<set _modeloptions.mouth = "smile">> <</if>> <!-- Blush --> <<set _modeloptions.blush = Math.min(5, Math.floor($arousal / 2000) + 1)>> <<if _modeloptions.blush lt 2 and $exposed gte 2>> <<set _modeloptions.blush = 2>> <<elseif $arousal lt 100 and $exposed lt 1>> <<set _modeloptions.blush = 0>> <</if>> <<if !$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") and $worn.under_upper.type.includes("naked") and $worn.under_lower.type.includes("naked")>> <<set _modeloptions.blush = 2>> <</if>> <!-- Tears --> <<set _modeloptions.tears = painToTearsLvl($pain)>> <!-- - ████████ ███████ ███████ - ██ ██ ██ - ██ █████ ███████ - ██ ██ ██ - ██ ██ ███████ --> <!-- Transformation filters here --> <<set $_filterBase to { blendMode: "hard-light", brightness: 0, contrast: 1, desaturate: false }>> <!-- wing and tail idle/cover/flaunt state is configured in the arms section above --> <<set _modeloptions.angel_wings_type to $transformationParts.angel.wings>> <<set _modeloptions.angel_halo_type to $transformationParts.angel.halo>> <<set _modeloptions.fallen_wings_type to $transformationParts.fallenAngel.wings>> <<set _modeloptions.fallen_halo_type to $transformationParts.fallenAngel.halo>> <<set _modeloptions.demon_wings_type to $transformationParts.demon.wings>> <<set _modeloptions.demon_tail_type to $transformationParts.demon.tail>> <<set _modeloptions.demon_tail_index to ZIndices.backhair>> <<set _modeloptions.demon_horns_type to $transformationParts.demon.horns>> <!-- Calculate blend pattern for demon TF here. --> <<set $_demonHsl to ColourUtils.toHslString(Transformations.defaults.demon.colour)>> <<set _modeloptions.filters.demon_wings to clone(Object.assign($_filterBase, { blend: ColourUtils.toHslString($transformationParts.demon.wings_colour, $_demonHsl) }))>> <<set _modeloptions.filters.demon_tail to clone(Object.assign($_filterBase, { blend: ColourUtils.toHslString($transformationParts.demon.tail_colour, $_demonHsl) }))>> <<set _modeloptions.filters.demon_horns to clone(Object.assign($_filterBase, { blend: ColourUtils.toHslString($transformationParts.demon.horns_colour, $_demonHsl) }))>> <<set _modeloptions.wolf_tail_type to $transformationParts.wolf.tail>> <<set _modeloptions.wolf_ears_type to $transformationParts.wolf.ears>> <<set _modeloptions.wolf_pits_type to $transformationParts.wolf.pits>> <<set _modeloptions.wolf_pubes_type to $transformationParts.wolf.pubes>> <<set _modeloptions.wolf_cheeks_type to $transformationParts.wolf.cheeks>> <<set _modeloptions.cat_tail_type to $transformationParts.cat.tail>> <<set _modeloptions.cat_ears_type to $transformationParts.cat.ears>> <<set _modeloptions.cow_horns_type to $transformationParts.cow.horns>> <<set _modeloptions.cow_tail_type to $transformationParts.cow.tail>> <<set _modeloptions.cow_ears_type to $transformationParts.cow.ears>> <<set _modeloptions.bird_wings_type to $transformationParts.bird.wings>> <<set _modeloptions.bird_tail_type to $transformationParts.bird.tail>> <<set _modeloptions.bird_eyes_type to $transformationParts.bird.eyes>> <<set _modeloptions.bird_malar_type to $transformationParts.bird.malar>> <<set _modeloptions.bird_plumage_type to $transformationParts.bird.plumage>> <<set _modeloptions.bird_pubes_type to $transformationParts.bird.pubes>> <<set _modeloptions.fox_tail_type to $transformationParts.fox.tail>> <<set _modeloptions.fox_ears_type to $transformationParts.fox.ears>> <<set _modeloptions.fox_cheeks_type to $transformationParts.fox.cheeks>> <!-- - ██████ ██ ██ ██ ███ ███ ███████ ██████ █████ - ██ ██ ██ ██ ████ ████ ██ ██ ██ ██ ██ - ██ ███████ ██ ██ ████ ██ █████ ██████ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██████ ██ ██ ██ ██ ██ ███████ ██ ██ ██ ██ --> <!-- Demon-cat tail --> <<if isPartEnabled(_modeloptions.cat_tail_type) and isPartEnabled(_modeloptions.demon_tail_type) and isChimeraEnabled("demoncat", "tail")>> <<set _modeloptions.demon_tail_type to 'default-cat'>> <<set _modeloptions.demon_tail_index to ZIndices.tailPenisCoverOverlay>> <</if>> <!-- Demon-harpy wings --> <<if isPartEnabled(_modeloptions.demon_wings_type) and isPartEnabled(_modeloptions.bird_wings_type) and isChimeraEnabled("demonharpy", "wings")>> <<set _modeloptions.bird_wings_type to 'default-demon'>> <<set _modeloptions.demon_wings_type to 'hidden'>> <</if>> <!-- Demon-cow horns --> <<if isPartEnabled(_modeloptions.cow_horns_type) and isPartEnabled(_modeloptions.demon_horns_type) and isChimeraEnabled("demoncow", "horns")>> <<if !['default', 'succubus'].includes(_modeloptions.demon_horns_type)>> <!-- Force default horns if the PC has unsupported horn styles (E.G. Classic) --> <<set _modeloptions.demon_horns_type to 'default'>> <</if>> <<set _modeloptions.cow_horns_type to 'default-demon'>> <</if>> <!-- - ██████ ██████ ██████ ████████ ██████ ██ ██ - ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██ ██████ ██ ██ ██ ██ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██████ ██ ██ ██████ ██ ██████ ██ ██ --> <<set _modeloptions.crotch_visible to true>> <<if $pbdisable is "f">> <<set _modeloptions.pbhair_level = $pblevel>> <<set _modeloptions.pbhair_strip = $pbstrip>> <<set _modeloptions.pbhair_balls = $pblevelballs>> <</if>> <<if $player.penisExist>> <<set _modeloptions.penis_size to Math.clamp($player.penissize, -2, 4)>> <<set _modeloptions.penis to ($player.virginity.penile === true ? "virgin" : "default") >> <<set _modeloptions.balls to $player.ballsExist>> <<set _modeloptions.penis_parasite to $parasite.penis.name>> <<set _modeloptions.penis_condom to $player.condom.type>> <<set _modeloptions.condom_colour to $player.condom.colour>> <</if>> <<if $player.vaginaExist>> <<set _modeloptions.clit_parasite to $parasite.clit.name>> <</if>> <!-- Dripping Speeds --> <<set $_dripspeeds to ["", "Start", "VerySlow", "Slow", "Fast", "VeryFast"]>> <!-- Vagina --> <<set $_liquidamt to Math.clamp(setup.bodyliquid.combined("vagina"), 0, 5)>> <<set _modeloptions.drip_vaginal to $_dripspeeds.select($_liquidamt)>> <!-- Anus --> <<set $_liquidamt to Math.clamp(setup.bodyliquid.combined("anus"), 0, 5)>> <<set _modeloptions.drip_anal to $_dripspeeds.select($_liquidamt)>> <!-- Mouth --> <<set $_liquidamt to Math.clamp(setup.bodyliquid.combined("mouth"), 0, 5)>> <<set _modeloptions.drip_mouth to $_dripspeeds.select($_liquidamt)>> <<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1>> <<set _chestVisible to true>> <<elseif ($upperwetstage gt 0 or $worn.upper.type.includes("naked")) and ($underupperwetstage gt 0 or $worn.under_upper.type.includes("naked"))>> <<set _chestVisible to true>> <</if>> <<if _chestVisible>> <<set _modeloptions.nipples_parasite to $parasite.nipples.name>> <</if>> <!-- - ███████ ██ ██ ██ ██ ██████ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ - █████ ██ ██ ██ ██ ██ ██ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ - ██ ███████ ██████ ██ ██████ ███████ --> <<script>> let cumsprite = { "chest": [null, "1", "2", "3", "4,5", "4,5"], "face": [null, "1,2", "1,2", "3,4", "3,4", "5"], "feet": [null, null, "2,3", "2,3", "4,5", "4,5"], "leftarm": [null, "1,2,3", "1,2,3", "1,2,3", "4,5", "4,5"], "rightarm": [null, "1,2,3", "1,2,3", "1,2,3", "4,5", "4,5"], "neck": [null, "1,2", "1,2", "3,4", "3,4", "5"], "thigh": [null, "1", "2", "3", "4", "5"], "tummy": [null, "1", "2", "3", "4", "5"] }; let bodyparts = ["chest", "face", "feet", "leftarm", "rightarm", "neck", "thigh", "tummy"]; bodyparts.forEach(bodypart => { let liquidamt = Math.clamp(setup.bodyliquid.combined(bodypart), 0, 5); T.modeloptions["cum_" + bodypart] = cumsprite[bodypart].select(liquidamt); }); <</script>> <</widget>> <!-- - ██████ ██ ██████ ████████ ██ ██ ███████ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██ ██ ██ ██ ██ ███████ █████ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██████ ███████ ██████ ██ ██ ██ ███████ ███████ --> <!-- Set model options & filters for player clothes --> <<widget "modelprepare-player-clothes">> <<if $worn.upper.type.includes("naked") and $worn.over_upper.type.includes("naked")>> <<if !$worn.under_upper.type.includes("naked")>> <<set _modeloptions.breasts to "cleavage">> <<else>> <<set _modeloptions.breasts to "default">> <</if>> <<else>> <<set _modeloptions.breasts to "">> <</if>> <<if $worn.under_upper.type.includes("chest_bind")>> <<set _modeloptions.breast_size to 1>> <</if>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 and !$worn.legs.name.includes("tights")>> <<set _modeloptions.crotch_visible to true>> <<set _modeloptions.crotch_exposed to true>> <<elseif ($lowerwetstage gt 0 or $worn.lower.type.includes("naked")) and ($underlowerwetstage gt 0 or $worn.under_lower.type.includes("naked"))>> <<set _modeloptions.crotch_visible to true>> <<set _modeloptions.crotch_exposed to false>> <<else>> <<set _modeloptions.crotch_visible to false>> <</if>> <<set _modeloptions.hood_down to $worn.upper.hoodposition is "down">> <<if ((($worn.over_head.hood is 1 and $worn.over_head.mask_img isnot 1) or ($worn.head.hood is 1 and $worn.head.mask_img isnot 1))) and $worn.upper.hoodposition is "down">> <<set _modeloptions.hair_sides_length to "short">> <<set _modeloptions.hair_fringe_length to "short">> <</if>> <<set _modeloptions.upper_tucked to $upperTucked and !setup.clothes.upper[clothesIndex('upper', $worn.upper)].notuck and $worn.upper.outfitPrimary is undefined>> <<twinescript>> let slots = [ ["upper", $upperwetstage], ["over_upper"], ["genitals"], ["lower", $lowerwetstage], ["over_lower"], ["under_lower", $underlowerwetstage], ["under_upper", $underupperwetstage], ["hands"], ["head"], ["over_head"], ["face"], ["neck"], ["legs"], ["feet"], ]; for (let slotobj of slots) { let slot = slotobj[0]; let worn = $worn[slot]; switch (slotobj[1]) { case 1: _modeloptions['worn_'+slot+'_alpha'] = 0.9; break; case 2: _modeloptions['worn_'+slot+'_alpha'] = 0.7; break; case 3: _modeloptions['worn_'+slot+'_alpha'] = 0.5; break; default: _modeloptions['worn_'+slot+'_alpha'] = 1.0; break; } _modeloptions['worn_'+slot] = clothesIndex(slot,worn); _modeloptions['worn_'+slot+'_integrity'] = integrityKeyword(worn,slot); _modeloptions['worn_'+slot+'_colour'] = worn.colour; if (worn.colour === 'custom') { /* TODO @aimozg We recalculate custom colour RGB here; in future versions, we should store custom colours in canvasfilter-friendly way */ _modeloptions.filters['worn_'+slot+'_custom'] = worn.colourCanvasFilter || getCustomClothesColourCanvasFilter(worn.colourCustom); } _modeloptions['worn_'+slot+'_acc_colour'] = worn.accessory_colour; if (worn.accessory_colour === 'custom') { _modeloptions.filters['worn_'+slot+'_acc_custom'] = worn.accessory_colourCanvasFilter || getCustomClothesColourCanvasFilter(worn.accessory_colourCustom); } } <</twinescript>> <<if Object.keys($modeloptionsOverride).length gte 1>> <<for _m to 0; _m lt Object.keys($modeloptionsOverride).length; _m++>> <<set _modeloptions[Object.keys($modeloptionsOverride)[_m]] to Object.values($modeloptionsOverride)[_m]>> <</for>> <</if>> <</widget>> <<widget "canvas-player-base-body">> <<selectmodel "main">> <<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 "">> <<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 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 to 4>> <<else>> <<set _modeloptions.worn_under_lower to 1>> <</if>> <</if>> <<if playerHasStrapon()>> <<set _modeloptions.worn_under_lower 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>> <<if $options.sidebarRenderer is 'both'>> <<rendermodel 'canvasimg-both'>> <<else>> <<rendermodel>> <</if>> <</widget>> <<widget "canvas-model-override">> <<if _args[0] is "clear">> <<set $modeloptionsOverride to {}>> <<else>> <<set $modeloptionsOverride[_args[0]] to _args[1]>> <</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">> <<twinescript>> var filter = _modeloptions.filters[_args[0]]; if (!filter) filter = _modeloptions.filters[_args[0]] = {}; filter[_args[1]] = _args[2]; <</twinescript>> <</widget>> <!-- <<animatemodel [CSSCLASS]>> Render model and JS-animate it --> <<widget "animatemodel">> <<twinescript>> var canvas = _modelclass.canvas || _modelclass.createCanvas(); _modelclass.animate(canvas, _modeloptions, Renderer.defaultListener); canvas.canvas.className = typeof _args[0] is 'string' ? _args[0] : ''; output.append(canvas.canvas); <</twinescript>> <</widget>> <!-- <<rendermodel [CSSCLASS] [CSSANIM]>> Render model as a static image If CSSANIM is true (default false), render multiple frames for CSS animation --> <<widget "rendermodel">> <<twinescript>> var canvas = _modelclass.createCanvas(!!_args[1]); _modelclass.render(canvas, _modeloptions, Renderer.defaultListener); canvas.canvas.className = typeof _args[0] is 'string' ? _args[0] : ''; output.append(canvas.canvas); <</twinescript>> <</widget>>
<<widget "clothingCaptionText">> <<run window.outfitChecks()>> <<if _fullyNaked is false>> <<set _clothingCaptionItems to []>> <<set _finally to ".">> <<set _text_output to "">> <<set _wearing to "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>> <</if>> <<clothingCaptionTextNothing>> <<clothingCaptionTextMask>> <br> <<if window.checkForExposedClothing()>> <<clothingCaptionTextStrip>> <</if>> <<if $NudeGenderDC gte 0>> <<clothingCaptionTextGender>> <br> <</if>> <<if playerIsPregnant() and playerAwareTheyArePregnant() and playerBellySize() gt 7 or $bellySizeDebug>> <<clothingCaptionTextPreggy>> <br> <</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'>You 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'>You 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.gender isnot "m" or $backgroundTraits.includes("crossdresser"))>> <<set _finally to ". <span class='purple'>You are not wearing a bra.</span>">> <</if>> <</if>> <</if>> <</silently>><</widget>> <<widget "clothingCaptionTextGenitals">><<silently>> <<if $worn.genitals.name isnot "naked">> <<if _bottomless>> <<set $_text_output to " <span class='red'>Your <<genitalsintegrity>> $worn.genitals.name <<if playerChastity('anus')>>with an anal shield<</if>><<if playerHasButtPlug()>> and $worn.butt_plug.name<</if>> gives you no comfort.</span>">> <<else>> <<set $_text_output to " You wear <<genitalsword>> <<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 " 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> Your identity is concealed by your <<faceintegrity>> $worn.face.name. <</if>> <</widget>> <<widget "clothingCaptionTextNothing">><<silently>> <<if _fullyNaked>> <<if $worn.genitals.name isnot "naked">> <<set $_text_output to "Your <<genitalsintegrity>> $worn.genitals.name <<if playerChastity('anus')>>with an anal shield<</if>> gives you no comfort.">> <<else>> <<set $_text_output to "You are completely naked!">> <</if>> <<elseif _bottomless>> <<set $_text_output to "Your 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">> <<if _captionCount gte 1>> <br><br> /* insert extra newlines after the caption, if there is one, for better style */ <</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 your ">><</if>> <<set _output += formatList($_clothes[$_type]) + $_verb>> <</for>> /* Print the caption */ <<set _captionCount += 1>> <br> Your _output <span @class="$_revealColour">revealing your $_undertext.</span> <</if>> <</widget>> <<widget "clothingCaptionTextGender">><<silently>> <<if $player.gender isnot "f" and $player.gender_appearance is "f">> <<if $breastindicator is 1 and $player.perceived_breastsize gt 1>> <<set $_text_output to "Your exposed breasts will make people think you're a girl!">> <<elseif $exposed gte 2>> <<set $_text_output to "The way you look, people will think you're a girl!">> <<else>> <<set $_text_output to "The way you're dressed, people will think you're a girl!">> <</if>> <<elseif $player.gender isnot "m" and $player.gender_appearance is "m">> <<if $breastindicator is 0 and $worn.upper.exposed is 2 and $worn.under_upper.exposed gte 1 and $player.perceived_breastsize lte 1>> <<set $_text_output to "Your exposed flat chest will make people think you're a boy!">> <<elseif $exposed gte 2>> <<set $_text_output to "The way you look, people will think you're a boy!">> <<else>> <<set $_text_output to "The way you're dressed, people will think you're 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 `Your complete lack of clothing makes your <<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 `Your exposed upper body makes your <<bellyDescription "pc">> more obvious.`>> <<else>> <<set $_text_output to `Your $worn.under_upper.name does nothing to conceal your <<bellyDescription "pc">>.`>> <</if>> <<elseif $worn.upper.type.includes("bellyShow") and $worn.over_upper.type.includes("naked")>> <<set $_text_output to `Your $worn.upper.name shows off your <<bellyDescription "pc">>.`>> <<elseif $worn.upper.type.includes("bellyHide") and $worn.over_upper.type.includes("naked")>> <<set $_text_output to `Your <<bellyDescription "pc">> is too large for your $worn.upper.name to hide.`>> <<else>> <<set $_text_output to `Your <<bellyDescription "pc">> is visible.`>> <</if>> <<else>> <<set $_textCol to "blue">> <<if $worn.upper.type.includes("bellyHide")>> <<set $_text_output to `Your $worn.upper.name hides your <<bellyDescription "pc">>.`>> <<elseif !$worn.over_upper.type.includes("naked")>> <<set $_text_output to `Your $worn.over_upper.name hides your <<bellyDescription "pc">>.`>> <<else>> <<set $_text_output to `Your <<bellyDescription "pc">> is not visible.`>> <</if>> <</if>> <</silently>><<if $_text_output>><span @class=$_textCol><<print $_text_output>></span><</if>><</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_face">> <<set setup.clothes.face to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "glasses", name_cap: "Glasses", variable: "glasses", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "light blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "silver", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["glasses"], gender: "n", warmth: 0, cost: 5000, description: "Makes studying easier, but you might be picked on at school.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "glasses.png", accIcon: 0 }, {index: 2, name: "cool shades", name_cap: "Cool shades", variable: "coolshades", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["cool"], gender: "n", warmth: 0, cost: 7000, description: "Makes status rise faster at school.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cool_shades.png", accIcon: 0 }, {index: 3, name: "surgical mask", name_cap: "Surgical mask", variable: "surgicalmask", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["mask","covered"], gender: "n", warmth: 10, cost: 2000, description: "Hides your identity.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "surgical_mask.png", accIcon: 0 }, {index: 4, name: "gag", name_cap: "Gag", variable: "gag", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish", "gag"], gender: "n", warmth: 0, cost: 2000, description: "Keeps your mouth shut.", shop: [""], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "", accIcon: 0 }, {index: 5, name: "blindfold", name_cap: "Blindfold", variable: "blindfold", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish", "blindfold"], gender: "n", warmth: 0, cost: 2000, description: "Keeps you in the dark.", shop: [""], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "", accIcon: 0 }, {index: 6, name: "gag and blindfold", name_cap: "Gag and blindfold", variable: "gagblindfold", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1000, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish", "gag", "blindfold"], gender: "n", warmth: 0, cost: 3000, description: "Keeps your mouth shut and eyes covered.", shop: [""], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "", accIcon: 0 }, {index: 7, name: "skulduggery mask", name_cap: "Skulduggery mask", variable: "skulmask", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["mask", "stealthy"], gender: "n", warmth: 0, cost: 23000, description: "For those up to no good.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "skulduggery_mask.png", accIcon: 0 }, {index: 8, name: "low frame glasses", name_cap: "Low frame glasses", variable: "lowframe", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, type: ["glasses"], gender: "n", warmth: 0, cost: 5000, description: "Makes studying easier, but you might be picked on at school.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "low_frame_glasses.png", accIcon: 0 }, {index: 9, name: "half moon glasses", name_cap: "Half moon glasses", variable: "halfmoon", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, type: ["glasses"], gender: "n", warmth: 0, cost: 5000, description: "Makes studying easier, but you might be picked on at school.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "half_moon_glasses.png", accIcon: 0 }, {index: 10, name: "deep frame glasses", name_cap: "Deep frame glasses", variable: "deepframe", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, type: ["glasses"], gender: "n", warmth: 0, cost: 5000, description: "Makes studying easier, but you might be picked on at school.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "deep_frame_glasses.png", accIcon: 0 }, {index: 11, name: "square shades", name_cap: "Square shades", variable: "square", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["cool"], gender: "n", warmth: 0, cost: 7000, description: "Makes status rise faster at school.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "square_shades.png", accIcon: 0 }, {index: 12, name: "round shades", name_cap: "Round shades", variable: "round", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["cool"], gender: "n", warmth: 0, cost: 7000, description: "Makes status rise faster at school.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "round_shades.png", accIcon: 0 }, {index: 13, name: "shield shades", name_cap: "Shield shades", variable: "shield", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["cool"], gender: "n", warmth: 0, cost: 7000, description: "Makes status rise faster at school.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "shield_shades.png", accIcon: 0 }, {index: 14, name: "cat eye shades", name_cap: "Cat eye shades", variable: "cateye", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["cool"], gender: "n", warmth: 0, cost: 7000, description: "Makes status rise faster at school.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cat_eye_shades.png", accIcon: 0 }, {index: 15, name: "aviators", name_cap: "Aviators", variable: "aviator", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["grey", "steel", "blue steel", "bronze", "gold", "silver", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["cool"], gender: "n", warmth: 0, cost: 7000, description: "Makes status rise faster at school.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "aviators.png", accIcon: 0 }, {index: 16, name: "punk shades", name_cap: "Punk shades", variable: "punk", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["cool"], gender: "n", warmth: 0, cost: 3500, description: "Makes status rise faster at school.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "punk_shades.png", accIcon: 0 }, {index: 17, name: "muzzle", name_cap: "Muzzle", variable: "muzzle", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 200, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["gag"], gender: "n", warmth: 0, cost: 0, description: "Keeps your dangerous mouth shut.", shop: [""], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "", accIcon: 0 }, {index: 18, name: "mummy facewrap", name_cap: "Mummy facewrap", variable: "mummy", integrity: 10, integrity_max: 10, fabric_strength: 1, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"white", type: ["costume"], gender: "n", warmth: 10, cost: 500, description: "Feels like it's made from toilet paper.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "mummy_facewrap.png", accIcon: 0 }, {index: 19, name: "swimming goggles", name_cap: "Swimming goggles", variable: "swimgoggles", integrity: 70, integrity_max: 70, fabric_strength: 25, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["swim", "diving"], gender: "n", warmth: 10, cost: 1500, description: "For keeping your vision clear down below.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "swimming_goggles.png", accIcon: 0 }, {index: 20, name: "belly dancer's veil", name_cap: "Belly dancer's veil", variable: "belly", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["dance"], gender: "n", warmth: 10, cost: 8000, description: "Exotic and enticing.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "belly_dancers_veil.png", accIcon: "belly_dancers_veil_acc.png" }, {index: 21, name: "muzzle", name_cap: "Muzzle", variable: "muzzlefetish", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 200, word: "a", plural: 0, colour: 0, colour_options: ["grey","black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["gag","fetish","covered"], gender: "n", warmth: 0, cost: 12000, description: "Keeps your dangerous mouth shut.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "muzzle.png", accIcon: 0 }, {index: 22, name: "gag", name_cap: "Gag", variable: "gagfetish", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 8000, description: "Keeps your mouth shut.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "gag.png", accIcon: 0 }, {index: 23, name: "bit gag", name_cap: "Bit gag", variable: "bitgag", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish", "gag"], gender: "n", warmth: 0, cost: 2000, description: "Keeps your mouth shut.", shop: [""], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "bit_gag.png", accIcon: 0 }, {index: 24, name: "wolf muzzle", name_cap: "Wolf muzzle", variable: "wolfmuzzle", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 8000, description: "Keeps your mouth shut.", shop: [], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "wolf_muzzle.png", accIcon: 0 }, {index: 25, name: "kitty muzzle", name_cap: "Kitty muzzle", variable: "kittymuzzle", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 8000, description: "Keeps your mouth shut.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "kitty_muzzle.png", accIcon: 0 }, {index: 26, name: "cloth gag", name_cap: "Cloth gag", variable: "clothgag", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 500, description: "Keeps your mouth shut.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cloth_gag.png", accIcon: 0 }, {index: 27, name: "panty gag", name_cap: "Panty gag", variable: "pantygag", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 500, description: "Keeps your mouth shut.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "panty_gag.png", accIcon: 0 }, {index: 28, name: "tape gag", name_cap: "Tape gag", variable: "tapegag", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 500, description: "Keeps your mouth shut.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "tape_gag.png", accIcon: 0 }, {index: 29, name: "penis gag", name_cap: "Penis gag", variable: "penisgag", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 500, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish","gag"], gender: "n", warmth: 0, cost: 4500, description: "Keeps your mouth filled.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "penis_gag.png", accIcon: 0 }, {index: 30, name: "skeleton mask", name_cap: "Skeleton mask", variable: "skele", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "event"], gender: "n", warmth: 0, cost: 2500, description: "For when you've a bone to pick.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "skeleton_mask.png", accIcon: 0 }, {index: 31, name: "esoteric spectacles", name_cap: "Esoteric spectacles", variable: "esoteric", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["glasses", "esoteric"], gender: "n", warmth: 0, cost: 50000, description: "Spectacles of the hookah master.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "glasses.png", accIcon: 0 } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.face to []>> <<run setup.moddedClothes.face.forEach( (x,i) => x.index = setup.clothes.face.length + i )>> <<run setup.clothes.face.push(...setup.moddedClothes.face)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_feet">> <<set setup.clothes.feet to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "school shoes", name_cap: "School shoes", variable: "schoolshoes", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["school"], gender: "n", warmth: 10, cost: 2500, description: "Smart and suitable for school.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "school_shoes.png", accIcon: 0 }, {index: 2, name: "tuxedo shoes", name_cap: "Tuxedo shoes", variable: "tuxedoshoes", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["formal"], gender: "m", femininity: -100, warmth: 15, cost: 10000, description: "Smart and sophisticated.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "tuxedo_shoes.png", accIcon: 0 }, {index: 3, name: "ankle cuffs", name_cap: "Ankle cuffs", variable: "anklecuffs", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 200, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["fetish", "shackle"], gender: "n", warmth: 0, cost: 10000, description: "Requires a special tool to unlock.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: 0, accIcon: 0 }, {index: 4, name: "sandals", name_cap: "Sandals", variable: "sandals", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 0, cost: 2000, description: "Cool in summer.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"brown", cursed: 0, location: 0, iconFile: "sandals.png", accIcon: 0 }, {index: 5, name: "dress sandals", name_cap: "Dress sandals", variable: "dresssandals", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["formal"], gender: "f", femininity: 200, warmth: 0, cost: 10000, description: "Fashionable and sophisticated.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "dress_sandals.png", accIcon: 0 }, {index: 6, name: "trainers", name_cap: "Trainers", variable: "trainers", integrity: 250, integrity_max: 250, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 10, cost: 3000, description: "Casual and practical.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "trainers.png", accIcon: "trainers_acc.png" }, {index: 7, name: "witch shoes", name_cap: "Witch shoes", variable: "witch", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["costume"], gender: "f", femininity: 200, warmth: 20, cost: 4000, description: "Waterproof.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "witch_shoes.png", accIcon: "witch_shoes_acc.png" }, {index: 8, name: "wellies", name_cap: "Wellies", variable: "wellies", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal", "rugged"], gender: "n", warmth: 50, cost: 5000, description: "Waterproof.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "wellies.png", accIcon: 0 }, {index: 9, name: "platform heels", name_cap: "Platform heels", variable: "platformheels", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 800, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, type: ["formal", "serving", "bimbo", "heels"], gender: "f", femininity: 200, warmth: 10, cost: 5000, description: "Makes you feel rather girly.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "platform_heels.png", accIcon: 0 }, {index: 10, name: "kitten heels", name_cap: "Kitten heels", variable: "kittenheels", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 50, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["formal", "heels"], gender: "f", femininity: 200, warmth: 10, cost: 10000, description: "It's called a kitten heel because it's only three centimetres.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "kitten_heels.png", accIcon: 0 }, {index: 11, name: "wedge sandals", name_cap: "Wedge sandals", variable: "wedgesandals", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal", "heels"], gender: "f", femininity: 200, warmth: 0, cost: 3500, description: "Great for the beach.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat: 0, cursed: 0, location: 0, iconFile: "wedge_sandals.png", accIcon: 0, }, {index: 12, name: "court heels", name_cap: "Court heels", variable: "courtheels", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 500, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["formal", "serving", "heels"], gender: "f", femininity: 200, warmth: 10, cost: 12500, description: "Quite tall and very grown-up.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "court_heels.png", accIcon: 0 }, {index: 13, name: "heeled boots", name_cap: "Heeled boots", variable: "bootheels", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 600, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["fetish", "serving", "heels"], gender: "f", femininity: 200, warmth: 20, cost: 16000, description: "A powerful choice.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "heeled_boots.png", accIcon: 0 }, {index: 14, name: "stripper heels", name_cap: "Stripper heels", variable: "stripperheels", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 800, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["dance", "fetish", "heels"], gender: "f", femininity: 200, warmth: 10, cost: 25000, description: "Crazy tall and very slutty.", shop: ["adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "stripper_heels.png", accIcon: 0 }, {index: 15, name: "horsebit loafers", name_cap: "Horsebit loafers", variable: "horsebitloafers", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["normal"], gender: "m", femininity: -100, warmth: 10, cost: 20000, description: "A pair of black horsebit loafers.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "horsebit_loafers.png", accIcon: 0 }, {index: 16, name: "cordovan loafers", name_cap: "Cordovan loafers", variable: "cordovanloafers", integrity: 300, integrity_max: 300, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["normal"], gender: "m", femininity: -100, warmth: 10, cost: 40000, description: "A pair of shell cordovan loafers. Pricey, but very high quality.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cordovan_loafers.png", accIcon: 0 }, {index: 17, name: "bunny slippers", name_cap: "Bunny slippers", variable: "bunny", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"white", type: ["normal"], gender: "f", femininity: 200, warmth: 40, cost: 2000, description: "Keeps your toes warm.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "bunny_slippers.png", accIcon: 0 }, {index: 18, name: "combat boots", name_cap: "Combat boots", variable: "combat", integrity: 500, integrity_max: 500, fabric_strength: 50, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["normal", "rugged"], gender: "m", femininity: -100, warmth: 20, cost: 20000, description: "Made from robust, high-quality materials.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "combat_boots.png", accIcon: 0 }, {index: 19, name: "field boots", name_cap: "Field boots", variable: "field", integrity: 400, integrity_max: 400, fabric_strength: 40, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["normal", "riding"], gender: "n", femininity: 0, warmth: 20, cost: 14500, description: "Flexible. For professional riding.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "field_boots.png", accIcon: 0 }, {index: 20, name: "paddock boots", name_cap: "Paddock boots", variable: "paddock", integrity: 300, integrity_max: 300, fabric_strength: 40, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["normal", "riding"], gender: "n", femininity: 0, warmth: 20, cost: 8000, description: "For casual riding.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "paddock_boots.png", accIcon: 0 }, {index: 21, name: "work boots", name_cap: "Work boots", variable: "work", integrity: 300, integrity_max: 300, fabric_strength: 40, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"brown", type: ["normal", "rugged"], gender: "n", femininity: 0, warmth: 20, cost: 6000, description: "Protects your toes.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "work_boots.png", accIcon: 0 }, {index: 22, name: "flippers", name_cap: "Flippers", variable: "flippers", integrity: 200, integrity_max: 200, fabric_strength: 60, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["swim", "diving", "unstealthy"], gender: "n", femininity: 0, warmth: 30, cost: 2000, description: "Lets you dive faster.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "flippers.png", accIcon: 0 }, {index: 23, name: "ice skates", name_cap: "Ice skates", variable: "iceskates", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", femininity: 0, warmth: 0, cost: 10000, description: "Sturdy, yet elegant, like those that perform in them.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "ice_skates.png", accIcon: 0 }, {index: 24, name: "long boots", name_cap: "Long boots", variable: "long", integrity: 200, integrity_max: 200, fabric_strength: 60, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", femininity: 0, warmth: 40, cost: 4500, description: "Covers your knees.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "long_boots.png", accIcon: 0 }, {index: 25, name: "light-up trainers", name_cap: "Light-up trainers", variable: "lightuptrainers", integrity: 250, integrity_max: 250, fabric_strength: 20, reveal: 200, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal", "unstealthy"], gender: "n", warmth: 10, cost: 4500, description: "For better visibility.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "light-up_trainers.png", accIcon: "light-up_trainers_acc.png" }, {index: 26, name: "ball and chain", name_cap: "Ball and chain", variable: "ballchain", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 200, word: "n", plural: 0, colour: 0, colour_options: [], colour_combat:"black", type: ["fetish", "shackle"], gender: "n", warmth: 0, cost: 10000, description: "Requires a special tool to unlock.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: 0, accIcon: 0 }, {index: 27, name: "cowboy boots", name_cap: "Cowboy boots", variable: "cowboy", integrity: 350, integrity_max: 350, fabric_strength: 40, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"brown", type: ["normal", "riding"], gender: "m", femininity: -200, warmth: 30, cost: 8500, description: "Spurs included.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cowboy_boots.png", accIcon: 0 }, {index: 28, name: "high top trainers", name_cap: "High top trainers", variable: "hightops", integrity: 300, integrity_max: 300, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 10, cost: 6000, description: "Fashionable and practical.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "trainers.png", accIcon: "trainers_acc.png" }, {index: 29, name: "belly dancer's shoes", name_cap: "Belly dancer's shoes", variable: "belly", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 200, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume"], gender: "f", femininity: 200, warmth: 20, cost: 4000, description: "Jingles when you walk.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "belly_dancers_shoes.png", accIcon: 0 } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.feet to []>> <<run setup.moddedClothes.feet.forEach( (x,i) => x.index = setup.clothes.feet.length + i )>> <<run setup.clothes.feet.push(...setup.moddedClothes.feet)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_genitals">> <<set setup.clothes.genitals to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1, word: "n", plural: 0, colour: 0, colour_options: [], exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["naked"], gender: "n", cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, hideUnderLower: [], iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "chastity belt", name_cap: "Chastity belt", variable: "chastitybelt", integrity: 2000, integrity_max: 2000, fabric_strength: 15, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat: 0, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "hidden", "constricting"], anal_shield: 0, set: "genitals", gender: "f", femininity: 300, cost: 0, description: "Restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 1, location: 0, hideUnderLower: ["leotard bottom","unitard bottom"], altDamage: "metal", iconFile: 0, accIcon: 0 }, {index: 2, name: "chastity cage", name_cap: "Chastity cage", variable: "chastitycage", integrity: 2000, integrity_max: 2000, fabric_strength: 15, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "cage"], anal_shield: null, set: "genitals", gender: "m", cost: 0, description: "Restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 1, location: 0, hideUnderLower: ["plain panties", "bikini bottoms", "lace panties", "briefs", "school swimsuit bottom", "school swim shorts", "leotard bottom", "unitard bottom", "skimpy leotard bottom", "foreign school swimsuit bottom", "swimsuit bottom", "bunny leotard bottom", "boyshorts", "catgirl panties", "G-string", "microkini bottom", "speedo", "striped panties", "thong", "classic plain panties", "classic bikini bottoms", "classic lace panties", "classic briefs", "classic school swimsuit bottom"], altDamage: "metal", iconFile: 0, accIcon: 0 }, {index: 3, name: "gold chastity belt", name_cap: "Gold chastity belt", variable: "goldchastitybelt", integrity: 6000, integrity_max: 6000, fabric_strength: 15, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat: 0, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "hidden", "constricting"], anal_shield: 0, set: "genitals", gender: "f", femininity: 300, cost: 0, description: "Luxurious and restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 1, location: 0, hideUnderLower: ["leotard bottom", "unitard bottom"], altDamage: "metal", iconFile: 0, accIcon: 0 }, {index: 4, name: "fetish chastity belt", name_cap: "Fetish Chastity belt", variable: "chastitybeltfetish", integrity: 1500, integrity_max: 1500, fabric_strength: 12, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "white", "yellow", "tangerine","cyan"], colour_sidebar: 1, colour_combat: 0, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "hidden", "constricting"], anal_shield: 0, set: "genitals", gender: "f", femininity: 300, cost: 10000, description: "Restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, hideUnderLower: ["leotard bottom","unitard bottom"], altDamage: "plastic", iconFile: "chastity_belt.png", accIcon: 0 }, {index: 5, name: "fetish chastity cage", name_cap: "Fetish Chastity cage", variable: "chastitycagefetish", integrity: 1500, integrity_max: 1500, fabric_strength: 12, reveal: 10000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "grey", "blue", "brown", "green", "pink", "purple", "red", "yellow", "tangerine","cyan"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "cage"], anal_shield: null, set: "genitals", gender: "m", cost: 10000, description: "Restrictive.", shop: [], accessory: 1, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, hideUnderLower: ["plain panties", "bikini bottoms", "lace panties", "briefs", "school swimsuit bottom", "school swim shorts", "leotard bottom", "unitard bottom", "skimpy leotard bottom", "foreign school swimsuit bottom", "swimsuit bottom", "bunny leotard bottom", "boyshorts", "catgirl panties", "G-string", "microkini bottom", "speedo", "striped panties", "thong", "classic plain panties", "classic bikini bottoms", "classic lace panties", "classic briefs", "classic school swimsuit bottom"], altDamage: "plastic", iconFile: 0, accIcon: "chastity_cage.png" }, {index: 6, name: "small chastity cage", name_cap: "Small Chastity cage", variable: "smallchastitycage", integrity: 4000, integrity_max: 4000, fabric_strength: 20, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["pink"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "cage", "shrinking"], anal_shield: null, set: "genitals", gender: "m", cost: 0, description: "Heavily Restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 1, location: 0, hideUnderLower: ["plain panties", "bikini bottoms", "lace panties", "briefs", "school swimsuit bottom", "school swim shorts", "leotard bottom", "unitard bottom", "skimpy leotard bottom", "foreign school swimsuit bottom", "swimsuit bottom", "bunny leotard bottom", "boyshorts", "catgirl panties", "G-string", "microkini bottom", "speedo", "striped panties", "thong", "classic plain panties", "classic bikini bottoms", "classic lace panties", "classic briefs", "classic school swimsuit bottom"], altDamage: "metal", iconFile: 0, accIcon: 0 }, {index: 7, name: "flat chastity cage", name_cap: "Flat Chastity cage", variable: "flatchastitycage", integrity: 6000, integrity_max: 6000, fabric_strength: 30, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["pink"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "cage", "shrinking"], anal_shield: null, set: "genitals", gender: "m", cost: 0, description: "Completely Restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 1, location: 0, hideUnderLower: ["plain panties", "bikini bottoms", "lace panties", "briefs", "school swimsuit bottom", "school swim shorts", "leotard bottom", "unitard bottom", "skimpy leotard bottom", "foreign school swimsuit bottom", "swimsuit bottom", "bunny leotard bottom", "boyshorts", "catgirl panties", "G-string", "microkini bottom", "speedo", "striped panties", "thong", "classic plain panties", "classic bikini bottoms", "classic lace panties", "classic briefs", "classic school swimsuit bottom"], altDamage: "metal", iconFile: 0, accIcon: 0 } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.genitals to []>> <<run setup.moddedClothes.genitals.forEach( (x,i) => x.index = setup.clothes.genitals.length + i )>> <<run setup.clothes.genitals.push(...setup.moddedClothes.genitals)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_hands">> <<set setup.clothes.hands to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1, word: "n", plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "fingerless gloves", name_cap: "Fingerless gloves", variable: "fingerlessgloves", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 5, cost: 1000, description: "Fingerless gloves to keep your hands warm.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "fingerless_gloves.png", accIcon: 0, mainImage:0, leftImage:1, rightImage:1 }, {index: 2, name: "mittens", name_cap: "Mittens", variable: "mittens", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 50, cost: 400, description: "Isn't shaped for individual fingers, but that shouldn't be a problem.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "mittens.png", accIcon: 0, mainImage:0, leftImage:1, rightImage:1 }, {index: 3, name: "arm warmers", name_cap: "Arm warmers", variable: "armwarmers", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 40, cost: 1000, description: "Keep your arms warm.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "arm_warmers.png", accIcon: "arm_warmers_acc.png", mainImage:0, leftImage:1, rightImage:1 }, {index: 4, name: "lace arm warmers", name_cap: "Lace arm warmers", variable: "lacewarmers", integrity: 30, integrity_max: 30, fabric_strength: 15, reveal: 500, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, type: ["formal"], gender: "f", warmth: 5, cost: 2500, description: "Fashionable.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "lace_arm_warmers.png", accIcon: 0, mainImage:0, leftImage:1, rightImage:1 }, {index: 5, name: "long leather gloves", name_cap: "Long leather gloves", variable: "longleathergloves", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 500, word: "n", plural: 1, colour: 0, colour_options: [], colour_sidebar: 0, type: ["normal","sticky_fingers","stealthy"], gender: "n", warmth: 10, cost: 8000, description: "Fashionable and ready to slip into pockets.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "long_leather_gloves.png", accIcon: 0, mainImage:0, leftImage:1, rightImage:1 }, {index: 6, name: "pom poms", name_cap: "Pom poms", variable: "pompoms", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 300, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, type: ["costume", "athletic"], gender: "f", femininity: 200, warmth: 15, cost: 1500, description: "For cheering your team to victory.", shop: ["clothing", "school", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "pom_poms.png", accIcon: 0, mainImage:0, leftImage:1, rightImage:1 }, {index: 7, name: "gold bracelets", name_cap: "Gold bracelets", variable: "gold", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 300, word: "n", plural: 1, colour: 0, colour_options: [], type: ["costume", "serving"], gender: "n", femininity: 0, warmth: 0, cost: 25000, description: "Eye-catching and exotic.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "gold_bracelets.png", accIcon: 0, mainImage:0, leftImage:1, rightImage:1 }, {index: 8, name: "cow sleeves", name_cap: "Cow sleeves", variable: "cow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "n", plural: 1, colour: 0, colour_options: [], type: ["costume"], gender: "n", warmth: 20, cost: 1000, description: "Cute cow print.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "cow_sleeves.png", accIcon: "", mainImage:0, leftImage:1, rightImage:1 } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.hands to []>> <<run setup.moddedClothes.hands.forEach( (x,i) => x.index = setup.clothes.hands.length + i )>> <<run setup.clothes.hands.push(...setup.moddedClothes.hands)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_head">> <<set setup.clothes.head to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1, word: "n", plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "hairpin", name_cap: "Hairpin", variable: "hairpin", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 200, warmth: 0, cost: 500, description: "Greatly accelerates hair growth.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "hairpin.png", accIcon: 0 }, {index: 2, name: "beanie", name_cap: "Beanie", variable: "beanie", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["cool"], gender: "n", warmth: 35, cost: 3000, description: "Makes status rise faster at school.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "beanie.png", accIcon: 0 }, {index: 3, name: "bunny ears", name_cap: "Bunny ears", variable: "bunnyears", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 300, word: "a", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "serving"], gender: "n", warmth: 0, cost: 3000, description: "Cute ears on a headband. Part of a bunny outfit.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "bunny_ears.png", accIcon: 0 }, {index: 4, name: "nun's veil", name_cap: "Nun's veil", variable: "nun", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], type: ["holy", "costume"], gender: "f", femininity: 200, warmth: 15, cost: 2500, description: "Protects your hair from unwanted attentions.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "nuns_veil.png", accIcon: 0 }, {index: 5, name: "bow", name_cap: "Bow", variable: "bow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 200, warmth: 0, cost: 900, description: "Cute.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "bow.png", accIcon: 0 }, {index: 6, name: "cap", name_cap: "Cap", variable: "cap", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal", "shade"], gender: "n", warmth: 0, cost: 2000, description: "Shields you from the sun.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "cap.png", accIcon: 0 }, {index: 7, name: "witch hat", name_cap: "Witch hat", variable: "witch", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume", "shade"], gender: "n", warmth: 20, cost: 3000, description: "Patchy and fragrant.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "witch_hat.png", accIcon: "witch_hat_acc.png" }, {index: 8, name: "christmas hat", name_cap: "Christmas hat", variable: "christmas", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "n", warmth: 40, cost: 5000, description: "'Tis the season.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "christmas_hat.png" }, {index: 9, name: "chef hat", name_cap: "Chef hat", variable: "chef", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "serving"], gender: "n", warmth: 5, cost: 5000, description: "Keeps cream out of your hair.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "chef_hat.png" }, {index: 10, name: "cowboy hat", name_cap: "Cowboy hat", variable: "cowboy", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "shade"], gender: "n", warmth: 10, cost: 8000, description: "Protects you from the sun.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "cowboy_hat.png", accIcon: 0 }, {index: 11, name: "fedora", name_cap: "Fedora", variable: "fedora", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal", "shade"], gender: "m", femininity: -100, warmth: 10, cost: 5000, description: "Suave.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "fedora.png" }, {index: 12, name: "beatnik hat", name_cap: "Beatnik hat", variable: "beatnik", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["cool"], gender: "m", femininity: -100, warmth: 10, cost: 8000, description: "Conforming isn't your style.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "beatnik_hat.png" }, {index: 13, name: "sou'wester", name_cap: "Sou'wester", variable: "sou", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["rainproof"], gender: "n", warmth: 15, cost: 4000, description: "Keeps the rain off.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "souwester.png", }, {index: 14, name: "flower crown", name_cap: "Flower crown", variable: "flower", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", warmth: 0, cost: 0, description: "Floral.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "flower_crown.png", }, {index: 15, name: "backwards cap", name_cap: "Backwards cap", variable: "backwardscap", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal", "shade"], gender: "n", warmth: 0, cost: 2000, description: "Protects your neck from the sun.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "backwards_cap.png", accIcon: 0 }, {index: 16, name: "alice band", name_cap: "Alice band", variable: "alice", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 200, warmth: 0, cost: 1100, description: "Holds your hair back.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "alice_band.png", accIcon: 0 }, {index: 17, name: "straw hat", name_cap: "Straw hat", variable: "straw", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal", "shade"], gender: "n", femininity: 0, warmth: 0, cost: 700, description: "Keeps the sun off.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "straw_hat.png", accIcon: "straw_hat_acc.png" }, {index: 18, name: "straw flower hat", name_cap: "Straw flower hat", variable: "strawflower", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 100, warmth: 0, cost: 1500, description: "Keeps the sun off.", shop: [], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: 0, accIcon: 0 }, {index: 19, name: "maid band", name_cap: "Maid band", variable: "maid", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["maid", "costume", "serving"], gender: "f", femininity: 200, warmth: 0, cost: 1200, description: "For looking cute while cleaning.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "maid_band.png", accIcon: 0 }, {index: 20, name: "bun covers", name_cap: "Bun covers", variable: "bun", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["formal"], gender: "f", femininity: 200, warmth: 0, cost: 5000, description: "Exotic.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "bun_covers.png", accIcon: 0 }, {index: 21, name: "headband", name_cap: "Headband", variable: "band", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["cool"], gender: "n", femininity: 0, warmth: 0, cost: 1100, description: "Keeps hair from your eyes.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "headband.png", accIcon: 0 }, {index: 22, name: "feathered cap", name_cap: "Feathered cap", variable: "feathered", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "shade"], gender: "m", femininity: -200, warmth: 10, cost: 2200, description: "For when you have something to be proud of.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "feathered_cap.png", accIcon: 0 }, {index: 23, name: "large sailor's hat", name_cap: "Large sailor's hat", variable: "sailorbig", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume"], gender: "m", femininity: -200, warmth: 10, cost: 3000, description: "Shields you from the sun.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "large_sailors_hat.png", accIcon: 0 }, {index: 24, name: "small sailor's hat", name_cap: "Small sailor's hat", variable: "sailorsmall", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume"], gender: "m", femininity: -200, warmth: 10, cost: 2000, description: "Shields you from the sun.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "small_sailors_hat.png", accIcon: 0 }, {index: 25, name: "football helmet", name_cap: "Football helmet", variable: "football", integrity: 200, integrity_max: 200, fabric_strength: 60, reveal: 1, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume", "athletic"], gender: "m", femininity: -200, warmth: 30, cost: 2000, description: "Protective headwear. Used in a foreign sport.", shop: ["clothing", "school", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: "combat", cursed: 0, location: 0, iconFile: "football_helmet.png", accIcon: 0 }, {index: 26, name: "big bow", name_cap: "Big bow", variable: "bigbow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 300, warmth: 0, cost: 1400, description: "Very cute.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "big_bow.png", accIcon: 0 }, {index: 27, name: "riding helmet", name_cap: "Riding helmet", variable: "riding", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 1, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "athletic", "riding"], gender: "n", femininity: 0, warmth: 30, cost: 16000, description: "Protective headwear.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "riding_helmet.png", accIcon: 0 }, {index: 28, name: "top hat", name_cap: "Top hat", variable: "top", integrity: 150, integrity_max: 150, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "formal"], gender: "m", femininity: -200, warmth: 10, cost: 6000, description: "Old fashioned sophistication.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "top_hat.png", accIcon: 0 }, {index: 29, name: "umbrella hat", name_cap: "Umbrella hat", variable: "umbrella", integrity: 120, integrity_max: 120, fabric_strength: 10, reveal: 100, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["rainproof", "shade"], gender: "n", femininity: 0, warmth: 0, cost: 1500, description: "Keeps the rain off, but attracts attention.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "umbrella_hat.png", accIcon: 0 }, {index: 30, name: "racing helmet", name_cap: "Racing helmet", variable: "racing", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 1, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume", "athletic", "riding"], gender: "n", femininity: 0, warmth: 20, cost: 15000, description: "For serious riding.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "racing_helmet.png", accIcon: 0 }, {index: 31, name: "feathered hair clip", name_cap: "Feathered hair clip", variable: "featheredhairclip", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume", "eerie"], gender: "n", femininity: 0, warmth: 0, cost: 1500, description: "Made with real feathers.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, back_img: 0, cursed: 0, location: 0, iconFile: "feathered_hair_clip.png", accIcon: 0 }, {index: 32, name: "hoodie hood", name_cap: "Hoodie hood", variable: "hoodie", integrity: 180, integrity_max: 180, fabric_strength: 30, reveal: 100, word: "a", one_piece: 1, plural: 0, hood: 1, mask_img: 1, colour: 0, colour_options: ["black", "blue steel", "grey", "white", "light pink", "light blue", "light green", "sand", "red", "pink", "purple", "tangerine", "teal", "custom"], colour_sidebar: 1, type: ["normal"], set: "hoodie", gender: "n", warmth: 20, cost: 0, description: "Portable social isolator.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue steel", "grey", "white", "light pink", "light blue", "light green", "sand", "red", "pink", "purple", "tangerine", "teal", "custom"], accessory_colour_sidebar: 1, back_img: 1, back_img_colour: "secondary", cursed: 0, location: 0, outfitSecondary: ["upper","hoodie"], iconFile: 0, accIcon: 0 }, {index: 33, name: "tam o' shanter", name_cap: "Tam o' shanter", variable: "tam", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 100, word: "a", plural: 0, mask_img: 1, hood: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "m", femininity: -200, warmth: 25, cost: 4500, description: "For honest men and bonnie lasses.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "tam_o_shanter.png", accIcon: 0 }, {index: 34, name: "cat hat", name_cap: "Cat hat", variable: "cat", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 100, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, hood: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume", "shade"], gender: "n", warmth: 25, cost: 3000, description: "Whiskers not included.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "cat_hat.png", accIcon: 0 }, {index: 35, name: "monster hood", name_cap: "Monster hood", variable: "monster", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 100, word: "a", one_piece: 1, plural: 0, hood: 1, mask_img: 1, colour: 0, colour_options: ['apocalypse', 'custom'], colour_sidebar: 1, type: ["costume"], set: "monsterhoodie", gender: "n", warmth: 25, cost: 0, description: "Rawr.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "", outfitSecondary: ["upper","monster hoodie"], accIcon: 0 }, {index: 36, name: "kitty ears", name_cap: "Kitty ears", variable: "kitty", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 100, word: "n", one_piece: 0, plural: 1, hood: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["costume"], gender: "n", warmth: 25, cost: 1500, description: "Cute.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], back_img: "combat", cursed: 0, location: 0, iconFile: "kitty_ears.png", accIcon: "kitty_ears_acc.png" }, {index: 37, name: "mini snowman", name_cap: "Mini snowman", variable: "minisnowman", integrity: 100, integrity_max: 100, fabric_strength: 5, reveal: 1, word: "n", one_piece: 0, plural: 0, hood: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "n", warmth: 40, cost: 2500, description: "Surprisingly warm.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "mini_snowman.png", accIcon: 0 }, {index: 38, name: "cow onesie hood", name_cap: "Cow onesie hood", variable: "cowonesie", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 100, word: "a", one_piece: 1, plural: 0, hood: 1, mask_img: 1, colour: 0, colour_options: [], type: ["sleep","costume"], gender: "n", warmth: 40, cost: 0, description: "Snug.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "", outfitSecondary: ["upper","cow onesie"], accIcon: 0 }, {index: 39, name: "baseball cap", name_cap: "Baseball cap", variable: "baseball", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, mask_img_ponytail: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["athletic", "shade"], gender: "n", warmth: 0, cost: 6000, description: "Shields you from the sun.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "baseball_cap.png", accIcon: "baseball_cap_acc.png" }, {index: 40, name: "rose", name_cap: "Rose", variable: "rose", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: ["red", "white", "pink", "light pink", "purple", "yellow", "tangerine", "black", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 200, warmth: 0, cost: 2000, description: "Smells fresh.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, back_img: 0, cursed: 0, location: 0, iconFile: "rose.png", accIcon: "rose_acc.png" }, {index: 41, name: "scarecrow hat", name_cap: "Scarecrow hat", variable: "scarecrow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "a", plural: 0, mask_img: 1, colour: 0, colour_options: [], colour_sidebar: 0, type: ["costume", "shade"], gender: "n", warmth: 0, cost: 1000, description: "Worn by the empty-headed.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "scarecrow_hat.png" }, {index: 42, name: "fish hairpin", name_cap: "Fish hairpin", variable: "fishhairpin", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 100, warmth: 0, cost: 500, description: "Feels like real bone.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "fish_hairpin.png", accIcon: 0 }, {index: 43, name: "pink nurse hat", name_cap: "Pink nurse hat", variable: "pinknurse", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "f", femininity: 100, warmth: 0, cost: 1200, description: "Worn by nurses at the hospital.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "pink_nurse.png", accIcon: 0 }, {index: 44, name: "plastic nurse hat", name_cap: "Plastic nurse hat", variable: "plasticnurse", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "unstealthy"], gender: "f", femininity: 100, warmth: 0, cost: 1800, description: "Easy to clean.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "plastic_nurse.png", accIcon: 0 }, {index: 45, name: "transparent nurse hat", name_cap: "Transparent nurse hat", variable: "transparentnurse", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 200, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "f", femininity: 100, warmth: 0, cost: 2400, description: "Easy to clean.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "transparent_nurse.png", accIcon: 0 }, {index: 46, name: "bunny headband", name_cap: "Bunny headband", variable: "bunband", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "a", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 0, cost: 3000, description: "Two cute bun tufts on a band.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: "bunny_headband.png", accIcon: 0 }, {index: 47, name: "daisy", name_cap: "Daisy", variable: "daisy", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"white", type: ["normal"], gender: "f", warmth: 0, cost: 100, description: "A single daisy, its stem can be threaded through hair.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: "daisy.png", }, {index: 48, name: "spirit mask", name_cap: "Spirit mask", variable: "spiritmask", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, type: ["costume", "eerie"], gender: "n", femininity: 0, warmth: 0, cost: 6000, description: "Doesn't fit over your face.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "yellow", "custom"], accessory_colour_sidebar: 1, back_img: 0, cursed: 0, location: 0, iconFile: "spirit_mask.png", accIcon: "spirit_mask_acc.png" } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.head to []>> <<run setup.moddedClothes.head.forEach( (x,i) => x.index = setup.clothes.head.length + i )>> <<run setup.clothes.head.push(...setup.moddedClothes.head)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_legs">> <<set setup.clothes.legs to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 1, word: "a", state: 0, state_base: 0, plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "tights", name_cap: "Tights", variable: "tights", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 100, word: "n", state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 200, warmth: 5, cost: 1000, description: "They don't conceal much.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "tights.png", accIcon: 0 }, {index: 2, name: "boy's gym socks", name_cap: "Boy's gym socks", variable: "boysgymsocks", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["school"], gender: "m", femininity: -100, warmth: 15, cost: 500, description: "Cushioned and breathable.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "boys_gym_socks.png", accIcon: 0 }, {index: 3, name: "girl's gym socks", name_cap: "Girl's gym socks", variable: "girlsgymsocks", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["school"], gender: "f", femininity: 100, warmth: 15, cost: 500, description: "Cushioned and breathable.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "girls_gym_socks.png", accIcon: 0 }, {index: 4, name: "stockings", name_cap: "Stockings", variable: "stockings", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 100, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 200, warmth: 15, cost: 1500, description: "Attractive and alluring.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "stockings.png", accIcon: 0 }, {index: 5, name: "fishnet stockings", name_cap: "Fishnet stockings", variable: "fishnetstockings", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 200, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 300, warmth: 3, cost: 1500, description: "Attractive and alluring.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "fishnet_stockings.png", accIcon: 0 }, {index: 6, name: "fishnet tights", name_cap: "Fishnet tights", variable: "fishnettights", integrity: 25, integrity_max: 25, fabric_strength: 20, reveal: 200, word: "n", state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["normal"], gender: "f", femininity: 300, warmth: 3, cost: 1700, description: "Attractive and alluring.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "fishnet_tights.png", accIcon: 0 }, {index: 7, name: "garter stockings", name_cap: "Garter stockings", variable: "garterstockings", integrity: 15, integrity_max: 15, fabric_strength: 20, reveal: 300, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 300, warmth: 20, cost: 4000, description: "Sexy.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "garter_stockings.png", accIcon: 0 }, {index: 8, name: "legwarmers", name_cap: "Legwarmers", variable: "legwarmers", integrity: 25, integrity_max: 25, fabric_strength: 20, reveal: 1, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", warmth: 70, cost: 1500, description: "Cosy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "legwarmers.png", accIcon: 0 }, {index: 9, name: "christmas leg warmers", name_cap: "Christmas leg warmers", variable: "christmas", integrity: 25, integrity_max: 25, fabric_strength: 20, reveal: 1, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "f", femininity: 200, warmth: 70, cost: 2500, description: "Festive.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "christmas_leg_warmers.png" }, {index: 10, name: "gold anklets", name_cap: "Gold anklets", variable: "goldanklets", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 300, word: "n", state: "ankles", state_base: "ankles", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "serving"], gender: "n", warmth: 0, cost: 25000, description: "Exotic and eye-catching.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "gold_anklets.png", accIcon: 0 }, {index: 11, name: "naked", name_cap: "Naked", variable: "naked", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 1, word: "a", state: 0, state_base: 0, plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: 0, accIcon: 0 }, {index: 12, name: "striped thighhighs", name_cap: "Striped thighhighs", variable: "stripedthighhighs", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 300, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 200, warmth: 20, cost: 3000, description: "Brimming with personality.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "striped_thighhighs.png", accIcon: "striped_thighhighs_acc.png" }, {index: 13, name: "ankle socks", name_cap: "Ankle socks", variable: "anklesocks", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", state: "ankles", state_base: "ankles", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, type: ["school", "athletic"], gender: "n", femininity: 0, warmth: 10, cost: 500, description: "Perfect for sport.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "ankle_socks.png", accIcon: "ankle_socks_acc.png" }, {index: 14, name: "plain thighhighs", name_cap: "Plain thighhighs", variable: "plainthighhighs", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 300, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 200, warmth: 20, cost: 2500, description: "Simple and cute.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "striped_thighhighs.png", accIcon: 0 }, {index: 15, name: "cow socks", name_cap: "Cow socks", variable: "cow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", state: "knees", state_base: "knees", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "n", femininity: -0, warmth: 15, cost: 1000, description: "Cute cow print.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cow_socks.png", accIcon: 0 }, {index: 16, name: "nurse socks", name_cap: "Nurse socks", variable: "nursesocks", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["costume"], gender: "f", femininity: 100, warmth: 15, cost: 900, description: "Worn by nurses at the local hospital.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "nurse_socks.png", accIcon: 0 }, {index: 17, name: "ribbon stockings", name_cap: "Ribbon stockings", variable: "ribbonstockings", integrity: 15, integrity_max: 15, fabric_strength: 20, reveal: 300, word: "n", state: "thighs", state_base: "thighs", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 300, warmth: 20, cost: 4000, description: "Cute.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "ribbon_stockings.png", accIcon: "ribbon_stockings_acc.png" } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.legs to []>> <<run setup.moddedClothes.legs.forEach( (x,i) => x.index = setup.clothes.legs.length + i )>> <<run setup.clothes.legs.push(...setup.moddedClothes.legs)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_lower">> <<set setup.clothes.lower to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1000, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: 0, state_base: 0, plural: 0, colour: 0, colour_options: [], exposed: 2, exposed_base: 2, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["naked"], set: "lower", gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "sundress skirt", name_cap: "Sundress skirt", variable: "sundress", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "sundress", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Great for frolicking.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","sundress"] }, {index: 2, name: "pyjama bottoms", name_cap: "Pyjama bottoms", variable: "pjs", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["sleep"], set: "lower", gender: "n", warmth: 50, cost: 1000, description: "Keeps you warm at night.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "pyjama_bottoms.png", accIcon: 0 }, {index: 3, name: "towel skirt", name_cap: "Towel skirt", variable: "towel", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 800, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 15, cost: 0, description: "Not very secure.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "towel.png", accIcon: 0 }, {index: 4, name: "waist apron", name_cap: "Waist apron", variable: "waistapron", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 800, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["normal", "maid", "serving"], set: "lower", gender: "n", warmth: 10, cost: 800, description: "Covers little.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "waist_apron.png", accIcon: 0 }, {index: 5, name: "shorts", name_cap: "Shorts", variable: "shorts", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 20, cost: 1000, description: "Cool and loose-fitting.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "shorts.png", accIcon: 0 }, {index: 6, name: "school shorts", name_cap: "School shorts", variable: "schoolshorts", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["school"], set: "lower", gender: "m", femininity: -100, warmth: 20, cost: 2500, description: "Proper school uniform.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "school_shorts.png", accIcon: 0 }, {index: 7, name: "school skirt", name_cap: "School skirt", variable: "schoolskirt", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 400, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["school"], set: "lower", gender: "f", femininity: 200, warmth: 20, cost: 2500, description: "Proper school uniform.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "school_skirt.png", accIcon: 0 }, {index: 8, name: "plant skirt", name_cap: "Plant skirt", variable: "plant", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 900, rearresize: -1, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"green", exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["swim"], set: "lower", gender: "n", warmth: 0, cost: 0, description: "Plants tied loose together.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0 }, {index: 9, name: "evening gown skirt", name_cap: "Evening gown skirt", variable: "eveninggown", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 400, rearresize: -2, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "evening gown", gender: "f", femininity: 200, warmth: 50, cost: 0, description: "For formal nights out.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","evening gown"] }, {index: 10, name: "ballgown skirt", name_cap: "Ballgown skirt", variable: "ballgown", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 600, rearresize: -2, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "ballgown", gender: "f", femininity: 200, warmth: 50, cost: 0, description: "Extravagant.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 1, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","ballgown"] }, {index: 11, name: "kimono skirt", name_cap: "Kimono skirt", variable: "kimono", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 500, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "kimono", gender: "n", warmth: 40, cost: 0, description: "Exotic.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","kimono"] }, {index: 12, name: "mini kimono skirt", name_cap: "Mini kimono skirt", variable: "kimonomini", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 700, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["formal"], set: "kimonomini", gender: "n", warmth: 15, cost: 0, description: "Exotic. Shows off your legs.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","mini kimono"] }, {index: 13, name: "maid skirt", name_cap: "Maid skirt", variable: "maid", integrity: 110, integrity_max: 110, fabric_strength: 30, reveal: 500, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["maid", "costume", "serving"], set: "maid", gender: "f", femininity: 200, warmth: 30, cost: 0, description: "For looking cute while cleaning.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","maid dress"] }, {index: 14, name: "nun's habit skirt", name_cap: "Nun's habit skirt", variable: "nun", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["holy", "costume"], set: "nun", gender: "f", femininity: 200, warmth: 60, cost: 0, description: "Holy outfit for those sworn to purity.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","nun's habit"] }, {index: 15, name: "large towel bottom", name_cap: "Large towel bottom", variable: "towellarge", integrity: 10, integrity_max: 10, fabric_strength: 30, reveal: 800, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], set: "towellarge", gender: "n", warmth: 10, cost: 0, description: "Not very secure.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","large towel"] }, {index: 16, name: "tuxedo trousers", name_cap: "Tuxedo trousers", variable: "tuxedo", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 600, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "lower", gender: "m", femininity: -200, warmth: 40, cost: 20000, description: "Smart and sophisticated.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "tuxedo_trousers.png", accIcon: 0 }, {index: 17, name: "board shorts", name_cap: "Board shorts", variable: "boardshorts", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim"], set: "lower", gender: "n", warmth: 15, cost: 3500, description: "Good in and out of water.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "board_shorts.png", accIcon: 0 }, {index: 18, name: "breeches", name_cap: "Breeches", variable: "breeches", integrity: 150, integrity_max: 150, fabric_strength: 30, reveal: 300, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal", "constricting"], set: "lower", gender: "m", femininity: -200, warmth: 40, cost: 6000, description: "Tight-fitting but formal.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "breeches.png", accIcon: 0 }, {index: 19, name: "long cut skirt", name_cap: "Long cut skirt", variable: "cutskirtlong", integrity: 130, integrity_max: 130, fabric_strength: 30, reveal: 600, rearresize: -2, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "lower", gender: "f", femininity: 200, warmth: 25, cost: 6000, description: "Easy to move in. Shows off your thigh.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "long_cut_skirt.png", accIcon: 0 }, {index: 20, name: "short cut skirt", name_cap: "Short cut skirt", variable: "cutskirtshort", integrity: 150, integrity_max: 150, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "lower", gender: "f", femininity: 200, warmth: 10, cost: 4000, description: "Easy to move in.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "short_cut_skirt.png", accIcon: 0 }, {index: 21, name: "cycle shorts", name_cap: "Cycle shorts", variable: "cycleshorts", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 600, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal", "athletic", "constricting"], set: "lower", gender: "n", warmth: 20, cost: 2500, description: "Tight.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "cycle_shorts.png", accIcon: 0 }, {index: 22, name: "jeans", name_cap: "Jeans", variable: "jeans", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"blue", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal", "constricting"], set: "lower", gender: "n", warmth: 30, cost: 5000, description: "Tough and fashionable.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "jeans.png", accIcon: 0 }, {index: 23, name: "trousers", name_cap: "Trousers", variable: "trousers", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 300, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 40, cost: 3000, description: "Covers you from waist to foot.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "trousers.png", accIcon: 0 }, {index: 24, name: "long skirt", name_cap: "Long skirt", variable: "longskirt", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: -1, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "f", femininity: 200, warmth: 40, cost: 2000, description: "Conservative.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "long_skirt.png", accIcon: 0 }, {index: 25, name: "miniskirt", name_cap: "Miniskirt", variable: "miniskirt", integrity: 60, integrity_max: 60, fabric_strength: 30, reveal: 800, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], set: "lower", gender: "f", femininity: 200, warmth: 10, cost: 3000, description: "A breeze away from a malfunction.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "miniskirt.png", accIcon: 0 }, {index: 26, name: "long school skirt", name_cap: "Long school skirt", variable: "schoolskirtlong", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 200, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["school"], set: "lower", gender: "f", femininity: 200, warmth: 40, cost: 4000, description: "Prim and proper.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "long_school_skirt.png", accIcon: 0 }, {index: 27, name: "short school skirt", name_cap: "Short school skirt", variable: "schoolskirtshort", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["school"], set: "lower", gender: "f", femininity: 200, warmth: 20, cost: 1500, description: "Too short to meet regulation skirt length. You don't think anyone will complain.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "short_school_skirt.png", accIcon: 0 }, {index: 28, name: "school trousers", name_cap: "School trousers", variable: "schooltrousers", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["school"], set: "lower", gender: "m", femininity: -100, warmth: 40, cost: 4000, description: "Gives perverts little to gawk at.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "school_trousers.png", accIcon: 0 }, {index: 29, name: "oversized sweater bottom", name_cap: "Oversized sweater bottom", variable: "sweaterlarge", integrity: 60, integrity_max: 60, fabric_strength: 30, reveal: 500, rearresize: 0, word: "an", one_piece: 1, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], set: "sweaterlarge", gender: "n", warmth: 10, cost: 0, description: "Snug, comfy and long enough to cover your unmentionables. Just.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","oversized sweater"] }, {index: 30, name: "witch skirt", name_cap: "Witch skirt", variable: "witch", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 400, rearresize: -1, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "event"], set: "witch", gender: "f", femininity: 200, warmth: 50, cost: 0, description: "Popular Halloween costume. Coloured with forest dyes.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","witch dress"] }, {index: 31, name: "denim shorts", name_cap: "Denim shorts", variable: "jorts", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 15, cost: 4000, description: "Tight yet cool.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "denim_shorts.png", accIcon: 0 }, {index: 32, name: "girl's oversized sweater bottom", name_cap: "Girl's oversized sweater bottom", variable: "pinksweaterlarge", integrity: 60, integrity_max: 60, fabric_strength: 30, reveal: 500, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"pink", exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], set: "pinksweaterlarge", gender: "f", femininity: 100, warmth: 10, cost: 0, description: "Snug, comfy and long enough to cover your unmentionables. Just.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","girl's oversized sweater"] }, {index: 33, name: "christmas trousers", name_cap: "Christmas trousers", variable: "christmas", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 250, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"red", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "n", warmth: 70, cost: 4000, description: "Festive.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "christmas_trousers.png" }, {index: 34, name: "christmas skirt", name_cap: "Christmas skirt", variable: "christmasdress", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 650, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"red", exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["costume"], set: "christmasdress", gender: "f", femininity: 200, warmth: 70, cost: 0, description: "Festive. The skirt is rather short.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, outfitSecondary: ["upper","christmas dress"] }, {index: 35, name: "monk's habit skirt", name_cap: "Monk's habit skirt", variable: "monk", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"brown", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["holy", "costume"], set: "monk", gender: "m", femininity: -200, warmth: 60, cost: 0, description: "Holy outfit for those sworn to purity.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 1, back_img_colour: "primary", cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","monk's habit"] }, {index: 36, name: "cowboy chaps", name_cap: "Cowboy chaps", variable: "cowboy", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"brown", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "m", femininity: -200, warmth: 35, cost: 6000, description: "Ready for a hard day's work.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "cowboy_chaps.png", accIcon: 0 }, {index: 37, name: "belly dancer's bottoms", name_cap: "Belly dancer's bottoms", variable: "belly", integrity: 150, integrity_max: 150, fabric_strength: 30, reveal: 700, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat:"red", colour_sidebar: 1, exposed: 1, exposed_base: 1, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "serving", "dance"], set: "lower", gender: "f", femininity: 200, warmth: 10, cost: 12000, description: "Exotic, and sturdier than it looks.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "belly_dancers_bottoms.png", accIcon: "belly_dancers_bottoms_acc.png" }, {index: 38, name: "straightjacket bottom", name_cap: "Straightjacket bottom", variable: "straightjacket", integrity: 50, integrity_max: 50, fabric_strength: 30, reveal: 800, rearresize: -1, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["binding", "asylum"], set: "straightjacket", gender: "n", warmth: 10, cost: 0, description: "Protects you from yourself.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 1, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","straightjacket"] }, {index: 39, name: "khakis", name_cap: "Khakis", variable: "khakis", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 100, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"brown", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 40, cost: 8000, description: "Smart and casual.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "khakis.png", accIcon: 0 }, {index: 40, name: "gingham skirt", name_cap: "Gingham skirt", variable: "gingham", integrity: 140, integrity_max: 140, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "gingham", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "A comfortable classic.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","gingham dress"] }, {index: 41, name: "overall bottoms", name_cap: "Overall bottoms", variable: "overalls", integrity: 180, integrity_max: 180, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"blue", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "overalls", gender: "n", warmth: 40, cost: 0, description: "Hard to take off.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "overalls.png", accIcon: 0, outfitSecondary: ["upper","overalls"] }, {index: 42, name: "cheongsam skirt", name_cap: "Cheongsam skirt", variable: "cheongsam", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 500, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "cheongsam", gender: "f", femininity: 200, warmth: 40, cost: 0, description: "Exotic.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"yellow", high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","cheongsam"] }, {index: 43, name: "short cheongsam skirt", name_cap: "Short cheongsam skirt", variable: "cheongsamshort", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["formal"], set: "cheongsamshort", warmth: 20, gender: "f", femininity: 200, cost: 0, description: "Exotic and revealing.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"yellow", high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","short cheongsam"] }, {index: 44, name: "micro pleated skirt", name_cap: "Micro pleated skirt", variable: "micropleatedskirt", integrity: 90, integrity_max: 90, fabric_strength: 30, reveal: 900, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["serving", "bimbo"], set: "lower", gender: "f", femininity: 200, warmth: 10, cost: 10000, description: "Makes you feel rather girly.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "micro_pleated_skirt.png", accIcon: 0 }, {index: 45, name: "chinos", name_cap: "Chinos", variable: "chinos", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 100, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "grey", "white", "wine", "navy", "olive", "brown", "tan", "sand", "off-white", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 40, cost: 11000, description: "Made of a quality twill fabric. Smart, classic style of pants with a flat front and a slightly fitted look.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "chinos.png", accIcon: 0 }, {index: 46, name: "gothic skirt", name_cap: "Gothic skirt", variable: "gothic", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal", "costume"], set: "gothic", gender: "f", femininity: 200, warmth: 40, cost: 0, description: "A fine and seductive gothic gown. A right pain to put on.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, accessory_integrity_img: 1, high_img: 1, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","gothic gown"] }, {index: 47, name: "gothic trousers", name_cap: "Gothic trousers", variable: "gothictrousers", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal", "costume"], set: "lower", gender: "n", femininity: 0, warmth: 40, cost: 8000, description: "For creatures of the night.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "gothic_trousers.png", accIcon: 0 }, {index: 48, name: "waiter's trousers", name_cap: "Waiter's trousers", variable: "waiter", integrity: 130, integrity_max: 130, fabric_strength: 30, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "serving"], set: "lower", gender: "m", femininity: -200, warmth: 40, cost: 1500, description: "For when your clientele expect a certain class.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "waiters_trousers.png", accIcon: 0 }, {index: 49, name: "lederhosen bottoms", name_cap: "Lederhosen bottoms", variable: "leder", integrity: 150, integrity_max: 150, fabric_strength: 30, reveal: 300, rearresize: 0, word: "n", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"green", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "serving"], set: "leder", gender: "m", femininity: -200, warmth: 40, cost: 0, description: "For when your clientele expect a certain class.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","lederhosen"] }, {index: 50, name: "karate trousers", name_cap: "Karate trousers", variable: "karate", integrity: 170, integrity_max: 170, fabric_strength: 50, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "m", femininity: -200, warmth: 20, cost: 7800, description: "Robust and martial.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "karate_trousers.png", accIcon: 0 }, {index: 51, name: "sailor trousers", name_cap: "Sailor trousers", variable: "sailortrousers", integrity: 140, integrity_max: 140, fabric_strength: 50, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "m", femininity: -200, warmth: 40, cost: 3000, description: "For long days away from shore.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "sailor_trousers.png", accIcon: 0 }, {index: 52, name: "sailor shorts", name_cap: "Sailor shorts", variable: "sailorshorts", integrity: 100, integrity_max: 100, fabric_strength: 50, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "m", femininity: -200, warmth: 20, cost: 2800, description: "For hot days away from shore.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "sailor_shorts.png", accIcon: 0 }, {index: 53, name: "football shorts", name_cap: "Football shorts", variable: "football", integrity: 200, integrity_max: 200, fabric_strength: 50, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "athletic", "school"], set: "lower", gender: "m", femininity: -200, warmth: 25, cost: 5500, description: "Protective legwear. Used in a foreign sport.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "football_shorts.png", accIcon: 0 }, {index: 54, name: "gym bloomers", name_cap: "Gym bloomers", variable: "gymbloomers", integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal", "athletic", "school"], set: "lower", gender: "f", femininity: 200, warmth: 15, cost: 2200, description: "Old fashioned PE bloomers from a foreign land.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "gym_bloomers.png", accIcon: 0 }, {index: 55, name: "chapette breeches", name_cap: "Chapette breeches", variable: "chapette", integrity: 200, integrity_max: 200, fabric_strength: 35, reveal: 300, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal", "riding"], set: "lower", gender: "n", femininity: 0, warmth: 40, cost: 7000, description: "For wearing with riding boots.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"black", high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "chapette_breeches.png", accIcon: 0 }, {index: 56, name: "cheerleading skirt", name_cap: "Cheerleading skirt", variable: "cheerleader", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 500, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "athletic", "school"], set: "lower", gender: "f", femininity: 200, warmth: 20, cost: 5000, description: "Part of a uniform used in a foreign sport.", shop: ["clothing", "school", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "cheerleading_skirt.png", accIcon: 0 }, {index: 57, name: "mummy skirt", name_cap: "Mummy skirt", variable: "mummy", integrity: 10, integrity_max: 10, fabric_strength: 30, reveal: 700, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "n", femininity: 0, warmth: 10, cost: 500, description: "Feels like it's made from toilet paper.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "mummy_skirt.png", accIcon: 0 }, {index: 58, name: "diving suit bottom", name_cap: "diving suit bottom", variable: "diving", integrity: 200, integrity_max: 200, fabric_strength: 50, reveal: 500, rearresize: 0, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 0, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "diving"], set: "diving", gender: "n", femininity: 0, warmth: 40, cost: 0, description: "Will insulate you underwater, letting you swim in the cold.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","diving suit"] }, {index: 59, name: "classic sundress skirt", name_cap: "Classic sundress skirt", variable: "classicsundress", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: -1, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "classicsundress", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Great for frolicking. Brings back fond memories.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","classic sundress"] }, {index: 60, name: "classic school shorts", name_cap: "Classic school shorts", variable: "classicschoolshorts", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["school"], set: "lower", gender: "m", femininity: -100, warmth: 30, cost: 2500, description: "Proper school uniform. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "classic_school_shorts.png", accIcon: 0 }, {index: 61, name: "classic school skirt", name_cap: "Classic school skirt", variable: "classicschoolskirt", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 400, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["school"], set: "lower", gender: "f", femininity: 200, warmth: 30, cost: 2500, description: "Proper school uniform. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "classic_school_skirt.png", accIcon: 0 }, {index: 62, name: "classic gothic skirt", name_cap: "Classic gothic skirt", variable: "gothicold", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal", "costume"], set: "gothicold", gender: "f", femininity: 200, warmth: 35, cost: 0, description: "A fine and seductive gothic gown. A right pain to put on. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 1, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","classic gothic gown"] }, {index: 63, name: "scout shorts", name_cap: "Scout shorts", variable: "scout", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 300, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal", "athletic"], set: "lower", gender: "m", femininity: -200, warmth: 25, cost: 4000, description: "Sturdy, with lots of pockets.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "scout_shorts.png", accIcon: 0 }, {index: 64, name: "soccer shorts", name_cap: "Soccer shorts", variable: "soccer", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal", "athletic"], set: "lower", gender: "m", femininity: -200, warmth: 10, cost: 5000, description: "Light and cool.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "soccer_shorts.png", accIcon: 0 }, {index: 65, name: "star pyjama shorts", name_cap: "Star pyjama shorts", variable: "pjsstar", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["sleep"], set: "lower", gender: "n", femininity: 0, warmth: 20, cost: 1200, description: "Keeps you warm at night.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "star_pyjama_shorts.png", accIcon: "star_pyjama_shorts_acc.png" }, {index: 66, name: "moon pyjama bottoms", name_cap: "Moon pyjama bottoms", variable: "pjsmoon", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["sleep"], set: "lower", gender: "n", femininity: 0, warmth: 50, cost: 1200, description: "Keeps you warm at night.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "moon_pyjama_bottoms.png", accIcon: "moon_pyjama_bottoms_acc.png" }, {index: 67, name: "sweatpants", name_cap: "Sweatpants", variable: "sweatpants", integrity: 140, integrity_max: 140, fabric_strength: 30, reveal: 200, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue steel", "grey", "white", "light pink", "light blue", "light green", "sand", "red", "pink", "purple", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 50, cost: 2000, description: "Warm and comfy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "sweatpants.png", accIcon: 0 }, {index: 68, name: "catsuit bottoms", name_cap: "Catsuit bottoms", variable: "catsuit", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, word: "n", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["stealthy"], set: "catsuit", gender: "n", femininity: 0, warmth: 25, cost: 0, description: "Sleek latex.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitSecondary: ["upper","catsuit"] }, {index: 69, name: "kilt", name_cap: "Kilt", variable: "kilt", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, word: "n", one_piece: 0, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "m", femininity: -200, warmth: 20, cost: 2800, description: "Breezy.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "kilt.png", accIcon: 0, }, {index: 70, name: "bathrobe bottom", name_cap: "Bathrobe bottom", variable: "bathrobe", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 500, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat: "white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "bathrobe", gender: "n", warmth: 40, cost: 0, description: "Soft and cozy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","bathrobe"] }, {index: 71, name: "rag skirt", name_cap: "Rag skirt", variable: "rag", integrity: 10, integrity_max: 10, fabric_strength: 1, reveal: 800, rearresize: 0, word: "n", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["rag"], set: "lower", gender: "n", warmth: 15, cost: 0, description: "Will come apart at a breeze.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0 }, {index: 72, name: "retro trousers", name_cap: "Retro trousers", variable: "retro", integrity: 100, integrity_max: 100, fabric_strength: 1, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 30, cost: 3000, description: "Popular in the past, and making a comeback.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "retro_trousers.png", accIcon: "retro_trousers_acc.png" }, {index: 73, name: "retro shorts", name_cap: "Retro shorts", variable: "retroshorts", integrity: 80, integrity_max: 80, fabric_strength: 1, reveal: 500, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "n", warmth: 30, cost: 3000, description: "Popular in the past, and making a comeback.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "retro_shorts.png", accIcon: "retro_shorts_acc.png" }, {index: 74, name: "monster skirt", name_cap: "Monster skirt", variable: "monster", integrity: 120, integrity_max: 120, fabric_strength: 1, reveal: 600, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ['apocalypse', 'custom'], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "monsterhoodie", gender: "n", warmth: 15, cost: 0, description: "Rawr.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", outfitSecondary: ["upper","monster hoodie"], accIcon: 0 }, {index: 75, name: "keyhole skirt", name_cap: "Keyhole skirt", variable: "keyhole", integrity: 120, integrity_max: 120, fabric_strength: 1, reveal: 600, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "keyhole", gender: "f", femininity: 200, warmth: 15, cost: 0, description: "Don't bend over.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", outfitSecondary: ["upper","keyhole dress"], accIcon: 0 }, {index: 76, name: "booty jorts", name_cap: "Booty jorts", variable: "bootyjorts", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 750, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat : 0, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "lower", gender: "f", femininity: 200, warmth: 10, cost: 4000, description: "Tight and revealing.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "jorts.png", accIcon: 0 }, {index: 77, name: "prison trousers", name_cap: "Prison trousers", variable: "prison", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 300, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["prison"], set: "lower", gender: "n", femininity: 0, warmth: 40, cost: 0, description: "Institutional clothing.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0 }, {index: 78, name: "prison jumpsuit trousers", name_cap: "Prison jumpsuit trousers", variable: "jumpsuit", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 300, rearresize: 0, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"tangerine", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["prison"], set: "jumpsuit", gender: "n", warmth: 40, cost: 0, description: "Institutional clothing.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitSecondary: ["upper","prison jumpsuit"] }, {index: 79, name: "patient gown skirt", name_cap: "Patient gown skirt", variable: "patient", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], set: "patient", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Leaves your back wide open.", shop: [""], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","patient gown"] }, {index: 80, name: "cow onesie bottoms", name_cap: "Cow onesie bottoms", variable: "cowonesie", integrity: 300, integrity_max: 300, fabric_strength: 30, reveal: 100, rearresize: 0, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["sleep","costume"], set: "cowonesie", gender: "n", warmth: 70, cost: 0, description: "Snug.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", outfitSecondary: ["upper","cow onesie"], accIcon: 0 }, {index: 81, name: "cow print chaps", name_cap: "Cow print chaps", variable: "cowchaps", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"brown", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "lower", gender: "m", femininity: -200, warmth: 35, cost: 6000, description: "Ready for a hard day's work.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "cow_print_chaps.png", accIcon: 0 }, {index: 82, name: "baseball shorts", name_cap: "Baseball shorts", variable: "baseball", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["athletic"], set: "lower", gender: "n", warmth: 20, cost: 3000, description: "Shorts design associated with a foreign, cricket-like sport.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "baseball_shorts.png", accIcon: "baseball_shorts_acc.png" }, {index: 83, name: "scarecrow skirt", name_cap: "Scarecrow skirt", variable: "scarecrow", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 200, rearresize: -1, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"brown", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "event"], set: "scarecrow", gender: "n", femininity: 0, warmth: 20, cost: 0, description: "Itchy.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","scarecrow shirt"] }, {index: 84, name: "waitress skirt", name_cap: "Waitress skirt", variable: "waitress", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 200, rearresize: -1, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "serving"], set: "waitress", gender: "f", femininity: 100, warmth: 20, cost: 0, description: "Gets the job done.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","waitress uniform"] }, {index: 85, name: "split dress skirt", name_cap: "Split dress skirt", variable: "split", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 700, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "split", gender: "f", femininity: 100, warmth: 5, cost: 0, description: "A breeze away from disaster.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","split dress"] }, {index: 86, name: "skimpy lolita skirt", name_cap: "Skimpy lolita skirt", variable: "skimpylolita", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "skimpylolita", gender: "f", femininity: 200, warmth: 15, cost: 0, description: "A blend of fashions.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","skimpy lolita dress"] }, {index: 87, name: "short ballgown skirt", name_cap: "Short ballgown skirt", variable: "shortballgown", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 800, rearresize: -2, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "shortballgown", gender: "f", femininity: 200, warmth: 50, cost: 0, description: "Scandalously short.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 1, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","short ballgown"] }, {index: 88, name: "slacks", name_cap: "Slacks", variable: "slacks", integrity: 140, integrity_max: 140, fabric_strength: 30, reveal: 400, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "lower", gender: "n", femininity: 0, warmth: 30, cost: 17000, description: "Smart and comfortable.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "slacks.png", accIcon: 0 }, {index: 89, name: "pink nurse skirt", name_cap: "Pink nurse skirt", variable: "pinknurse", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"pink", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "pink nurse dress", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Worn by nurses at the local hospital.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","pink nurse dress"] }, {index: 90, name: "plastic nurse skirt", name_cap: "Plastic nurse skirt", variable: "plasticnurse", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"pink", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "unstealthy"], set: "plastic nurse dress", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Easy to clean.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","plastic nurse dress"] }, {index: 91, name: "transparent nurse skirt", name_cap: "Transparent nurse skirt", variable: "transparentnurse", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 900, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"pink", exposed: 1, exposed_base: 1, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], set: "transparent nurse dress", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Easy to clean.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","transparent nurse dress"] }, {index: 92, name: "hanfu skirt", name_cap: "Hanfu skirt", variable: "hanfu", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "n", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["formal"], set: "hanfu", gender: "n", femininity: 0, warmth: 25, cost: 0, description: "Enduring attire from a distant land.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitSecondary: ["upper","hanfu"] }, {index: 93, name: "open shoulder sweater bottom", name_cap: "Open shoulder sweater bottom", variable: "openshouldersweater", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "openshouldersweater", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Comfy and stylish.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","open shoulder sweater"] }, {index: 94, name: "cocoon bottom", name_cap: "Cocoon bottom", variable: "cocoon", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 1000, rearresize: 0, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], set: "cocoon", gender: "f", femininity: 200, warmth: 20, cost: 0, description: "Binding.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","cocoon"] }, {index: 95, name: "skeleton bottoms", name_cap: "Skeleton bottoms", variable: "skele", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 400, rearresize: -1, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "event"], set: "skele", gender: "n", femininity: 0, warmth: 50, cost: 0, description: "Spooky and scary.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","skeleton outfit"] }, {index: 96, name: "futuristic bodysuit pants", name_cap: "Futuristic bodysuit pants", variable: "futuresuit", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 400, rearresize: -1, word: "a", one_piece: 1, skirt: 0, skirt_down: 0, short: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "event"], set: "futuresuit", gender: "n", femininity: 0, warmth: 30, cost: 0, description: "Slick and robotic.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","futuristic bodysuit"] }, {index: 97, name: "pencil skirt", name_cap: "Pencil skirt", variable: "pencil", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 800, rearresize: 0, word: "a", one_piece: 0, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], set: "lower", gender: "f", femininity: 200, warmth: 10, cost: 5000, description: "Straight, narrow, and very short.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: "pencil_skirt.png", accIcon: 0 }, {index: 98, name: "lace nightgown skirt", name_cap: "Lace nightgown skirt", variable: "lacegown", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 800, rearresize: 0, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, short: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["sleep"], set: "lacegown", gender: "f", femininity: 200, warmth: 10, cost: 0, description: "Delicate and revealing.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["upper","lace nightgown"] } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.lower to []>> <<run setup.moddedClothes.lower.forEach( (x,i) => x.index = setup.clothes.lower.length + i )>> <<run setup.clothes.lower.push(...setup.moddedClothes.lower)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_neck">> <<set setup.clothes.neck to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "collar", name_cap: "Collar", variable: "collar", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 1000, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish"], gender: "n", warmth: 0, cost: 20000, description: "Requires a special tool to unlock.", shop: [], collared: 1, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "collar.png", accIcon: 0 }, {index: 2, name: "bunny collar", name_cap: "Bunny collar", variable: "bunnycollar", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 300, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"white", type: ["costume", "serving"], gender: "n", warmth: 0, cost: 3000, description: "A collar and tie. Part of the bunny outfit.", shop: ["adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "bunny_collar.png", accIcon: 0 }, {index: 3, name: "holy pendant", name_cap: "Holy pendant", variable: "holypendant", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"yellow", type: ["holy"], gender: "n", warmth: 1, cost: 1000, description: "Heavy. So you don't forget you're wearing it.", shop: ["forest"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "holy_pendant.png", accIcon: 0 }, {index: 4, name: "dark pendant", name_cap: "Dark pendant", variable: "darkpendant", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["dark"], gender: "n", warmth: 0, cost: 10000, description: "Absorbs all light.", shop: ["forest"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "dark_pendant.png", accIcon: 0 }, {index: 5, name: "stone pendant", name_cap: "Stone pendant", variable: "stonependant", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 1, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat:"black", type: ["holy"], gender: "n", warmth: 1, cost: 2000, description: "An old holy symbol on a simple string.", shop: ["forest"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "stone_pendant.png", accIcon: 0 }, {index: 6, name: "gold choker", name_cap: "Gold choker", variable: "goldchoker", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 300, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "serving"], gender: "n", warmth: 0, cost: 25000, description: "Exotic and eye-catching.", shop: ["adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "gold_choker.png", accIcon: 0 }, {index: 7, name: "cat bell collar", name_cap: "Cat bell collar", variable: "cat", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 300, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"red", type: ["costume", "serving", "unstealthy", "eerie"], gender: "n", warmth: 0, cost: 1500, description: "Jingles.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cat_bell_collar.png", accIcon: 0 }, {index: 8, name: "cow bell", name_cap: "Cow bell", variable: "cow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 300, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat: 0, type: ["costume", "eerie", "unstealthy"], gender: "n", warmth: 0, cost: 1500, description: "Jangles.", shop: ["forest"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cow_bell.png", accIcon: 0 }, {index: 9, name: "lace choker", name_cap: "Lace choker", variable: "lacechoker", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat:"black", type: ["formal"], gender: "f", femininity: 100, warmth: 0, cost: 1800, description: "Glamorous.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "lace_choker.png", accIcon: 0 }, {index: 10, name: "spiked collar", name_cap: "Spiked collar", variable: "spiked", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"black", type: ["fetish", "costume", "eerie"], gender: "n", femininity: 0, warmth: 0, cost: 1500, description: "Menaces with spikes of steel.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "spiked_collar.png", accIcon: 0 }, {index: 11, name: "heart choker", name_cap: "Heart choker", variable: "heartchoker", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"black", type: ["normal"], gender: "f", femininity: 200, warmth: 0, cost: 2100, description: "Cute.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "heart_choker.png", accIcon: 0 }, {index: 12, name: "ringed collar", name_cap: "Ringed collar", variable: "ringedcollar", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"black", type: ["fetish"], gender: "n", femininity: 0, warmth: 0, cost: 2500, description: "Ready for leashing.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "ringed_collar.png", accIcon: 0 }, {index: 13, name: "necktie", name_cap: "Necktie", variable: "tie", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["formal"], gender: "m", femininity: -100, warmth: 0, cost: 3000, description: "Classic accessory for office workers.", shop: ["clothing", "adult"], collared: 0, accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "necktie.png", accIcon: "necktie_acc.png" }, {index: 14, name: "suspenders", name_cap: "Suspenders", variable: "suspenders", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "m", femininity: -100, warmth: 1, cost: 2000, description: "They hold your pants.", shop: ["clothing", "adult"], collared: 0, accessory: 1, accessory_colour: 0, accessory_colour_options: ["steel", "blue steel", "bronze", "gold", "silver"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "suspenders.png", accIcon: 0 }, {index: 15, name: "cloth choker", name_cap: "Cloth choker", variable: "clothchoker", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "f", femininity: 100, warmth: 0, cost: 1500, description: "Brimming with personality.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "cloth_choker.png", accIcon: 0 }, {index: 16, name: "scarf", name_cap: "Scarf", variable: "scarf", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["normal"], gender: "n", femininity: 0, warmth: 50, cost: 1200, description: "Snug.", shop: ["clothing"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "scarf.png", accIcon: 0 }, {index: 17, name: "gold chain", name_cap: "Gold chain", variable: "chaingold", integrity: 100, integrity_max: 100, fabric_strength: 500, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, type: ["normal"], gender: "m", femininity: -200, warmth: 0, cost: 11000, description: "Luxurious men's jewellery.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "gold_chain.png", accIcon: 0 }, {index: 18, name: "iron chain", name_cap: "Iron chain", variable: "chainiron", integrity: 100, integrity_max: 100, fabric_strength: 1000, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, type: ["normal"], gender: "m", femininity: -200, warmth: 0, cost: 300, description: "Men's jewellery.", shop: ["clothing", "adult"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "iron_chain.png", accIcon: 0 }, {index: 19, name: "holy stole", name_cap: "Holy stole", variable: "holystole", integrity: 100, integrity_max: 100, fabric_strength: 100, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], type: ["holy"], gender: "n", femininity: 0, warmth: 0, cost: 10000, description: "Ecclesiastical attire.", shop: ["forest"], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "holy_stole.png", accIcon: 0 }, {index: 20, name: "free use collar", name_cap: "Free use collar", variable: "freeuse", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 1000, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish"], gender: "n", warmth: 0, cost: 0, description: "Requires a special tool to unlock.", shop: [], collared: 1, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "collar.png", accIcon: 0 }, {index: 21, name: "collar with leash", name_cap: "Collar with leash", variable: "collarleash", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 1000, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish", "leash"], gender: "n", warmth: 0, cost: 20000, description: "Requires a special tool to unlock.", shop: [], collared: 1, accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "collar.png", accIcon: 0 }, {index: 22, name: "free use collar with leash", name_cap: "Free use collar with leash", variable: "freeuseleash", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 1000, word: "n", plural: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["fetish", "leash"], gender: "n", warmth: 0, cost: 0, description: "Requires a special tool to unlock.", shop: [], collared: 1, accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 1, location: 0, iconFile: "collar.png", accIcon: 0 }, {index: 23, name: "ivory necklace", name_cap: "Ivory necklace", variable: "ivorynecklace", integrity: 100, integrity_max: 100, fabric_strength: 100, reveal: 1, word: "a", plural: 0, colour: 0, colour_options: [], type: ["holy", "dark", "eerie", "esoteric"], gender: "n", femininity: 0, warmth: 0, cost: 200000, description: "A sacred relic, once worn by a high-ranking member of an ancient order. You can see your reflection in the gemstones. You look pale.", shop: [], collared: 0, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "ivory_necklace.png", accIcon: 0 }, {index: 24, name: "leather collar with leash", name_cap: "Leather collar with leash", variable: "collarleashfetish", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 1000, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish", "leash"], gender: "n", warmth: 0, cost: 24000, description: "Requires a special tool to unlock, but you own the key.", shop: ["adult"], collared: 1, accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "collar.png", accIcon: 0 }, {index: 25, name: "leather collar", name_cap: "Leather Collar", variable: "collarfetish", integrity: 400, integrity_max: 400, fabric_strength: 20, reveal: 1000, word: "n", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat: 0, type: ["fetish"], gender: "n", warmth: 0, cost: 20000, description: "Requires a special tool to unlock, but you own the key.", shop: ["adult"], collared: 1, accessory: 0, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "collar.png", accIcon: 0 }, {index: 26, name: "spiked collar with leash", name_cap: "Spiked collar with leash", variable: "spikedleash", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: [], colour_combat:"black", type: ["fetish", "costume", "eerie"], gender: "n", femininity: 0, warmth: 0, cost: 1500, description: "Menaces with spikes of steel.", shop: ["clothing"], collared: 1, accessory: 1, accessory_colour: 0, accessory_colour_options: [], cursed: 0, location: 0, iconFile: "spiked_collar.png", accIcon: 0 }, {index: 27, name: "short tie", name_cap: "Short tie", variable: "shorttie", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 100, word: "a", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, type: ["formal"], gender: "m", femininity: -100, warmth: 0, cost: 3000, description: "Smart and sophisticated.", shop: ["clothing", "adult"], collared: 0, accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, cursed: 0, location: 0, iconFile: "necktie.png", accIcon: "necktie_acc.png" } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.neck to []>> <<run setup.moddedClothes.neck.forEach( (x,i) => x.index = setup.clothes.neck.length + i )>> <<run setup.clothes.neck.push(...setup.moddedClothes.neck)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_over_head">> <<set setup.clothes.over_head to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1, word: "n", plural: 0, colour: 0, colour_options: [], type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "froggy hood", name_cap: "Froggy hood", variable: "froggy", integrity: 300, integrity_max: 300, fabric_strength: 20, reveal: 500, word: "a", plural: 0, hood: 1, colour: 0, colour_options: [], colour_combat: 0, type: ["rainproof"], set: "froggy", gender: "n", warmth: 65, cost: 0, description: "Protects you from rain.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], back_img: 0, cursed: 0, location: 0, outfitSecondary: ["over_upper","froggy coat"] } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.over_head to []>> <<run setup.moddedClothes.over_head.forEach( (x,i) => x.index = setup.clothes.over_head.length + i )>> <<run setup.clothes.over_head.push(...setup.moddedClothes.over_head)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_over_lower">> <<set setup.clothes.over_lower to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1000, rearresize: 0, word: "n", skirt: 0, skirt_down: 0, state: 0, state_base: 0, plural: 0, colour: 0, colour_options: [], exposed: 2, exposed_base: 2, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "froggy skirt", name_cap: "Froggy skirt", variable: "froggy", integrity: 300, integrity_max: 300, fabric_strength: 30, reveal: 100, rearresize: -4, word: "a", one_piece: 1, skirt: 1, skirt_down: 1, zip: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"green", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["rainproof"], set: "froggy", gender: "n", femininity: 0, warmth: 65, cost: 0, description: "Protects you from rain.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["over_upper","froggy coat"] }, {index: 2, name: "cream", name_cap: "Cream", variable: "cream", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 1000, rearresize: 0, word: "n", one_piece: 0, skirt: 0, skirt_down: 0, zip: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["naked"], set: "over_lower", gender: "n", femininity: 0, cost: 10000, description: "It won't last long.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], high_img: 0, back_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0 } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.over_lower to []>> <<run setup.moddedClothes.over_lower.forEach( (x,i) => x.index = setup.clothes.over_lower.length + i )>> <<run setup.clothes.over_lower.push(...setup.moddedClothes.over_lower)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> /* word - widget will output "a" if "a", and nothing if "n". eg - You are wearing <<a>> hat. You are wearing <<a>> shorts. plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplural>> wet. Your shorts <<upperplural>> wet.*/ <<widget "init_over_upper">> <<set setup.clothes.over_upper to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1000, bustresize: 0, word: "n", strap: 0, open: 0, zip: 0, state: 0, state_base: 0, state_top: 0, state_top_base: 0, plural: 0, colour: 0, colour_options: [], exposed: 2, exposed_base: 2, type: ["naked"], gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "froggy coat", name_cap: "Froggy coat", variable: "froggy", integrity: 300, integrity_max: 300, fabric_strength: 30, reveal: 100, bustresize: -4, word: "a", one_piece: 1, strap: 0, open: 0, zip: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"green", exposed: 0, exposed_base: 0, type: ["rainproof"], set: "froggy", gender: "n", femininity: 0, warmth: 70, cost: 4500, description: "Protects you from the rain.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitPrimary:{over_lower:"froggy skirt", over_head:"froggy hood"} }, {index: 2, name: "cream", name_cap: "Cream", variable: "cream", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 1000, bustresize: 0, word: "n", one_piece: 0, strap: 0, open: 1, zip: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 1, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["naked"], set: "over_upper", gender: "n", warmth: 5, cost: 0, description: "It won't last long.", shop: [], accessory: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: 0, accIcon: 0, } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.over_upper to []>> <<run setup.moddedClothes.over_upper.forEach( (x,i) => x.index = setup.clothes.over_upper.length + i )>> <<run setup.clothes.over_upper.push(...setup.moddedClothes.over_upper)>> <</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> <!-- List the currently saved outfits --> <<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>> <div class = "wardrobe-action"> <<link _outfitname>><<set $wear_outfit to _index>><<updatewardrobe "outfits">><</link>> | </div> <</capture>> <</for>> <</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">> <<default>> <<set _passage to "Bed">> <<set $wardrobe_location to "wardrobe">> <<set $storeLocation to "bed">> <</switch>> <<wardrobeSelection true>> <<if $alwaysSleepNaked isnot true>> <<for _index, $_outfit range $outfit>> <<if $_outfit.type.includes("sleep")>> <<if _passage is "Bed">> <<furnitureicon _bed.iconFile>> <<else>> <<bedicon>> <</if>> <<capture _index>> <<set _outfitname to $_outfit.name + ($_outfit.colors is false ? "" : " [C]")>> <<link [["Wear "+_outfitname+" and climb in bed"|_passage]]>><<set $wear_outfit to _index>><<saveTempHairStyle>><</link>> <</capture>> <br> <</if>> <</for>> <<else>> <<if $possessed>> <span class="red">The slime in your head is silent.</span> <br> <<else>> <span class="red">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">> <<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> <</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">> <<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, "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, "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, "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.values($worn[$_slot].outfitPrimary).some(item => item.cursed is 1)>> <</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_cap, "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])>> <<case "large towel">> <<generalUndress $_storeLocation "lower">> <<if $worn.lower.name is "naked">> <<set $worn.upper to clone(setup.clothes.upper[14])>> <<set $worn.lower to clone(setup.clothes.lower[15])>> <<set _equipSkip.lower to true>> <</if>> <<case "towel skirt">> <<set $worn.lower to clone(setup.clothes.lower[3])>> <</switch>> <</if>> <<else>> <<set _foundEquip to null>><<set _lastResort to null>> <<for $_equipIndex, $_wardrobeItem range _selectedWardrobe[$_slot]>> <<if $_incomingItemName isnot $_wardrobeItem.name>> <<continue>> <</if>> /*Check for saved colors in clothing set*/ <<set $_outfitColors to $outfit[$wear_outfit].colors>> <<if $_outfitColors>> <<if $_outfitColors[$_slot][0] isnot $_wardrobeItem.colour or $_outfitColors[$_slot][1] isnot $_wardrobeItem.accessory_colour>> <<continue>> <</if>> <<set $_outfitCustomColors to $_outfitColors[$_slot+"custom"] || [undefined, undefined]>> <<if $_wardrobeItem.colour is "custom" 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 $_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)>> <<if $corruption_slime gte 80 and currentSkillValue('willpower') lt 800 and $_wardrobeItem.reveal lt 500 and !$_wardrobeItem.type.includesAny("school", "event")>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "corruption_slime_deny"}>> <<break>> <</if>> <</if>> /*Finds the least damaged outfit if the current clothing item is the main part and sets it as a last resort incase an undamaged one isnt 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)>> <</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 $_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_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_colourCustom is undefined or $_foundPrimary.accessory_colourCustom isnot $_possiblePiece.accessory_colourCustom)>> <<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*/ <<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>> <<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 $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.values(_notEquipped).forEach(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 "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 (_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; } })>> <<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>> <<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]>> <<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].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>> <</for>> <<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 (!$multipleWardrobes or ($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 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 (!$multipleWardrobes or ($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>> <<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; } } }).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>> <<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>> <</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>> <</listbox>> <</if>> <br> <</if>> <</if>> <</for>> <</capture>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_under_upper">> <<set setup.clothes.under_upper to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1000, bustresize: 0, word: "n", one_piece: 0, strap: 0, open: 0, state: 0, state_base: 0, state_top: 0, state_top_base: 0, plural: 0, colour: 0, colour_options: [], exposed: 1, exposed_base: 1, type: ["naked"], set: "under_upper", gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "bikini top", name_cap: "Bikini top", variable: "bikini", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 900, bustresize: 0, word: "n", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "tanLines"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 2000, description: "Revealing swimwear.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "bikini_top.png", accIcon: 0 }, {index: 2, name: "school swimsuit", name_cap: "School swimsuit", variable: "schoolswimsuit", integrity: 40, integrity_max: 40, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "school", "tanLines"], set: "school swimsuit", gender: "f", femininity: 300, warmth: 20, cost: 2500, description: "Proper school swimwear.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "school_swimsuit.png", accIcon: 0, outfitPrimary:{under_lower:"school swimsuit bottom"} }, {index: 3, name: "leotard", name_cap: "Leotard", variable: "leotard", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"black", exposed: 0, exposed_base: 0, type: ["dance", "athletic"], set: "leotard", gender: "n", warmth: 20, cost: 3000, description: "Form fitting.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "leotard.png", accIcon: 0, outfitPrimary:{under_lower:"leotard bottom"} }, {index: 4, name: "unitard", name_cap: "Unitard", variable: "unitard", oldVariable: [{name:"full body leotard", variable:"leotardfull"}], integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"black", exposed: 0, exposed_base: 0, type: ["dance", "athletic"], set: "unitard", gender: "n", warmth: 25, cost: 3500, description: "Form fitting. Covers your legs.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "unitard.png", accIcon: 0, outfitPrimary:{under_lower:"unitard bottom"} }, {index: 5, name: "skimpy leotard", name_cap: "Skimpy leotard", variable: "leotardskimpy", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"black", exposed: 0, exposed_base: 0, type: ["dance", "athletic"], set: "skimpy leotard", gender: "n", warmth: 15, cost: 2500, description: "Form fitting. Shows off your thighs.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "skimpy_leotard.png", accIcon: 0, outfitPrimary:{under_lower:"skimpy leotard bottom"} }, {index: 6, name: "foreign school swimsuit", name_cap: "Foreign school swimsuit", variable: "schoolswimsuitj", integrity: 40, integrity_max: 40, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "school", "tanLines"], set: "foreign school swimsuit", gender: "f", femininity: 300, warmth: 20, cost: 2500, description: "Official uniform swimsuit for the local school, but in a style popular in a foreign country.", shop: ["clothing", "school"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "foreign_school_swimsuit.png", accIcon: 0, outfitPrimary:{under_lower:"foreign school swimsuit bottom"} }, {index: 7, name: "swimsuit", name_cap: "Swimsuit", variable: "swimsuit", integrity: 60, integrity_max: 60, fabric_strength: 30, reveal: 700, bustresize: 0, word: "a", one_piece: 1, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim"], set: "swimsuit", gender: "f", femininity: 300, warmth: 20, cost: 7500, description: "Sexy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "swimsuit.png", accIcon: 0, outfitPrimary:{under_lower:"swimsuit bottom"} }, {index: 8, name: "bunny leotard", name_cap: "Bunny leotard", variable: "leotardbunny", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 800, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["costume", "serving", "dance"], set: "leotardbunny", gender: "f", femininity: 300, warmth: 25, cost: 5000, description: "Waitress attire. Tougher than it looks. Part of a bunny outfit, and has a fluffy white tail on the back to prove it.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "bunny_leotard.png", accIcon: 0, outfitPrimary:{under_lower:"bunny leotard bottom"} }, {index: 9, name: "catgirl bra", name_cap: "Catgirl bra", variable: "catgirlbra", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "serving"], set: "under_upper", gender: "f", femininity: 300, warmth: 5, cost: 3000, description: "For when a regular bra just isn't cute enough.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "catgirl_bra.png", accIcon: 0, mainImage: 0, }, {index: 10, name: "lace bra", name_cap: "Lace bra", variable: "lacebra", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "under_upper", gender: "f", femininity: 300, warmth: 5, cost: 1000, description: "Hints at what lies beneath.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "lace_bra.png", accIcon: 0 }, {index: 11, name: "microkini top", name_cap: "Microkini top", variable: "microkini", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 900, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim"], set: "under_upper", gender: "f", femininity: 300, warmth: 2, cost: 2400, description: "Skirts the borders of decency.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "microkini_top.png", accIcon: 0 }, {index: 12, name: "plain bra", name_cap: "Plain bra", variable: "plainbra", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 500, description: "No-nonsense.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "plain_bra.png", accIcon: 0 }, {index: 13, name: "sports bra", name_cap: "Sports bra", variable: "sportsbra", integrity: 150, integrity_max: 150, fabric_strength: 30, reveal: 300, bustresize: -1, word: "a", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "athletic"], set: "under_upper", gender: "f", femininity: 300, warmth: 15, cost: 2000, description: "Supportive.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "sports_bra.png", accIcon: 0 }, {index: 14, name: "mesh shirt", name_cap: "Mesh shirt", variable: "mesh", integrity: 50, integrity_max: 50, fabric_strength: 30, reveal: 900, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["fetish"], set: "under_upper", gender: "n", warmth: 0, cost: 3500, description: "Doesn't conceal a thing.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "mesh_shirt.png", accIcon: 0 }, {index: 15, name: "corset", name_cap: "Corset", variable: "corset", integrity: 180, integrity_max: 180, fabric_strength: 30, reveal: 1000, bustresize: 2, word: "a", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "waist", state_top_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, type: ["fetish", "naked", "pushup", "constricting"], set: "under_upper", gender: "n", warmth: 20, cost: 2500, description: "Constricts your tummy and emphasises your chest.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "corset.png", accIcon: 0 }, {index: 16, name: "striped bra", name_cap: "Striped bra", variable: "stripedbra", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "under_upper", gender: "f", femininity: 300, warmth: 5, cost: 600, description: "Brimming with personality.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 0, breast_img: 1, breast_acc_img: 1, cursed: 0, location: 0, iconFile: "striped_bra.png", accIcon: "striped_bra_acc.png" }, {index: 17, name: "chest wrap", name_cap: "Chest wrap", variable: "chestwrap", integrity: 200, integrity_max: 200, fabric_strength: 15, reveal: 300, bustresize: -5, word: "a", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat: 0, exposed: 0, exposed_base: 0, type: ["chest_bind", "constricting"], set: "under_upper", gender: "n", femininity: 0, warmth: 35, cost: 600, description: "Flattens and protects.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "chest_wrap.png", accIcon: 0 }, {index: 18, name: "arm sleeves", name_cap: "Arm sleeves", variable: "armsleeves", integrity: 80, integrity_max: 80, fabric_strength: 15, reveal: 1000, bustresize: 0, word: "n", one_piece: 0, strap: 0, open: 1, state: "chest", state_base: "chest", state_top: "neck", state_top_base: "neck", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, type: ["naked"], gender: "n", femininity: 0, warmth: 10, cost: 1500, description: "Protect your arms.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "arm_sleeves.png", accIcon: 0 }, {index: 19, name: "classic bikini top", name_cap: "Classic bikini top", variable: "classicbikini", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 900, bustresize: 0, word: "n", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "tanLines"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 2000, description: "Revealing swimwear. Not kind to the well-endowed.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "classic_bikini_top.png", accIcon: 0 }, {index: 20, name: "classic school swimsuit", name_cap: "Classic school swimsuit", variable: "classicschoolswimsuit", integrity: 40, integrity_max: 40, fabric_strength: 30, reveal: 600, bustresize: 0, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "school", "tanLines"], set: "classic school swimsuit", gender: "f", femininity: 300, warmth: 20, cost: 2500, description: "Proper school swimwear. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "classic_school_swimsuit.png", accIcon: 0, outfitPrimary:{under_lower:"classic school swimsuit bottom"} }, {index: 21, name: "swim shirt", name_cap: "Swim shirt", variable: "swimshirt", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: -5, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "school", "chest_bind", "constricting"], set: "under_upper", gender: "m", femininity: -100, warmth: 30, cost: 6000, description: "Protects you from the sun while swimming.", shop: ["clothing", "school"], accessory: 1, accessory_integrity_img: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "swim_shirt.png", accIcon: 0 }, {index: 22, name: "vest", name_cap: "Vest", variable: "vest", integrity: 150, integrity_max: 150, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "under_upper", gender: "m", femininity: -200, warmth: 30, cost: 1200, description: "No-nonsense.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "vest.png", accIcon: 0 }, {index: 23, name: "strapless bra", name_cap: "Strapless bra", variable: "straplessbra", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 1000, description: "Frees your shoulders.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "strapless_bra.png", accIcon: 0 }, {index: 24, name: "school swim top", name_cap: "School swim top", variable: "schoolswimtop", integrity: 50, integrity_max: 50, fabric_strength: 30, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "school"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 3000, description: "Imitates a foreign school uniform.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "school_swim_top.png", accIcon: 0 }, {index: 25, name: "tape", name_cap: "Tape", variable: "tape", integrity: 10, integrity_max: 10, fabric_strength: 30, reveal: 990, bustresize: 0, word: "n", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, type: ["costume", "sticky", "naked"], set: "under_upper", gender: "f", femininity: 300, warmth: 0, cost: 2000, description: "Barely there.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "tape.png", accIcon: 0 }, {index: 26, name: "cow bra", name_cap: "Cow bra", variable: "cow", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 500, bustresize: 0, word: "n", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], exposed: 0, exposed_base: 0, type: ["costume"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 2000, description: "Supportive.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "cow_bra.png", accIcon: 0 }, {index: 27, name: "chest binder", name_cap: "Chest Binder", variable: "chestbinder", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 100, bustresize: -7, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["chest_bind", "constricting"], set: "under_upper", gender: "n", femininity: 0, warmth: 35, cost: 6000, description: "Flattens and protects.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "chest_binder.png", accIcon: 0 }, {index: 28, name: "undershirt", name_cap: "Undershirt", variable: "undershirt", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "under_upper", gender: "m", femininity: -100, warmth: 40, cost: 2500, description: "Warm and close-fitting.", shop: ["clothing"], accessory: 1, accessory_integrity_img: 1, accessory_colour: 1, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "undershirt.png", accIcon: "undershirt_acc.png" }, {index: 29, name: "see-through swimsuit", name_cap: "See-through swimsuit", variable: "seethroughswimsuit", integrity: 40, integrity_max: 40, fabric_strength: 30, reveal: 800, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue steel", "grey", "light pink", "light blue", "light green", "red", "pink", "purple", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "tanLines"], set: "see-through swimsuit", gender: "f", femininity: 300, warmth: 10, cost: 2500, description: "Frames your torso.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "see-through_swimsuit.png", accIcon: 0, outfitPrimary:{under_lower:"see-through swim bottoms"} }, {index: 30, name: "push up bra", name_cap: "Push up bra", variable: "pushupbra", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 600, bustresize: 2, word: "a", one_piece: 0, strap: 1, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "pushup"], set: "under_upper", gender: "f", femininity: 300, warmth: 10, cost: 2000, description: "Makes your breasts appear bigger.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "pushup_bra.png", accIcon: 0 }, {index: 31, name: "shibari ropes", name_cap: "Shibari ropes", variable: "shibari", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "waist", state_top_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, type: ["fetish","naked"], set: "shibari", gender: "n", warmth: 15, cost: 10000, description: "For those into rope play.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "shibari_ropes.png", accIcon: 0, outfitPrimary: {under_lower: "shibari ropes bottom"} } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.under_upper to []>> <<run setup.moddedClothes.under_upper.forEach( (x,i) => x.index = setup.clothes.under_upper.length + i )>> <<run setup.clothes.under_upper.push(...setup.moddedClothes.under_upper)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> <<widget "init_under_lower">> <<set setup.clothes.under_lower to [ {index: 0, name: "naked", name_cap: "Naked", name_simple: "naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1000, rearresize: 0, word: "n", one_piece: 0, state: 0, state_base: 0, plural: 0, colour: 0, colour_options: [], exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["naked"], anal_shield: 0, set: "under_lower", gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0 }, {index: 1, name: "plain panties", name_cap: "Plain panties", name_simple: "panties", variable: "plainpanties", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 400, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 5, cost: 500, description: "No-nonsense.", shop: ["clothing", "school", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "plain_panties.png", accIcon: 0 }, {index: 2, name: "bikini bottoms", name_cap: "Bikini bottoms", name_simple: "bikini bottoms", variable: "bikini", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 700, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "tanLines"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 5, cost: 2000, description: "Revealing swimwear.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "bikini_bottoms.png", accIcon: 0 }, {index: 3, name: "lace panties", name_cap: "Lace panties", name_simple: "panties", variable: "lacepanties", integrity: 60, integrity_max: 60, fabric_strength: 15, reveal: 600, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 5, cost: 1500, description: "Fashionable and sexy.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "lace_panties.png", accIcon: 0 }, {index: 4, name: "briefs", name_cap: "Briefs", name_simple: "undies", variable: "briefs", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 400, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "m", femininity: -300, warmth: 5, cost: 500, description: "Snug.", shop: ["clothing", "school"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "briefs.png", accIcon: 0 }, {index: 5, name: "chastity belt", name_cap: "Chastity belt", name_simple: "chastity belt", variable: "chastitybelt", integrity: 2000, integrity_max: 2000, fabric_strength: 15, reveal: 1000, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["chastity", "swim", "school"], anal_shield: 0, set: "under_lower", gender: "n", femininity: 500, warmth: 0, cost: 0, description: "Restrictive.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 1, location: 0, iconFile: 0, accIcon: 0 }, {index: 6, name: "school swimsuit bottom", name_cap: "School swimsuit bottom", name_simple: "swimsuit", variable: "schoolswimsuit", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 600, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "school", "tanLines"], anal_shield: 0, set: "school swimsuit", warmth: 5, gender: "f", femininity: 300, cost: 0, description: "Proper school swimwear.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","school swimsuit"] }, {index: 7, name: "school swim shorts", name_cap: "School swim shorts", name_simple: "swim shorts", variable: "schoolswimshorts", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 600, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["swim", "school", "tanLines"], anal_shield: 0, set: "under_lower", gender: "m", femininity: -300, warmth: 20, cost: 2000, description: "Proper school swimwear.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "school_swim_shorts.png", accIcon: 0 }, {index: 8, name: "leotard bottom", name_cap: "Leotard bottom", name_simple: "leotard", variable: "leotard", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 600, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["dance", "athletic"], anal_shield: 0, set: "leotard", gender: "n", warmth: 20, cost: 0, description: "Form fitting.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","leotard"] }, {index: 9, name: "unitard bottom", name_cap: "Unitard bottom", name_simple: "leotard", variable: "unitard", oldVariable: [{name:"full body leotard bottom", variable:"leotardfull"}], integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 400, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["dance", "athletic"], anal_shield: 0, set: "unitard", gender: "n", warmth: 40, cost: 0, description: "Form fitting. Covers your legs.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","unitard"] }, {index: 10, name: "skimpy leotard bottom", name_cap: "Skimpy leotard bottom", name_simple: "leotard", variable: "leotardskimpy", integrity: 80, integrity_max: 80, fabric_strength: 20, reveal: 600, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["dance", "athletic"], anal_shield: 0, set: "skimpy leotard", gender: "n", warmth: 10, cost: 0, description: "Form fitting. Shows off your thighs.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","skimpy leotard"] }, {index: 11, name: "foreign school swimsuit bottom", name_cap: "Foreign school swimsuit bottom", name_simple: "swimsuit", variable: "schoolswimsuitj", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 600, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "school", "tanLines"], anal_shield: 0, set: "foreign school swimsuit", gender: "f", femininity: 300, warmth: 5, cost: 0, description: "Official uniform swimsuit for the local school, but in a style popular in a foreign country.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","foreign school swimsuit"] }, {index: 12, name: "swimsuit bottom", name_cap: "Swimsuit bottom", name_simple: "swimsuit", variable: "swimsuit", integrity: 60, integrity_max: 60, fabric_strength: 20, reveal: 700, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim"], anal_shield: 0, set: "swimsuit", gender: "f", femininity: 300, warmth: 5, cost: 0, description: "Sexy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","swimsuit"] }, {index: 13, name: "bunny leotard bottom", name_cap: "Bunny leotard bottom", name_simple: "leotard", variable: "leotardbunny", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 800, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "serving", "dance"], anal_shield: 0, set: "leotardbunny", gender: "f", femininity: 300, warmth: 5, cost: 0, description: "Waitress attire. Tougher than it looks. Part of a bunny outfit, and has a tufty white tail on the back to prove it.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","bunny leotard"] }, {index: 14, name: "boyshorts", name_cap: "Boyshorts", name_simple: "undies", variable: "boyshorts", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 300, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 20, cost: 1000, description: "Cute and comfy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "boyshorts.png", accIcon: 0 }, {index: 15, name: "catgirl panties", name_cap: "Catgirl panties", name_simple: "panties", variable: "catgirlpanties", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 500, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume", "serving"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 5, cost: 3000, description: "For when mundane panties aren't cute enough.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "catgirl_panties.png", accIcon: 0 }, {index: 16, name: "G-string", name_cap: "G-string", name_simple: "g-string", variable: "gstring", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 900, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "n", warmth: 2, cost: 1500, description: "Protects the essentials. Just.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "g-string.png", accIcon: 0 }, {index: 17, name: "crotchless panties", name_cap: "Crotchless panties", name_simple: "panties", variable: "crotchlesspanties", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 900, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["fetish", "naked"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 3, cost: 1200, description: "Open access.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "crotchless_panties.png", accIcon: 0 }, {index: 18, name: "microkini bottom", name_cap: "Microkini bottom", name_simple: "swimsuit", variable: "microkini", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 900, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 2, cost: 2400, description: "Skirts the borders of decency.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "microkini_bottom.png", accIcon: 0 }, {index: 19, name: "speedo", name_cap: "Speedo", name_simple: "speedo", variable: "speedo", integrity: 50, integrity_max: 50, fabric_strength: 20, reveal: 700, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim"], anal_shield: 0, set: "under_lower", gender: "m", femininity: -300, warmth: 5, cost: 2400, description: "Show what you've got. Without getting arrested.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "speedo.png", accIcon: 0 }, {index: 20, name: "striped panties", name_cap: "Striped panties", name_simple: "panties", variable: "stripedpanties", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 400, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 5, cost: 600, description: "Brimming with personality.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "striped_panties.png", accIcon: "striped_panties_acc.png" }, {index: 21, name: "loincloth", name_cap: "Loincloth", name_simple: "loincloth", variable: "loincloth", integrity: 80, integrity_max: 80, fabric_strength: 10, reveal: 800, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, no_aside: 1, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "n", warmth: 10, cost: 100, description: "Revealing, unprotective, sturdy, and savage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "loincloth.png", accIcon: 0 }, {index: 22, name: "thong", name_cap: "Thong", name_simple: "thong", variable: "thong", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 700, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 3, cost: 1500, description: "Protects the essentials. Just.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "thong.png", accIcon: 0 }, {index: 23, name: "classic plain panties", name_cap: "Classic plain panties", name_simple: "panties", variable: "classicplainpanties", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 400, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 10, cost: 500, description: "No-nonsense. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "classic_plain_panties.png", accIcon: 0 }, {index: 24, name: "classic bikini bottoms", name_cap: "Classic bikini bottoms", name_simple: "bikini bottoms", variable: "classicbikini", integrity: 20, integrity_max: 20, fabric_strength: 20, reveal: 700, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "tanLines"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 10, cost: 2000, description: "Revealing swimwear. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "classic_bikini_bottoms.png", accIcon: 0 }, {index: 25, name: "classic lace panties", name_cap: "Classic lace panties", name_simple: "panties", variable: "classiclacepanties", integrity: 60, integrity_max: 60, fabric_strength: 15, reveal: 600, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "f", femininity: 300, warmth: 8, cost: 1500, description: "Fashionable and sexy. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "classic_lace_panties.png", accIcon: 0 }, {index: 26, name: "classic briefs", name_cap: "Classic briefs", name_simple: "undies", variable: "classicbriefs", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 400, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["normal"], anal_shield: 0, set: "under_lower", gender: "m", femininity: -300, warmth: 10, cost: 500, description: "Snug and vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "classic_briefs.png", accIcon: 0 }, {index: 27, name: "classic school swimsuit bottom", name_cap: "Classic school swimsuit bottom", name_simple: "swimsuit", variable: "classicschoolswimsuit", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 600, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "school", "tanLines"], anal_shield: 0, set: "classic school swimsuit", warmth: 10, gender: "f", femininity: 300, cost: 0, description: "Proper school swimwear. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","classic school swimsuit"] }, {index: 28, name: "jockstrap", name_cap: "Jockstrap", name_simple: "jockstrap", variable: "jockstrap", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 700, rearresize: 0, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 1, anus_exposed_base: 1, type: ["normal"], anal_shield: 0, set: "under_lower", warmth: 10, gender: "m", femininity: -200, cost: 3500, description: "Not too tight.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "jockstrap.png", accIcon: "jockstrap_acc.png" }, {index: 29, name: "boxers", name_cap: "Boxers", name_simple: "undies", variable: "boxers", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 350, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["normal"], anal_shield: 0, set: "under_lower", warmth: 10, gender: "m", femininity: -200, cost: 800, description: "Gives room to breathe.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "boxers.png", accIcon: 0 }, {index: 30, name: "long johns", name_cap: "Long johns", name_simple: "long johns", variable: "longjohns", integrity: 150, integrity_max: 150, fabric_strength: 20, reveal: 200, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 1, type: ["normal"], anal_shield: 0, set: "under_lower", warmth: 30, gender: "m", femininity: -100, cost: 2500, description: "Helps keep the chill off.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "long_johns.png", accIcon: 0 }, {index: 31, name: "school swim bottoms", name_cap: "School swim bottoms", name_simple: "swimsuit bottoms", variable: "schoolswimbottoms", integrity: 70, integrity_max: 70, fabric_strength: 20, reveal: 700, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["swim", "school"], anal_shield: 0, set: "under_lower", warmth: 10, gender: "f", femininity: 300, cost: 3000, description: "Surprisingly scanty for sanctioned uniform.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "school_swim_bottoms.png", accIcon: 0 }, {index: 32, name: "cow panties", name_cap: "Cow panties", name_simple: "panties", variable: "cow", integrity: 100, integrity_max: 100, fabric_strength: 15, reveal: 500, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: [], exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, type: ["costume"], anal_shield: 0, set: "under_lower", gender: "n", femininity: 0, warmth: 5, cost: 2000, description: "Cute cow print.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: "cow_panties.png", accIcon: 0 }, {index: 33, name:"strap-on", name_cap:"Strap-on", name_simple: "strap-on", variable: "straponlower", integrity: 2000, integrity_max: 2000, fabric_strength: 30, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "white", "yellow", "tan"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["strap-on","fetish","naked"], anal_shield: 0, set: "under_lower", gender: "f", warmth: 0, cost: 8000, description: "Worn on your hips. Used for penetrative sex.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, hideUnderLower: ["leotard bottom","unitard bottom"], iconFile: "strap-on.png", accIcon: 0, size: 2, }, {index: 34, name: "strap-on horse cock", name_cap: "Strap-on horse cock", name_simple: "strap-on", variable: "straponhorse", integrity: 2000, integrity_max: 2000, fabric_strength: 30, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "white", "yellow", "tan"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["strap-on","fetish","naked"], anal_shield: 0, set: "under_lower", gender: "f", warmth: 0, cost: 8000, description: "Novelty equine phallus. Worn on your hips. Used for penetrative sex.", shop: [], accessory: 1, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, hideUnderLower: ["leotard bottom","unitard bottom"], iconFile: "strap-on_horse_cock.png", accIcon: 0, size: 4, }, {index: 35, name: "strap-on knotted cock", name_cap: "Strap-on knotted cock", name_simple: "strap-on", variable: "straponknotted", integrity: 2000, integrity_max: 2000, fabric_strength: 30, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "white", "yellow", "tan"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["strap-on","fetish","naked"], anal_shield: 0, set: "under_lower", gender: "f", warmth: 0, cost: 8000, description: "Novelty canine phallus. Worn on your hips. Used for penetrative sex.", shop: [], accessory: 1, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, hideUnderLower: ["leotard bottom","unitard bottom"], iconFile: "strap-on_knotted_cock.png", accIcon: 0, size: 3, }, {index: 36, name: "strap-on studded cock", name_cap: "Strap-on studded cock", name_simple: "strap-on", variable: "straponstudded", integrity: 2000, integrity_max: 2000, fabric_strength: 30, reveal: 1000, word: "a", one_piece: 0, state: "waist", state_base: "waist", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "white", "yellow", "tan"], colour_sidebar: 1, colour_combat: 0, exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["strap-on","fetish","naked"], anal_shield: 0, set: "under_lower", gender: "f", warmth: 0, cost: 8000, description: "Worn on your hips. Used for penetrative sex.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, hideUnderLower: ["leotard bottom","unitard bottom"], iconFile: "strap-on.png", accIcon: 0, size: 3, }, {index: 37, name: "see-through swim bottoms", name_cap: "See-through swim bottoms", name_simple: "swimsuit bottoms", variable: "seethroughswimsuit", integrity: 60, integrity_max: 60, fabric_strength: 30, reveal: 800, rearresize: 0, word: "n", one_piece: 0, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue steel", "grey", "light pink", "light blue", "light green", "red", "pink", "purple", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, vagina_exposed: 0, vagina_exposed_base: 0, anus_exposed: 0, anus_exposed_base: 0, no_aside: 0, type: ["swim"], anal_shield: 0, set: "see-through swimsuit", warmth: 5, gender: "f", femininity: 300, cost: 3000, description: "Frames your torso.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 0, high_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, outfitSecondary: ["under_upper","see-through swimsuit"] }, {index: 38, name: "shibari ropes bottom", name_cap: "Shibari ropes bottom", name_simple: "bondage ropes", variable: "shibari", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 600, rearresize: 0, word: "a", one_piece: 1, state: "waist", state_base: "waist", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat:"black", exposed: 1, exposed_base: 1, vagina_exposed: 1, vagina_exposed_base: 1, anus_exposed: 1, anus_exposed_base: 1, type: ["fetish", "naked"], anal_shield: 0, set: "shibari", gender: "n", warmth: 10, cost: 0, description: "For those into rope play.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], penis_img: 1, high_img: 0, cursed: 0, location: 0, iconFile: "shibari_ropes.png", accIcon: 0, outfitSecondary: ["under_upper","shibari ropes"] } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.under_lower to []>> <<run setup.moddedClothes.under_lower.forEach( (x,i) => x.index = setup.clothes.under_lower.length + i )>> <<run setup.clothes.under_lower.push(...setup.moddedClothes.under_lower)>> <</widget>>
<!-- For any item that has a colour_combat tag, set it to 0 if that item ever gets its own combat sprites. --> /* word - widget will output "a" if "a", and nothing if "n". eg - You are wearing <<a>> hat. You are wearing <<a>> shorts. plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplural>> wet. Your shorts <<upperplural>> wet.*/ <<widget "init_upper">> <<set setup.clothes.upper to [ {index: 0, name: "naked", name_cap: "Naked", variable: "naked", integrity: 0, integrity_max: 0, fabric_strength: 0, reveal: 1000, bustresize: 0, word: "n", one_piece: 0, strap: 0, open: 0, state: 0, state_base: 0, state_top: 0, state_top_base: 0, plural: 0, colour: 0, colour_options: [], exposed: 2, exposed_base: 2, type: ["naked"], set: "upper", gender: "n", warmth: 0, cost: 0, description: "naked", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, mainImage:0, notuck: 1, pregType: 0 }, {index: 1, name: "sundress", name_cap: "Sundress", variable: "sundress", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "sundress", gender: "f", femininity: 200, warmth: 30, cost: 1500, description: "Great for frolicking.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "sundress.png", accIcon: 0, outfitPrimary:{lower:"sundress skirt"}, notuck: 0, pregType: 0 }, {index: 2, name: "pyjama shirt", name_cap: "Pyjama shirt", variable: "pjs", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["sleep"], set: "upper", gender: "n", warmth: 40, cost: 1000, description: "Keeps you warm at night.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "pyjama_shirt.png", accIcon: 0, notuck: 0, pregType: "split" }, {index: 3, name: "towel top", name_cap: "Towel top", variable: "towel", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 800, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "n", warmth: 10, cost: 0, description: "Not very secure.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, cursed: 0, location: 0, iconFile: "towel.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 4, name: "t-shirt", name_cap: "T-shirt", variable: "tshirt", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 40, cost: 1000, description: "Cool and casual.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "t-shirt.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 5, name: "school shirt", name_cap: "School shirt", variable: "schoolshirt", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["school"], set: "upper", gender: "n", warmth: 40, cost: 2000, description: "The proper shirt for school.", shop: ["clothing", "school", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "light blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_combat: "light blue", accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "school_shirt.png", accIcon: 0, notuck: 0, pregType: "split" }, {index: 6, name: "plant top", name_cap: "Plant top", variable: "plant", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 900, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"green", exposed: 1, exposed_base: 1, type: ["swim", "bellyShow"], set: "upper", gender: "n", warmth: 0, cost: 0, description: "Plants tied loose together.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: 0, accIcon: 0, notuck: 1, pregType: 0 }, {index: 7, name: "evening gown", name_cap: "Evening gown", variable: "eveninggown", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "evening gown", gender: "f", femininity: 200, warmth: 40, cost: 12000, description: "For formal nights out.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "evening_gown.png", accIcon: 0, outfitPrimary:{lower:"evening gown skirt"}, notuck: 0, pregType: 0 }, {index: 8, name: "tank top", name_cap: "Tank top", variable: "tanktop", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 20, cost: 2500, description: "Helps stay cool.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "tank_top.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 9, name: "ballgown", name_cap: "Ballgown", variable: "ballgown", integrity: 80, integrity_max: 80, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "ballgown", gender: "f", femininity: 200, warmth: 40, cost: 42000, description: "Extravagant.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "ballgown.png", accIcon: 0, outfitPrimary:{lower:"ballgown skirt"}, notuck: 0, pregType: 0 }, {index: 10, name: "kimono", name_cap: "Kimono", variable: "kimono", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "kimono", gender: "n", warmth: 35, cost: 14000, description: "Exotic.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "kimono.png", accIcon: 0, outfitPrimary:{lower:"kimono skirt"}, notuck: 0, pregType: 0 }, {index: 11, name: "mini kimono", name_cap: "Mini kimono", variable: "kimonomini", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "kimonomini", gender: "n", warmth: 35, cost: 12000, description: "Exotic. Shows off your legs.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "mini_kimono.png", accIcon: 0, outfitPrimary:{lower:"mini kimono skirt"}, notuck: 0, pregType: 0 }, {index: 12, name: "maid dress", name_cap: "Maid dress", variable: "maid", integrity: 110, integrity_max: 110, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["maid", "costume", "serving", "bellyHide"], set: "maid", gender: "f", femininity: 200, warmth: 40, cost: 2500, description: "For looking cute while cleaning.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "maid_dress.png", accIcon: 0, outfitPrimary:{lower:"maid skirt"}, notuck: 0, pregType: 0 }, {index: 13, name: "nun's habit", name_cap: "Nun's habit", variable: "nun", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["holy", "costume", "bellyHide"], set: "nun", gender: "f", femininity: 200, warmth: 50, cost: 6000, description: "Holy outfit for those sworn to purity.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "nuns_habit.png", accIcon: 0, outfitPrimary:{lower:"nun's habit skirt"}, notuck: 0, pregType: 0 }, {index: 14, name: "large towel", name_cap: "Large towel", variable: "towellarge", integrity: 10, integrity_max: 10, fabric_strength: 20, reveal: 800, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "towellarge", gender: "n", warmth: 15, cost: 0, description: "Not very secure.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "towel.png", accIcon: 0, outfitPrimary:{lower:"large towel bottom"}, notuck: 0, pregType: 0 }, {index: 15, name: "tuxedo jacket", name_cap: "Tuxedo jacket", variable: "tuxedo", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["formal"], set: "upper", gender: "m", femininity: -200, warmth: 40, cost: 22000, description: "Smart and sophisticated.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "tuxedo_jacket.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 16, name: "blouse", name_cap: "Blouse", variable: "blouse", integrity: 80, integrity_max: 80, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "f", femininity: 200, warmth: 30, cost: 1000, description: "Loose and comfortable.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "blouse.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 17, name: "babydoll", name_cap: "Babydoll", variable: "babydoll", integrity: 40, integrity_max: 40, fabric_strength: 20, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["sleep", "bellyShow", "constricting"], set: "upper", gender: "f", femininity: 200, warmth: 10, cost: 1500, description: "Loose and comfortable.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "babydoll.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 18, name: "babydoll lingerie", name_cap: "Babydoll lingerie", variable: "babydolllingerie", integrity: 30, integrity_max: 30, fabric_strength: 20, reveal: 900, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 1, exposed_base: 1, type: ["sleep", "bellyShow"], set: "upper", gender: "f", femininity: 300, warmth: 10, cost: 1500, description: "Loose, comfortable, and transparent.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "babydoll_lingerie.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 19, name: "crop top", name_cap: "Crop top", variable: "croptop", integrity: 90, integrity_max: 90, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "f", femininity: 200, warmth: 20, cost: 1500, description: "Show off your tummy.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "crop_top.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 20, name: "serafuku", name_cap: "Serafuku", variable: "serafuku", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["school"], set: "upper", gender: "f", femininity: 200, warmth: 40, cost: 2500, description: "Girl's school shirt design from a foreign country. Accepted by the head of the local school.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "serafuku.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 21, name: "tube top", name_cap: "Tube top", variable: "tubetop", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "f", femininity: 200, warmth: 20, cost: 2000, description: "Not too tight.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "tube_top.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 22, name: "turtleneck", name_cap: "Turtleneck", variable: "turtleneck", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "n", warmth: 60, cost: 4000, description: "Keeps your shoulders warm and your waist displayed.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "turtleneck.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 23, name: "sweater", name_cap: "Sweater", variable: "sweater", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 60, cost: 6000, description: "Snug and comfy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "sweater.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 24, name: "oversized sweater", name_cap: "Oversized sweater", variable: "sweaterlarge", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 500, bustresize: -1, word: "an", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "sweaterlarge", gender: "n", warmth: 60, cost: 7000, description: "Snug, comfy and long enough to cover your unmentionables. Just.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "oversized_sweater.png", accIcon: 0, outfitPrimary:{lower:"oversized sweater bottom"}, notuck: 0, pregType: "min" }, {index: 25, name: "witch dress", name_cap: "Witch dress", variable: "witch", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "event"], set: "witch", gender: "f", femininity: 200, warmth: 40, cost: 4500, description: "Popular Halloween costume. Coloured with forest dyes.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "witch_dress.png", accIcon: "witch_dress_acc.png", outfitPrimary:{lower:"witch skirt"}, notuck: 0, pregType: 0 }, {index: 26, name: "vampire jacket", name_cap: "Vampire jacket", variable: "vampire", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "event", "bellyShow"], set: "upper", gender: "m", femininity: -200, warmth: 30, cost: 4500, description: "The label says it's second-hand. Smells like garlic.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "vampire_jacket.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 27, name: "slut shirt", name_cap: "Slut shirt", variable: "slut", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 800, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "f", femininity: 200, warmth: 40, cost: 7500, description: "SLUT is printed on the front. Sure to attract attention.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, accessory_integrity_img: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "slut_shirt.png", accIcon: "slut_shirt_acc.png", notuck: 0, pregType: 0 }, {index: 28, name: "girl's sweater", name_cap: "Girl's sweater", variable: "pinksweater", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"pink", exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "f", femininity: 100, warmth: 60, cost: 6000, description: "Snug and comfy.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "girls_sweater.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 29, name: "girl's oversized sweater", name_cap: "Girl's oversized sweater", variable: "pinksweaterlarge", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 500, bustresize: -1, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"pink", exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "pinksweaterlarge", gender: "f", femininity: 100, warmth: 60, cost: 7000, description: "Snug, comfy and long enough to cover your unmentionables. Just.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "girls_oversized_sweater.png", accIcon: 0, outfitPrimary:{lower:"girl's oversized sweater bottom"}, notuck: 0, pregType: "min" }, {index: 30, name: "christmas shirt", name_cap: "Christmas shirt", variable: "christmas", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 250, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"red", exposed: 0, exposed_base: 0, type: ["costume"], set: "upper", gender: "n", warmth: 70, cost: 4000, description: "Festive.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "christmas_shirt.png", notuck: 0, pregType: 0 }, {index: 31, name: "christmas dress", name_cap: "Christmas dress", variable: "christmasdress", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 250, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"red", exposed: 0, exposed_base: 0, type: ["costume"], set: "christmasdress", gender: "f", femininity: 200, warmth: 70, cost: 8000, description: "Festive. The skirt is rather short.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "christmas_dress.png", outfitPrimary:{lower:"christmas skirt"}, notuck: 0, pregType: 0 }, {index: 32, name: "monk's habit", name_cap: "Monk's habit", variable: "monk", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"brown", exposed: 0, exposed_base: 0, type: ["holy", "costume", "bellyHide"], set: "monk", gender: "m", femininity: -200, warmth: 50, cost: 6000, description: "Holy outfit for those sworn to purity.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "monks_habit.png", accIcon: 0, outfitPrimary:{lower:"monk's habit skirt"}, notuck: 0, pregType: 0 }, {index: 33, name: "checkered shirt", name_cap: "Checkered shirt", variable: "checkered", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"red", exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 40, cost: 4000, description: "Cool and distinctive.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "checkered_shirt.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 34, name: "belly dancer's top", name_cap: "Belly dancer's top", variable: "belly", integrity: 150, integrity_max: 150, fabric_strength: 20, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, colour_combat:"red", exposed: 1, exposed_base: 1, type: ["costume", "serving", "dance", "bellyShow"], set: "upper", gender: "f", femininity: 300, warmth: 10, cost: 12000, description: "Exotic, and sturdier than it looks.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "belly_dancers_top.png", accIcon: "belly_dancers_top_acc.png", notuck: 1, pregType: 0 }, {index: 35, name: "straightjacket", name_cap: "Straightjacket", variable: "straightjacket", integrity: 300, integrity_max: 300, fabric_strength: 20, reveal: 600, bustresize: -2, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["binding", "asylum"], set: "straightjacket", gender: "n", warmth: 40, cost: 0, description: "Protects you from yourself.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 1, location: 0, iconFile: 0, accIcon: 0, outfitPrimary:{lower:"straightjacket bottom"}, notuck: 0, pregType: "min" }, {index: 36, name: "argyle sweater vest", name_cap: "Argyle sweater vest", variable: "argyle", integrity: 130, integrity_max: 130, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 50, cost: 3000, description: "A classic pattern.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "argyle_sweater_vest.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 37, name: "dress shirt", name_cap: "Dress shirt", variable: "dress", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["white", "black", "light pink", "light blue", "olive"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "school"], set: "upper", gender: "m", femininity: -100, warmth: 40, cost: 12000, description: "For when you need to look your best.", shop: ["clothing", "school"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, has_collar: 1, cursed: 0, location: 0, iconFile: "dress_shirt.png", accIcon: 0, notuck: 0, pregType: "split" }, {index: 38, name: "gingham dress", name_cap: "Gingham dress", variable: "gingham", integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "gingham", gender: "f", femininity: 200, warmth: 30, cost: 2000, description: "A comfortable classic.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", accessory_integrity_img: 1, sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "gingham_dress.png", accIcon: "gingham_dress_acc.png", outfitPrimary:{lower:"gingham skirt"}, notuck: 0, pregType: "min" }, {index: 39, name: "overalls", name_cap: "Overalls", variable: "overalls", integrity: 180, integrity_max: 180, fabric_strength: 20, reveal: 400, bustresize: -1, word: "n", one_piece: 1, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 1, colour: 0, colour_options: [], colour_combat:"blue", exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "overalls", gender: "n", warmth: 30, cost: 4000, description: "Hard to take off.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "overalls.png", accIcon: 0, outfitPrimary:{lower:"overall bottoms"}, notuck: 0, pregType: 0 }, {index: 40, name: "black leather jacket", name_cap: "Black leather jacket", variable: "blackleather", integrity: 240, integrity_max: 240, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["cool", "bellyShow"], set: "upper", gender: "m", femininity: -100, warmth: 40, cost: 8000, description: "Delinquent.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "black_leather_jacket.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 41, name: "brown leather jacket", name_cap: "Brown leather jacket", variable: "brownleather", integrity: 240, integrity_max: 240, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"brown", exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "m", femininity: -100, warmth: 40, cost: 6000, description: "Keeps the wind off your neck.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "brown_leather_jacket.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 42, name: "beatnik shirt", name_cap: "Beatnik shirt", variable: "beatnik", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["cool"], set: "upper", gender: "n", warmth: 40, cost: 8000, description: "Conforming isn't your style.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "beatnik_shirt.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 43, name: "cable knit turtleneck", name_cap: "Cable knit turtleneck", variable: "cable", integrity: 150, integrity_max: 150, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "upper", gender: "n", warmth: 60, cost: 7000, description: "Will keep you warm in winter.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "cable_knit_turtleneck.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 44, name: "v neck", name_cap: "V neck", variable: "vneck", integrity: 90, integrity_max: 90, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 40, cost: 1200, description: "When you want to show just a little.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "v_neck.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 45, name: "turtleneck jumper", name_cap: "Turtleneck jumper", variable: "turtleneckjumper", integrity: 250, integrity_max: 250, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "upper", gender: "n", warmth: 60, cost: 8000, description: "Warm and stylish.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "turtleneck_jumper.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 46, name: "cheongsam", name_cap: "Cheongsam", variable: "cheongsam", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "cheongsam", gender: "f", femininity: 200, warmth: 35, cost: 14000, description: "Exotic.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"yellow", sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "cheongsam.png", accIcon: "cheongsam_acc.png", outfitPrimary:{lower:"cheongsam skirt"}, notuck: 0, pregType: 0 }, {index: 47, name: "short cheongsam", name_cap: "Short cheongsam", variable: "cheongsamshort", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "bellyHide"], set: "cheongsamshort", gender: "f", femininity: 200, warmth: 35, cost: 12000, description: "Exotic and revealing.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"yellow", sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "short_cheongsam.png", accIcon: "short_cheongsam_acc.png", outfitPrimary:{lower:"short cheongsam skirt"}, notuck: 0, pregType: "min" }, {index: 48, name: "tie-front top", name_cap: "Tie-front top", variable: "tiefronttop", integrity: 90, integrity_max: 90, fabric_strength: 20, reveal: 900, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["serving", "bimbo", "bellyShow"], set: "upper", gender: "f", femininity: 200, warmth: 5, cost: 10000, description: "Makes you feel rather girly.", shop: ["adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "tie-front_top.png", accIcon: 0, mainImage:0, notuck: 1, pregType: 0 }, {index: 49, name: "peacoat", name_cap: "Peacoat", variable: "peacoat", integrity: 400, integrity_max: 400, fabric_strength: 40, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "navy", "grey", "olive", "wine", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "bellyHide"], set: "upper", gender: "n", warmth: 35, cost: 40000, description: "Made of thick wool.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "peacoat.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 50, name: "gothic gown", name_cap: "Gothic gown", variable: "gothic", integrity: 80, integrity_max: 80, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "costume", "bellyHide"], set: "gothic", gender: "f", femininity: 200, warmth: 50, cost: 42000, description: "A right pain to put on.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, accessory_integrity_img: 1, sleeve_img: 1, sleeve_colour: "no", breast_img: 0, cursed: 0, location: 0, iconFile: "gothic_gown.png", accIcon: 0, outfitPrimary:{lower:"gothic skirt"}, notuck: 0, pregType: 0 }, {index: 51, name: "gothic jacket", name_cap: "Gothic jacket", variable: "gothicjacket", integrity: 160, integrity_max: 160, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["formal", "costume"], set: "upper", gender: "n", femininity: 0, warmth: 50, cost: 12000, description: "For creatures of the night.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "gothic_jacket.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 52, name: "swim shirt", name_cap: "Swim shirt", variable: "swimshirt", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"blue", exposed: 0, exposed_base: 0, type: ["swim"], set: "upper", gender: "n", femininity: 0, warmth: 30, cost: 6000, description: "Protects you from the sun while swimming.", shop: [], accessory: 1, accessory_integrity_img: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "swim_shirt.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 53, name: "waiter's shirt", name_cap: "Waiter's shirt", variable: "waiter", integrity: 130, integrity_max: 130, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["costume", "serving"], set: "upper", gender: "m", femininity: -200, warmth: 40, cost: 1500, description: "For when your clientele expect a certain class.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "waiters_shirt.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 54, name: "lederhosen", name_cap: "Lederhosen", variable: "leder", integrity: 150, integrity_max: 150, fabric_strength: 20, reveal: 300, bustresize: 0, word: "n", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 1, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["costume", "serving"], set: "leder", gender: "n", femininity: 0, warmth: 40, cost: 2500, description: "Festive wear from a foreign land.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "lederhosen.png", accIcon: 0, outfitPrimary:{lower:"lederhosen bottoms"}, notuck: 0, pregType: 0 }, {index: 55, name: "karate jacket", name_cap: "Karate jacket", variable: "karate", integrity: 170, integrity_max: 170, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["costume", "bellyHide"], set: "upper", gender: "m", femininity: -200, warmth: 25, cost: 7800, description: "Robust and martial.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "karate_jacket.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 56, name: "sailor shirt", name_cap: "Sailor shirt", variable: "sailor", integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume"], set: "upper", gender: "m", femininity: -200, warmth: 40, cost: 3000, description: "For long days away from shore.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "sailor_shirt.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 57, name: "short sailor shirt", name_cap: "Short sailor shirt", variable: "sailorshort", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "bellyShow"], set: "upper", gender: "m", femininity: -200, warmth: 20, cost: 2800, description: "For hot days away from shore.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "short_sailor_shirt.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 58, name: "padded football shirt", name_cap: "Padded football shirt", variable: "football", integrity: 240, integrity_max: 240, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "athletic", "school"], set: "upper", gender: "m", femininity: -200, warmth: 60, cost: 7000, description: "Comes with shoulder pads. Used in a foreign sport.", shop: ["clothing", "school"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "padded_football_shirt.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 59, name: "gym shirt", name_cap: "Gym shirt", variable: "gymshirt", integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["normal", "athletic", "school"], set: "upper", gender: "f", femininity: 200, warmth: 35, cost: 3000, description: "PE shirt from a foreign land.", shop: ["clothing", "school"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "gym_shirt.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 60, name: "cheerleading top", name_cap: "Cheerleading top", variable: "cheerleader", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "athletic", "school", "bellyShow"], set: "upper", gender: "f", femininity: 200, warmth: 20, cost: 5000, description: "Part of a uniform used in a foreign sport.", shop: ["clothing", "school", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "cheerleading_top.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 61, name: "hunting coat", name_cap: "Hunting coat", variable: "hunt", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "m", femininity: -200, warmth: 60, cost: 12000, description: "Strong and smart.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "hunting_coat.png", accIcon: 0, notuck: 1, pregType: "split" }, {index: 62, name: "letterman jacket", name_cap: "Letterman jacket", variable: "letterman", integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["school"], set: "upper", gender: "m", femininity: -100, warmth: 40, cost: 9000, description: "Not a real letterman jacket, but looks the part, and made from high-quality materials.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_colour_combat:"white", sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "letterman_jacket.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 63, name: "racing silks", name_cap: "Racing silks", variable: "racing", integrity: 140, integrity_max: 140, fabric_strength: 20, reveal: 400, bustresize: 0, word: "n", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 1, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "athletic", "riding"], set: "upper", gender: "n", femininity: 0, warmth: 35, cost: 30000, description: "For flaunting those colours.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "racing_silks.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 64, name: "shadbelly coat", name_cap: "Shadbelly coat", variable: "shadbelly", integrity: 180, integrity_max: 180, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["formal", "riding", "bellyHide"], set: "upper", gender: "n", femininity: 0, warmth: 60, cost: 25000, description: "Formal riding attire.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "shadbelly_coat.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 65, name: "mummy top", name_cap: "Mummy top", variable: "mummy", integrity: 10, integrity_max: 10, fabric_strength: 1, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["costume"], set: "upper", gender: "n", femininity: 0, warmth: 10, cost: 500, description: "Feels like it's made from toilet paper.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "mummy_top.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 66, name: "diving suit", name_cap: "Diving suit", variable: "diving", integrity: 200, integrity_max: 200, fabric_strength: 50, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["swim", "diving", "constricting"], set: "diving", gender: "n", femininity: 0, warmth: 40, cost: 22000, description: "Will insulate you underwater, letting you swim in the cold.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], accessory_integrity_img: 1, sleeve_img: 1, breast_img: 0, breast_acc_img: 1, cursed: 0, location: 0, iconFile: "diving_suit.png", accIcon: 0, outfitPrimary:{lower:"diving suit bottom"}, notuck: 0, pregType: 0 }, {index: 67, name: "classic sundress", name_cap: "Classic sundress", variable: "classicsundress", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "classicsundress", gender: "f", femininity: 200, warmth: 30, cost: 1500, description: "Great for frolicking. Brings back fond memories.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "classic_sundress.png", accIcon: 0, outfitPrimary:{lower:"classic sundress skirt"}, notuck: 0, pregType: 0 }, {index: 68, name: "classic gothic gown", name_cap: "Classic gothic gown", variable: "gothicold", integrity: 80, integrity_max: 80, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "costume", "bellyHide"], set: "gothicold", gender: "f", femininity: 200, warmth: 50, cost: 42000, description: "A right pain to put on. Vintage.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "classic_gothic_gown.png", accIcon: 0, outfitPrimary:{lower:"classic gothic skirt"}, notuck: 0, pregType: 0 }, {index: 69, name: "scout shirt", name_cap: "Scout shirt", variable: "scout", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "m", femininity: -200, warmth: 35, cost: 4500, description: "Sturdy, with lots of pockets.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "scout_shirt.png", accIcon: "scout_shirt_acc.png", notuck: 0, pregType: "min" }, {index: 70, name: "soccer shirt", name_cap: "Soccer shirt", variable: "soccer", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 500, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "athletic"], set: "upper", gender: "m", femininity: -200, warmth: 25, cost: 6000, description: "Light and cool.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "soccer_shirt.png", accIcon: "soccer_shirt_acc.png", notuck: 0, pregType: 0 }, {index: 71, name: "puffer jacket", name_cap: "Puffer jacket", variable: "puffer", integrity: 160, integrity_max: 160, fabric_strength: 30, reveal: 300, bustresize: -1, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "upper", gender: "n", femininity: 0, warmth: 50, cost: 8000, description: "Well-insulated.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "puffer_jacket.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 72, name: "camo shirt", name_cap: "Camo shirt", variable: "camo", integrity: 140, integrity_max: 140, fabric_strength: 30, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", femininity: 0, warmth: 50, cost: 2300, description: "For the military look.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "camo_shirt.png", accIcon: 0, notuck: 0, pregType: 0 }, {index: 73, name: "star pyjama shirt", name_cap: "Star pyjama shirt", variable: "pjsstar", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["sleep"], set: "upper", gender: "n", femininity: 0, warmth: 50, cost: 1200, description: "Keeps you warm at night.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "star_pyjama_shirt.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 74, name: "moon pyjama shirt", name_cap: "Moon pyjama shirt", variable: "pjsmoon", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["sleep"], set: "upper", gender: "n", femininity: 0, warmth: 50, cost: 1200, description: "Keeps you warm at night.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "moon_pyjama_shirt.png", accIcon: 0, notuck: 0, pregType: "min" }, {index: 75, name: "catsuit", name_cap: "Catsuit", variable: "catsuit", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 400, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["stealthy"], set: "catsuit", gender: "n", femininity: 0, warmth: 25, cost: 12000, description: "Sleek latex.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "unitard.png", accIcon: 0, outfitPrimary:{lower:"catsuit bottoms"}, pregType: 0 }, {index: 76, name: "open shoulders crop top", name_cap: "Open shoulders crop top", variable: "openshoulderscrop", integrity: 80, integrity_max: 80, fabric_strength: 15, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "f", femininity: 200, warmth: 12, cost: 2500, description: "Not fully opaque.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "open_shoulders_crop_top.png", accIcon: 0, notuck: 1, pregType: "min" }, {index: 77, name: "hoodie", name_cap: "Hoodie", variable: "hoodie", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 100, bustresize: -1, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue steel", "grey", "white", "light pink", "light blue", "light green", "sand", "red", "pink", "purple", "tangerine", "teal", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "hoodie", gender: "n", warmth: 50, cost: 4000, description: "Warm and comfy. Hood included.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue steel", "grey", "white", "light pink", "light blue", "light green", "sand", "red", "pink", "purple", "tangerine", "teal", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "hoodie.png", accIcon: 0, outfitPrimary:{head:"hoodie hood"}, notuck: 1, hoodposition: "up", pregType: 0 }, {index: 78, name: "bathrobe", name_cap: "Bathrobe", variable: "bathrobe", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat: "white", exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "bathrobe", gender: "n", femininity: 0, warmth: 40, cost: 2000, description: "Soft terry cloth, perfect for after shower lounging.", shop: ["clothing", "adult", "bellyHide"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "bathrobe.png", accIcon: 0, outfitPrimary:{lower:"bathrobe bottom"}, notuck: 0, pregType: "min" }, {index: 79, name: "rag top", name_cap: "Rag top", variable: "rag", integrity: 10, integrity_max: 10, fabric_strength: 1, reveal: 800, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 1, state: "midriff", state_base: "midriff", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, exposed: 0, exposed_base: 0, type: ["rag", "bellyShow"], set: "upper", gender: "n", warmth: 10, cost: 0, description: "Will come apart at a breeze.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, notuck: 1, pregType: 0 }, {index: 80, name: "retro top", name_cap: "Retro top", variable: "retro", integrity: 120, integrity_max: 120, fabric_strength: 1, reveal: 450, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "n", warmth: 45, cost: 3000, description: "Popular in the past, and making a comeback.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "retro_top.png", accIcon: "retro_top_acc.png", notuck: 0, pregType: 0 }, {index: 81, name: "utility vest", name_cap: "Utility vest", variable: "utility", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow", "unstealthy"], set: "upper", gender: "n", warmth: 25, cost: 8000, description: "Lots of pockets.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "utility_vest.png", accIcon: 0, notuck: 0, pregType: "split" }, {index: 82, name: "utility vest with shirt", name_cap: "Utility vest with shirt", variable: "utilityshirt", integrity: 250, integrity_max: 250, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "unstealthy"], set: "upper", gender: "n", warmth: 50, cost: 8000, description: "Lots of pockets.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "utility_shirt.png", accIcon: "utility_shirt_acc.png", notuck: 0, pregType: 0 }, {index: 83, name: "monster hoodie", name_cap: "Monster hoodie", variable: "monster", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ['apocalypse', 'custom'], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "bellyHide"], set: "monsterhoodie", gender: "n", warmth: 50, cost: 9000, description: "Rawr.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, sleeve_acc_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "monster_hoodie.png", accIcon: 0, outfitPrimary:{lower:"monster skirt", head:"monster hood"}, notuck: 0, hoodposition: "up", pregType: 0 }, {index: 84, name: "keyhole dress", name_cap: "Keyhole dress", variable: "keyhole", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 1, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "keyhole", gender: "f", warmth: 25, cost: 12000, description: "Displays your bosom.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 1, cursed: 0, location: 0, iconFile: "keyhole.png", accIcon: 0, outfitPrimary:{lower:"keyhole skirt"}, notuck: 0, pregType: "min" }, {index: 85, name: "prison shirt", name_cap: "Prison shirt", variable: "prison", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], exposed: 0, exposed_base: 0, type: ["prison"], set: "upper", gender: "n", warmth: 40, cost: 0, description: "Institutional clothing.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, notuck: 0, pregType: "min" }, {index: 86, name: "prison jumpsuit", name_cap: "Prison jumpsuit", variable: "jumpsuit", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: -1, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"tangerine", exposed: 0, exposed_base: 0, type: ["prison"], set: "jumpsuit", gender: "n", warmth: 40, cost: 0, description: "Institutional clothing.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitPrimary:{lower:"prison jumpsuit trousers"}, notuck: 0, pregType: "min" }, {index: 87, name: "patient gown", name_cap: "Patient gown", variable: "patient", integrity: 100, integrity_max: 100, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["asylum"], set: "patient", gender: "n", femininity: 0, warmth: 30, cost: 0, description: "Leaves your back wide open.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitPrimary:{lower:"patient gown skirt"}, notuck: 0, pregType: "min" }, {index: 88, name: "cropped hoodie", name_cap: "Cropped hoodie", variable: "croppedhoodie", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal", "bellyShow"], set: "upper", gender: "f", femininity: 200, warmth: 35, cost: 4000, description: "Shows off your belly, and a fair bit more.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "cropped_hoodie.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 89, name: "cow onesie", name_cap: "Cow onesie", variable: "cowonesie", integrity: 300, integrity_max: 300, fabric_strength: 30, reveal: 100, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["sleep", "costume", "bellyHide"], set: "cowonesie", gender: "n", warmth: 70, cost: 12000, description: "Snug.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, sleeve_acc_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "cow_onesie.png", accIcon: 0, outfitPrimary:{lower:"cow onesie bottoms", head:"cow onesie hood"}, notuck: 0, hoodposition: "up", pregType: 0 }, {index: 90, name: "baseball shirt", name_cap: "Baseball shirt", variable: "baseball", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["athletic"], set: "upper", gender: "n", warmth: 40, cost: 3000, description: "Shirt design associated with a foreign, cricket-like sport.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "baseball_shirt.png", accIcon: "baseball_shirt_acc.png", notuck: 0 }, {index: 91, name: "scarecrow shirt", name_cap: "Scarecrow shirt", variable: "scarecrow", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"brown", exposed: 0, exposed_base: 0, type: ["costume", "event"], set: "scarecrow", gender: "n", femininity: 0, warmth: 50, cost: 1500, description: "Itchy.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], accessory_colour_sidebar: 0, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "scarecrow_shirt.png", accIcon: 0, outfitPrimary:{lower:"scarecrow skirt"}, notuck: 0, pregType: 0 }, {index: 92, name: "waitress uniform", name_cap: "Waitress uniform", variable: "waitress", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "serving", "bellyHide"], set: "waitress", gender: "f", femininity: 200, warmth: 50, cost: 3000, description: "Gets the job done.", shop: ["clothing", "adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "waitress_uniform.png", accIcon: "waitress_uniform_acc.png", outfitPrimary:{lower:"waitress skirt"}, notuck: 0, pregType: "min" }, {index: 93, name: "split dress", name_cap: "Split dress", variable: "split", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 700, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "bellyShow", "constricting"], set: "split", gender: "f", femininity: 200, warmth: 20, cost: 12000, description: "A breeze away from disaster.", shop: ["adult"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "split_dress.png", accIcon: "split_dress_acc.png", outfitPrimary:{lower:"split dress skirt"}, notuck: 0, pregType: 0 }, {index: 94, name: "skimpy lolita dress", name_cap: "Skimpy lolita dress", variable: "skimpylolita", integrity: 70, integrity_max: 70, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "skimpylolita", gender: "f", femininity: 200, warmth: 20, cost: 9500, description: "A blend of fashions.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "skimpy_lolita_dress.png", accIcon: "skimpy_lolita_dress_acc.png", outfitPrimary:{lower:"skimpy lolita skirt"}, notuck: 0, pregType: "min" }, {index: 95, name: "short ballgown", name_cap: "Short ballgown", variable: "shortballgown", integrity: 70, integrity_max: 70, fabric_strength: 20, reveal: 800, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "constricting"], set: "shortballgown", gender: "f", femininity: 200, warmth: 40, cost: 48000, description: "Scandalously short.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "short_ballgown.png", accIcon: 0, outfitPrimary:{lower:"short ballgown skirt"}, notuck: 0 }, {index: 96, name: "single breasted jacket", name_cap: "Single breasted jacket", variable: "singlebreasted", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal"], set: "upper", gender: "m", femininity: -200, warmth: 35, cost: 26000, description: "Smart and suave.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "single_breasted_jacket.png", accIcon: "single_breasted_jacket_acc.png", notuck: 1, pregType: "split" }, {index: 97, name: "double breasted jacket", name_cap: "Double breasted jacket", variable: "doublebreasted", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "bellyHide"], set: "upper", gender: "m", femininity: -200, warmth: 40, cost: 26000, description: "Smart and suave.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "double_breasted_jacket.png", accIcon: "double_breasted_jacket_acc.png", notuck: 1, pregType: "min" }, {index: 98, name: "pink nurse dress", name_cap: "Pink nurse dress", variable: "pinknurse", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"pink", exposed: 0, exposed_base: 0, type: ["costume"], set: "pink nurse dress", gender: "f", femininity: 200, warmth: 30, cost: 2500, description: "Worn by nurses at the local hospital.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "pink_nurse_dress.png", accIcon: 0, outfitPrimary:{lower:"pink nurse skirt"}, notuck: 0, pregType: 0 }, {index: 99, name: "plastic nurse dress", name_cap: "Plastic nurse dress", variable: "plasticnurse", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 600, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"pink", exposed: 0, exposed_base: 0, type: ["costume", "unstealthy"], set: "plastic nurse dress", gender: "f", femininity: 200, warmth: 30, cost: 4500, description: "Easy to clean.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "plastic_nurse_dress.png", accIcon: 0, outfitPrimary:{lower:"plastic nurse skirt"}, notuck: 0, pregType: 0 }, {index: 100, name: "transparent nurse dress", name_cap: "Transparent nurse dress", variable: "transparentnurse", integrity: 120, integrity_max: 120, fabric_strength: 30, reveal: 900, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, colour_combat:"pink", exposed: 1, exposed_base: 1, type: ["costume"], set: "transparent nurse dress", gender: "f", femininity: 200, warmth: 30, cost: 5000, description: "Hides little.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "transparent_nurse_dress.png", accIcon: 0, outfitPrimary:{lower:"transparent nurse skirt"}, notuck: 0, pregType: 0 }, {index: 101, name: "hanfu", name_cap: "Hanfu", variable: "hanfu", integrity: 100, integrity_max: 100, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["formal", "bellyHide"], set: "hanfu", gender: "n", femininity: 0, warmth: 25, cost: 6000, description: "Enduring attire from a distant land.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "pale tangerine", "teal", "pale white", "pale yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "hanfu.png", accIcon: 0, outfitPrimary:{lower:"hanfu skirt"}, notuck: 1, pregType: "min" }, {index: 102, name: "open shoulder sweater", name_cap: "Open shoulder sweater", variable: "openshouldersweater", integrity: 180, integrity_max: 180, fabric_strength: 20, reveal: 300, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "openshouldersweater", gender: "f", femininity: 200, warmth: 60, cost: 6000, description: "Comfy and stylish.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "open_shoulder_sweater.png", accIcon: 0, outfitPrimary:{lower:"open shoulder sweater bottom"}, notuck: 0, pregType: 0 }, {index: 103, name: "winter jacket", name_cap: "Winter jacket", variable: "winterjacket", integrity: 240, integrity_max: 200, fabric_strength: 20, reveal: 200, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "light blue", "pale white", "light green", "light pink", "olive", "wine", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["cool", "bellyShow"], set: "upper", gender: "n", femininity: -100, warmth: 80, cost: 12000, description: "Protects against the chill wind.", shop: ["clothing"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["tan", "white", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "winter_jacket.png", accIcon: "winter_jacket_acc.png", notuck: 1, pregType: "split" }, {index: 104, name: "cocoon", name_cap: "Cocoon", variable: "cocoon", integrity: 200, integrity_max: 200, fabric_strength: 30, reveal: 1000, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"white", exposed: 0, exposed_base: 0, type: ["normal", "bellyHide"], set: "cocoon", gender: "f", femininity: 200, warmth: 30, cost: 0, description: "Binding.", shop: [], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "", accIcon: 0, outfitPrimary:{lower:"cocoon bottom"}, notuck: 0, pregType: "min" }, {index: 105, name: "skeleton outfit", name_cap: "Skeleton outfit", variable: "skele", integrity: 120, integrity_max: 120, fabric_strength: 20, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["costume", "event"], set: "skele", gender: "n", femininity: 0, warmth: 40, cost: 4500, description: "Spooky and scary.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "skeleton_outfit.png", accIcon: 0, outfitPrimary:{lower:"skeleton bottoms"}, notuck: 0, pregType: "min" }, {index: 106, name: "classy vampire jacket", name_cap: "Classy vampire jacket", variable: "classyvampire", integrity: 200, integrity_max: 200, fabric_strength: 20, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_sidebar: 0, exposed: 0, exposed_base: 0, type: ["costume", "event", "formal"], set: "upper", gender: "m", femininity: -200, warmth: 30, cost: 8000, description: "The label says it's second-hand. Smells like blood.", shop: ["forest"], accessory: 1, accessory_colour: 0, accessory_colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], accessory_colour_sidebar: 1, sleeve_img: 1, breast_img: 0, cursed: 0, location: 0, iconFile: "classy_vampire_jacket.png", accIcon: "classy_vampire_jacket_acc.png", notuck: 1, pregType: "split" }, {index: 107, name: "virgin killer", name_cap: "Virgin killer", variable: "virginkiller", integrity: 140, integrity_max: 140, fabric_strength: 30, reveal: 700, bustresize: 0, word: "a", one_piece: 0, strap: 1, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["normal"], set: "upper", gender: "f", femininity: 300, warmth: 30, cost: 4000, description: "You're asking for trouble if you wear this.", shop: ["clothing", "adult"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "virgin_killer.png", accIcon: 0, notuck: 1, pregType: 0 }, {index: 108, name: "futuristic bodysuit", name_cap: "Futuristic bodysuit", variable: "futuresuit", integrity: 130, integrity_max: 130, fabric_strength: 30, reveal: 400, bustresize: 0, word: "a", one_piece: 1, strap: 0, open: 0, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"], colour_sidebar: 1, exposed: 0, exposed_base: 0, type: ["costume", "event"], set: "futuresuit", gender: "n", femininity: 0, warmth: 30, cost: 6000, description: "Slick and robotic.", shop: ["forest"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 1, breast_img: 1, cursed: 0, location: 0, iconFile: "futuresuit.png", accIcon: 0, outfitPrimary:{lower:"futuristic bodysuit pants"}, notuck: 1, pregType: "min" }, {index: 109, name: "lace nightgown", name_cap: "Lace nightgown", variable: "lacegown", integrity: 80, integrity_max: 80, fabric_strength: 30, reveal: 500, bustresize: 0, word: "a", one_piece: 1, strap: 1, open: 1, state: "waist", state_base: "waist", state_top: "chest", state_top_base: "chest", plural: 0, colour: 0, colour_options: [], colour_combat:"black", exposed: 0, exposed_base: 0, type: ["sleep"], set: "lacegown", gender: "f", femininity: 200, warmth: 15, cost: 4800, description: "Delicate and revealing.", shop: ["clothing"], accessory: 0, accessory_colour: 0, accessory_colour_options: [], sleeve_img: 0, breast_img: 0, cursed: 0, location: 0, iconFile: "lace_nightgown.png", accIcon: 0, outfitPrimary:{lower:"lace nightgown skirt"}, notuck: 0 } ]>> <!-- Clothes that modders add go into this array, this should be empty in the base game at all times. These items should have a `modder` variable with a the modders name in a short string --> <<set setup.moddedClothes.upper to []>> <<run setup.moddedClothes.upper.forEach( (x,i) => x.index = setup.clothes.upper.length + i )>> <<run setup.clothes.upper.push(...setup.moddedClothes.upper)>> <</widget>>
<<widget "dancestripeffects">> <<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.gender 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.gender 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.gender 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.gender 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.gender 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.gender 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.gender 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.gender 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.gender 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.gender 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 $exhibitionism gte 55>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "outfitstripunderbreasts">></label> | <</if>> <<else>> <<if $exhibitionism gte 35>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "outfitstripunderchest">></label> | <</if>> <</if>> <<else>> <<if $player.breastsize gte 3>> <<if $exhibitionism gte 55>> <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 $exhibitionism gte 55>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "outfitstripchest">></label> | <</if>> <<else>> <<if $exhibitionism gte 35>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "outfitstripunder">></label> | <</if>> <</if>> <</if>> <<else>> <<if $exhibitionism gte 75>> <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 $exhibitionism gte 15>> <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 $exhibitionism gte 55>> <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 $exhibitionism gte 55>> <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 $exhibitionism gte 35>> <label><span class="meek">Strip $worn.lower.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "lowerstripunder">></label> | <</if>> <<else>> <<if $exhibitionism gte 75>> <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 $exhibitionism gte 35>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "underoutfitstripskirt">></label> | <</if>> <<elseif $worn.upper.open is 1>> <<if $exhibitionism gte 35>> <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 $exhibitionism gte 55>> <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 $exhibitionism gte 55>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "underoutfitstripchest">></label> | <</if>> <<else>> <<if $exhibitionism gte 35>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "underoutfitstripunder">></label> | <</if>> <</if>> <<else>> <<if $exhibitionism gte 75>> <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 $exhibitionism gte 55>> <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 $exhibitionism gte 55>> <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 $exhibitionism gte 35>> <label><span class="meek">Strip $worn.under_lower.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "understripskirt">></label> | <</if>> <<elseif $worn.lower.type.includes("naked")>> <<if $exhibitionism gte 75>> <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">> <!-- <<for _i to 0; _i lt $NPCList.length; _i++>> <<if $dance_place isnot _i>> <<deactivateNPC _i>> <</if>> <</for>> --> <<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">> <<set _filters to $skinColor.current>> <<set _img to setup.tanImg.sidebar[($options.tanImgEnabled ? "t" : "f")]>> <<charLight "118px" "183px">> <div id="imgInv"> <div><mouse class="tooltip-image"> <<condomsSidebar>> <span class="def">Total condoms: $condoms</span> </mouse></div> <div><mouse class="tooltip-image"> <<peppersprays>> <span class="def">Pepper spray: $spray / $spraymax</span> </mouse></div> </div> <div id="img" @class="limitedColourContainerClasses() + ($options.sidebarAnimations isnot false ? '':' noAnimations') + ' offset-sidebar-img'"> <<if $options.sidebarRenderer is 'canvas'>> <<canvasimg>> <<else>> <<if $options.sidebarRenderer is 'both'>> <<canvasimg 'canvasimg-both'>> <</if>> /*Prep for image checks*/ <<if $worn.under_upper.type.includes("chest_bind")>> <<set _breastSize to 1>> <<else>> <<switch $player.perceived_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 0 1 2>> <<set _breastSize to 1>> <</switch>> <</if>> <<if $player.penisExist>> <<set _penisSize to Math.clamp($player.penissize, -2, 4)>> <</if>> <<if $worn.over_head.hood is 1 or $worn.head.hood is 1>> <<set _hairlengthstage to "short">> <<set _fringelengthstage to "short">> <<else>> <<set _hairlengthstage to $hairlengthstage>> <<set _fringelengthstage to $fringelengthstage>> <</if>> <<set _disabled to ["disabled","hidden"]>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $dontHide is false and $worn.over_upper.exposed gte 1 and ($worn.upper.exposed gte 1 or $upperwetstage gte 3) and ($exposed gte 2 and $uncomfortable.nude is true or $exposed is 1 and $uncomfortable.underwear is true)>> <<set _coverLeft to true>> <<else>> <<set _coverLeft to false>> <</if>> <</if>> <<if $rightarm isnot "bound" and $rightarm isnot "grappled" and $rightarm isnot "behind">> <<if $dontHide is false and $worn.over_lower.exposed gte 1 and ($worn.lower.exposed gte 1 or $lowerwetstage gte 3) and ($exposed gte 2 and $uncomfortable.nude is true or $exposed is 1 and $uncomfortable.underwear is true)>> <<set _coverRight to true>> <<else>> <<set _coverRight to false>> <</if>> <</if>> <img class="layer-base anim-idle-2f" @src="_img.basenoarms" @style="'filter: '+_filters.body"> <img class="layer-basehead anim-idle-2f" @src="_img.basehead" @style="'filter: '+_filters.body"> <<peppersprays>> <<if $options.tanImgEnabled>> <<if $skinColor.tanValues[0] isnot $skinColor.tanValues[2]>> <img class="layer-base anim-idle-2f" @src="_img.baseTanSwimshorts" @style="'filter: '+_filters.swimshorts"> <img class="layer-base anim-idle-2f" @src="_img.baseTanSwimsuit_UUpper" @style="'filter: '+_filters.swimsuitTop"> <img class="layer-base anim-idle-2f" @src="_img.baseTanSwimsuit_ULower" @style="'filter: '+_filters.swimsuitBottom"> <img class="layer-base anim-idle-2f" @src="_img.baseTanBikini_ULower" @style="'filter: '+_filters.bikiniBottom"> <</if>> <</if>> <<if $worn.upper.type.includes("naked") and $worn.over_upper.type.includes("naked")>> <<if !$worn.under_upper.type.includes("naked")>> <img class="layer-breasts anim-idle-2f" @src="_img['breasts'+ _breastSize + '_clothed']" @style="'filter: '+_filters.breasts"> <<else>> <img class="layer-breasts anim-idle-2f" @src="_img['breasts'+ _breastSize]" @style="'filter: '+_filters.breasts"> <</if>> <<if $options.tanImgEnabled and $skinColor.tanValues[0] isnot $skinColor.tanValues[1]>> <img class="layer-breasts anim-idle-2f" @src="_img.baseTanBikini_UUpper + _breastSize + '.png'" @style="'filter: '+_filters.bikiniTop"> <</if>> <</if>> <!-- new pbhair extension for main pc--> <<if $pbdisable is "f" and $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked")>> <<set _pbColour = ($makeup.pbcolour != 0 ? $makeup.pbcolour : $naturalhaircolour).replace(/ /g, '-')>> <<if $pblevel gt 1>> <div @class="'layer-pbhair pbhair-' + _pbColour"> <img class="anim-idle-2f" @src="'img/hair/phair/pb' + $pblevel + '.png'"> </div> <</if>> <<if $pbstrip gte 1>> <div @class="'layer-pbhair pbhair-' + _pbColour"> <img class="anim-idle-2f" @src="'img/hair/phair/pbstrip' + $pbstrip + '.png'"> </div> <</if>> <<if $player.ballsExist is true and $pblevelballs gt 1 and !$worn.genitals.name.startsWith("chastity")>> <div @class="'layer-pbhairballs pbhair-' + _pbColour"> <img class="anim-idle-2f" @src="'img/hair/phair/balls/' + _penisSize + '_pb' + $pblevelballs + '.png'"> </div> <</if>> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $masturbationimages is 1>> <<if $leftaction is "mpenisentrance">> <img class="layer-leftarm" src="img/body/masturbation/leftarmballs.gif"> <<elseif $leftaction is "mvaginaentrance">> <img class="layer-leftarm" src="img/body/masturbation/leftarmpussy.gif"> <<elseif $leftaction is "manus">> <img class="layer-leftarm" src="img/body/masturbation/leftarmass.gif"> <<elseif $leftaction is "manusentrance">> <img class="layer-leftarm" src="img/body/masturbation/leftarmass.gif"> <<elseif $leftaction is "manusrub">> <img class="layer-leftarm" src="img/body/masturbation/leftarmass.gif"> <<elseif $leftaction is "manustease">> <img class="layer-leftarm" src="img/body/masturbation/leftarmass.gif"> <<elseif $leftaction is "manusprostate">> <img class="layer-leftarm" src="img/body/masturbation/leftarmass.gif"> <<elseif $leftaction is "mpenisshaft">> <img class="layer-leftarm" src="img/body/masturbation/leftarmshaft.gif"> <<elseif $leftaction is "mpenisglans">> <img class="layer-leftarm" src="img/body/masturbation/leftarmglans.gif"> <<elseif $leftaction is "mvagina">> <img class="layer-leftarm" src="img/body/masturbation/leftarmpussy.gif"> <<elseif $leftaction is "mvaginaclit">> <img class="layer-leftarm" src="img/body/masturbation/leftarmclit.gif"> <<elseif $leftaction is "mvaginatease">> <img class="layer-leftarm" src="img/body/masturbation/leftarmpussy.gif"> <</if>> <<elseif _coverLeft is false>> <img class="layer-leftarm" @src="_img.leftarmidle" @style="'filter: '+_filters.body"> <<if !_disabled.includes($transformationParts.demon.wings)>> <<if $exposed gte 2 and $dontHide is false and $transformationParts.traits.flaunting is "default">> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/demon/flauntwings/'+$transformationParts.demon.wings+'.png'"> <<else>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/demon/wings/'+$transformationParts.demon.wings+'.png'"> <</if>> <</if>> <<if !_disabled.includes($transformationParts.angel.wings)>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/angel/rightwing/'+$transformationParts.angel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.fallenAngel.wings)>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/fallen/rightwing/'+$transformationParts.fallenAngel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.wings)>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/transformations/bird/rightwing/'+$transformationParts.bird.wings+'.png'"> <</if>> <<elseif _coverLeft is true>> <<if !_disabled.includes($transformationParts.demon.wings)>> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/demon/leftcover/'+$transformationParts.demon.wings+'.png'"> <img class="layer-leftarm" @src="_img.leftarmidle" @style="'filter: '+_filters.body"> <<set _coverLeft to false>> <<elseif !_disabled.includes($transformationParts.angel.wings)>> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/angel/rightcover/'+$transformationParts.angel.wings+'.png'"> <img class="layer-leftarm" @src="_img.leftarmidle" @style="'filter: '+_filters.body"> <<set _coverLeft to false>> <<elseif !_disabled.includes($transformationParts.fallenAngel.wings)>> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/fallen/rightcover/'+$transformationParts.fallenAngel.wings+'.png'"> <img class="layer-leftarm" @src="_img.leftarmidle" @style="'filter: '+_filters.body"> <<set _coverLeft to false>> <<elseif !_disabled.includes($transformationParts.bird.wings)>> <img class="layer-tailPenisCover colour-hair anim-idle-2f" @src="'img/transformations/bird/rightcover/'+$transformationParts.bird.wings+'.png'"> <img class="layer-leftarm" @src="_img.leftarmidle" @style="'filter: '+_filters.body"> <<set _coverLeft to false>> <<else>> <img class="layer-leftarm anim-idle-2f" @src="_img.leftarm" @style="'filter: '+_filters.body"> <</if>> <</if>> <</if>> <<if $rightarm isnot "bound" and $rightarm isnot "grappled" and $rightarm isnot "behind">> <<if $masturbationimages is 1>> <<if $rightaction is "mpenisentrance">> <img class="layer-rightarm" src="img/body/masturbation/rightarmballs.gif"> <<elseif $rightaction is "mvaginaentrance">> <img class="layer-rightarm" src="img/body/masturbation/rightarmpussy.gif"> <<elseif $rightaction is "manus">> <img class="layer-rightarm" src="img/body/masturbation/rightarmass.gif"> <<elseif $rightaction is "manusentrance">> <img class="layer-rightarm" src="img/body/masturbation/rightarmass.gif"> <<elseif $rightaction is "manusrub">> <img class="layer-rightarm" src="img/body/masturbation/rightarmass.gif"> <<elseif $rightaction is "manustease">> <img class="layer-rightarm" src="img/body/masturbation/rightarmass.gif"> <<elseif $rightaction is "manusprostate">> <img class="layer-rightarm" src="img/body/masturbation/rightarmass.gif"> <<elseif $rightaction is "mpenisshaft">> <img class="layer-rightarm" src="img/body/masturbation/rightarmshaft.gif"> <<elseif $rightaction is "mpenisglans">> <img class="layer-rightarm" src="img/body/masturbation/rightarmglans.gif"> <<elseif $rightaction is "mvagina">> <img class="layer-rightarm" src="img/body/masturbation/rightarmpussy.gif"> <<elseif $rightaction is "mvaginaclit">> <img class="layer-rightarm" src="img/body/masturbation/rightarmclit.gif"> <<elseif $rightaction is "mvaginatease">> <img class="layer-rightarm" src="img/body/masturbation/rightarmpussy.gif"> <</if>> <<elseif _coverRight is false>> <img class="layer-rightarm" @src="_img.rightarmidle" @style="'filter: '+_filters.body"> <<if !_disabled.includes($transformationParts.demon.tail)>> <<if $exposed gte 2 and $dontHide is false and $transformationParts.traits.flaunting is "default">> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/demon/flaunttail/'+$transformationParts.demon.tail+'.png'"> <<else>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/demon/tail/'+$transformationParts.demon.tail+'.png'"> <</if>> <</if>> <<if !_disabled.includes($transformationParts.angel.wings)>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/angel/leftwing/'+$transformationParts.angel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.fallenAngel.wings)>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/fallen/leftwing/'+$transformationParts.fallenAngel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.wings)>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/transformations/bird/leftwing/'+$transformationParts.bird.wings+'.png'"> <</if>> <<elseif _coverRight is true>> <<if !_disabled.includes($transformationParts.demon.wings)>> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/demon/rightcover/'+$transformationParts.demon.tail+'.png'"> <img class="layer-rightarm" @src="_img.rightarmidle" @style="'filter: '+_filters.body"> <<set _coverRight to false>> <<elseif !_disabled.includes($transformationParts.angel.wings)>> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/angel/leftcover/'+$transformationParts.angel.wings+'.png'"> <img class="layer-rightarm" @src="_img.rightarmidle" @style="'filter: '+_filters.body"> <<set _coverRight to false>> <<elseif !_disabled.includes($transformationParts.fallenAngel.wings)>> <img class="layer-tailPenisCover anim-idle-2f" @src="'img/transformations/fallen/leftcover/'+$transformationParts.fallenAngel.wings+'.png'"> <img class="layer-rightarm" @src="_img.rightarmidle" @style="'filter: '+_filters.body"> <<set _coverRight to false>> <<elseif !_disabled.includes($transformationParts.bird.wings)>> <img class="layer-tailPenisCover colour-hair anim-idle-2f" @src="'img/transformations/bird/leftcover/'+$transformationParts.bird.wings+'.png'"> <img class="layer-rightarm" @src="_img.rightarmidle" @style="'filter: '+_filters.body"> <<set _coverRight to false>> <<else>> <img class="layer-rightarm" @src="_img.rightarm" @style="'filter: '+_filters.body"> <</if>> <</if>> <</if>> <<if $options.bodywritingImages is true>> <<if $skin.forehead.writing>> <<if $skin.forehead.type is "text">> <<if $skin.forehead.sprites and $skin.forehead.sprites.length > 0 and $skin.forehead.sprites.includes('forehead')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.forehead.key + '/forehead.png'"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/forehead.png"> <</if>> <<elseif $skin.forehead.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.forehead.writing + '/forehead.png'"> <</if>> <</if>> <<if $skin.left_cheek.writing>> <<if $skin.left_cheek.type is "text">> <<if $skin.left_cheek.sprites and $skin.left_cheek.sprites.length > 0 and $skin.left_cheek.sprites.includes('left_cheek')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.left_cheek.key + '/left_cheek.png'"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_cheek.png"> <</if>> <<elseif $skin.left_cheek.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.left_cheek.writing + '/left_cheek.png'"> <</if>> <</if>> <<if $skin.right_cheek.writing>> <<if $skin.right_cheek.type is "text">> <<if $skin.right_cheek.sprites and $skin.right_cheek.sprites.length > 0 and $skin.right_cheek.sprites.includes('right_cheek')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.right_cheek.key + '/right_cheek.png'"> <<else>> <<if $skin.right_cheek.arrow is 1>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_cheek_arrow.png"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_cheek.png"> <</if>> <</if>> <<elseif $skin.right_cheek.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.right_cheek.writing + '/right_cheek.png'"> <</if>> <</if>> <<if $skin.breasts.writing>> <<if $skin.breasts.type is "text">> <<if $skin.breasts.sprites and $skin.breasts.sprites.length > 0 and $skin.breasts.sprites.includes('breasts')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.breasts.key + '/breasts.png'"> <<else>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/default/breasts1.png'"> <<if _breastSize gte 2>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/default/breasts'+_breastSize+'.png'"> <</if>> <</if>> <<elseif $skin.breasts.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.breasts.writing + '/breasts'+_breastSize+'.png'"> <</if>> <</if>> <<if $skin.left_shoulder.writing>> <<if $skin.left_shoulder.type is "text">> <<if $skin.left_shoulder.sprites and $skin.left_shoulder.sprites.length > 0 and $skin.left_shoulder.sprites.includes('left_shoulder')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.left_shoulder.key + '/left_shoulder.png'"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_shoulder.png"> <</if>> <<elseif $skin.left_shoulder.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.left_shoulder.writing + '/left_shoulder.png'"> <</if>> <</if>> <<if $skin.right_shoulder.writing>> <<if $masturbationimages is 1 or _coverRight is true>> <<set _skin to "armS">> <<else>> <<set _skin to "s">> <</if>> <<if $skin.right_shoulder.type is "text">> <<if $skin.right_shoulder.sprites and $skin.right_shoulder.sprites.length > 0 and $skin.right_shoulder.sprites.includes('right_shoulder')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.right_shoulder.key + '/right_shoulder.png'"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_shoulder.png"> <</if>> <<elseif $skin.right_shoulder.type is "object">> <img @class="'layer-' + _skin + 'kin anim-idle-2f'" @src="'img/bodywriting/' + $skin.right_shoulder.writing + '/right_shoulder.png'"> <</if>> <</if>> <<if $skin.pubic.writing>> <<if $skin.pubic.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.pubic.writing + '/pubic.png'"> <<elseif $skin.pubic.type is "text">> <<if $skin.pubic.sprites and $skin.pubic.sprites.length > 0 and $skin.pubic.sprites.includes('pubic')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.pubic.key + '/pubic.png'"> <<else>> <<if $skin.pubic.arrow is 1>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/pubic_arrow.png"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/pubic.png"> <</if>> <</if>> <</if>> <</if>> <<if $skin.left_thigh.writing>> <<if $skin.left_thigh.type is "text">> <<if $skin.left_thigh.sprites and $skin.left_thigh.sprites.length > 0 and $skin.left_thigh.sprites.includes('left_thigh')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.left_thigh.key + '/left_thigh.png'"> <<else>> <<if $skin.left_thigh.arrow is 1>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_thigh_arrow.png"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_thigh.png"> <</if>> <</if>> <<elseif $skin.left_thigh.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.left_thigh.writing + '/left_thigh.png'"> <</if>> <</if>> <<if $skin.right_thigh.writing>> <<if $skin.right_thigh.type is "text">> <<if $skin.right_thigh.sprites and $skin.right_thigh.sprites.length > 0 and $skin.right_thigh.sprites.includes('right_thigh')>> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.right_thigh.key + '/right_thigh.png'"> <<else>> <<if $skin.right_thigh.arrow is 1>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_thigh_arrow.png"> <<else>> <img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_thigh.png"> <</if>> <</if>> <<elseif $skin.right_thigh.type is "object">> <img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.right_thigh.writing + '/right_thigh.png'"> <</if>> <</if>> <</if>> <<faceimg>> <<switch setup.bodyliquid.combined("vagina")>> <<case 5 6 7 8 9 10>><img class="layer-tears" src="img/body/cum/VaginalCumDripVeryFast.gif"> <<case 4>><img class="layer-tears" src="img/body/cum/VaginalCumDripFast.gif"> <<case 3>><img class="layer-tears" src="img/body/cum/VaginalCumDripSlow.gif"> <<case 2>><img class="layer-tears" src="img/body/cum/VaginalCumDripVerySlow.gif"> <<case 1>><img class="layer-tears" src="img/body/cum/VaginalCumDripStart.gif"> <</switch>> <<switch setup.bodyliquid.combined("anus")>> <<case 5 6 7 8 9 10>><img class="layer-tears" src="img/body/cum/AnalCumDripVeryFast.gif"> <<case 4>><img class="layer-tears" src="img/body/cum/AnalCumDripFast.gif"> <<case 3>><img class="layer-tears" src="img/body/cum/AnalCumDripSlow.gif"> <<case 2>><img class="layer-tears" src="img/body/cum/AnalCumDripVerySlow.gif"> <<case 1>><img class="layer-tears" src="img/body/cum/AnalCumDripStart.gif"> <</switch>> <<set _shift = $facestyle == "small-eyes" ? "shift-right-2" : "">> <<switch setup.bodyliquid.combined("mouth")>> <<case 5 6 7 8 9 10>><img @class="'layer-tears '+_shift" src="img/body/cum/MouthCumDripVeryFast.gif"> <<case 4>><img @class="'layer-tears '+_shift" src="img/body/cum/MouthCumDripFast.gif"> <<case 3>><img @class="'layer-tears '+_shift" src="img/body/cum/MouthCumDripSlow.gif"> <<case 2>><img @class="'layer-tears '+_shift" src="img/body/cum/MouthCumDripVerySlow.gif"> <<case 1>><img @class="'layer-tears '+_shift" src="img/body/cum/MouthCumDripStart.png"> <</switch>> <<if !_disabled.includes($transformationParts.fallenAngel.halo)>> <img class="layer-over_head-back anim-idle-2f" @src="'img/transformations/fallen/backbrokenhalo/'+$transformationParts.fallenAngel.halo+'.png'"> <img class="layer-halo-front anim-idle-2f" @src="'img/transformations/fallen/frontbrokenhalo/'+$transformationParts.fallenAngel.halo+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.angel.halo)>> <img class="layer-over_head-back anim-idle-2f" @src="'img/transformations/angel/backhalo/'+$transformationParts.angel.halo+'.png'"> <img class="layer-halo-front anim-idle-2f" @src="'img/transformations/angel/fronthalo/'+$transformationParts.angel.halo+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.tail)>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/transformations/wolf/tail/'+$transformationParts.wolf.tail+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.cat.tail)>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/transformations/cat/tail/'+$transformationParts.cat.tail+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.ears)>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/transformations/wolf/ears/'+$transformationParts.wolf.ears+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.pits)>> <img class="layer-hirsute colour-hair anim-idle-2f" @src="'img/transformations/hirsute/pits/'+$transformationParts.wolf.pits+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.pubes)>> <img class="layer-hirsute colour-hair anim-idle-2f" @src="'img/transformations/hirsute/pubes/'+$transformationParts.wolf.pubes+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.cheeks)>> <img class="layer-hirsute colour-hair anim-idle-2f" @src="'img/transformations/wolf/cheeks/'+$transformationParts.wolf.cheeks+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.cat.ears)>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/transformations/cat/ears/'+$transformationParts.cat.ears+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.demon.horns)>> <img class="layer-horns anim-idle-2f" @src="'img/transformations/demon/horns/'+$transformationParts.demon.horns+'.png'"> /*<img class="layer-face colour-hair anim-idle-2f" src="img/transformations/demon/hair_overlay.png">*/ <</if>> <<if !_disabled.includes($transformationParts.cow.horns)>> <img class="layer-horns anim-idle-2f" @src="'img/transformations/cow/horns/'+$transformationParts.cow.horns+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.cow.ears)>> <img class="layer-horns anim-idle-2f" @src="'img/transformations/cow/ears/'+$transformationParts.cow.ears+'.png'"> <img class="layer-face anim-idle-2f" src="img/transformations/cow/tag.png"> <</if>> <<if !_disabled.includes($transformationParts.cow.tail)>> <img class="layer-backhair anim-idle-2f" @src="'img/transformations/cow/tail/'+$transformationParts.cow.tail+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.tail)>> <img class="layer-sexwings colour-hair anim-idle-2f" @src="'img/transformations/bird/tail/'+$transformationParts.bird.tail+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.eyes)>> <img class="layer-irisacc anim-idle-2f" @src="'img/transformations/bird/eyes/'+$transformationParts.bird.eyes+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.malar)>> <img class="layer-sexwings colour-hair anim-idle-2f" @src="'img/transformations/bird/malar/'+$transformationParts.bird.malar+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.plumage)>> <img class="layer-sexwings colour-hair anim-idle-2f" @src="'img/transformations/bird/plumage/'+$transformationParts.bird.plumage+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.pubes)>> <img class="layer-hirsute colour-hair anim-idle-2f" @src="'img/transformations/bird/pubes/'+$transformationParts.bird.pubes+'.png'"> <</if>> <<if $hairposition is "front">> <img class="layer-hairforwards colour-hair anim-idle-2f" @src="'img/hair/sides/' + $hairtype + '/' + _hairlengthstage + '.png'"> <<else>> <img class="layer-backhair colour-hair anim-idle-2f" @src="'img/hair/sides/' + $hairtype + '/' + _hairlengthstage + '.png'"> <</if>> <img class="layer-fronthair colour-hair anim-idle-2f" @src="'img/hair/fringe/' + $fringetype + '/' + _fringelengthstage + '.png'"> <<if _hairlengthstage is "short">> <<switch $hairtype>> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/short.png"> <<default>> <</switch>> <<elseif _hairlengthstage is "shoulder">> <<switch $hairtype>> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/shoulder.png"> <<default>> <</switch>> <<elseif _hairlengthstage is "chest">> <<switch $hairtype>> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/chest.png"> <<default>> <</switch>> <<elseif _hairlengthstage is "navel">> <<switch $hairtype>> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/navel.png"> <<default>> <</switch>> <<elseif _hairlengthstage is "thighs">> <<switch $hairtype>> <<case "default">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/default/thighs.png"> <<case "loose">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/loose/thighs.png"> <<case "curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/curl/thighs.png"> <<case "defined curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/defined curl/thighs.png"> <<case "neat">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/neat/thighs.png"> <<case "dreads">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/dreads/thighs.png"> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/thighs.png"> <<default>> <</switch>> <<elseif _hairlengthstage is "feet">> <<switch $hairtype>> <<case "default">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/default/feet.png"> <<case "loose">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/loose/feet.png"> <<case "straight">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/straight/feet.png"> <<case "curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/curl/feet.png"> <<case "defined curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/defined curl/feet.png"> <<case "neat">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/neat/feet.png"> <<case "dreads">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/dreads/feet.png"> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/feet.png"> <<default>> <</switch>> <</if>> <<upperimg>> <<overupperimg>> <<genitalsimg>> <<lowerimg>> <<overlowerimg>> <<underlowerimg>> <<underupperimg>> <<handsimg>> <<baseClothingImg "head">> <<baseClothingImg "over_head">> <<baseClothingImg "face">> <<neckimg>> <<baseClothingImg "legs">> <<baseClothingImg "feet">> <!-- P image insert here - This is not compatible with female pdmod, requires additional editing - add new layer in base.css--> <<if _penisSize isnot undefined>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1>> <<if playerChastity()>> <img class="layer-penis-chastity anim-idle-2f" @src="_img.penis_chastity" @style="'filter: '+_filters.penis"> <<elseif $player.virginity.penile is true>> <img class="layer-penis anim-idle-2f" @src="_img['penis_virgin' + ($player.ballsExist ? '':'noballs') + _penisSize]" @style="'filter: '+_filters.penis"> <<else>> <img class="layer-penis anim-idle-2f" @src="_img['penis' + ($player.ballsExist ? '':'noballs') + _penisSize]" @style="'filter: '+_filters.penis"> <</if>> <<elseif ($lowerwetstage gt 0 or $worn.lower.type.includes("naked")) and ($underlowerwetstage gt 0 or $worn.under_lower.type.includes("naked"))>> <<if playerChastity()>> <img class="layer-genitals anim-idle-2f" @src="_img.penis_chastity" @style="'filter: '+_filters.penis"> <<elseif $player.virginity.penile is true>> <img class="layer-genitals anim-idle-2f" @src="_img['penis_virgin' + ($player.ballsExist ? '':'noballs') + _penisSize]" @style="'filter: '+_filters.penis"> <<else>> <img class="layer-genitals anim-idle-2f" @src="_img['penis' + ($player.ballsExist ? '':'noballs') + _penisSize]" @style="'filter: '+_filters.penis"> <</if>> <</if>> <</if>> <<if $parasite.nipples.name isnot undefined>> <<switch $parasite.nipples.name>> <<case "urchin">><<set _nippleImage to "chestparasite">> <<case "slime">><<set _nippleImage to "chestslime">> <</switch>> <<if _nippleImage and $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1>> <img class="layer-breasts anim-idle-2f" @src="'img/body/breasts/'+_nippleImage+_breastSize+'.png'"> <<elseif _nippleImage and ($upperwetstage gt 0 or $worn.upper.type.includes("naked")) and ($underupperwetstage gt 0 or $worn.under_upper.type.includes("naked"))>> <img class="layer-breasts anim-idle-2f" @src="'img/body/breasts/'+_nippleImage+_breastSize+'.png'"> <</if>> <</if>> <<if _penisSize isnot undefined and $parasite.penis.name isnot undefined and !playerChastity()>> <<switch $parasite.penis.name>> <<case "urchin">><<set _penisImage to "penisparasite">> <<case "slime">><<set _penisImage to "penisslime">> <</switch>> <<if _penisImage and $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1>> <img class="layer-parasite anim-idle-2f" @src="'img/body/penis/'+_penisImage+_penisSize+'.png'"> <<elseif _penisImage and ($lowerwetstage gt 0 or $worn.lower.type.includes("naked")) and ($underlowerwetstage gt 0 or $worn.under_lower.type.includes("naked"))>> <img class="layer-underParasite anim-idle-2f" @src="'img/body/penis/'+_penisImage+_penisSize+'.png'"> <</if>> <<elseif _penisSize isnot undefined and wearingCondom("player") and !playerChastity()>> <<switch $player.condom.type>> <<case "plain">><<set _penisImage to "condom">> <</switch>> <<if _penisImage and $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1>> <img @class="'layer-parasite anim-idle-2f condom-' + $player.condom.colour.replace(/ /g, '-')" @src="'img/body/penis/'+_penisImage+_penisSize+'.png'"> <<elseif _penisImage and ($lowerwetstage gt 0 or $worn.lower.type.includes("naked")) and ($underlowerwetstage gt 0 or $worn.under_lower.type.includes("naked"))>> <img @class="'layer-underParasite anim-idle-2f condom-' + $player.condom.colour.replace(/ /g, '-')" @src="'img/body/penis/'+_penisImage+_penisSize+'.png'"> <</if>> <</if>> <<if $player.vaginaExist and $parasite.clit.name isnot undefined and !playerChastity()>> <<switch $parasite.clit.name>> <<case "urchin">><<set _clitImage to "clitparasite">> <<case "slime">><<set _clitImage to "clitslime">> <</switch>> <<if _clitImage and $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1>> <img class="layer-parasite" @src="'img/body/'+_clitImage+'.png'"> <<elseif _penisImage and ($lowerwetstage gt 0 or $worn.lower.type.includes("naked")) and ($underlowerwetstage gt 0 or $worn.under_lower.type.includes("naked"))>> <img class="layer-underParasite" @src="'img/body/'+_clitImage+'.png'"> <</if>> <</if>> <</if>> </div> <</widget>> <<widget "faceimg">> <<set _diagram = _args[0] ? 1 : 0>> <<set _animIdle = _diagram ? "" : "anim-idle-2f">> <<if $options.tanImgEnabled>> <<set _red = "/red">> <<else>> <<set _red = "">> <</if>> <img @class="'layer-facebase ' + _animIdle" @src="'img/face/' + $facestyle + _red + '/base.png'" @style="'filter: '+_filters.body"> <<if $player.freckles == true and $makeup.concealer != 1>> <img class="layer-freckles freckles" @src="'img/face/' + $facestyle + _red + '/freckles.png'" @style="'filter: '+_filters.body"> <</if>> <!-- Eyes --> <<if ($trauma gte ($traumamax * 0.9) and _diagram is 0) or $possessed>> <<set _iris = "irisempty">> <<set _trauma = "-trauma">> <<else>> <<set _iris = "iris">> <<set _trauma = "">> <</if>> <<if $options.blinkingEnabled and _diagram is 0>> <<set _blink = "eyes-blink" + _trauma>> <<else>> <<set _blink = "">> <</if>> <<if $pain gte 100 and $willpowerpain is 0 and _diagram is 0>> <<set _sclera = "sclerabloodshot">> <<else>> <<set _sclera = "sclera">> <</if>> <<if $options.halfClosedEnabled and ($arousal gte ($arousalmax / 5) * 4 or $orgasmdown gte 1) and _trauma is "" and $pain lt 60 and _diagram is 0 and $eyelidTEST is true or $possessed>> <<set _half = "_halfclosed">> <<else>> <<set _half = "">> <</if>> <<run defineCustomEyeColourStyle()>> /* define Filter: css style for eyes for old renderer */ <<if $possessed>> <<set _colourEye to (["haunt", "despair"].includes($wraith.state) ? "eye-redPossessed" : "eye-bluePossessed")>> <<else>> <<set _colourEye to "">> <<if $passage == "Start">> <<set _colourEyeLeft to "eye-" + $eyeselect>> <<set _colourEyeRight to "eye-" + $eyeselect>> <<script>>T.colourEyeLeft = T.colourEyeLeft.replace(/\s/g, '-')<</script>> <<script>>T.colourEyeRight = T.colourEyeRight.replace(/\s/g, '-')<</script>> <<else>> <<if $makeup.eyelenses.left == 0>> <<set _colourEyeLeft to "eye-" + $leftEyeColour>> <<script>>T.colourEyeLeft = T.colourEyeLeft.replace(/\s/g, '-')<</script>> <<else>> <<set _colourEyeLeft to "eye-" + $makeup.eyelenses.left>> <<script>>T.colourEyeLeft = T.colourEyeLeft.replace(/\s/g, '-')<</script>> <</if>> <<if $makeup.eyelenses.right == 0>> <<set _colourEyeRight to "eye-" + $rightEyeColour>> <<script>>T.colourEyeRight = T.colourEyeRight.replace(/\s/g, '-')<</script>> <<else>> <<set _colourEyeRight to "eye-" + $makeup.eyelenses.right>> <<script>>T.colourEyeRight = T.colourEyeRight.replace(/\s/g, '-')<</script>> <</if>> <</if>> <</if>> <<run defineCustomEyeColourStyle()>> /* define Filter: css style for eyes for old renderer */ <img class="layer-eyes" @src="'img/face/' + $facestyle + _red + '/eyes.png'" @style="'filter: '+_filters.body"> <img class="layer-sclera" @src="'img/face/' + $facestyle + '/' + _sclera + '.png'"> <img @style="_custom_eyelenses_left_style" @class="'layer-iris' + _colourEye + ' left-iris ' + _colourEyeLeft + ' ' + _animIdle" @src="'img/face/' + $facestyle + '/' + _iris + _half + '_left.png'"> <img @style="_custom_eyelenses_right_style" @class="'layer-iris' + _colourEye + ' right-iris ' + _colourEyeRight + ' ' + _animIdle" @src="'img/face/' + $facestyle + '/' + _iris + _half + '_right.png'"> <img @class="'layer-eyelids ' + _blink" @src="'img/face/' + $facestyle + _red + '/eyelids' + _half + '.png'" @style="'filter: '+_filters.body"> <img @class="'layer-lashes ' + _blink" @src="'img/face/' + $facestyle + '/lashes' + _half + '.png'"> <<if _diagram is 0>> <<if $makeup.eyeshadow != 0>> <img @class="'layer-eyelids ' + _blink + ' eyeshadow-' + $makeup.eyeshadow.replace(/ /g, '-')" @src="'img/face/' + $facestyle + '/makeup/eyeshadows' + _half + '.png'"> <</if>> <<if $makeup.mascara != 0>> <img @class="'layer-lashes ' + _blink + ' mascara-' + $makeup.mascara.replace(/ /g, '-')" @src="'img/face/' + $facestyle + '/makeup/mascara' + _half + '.png'"> <</if>> <</if>> <!-- Brows --> <<if $trauma gte $traumamax or $possessed or _diagram is 1>> <<set _brows = "top">> <<elseif $pain gte 60>> <<set _brows = "low">> <<elseif $arousal gte ($arousalmax / 5) * 4 or $orgasmdown gte 1>> <<set _brows = "orgasm">> <<elseif $pain gte 20>> <<set _brows = "mid">> <<else>> <<set _brows = "top">> <</if>> <<if $makeup.browscolour != 0>> <<set _naturalColour = "">> <<set _browsColour = "brows-" + $makeup.browscolour.replace(/ /g, '-')>> <<else>> <<set _naturalColour = "hair-" + $naturalhaircolour.replace(/ /g, '-')>> <<set _browsColour = "colour-hair">> <</if>> <div @class="'layer-brow ' + _naturalColour"> <img @class="_browsColour" @src="'img/face/' + $facestyle + '/brow' + _brows + '.png'"> </div> <!-- Mouth --> <<if $trauma gte $traumamax or _diagram is 1>> <<set _mouth = "neutral">> <<elseif $pain gte 60 or $orgasmdown gte 1 or ($possessed)>> <<set _mouth = "cry">> <<elseif $exposed is 2 and $uncomfortable.nude is true and $dontHide is false or $pain gte 20>> <<set _mouth = "frown">> <<elseif $pain gte 1 or ($exposed is 1 and $uncomfortable.underwear is true) or ($combat is 1 and $consensual isnot 1)>> <<set _mouth = "neutral">> <<else>> <<set _mouth = "smile">> <</if>> <img class="layer-mouth" @src="'img/face/' + $facestyle + _red + '/mouth' + _mouth + '.png'" @style="'filter: ' + _filters.mouth"> <<if $makeup.lipstick != 0 and _diagram is 0>> <img @class="'layer-mouth lipstick-' + $makeup.lipstick.replace(/ /g, '-')" @src="'img/face/' + $facestyle + '/makeup/lipstick_' + _mouth + '.png'"> <</if>> <!-- Don't draw blush or tears on a static diagram --> <<if _diagram is 0>> <!-- Blush --> <<set _blush = Math.min(5, Math.floor($arousal / 2000) + 1)>> <<if _blush lt 2 and $exposed gte 2>> <<set _blush = 2>> <<elseif $arousal lt 100 and $exposed lt 1>> <<set _blush = 0>> <</if>> <<if !$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") and $worn.under_upper.type.includes("naked") and $worn.under_lower.type.includes("naked")>> <<set _blush = 2>> <</if>> <<if _blush gte 1>> <img class="layer-blush" @src="'img/face/' + $facestyle + _red + '/blush' + _blush + '.png'"> <</if>> <!-- Tears --> <<if $pain gte 20>> <img class="layer-tears anim-idle-2f" @src="'img/face/' + $facestyle + '/' + 'tear' + painToTearsLvl($pain) + '.png'"> <<if $makeup.mascara != 0>> <img @class="'layer-lashes ' + _blink + ' mascara-' + $makeup.mascara.replace(/ /g, '-')" @src="'img/face/' + $facestyle + '/' + 'makeup/mascara' + painToTearsLvl($pain) + '.png'"> <</if>> <</if>> <</if>> <<if $passage == "Pharmacy Select Custom Lenses">> <<unset _custom_eyelenses_right_style>> <<unset _custom_eyelenses_left_style>> <</if>> <</widget>>
<<widget "clothesactive">> <<imgOpacity>> <div class="i256"> <<if $worn.head.name isnot "naked" and !$worn.head.hood>> <img @class="'layer-sexsleeve colour-head anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/head/'+$worn.head.variable+'/full.png'" @style="$worn.head.colourCustom"> <<if $worn.head.accessory is 1>> <img @class="'layer-sexsleeve colour-head_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/head/'+$worn.head.variable+'/acc.png'" @style="$worn.head.accessory_colourCustom"> <</if>> <<if $worn.head.back_img is 1 or $worn.head.back_img is "combat">> <img @class="'layer-sexlower colour-head anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/head/'+$worn.head.variable+'/back.png'" @style="$worn.head.colourCustom"> <</if>> <</if>> <<if $worn.upper.set is $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set $_skirtOutfit to true>> <<if $worn.upper.name is "large towel">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/largetowel/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "waist">> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt_down is 1>> <img @class="'layer-sexlower colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/dress/doggyactive_dress_thighs.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt_down is 0>> <img @class="'layer-sexlower colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/dress/doggyactive_dress_hips.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $worn.upper.state is "midriff">> <img @class="'layer-sexlower colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/dress/doggyactive_dress_tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img @class="'layer-sexlower colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/dress/doggyactive_dress_neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> /* _feet_pos is set to "footjob_" for doggy images, but "feetjob_" for missionary images. */ <<if $feetuse is "penis" or $feetstate is "tentacles">> <<set _feet_pos to "footjob_">> <<else>> <<set _feet_pos to "">> <</if>> <<if $worn.lower.name is "gym bloomers">> <<if $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.name is "denim shorts">> <<if $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/denimshorts/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/denimshorts/thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/denimshorts/knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <<if _feet_pos is "footjob_">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/denimshorts/ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/denimshorts/footjob_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.name is "booty jorts">> <<if $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bootyjorts/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bootyjorts/thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bootyjorts/knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <<if _feet_pos is "footjob_">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bootyjorts/footjob_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bootyjorts/ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif !$worn.lower.type.includes("naked") and !$_skirtOutfit>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <<if $worn.lower.skirt_down is 0 and $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/skirt/doggyactive_skirt_waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.vagina_exposed is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/skirt/doggyactive_skirt_waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/skirt/doggyactive_skirt_hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/skirt/doggyactive_skirt_thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/skirt/doggyactive_skirt_knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/skirt/doggyactive_skirt_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<else>> <<if $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'waist.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'thighs.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'knees.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'ankles.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.state is "waist">> <<if $worn.lower.name is "jeans">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'waist.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'waist.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'waist.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "thighs">> <<if $worn.lower.name is "jeans">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'thighs.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'thighs.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'thighs.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "knees">> <<if $worn.lower.name is "jeans">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'knees.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'knees.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'knees.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "ankles">> <<if $worn.lower.name is "jeans">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'ankles.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'ankles.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'ankles.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <</if>> <<if $worn.under_lower.name is "bikini bottoms">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/bikinibottom/doggyactive_bikinibottom_' + $worn.under_lower.state + '.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.name is "cow panties">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/cowpanties/waist.png"> <<elseif $worn.under_lower.type.includes("strap-on")>> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/strapon/doggyactive_strapon_' + $worn.under_lower.state + '.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.name is "thong" or $worn.under_lower.name is "microkini bottom">> <<if $worn.under_lower.state is "waist">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/thong/waist.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "totheside">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/thong/totheside.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "thighs">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/thong/thighs.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "knees">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/thong/knees.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "ankles">> <<if _feet_pos is "footjob_">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/thong/footjob_ankles.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/thong/ankles.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $worn.under_lower.state is "waist" or $worn.under_lower.state is "totheside">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_hips.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "thighs">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_thighs.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "knees">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_knees.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "ankles">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_ankles.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <<if $worn.upper.name is "tank top">> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_boundwaist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_boundneck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<elseif $worn.upper.name is "tube top" or $worn.upper.name is "towel top">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tit = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tit = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tit = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tit = "large">> <<else>> <<set _tit = "huge">> <</if>> <</if>> <<set _tubeimg = $worn.upper.state_top>> <<if _tubeimg is "ankles" and ($feetuse is "penis" or $feetstate is "tentacle")>> <<set _tubeimg += "feetjob">> <</if>> <<if (_tubeimg is "chest" or _tubeimg is "midriff") and ($leftarm is "bound" or $leftarm is "grappled" or $leftarm is "behind")>> <<set _tubeimg += "bound">> <</if>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/tubetop/'+_tubeimg+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<if _tit>> <img @class="'layer-sexbreastupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/tubetop/'+_tit+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $worn.upper.name is "gym shirt">> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img @class="'layer-sexupper colour-upper_acc anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/waist_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img @class="'layer-sexupper colour-upper_acc anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/neck_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/boundwaist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img @class="'layer-sexupper colour-upper_acc anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/boundwaist_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/boundneck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img @class="'layer-sexupper colour-upper_acc anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/gymshirt/boundneck_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<elseif $worn.upper.name is "virgin killer">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/virginkiller/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/sweater/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/long turtleneck/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "turtleneck">> <<switch $player.perceived_breastsize>> <<case 8 9 10 11 12>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '4') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 5 6 7>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '3') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 3 4>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '2') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 1 2>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '1') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 0>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '0') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</switch>> <<elseif !$worn.upper.type.includes("naked") and !$_skirtOutfit>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_boundwaist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_boundneck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <</if>> <<if setup.clothes.upper[clothesIndex('upper', $worn.upper)].sleeve_img is 1 and $worn.upper.name isnot "t-shirt">> <<if $worn.upper.name is "turtleneck">> <<set _sleeves to "turtleneck">> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater" or $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <<set _sleeves to "sweatersleeves">> <<else>> <<set _sleeves to "sleeves">> <</if>> <<if $leftarm is "bound" or $leftarm is "grappled" or $leftarm is "behind">> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve_bound.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $leftarm is "penis" or $leftarmstate is "tentacle">> <<if $enemytype is "beast">> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve_handjob_beast.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<if $rightarm is "penis" or $rightarmstate is "tentacle">> <<if $enemytype is "beast">> <img @class="'layer-sexsleeveback colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/right_sleeve_handjob_beast.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexsleeveback colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/right_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $rightarm isnot "bound" and $rightarm isnot "grappled" and $rightarm isnot "behind">> <img @class="'layer-sexsleeveback colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/right_sleeve.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if $worn.under_upper.name is "bikini top">> <<if $worn.under_upper.state isnot "chest" and $worn.under_upper.state isnot "midriff">> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bikinitop/doggyactive_bikinitop_thorax.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/bikinitop/doggyactive_bikinitop_'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<elseif $worn.under_upper.name is "cow bra">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tit = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tit = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tit = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tit = "large">> <<else>> <<set _tit = "huge">> <</if>> <</if>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/cowbra/'+_tit+'.png'"> <<elseif $worn.under_upper.name is "tape">> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexbreastunderupper colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/tape/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "mesh shirt">> <<if $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexbreastunderupper colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/mesh/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<if $worn.under_upper.state is "midriff">> <<set _state to "midriff">> <<else>> <<set _state to "neck">> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<set _bound to "">> <<else>> <<set _bound to "bound">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/mesh/doggyactive_mesh_'+_bound+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "chest wrap">> <<if $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/chestwrap/none.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/chestwrap/tiny.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/chestwrap/small.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/chestwrap/large.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/chestwrap/huge.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <</if>> <<elseif $worn.under_upper.name is "swim shirt">> <<if $worn.under_upper.state is "midriff" or $worn.under_upper.state is "waist">> <<set _state to "midriff">> <<else>> <<set _state to "neck">> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<set _bound to "">> <<else>> <<set _bound to "bound">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/swimshirt/'+_bound+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "shibari ropes">> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shibari/'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif !$worn.under_upper.type.includes("naked")>> <<if $worn.under_upper.state isnot "chest" and $worn.under_upper.state isnot "midriff">> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/bikinitop/doggyactive_bikinitop_thorax.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/bikinitop/doggyactive_bikinitop_'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <</if>> <<if $worn.face.variable.startsWith("gag")>> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/facewear/gag/full.png" @style="$worn.face.colourCustom"> <<if $worn.face.type.includes("blindfold")>> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/facewear/blindfold/full.png" @style="$worn.face.colourCustom"> <</if>> <<elseif $worn.face.variable.startsWith("muzzle")>> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/facewear/muzzle/full.png" @style="$worn.face.colourCustom"> <<elseif $worn.face.name isnot "naked">> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/facewear/'+$worn.face.variable+'/full.png'" @style="$worn.face.colourCustom"> <<if $worn.face.accessory is 1>> <img @class="'layer-sexunder anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/facewear/'+$worn.face.variable+'/acc.png'"> <</if>> <</if>> <<if $worn.neck.name is "cow bell">> <img @class="'layer-sexunder anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/cow/full.png"> <<elseif $worn.neck.name is "necktie">> <img @class="'layer-sextiedoggy colour-neck anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/tie/neck.png"> <<elseif $worn.neck.name is "scarf">> <img @class="'layer-sexunder colour-neck anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/scarf/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <<elseif $worn.neck.name is "gold choker">> <img @class="'layer-sexunder anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/goldchoker/full.png"> <<elseif $worn.neck.name is "cloth choker">> <img @class="'layer-sexunder colour-neck anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/clothchoker/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <</if>> <<if $worn.hands.name isnot "naked">> <<if $worn.hands.leftImage is 1>> <<if $leftarm is "penis">> <<if $enemytype isnot "beast">> <img @class="'layer-sexunder colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/left handjob.png'" @style="$worn.hands.colourCustom"> <</if>> <<elseif $leftarm is "bound">> <<elseif $leftarm is "grappled">> <<elseif $leftarm is "behind">> <<elseif $leftarmstate is "tentacle">> <<else>> <img @class="'layer-sexunder colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/left hand.png'" @style="$worn.hands.colourCustom"> <</if>> <</if>> <<if $worn.hands.rightImage is 1>> <<if $rightarm is "penis">> <<if $enemytype isnot "beast">> <img @class="'layer-sexBackArm colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/right handjob.png'" @style="$worn.hands.colourCustom"> <</if>> <<elseif $rightarm is "bound">> <<elseif $rightarm is "grappled">> <<elseif $rightarm is "behind">> <<elseif $rightarmstate is "tentacle">> <<else>> <img @class="'layer-sexBackArm colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/right hand.png'" @style="$worn.hands.colourCustom"> <</if>> <</if>> <</if>> <<if $worn.feet.type.includes("heels") or ["light-up trainers"].includes($worn.feet.name)>> <<set _feetjob to ($feetuse is 'penis' ? 'feetjob' : $feetstate is 'tentacle' ? 'feetjob' : 'thighs')>> <<if $worn.feet.colour>> <<set _shoeColour to $worn.feet.colourCustom>> <</if>> <<if $worn.feet.accessory_colour>> <<set _shoeAccColour to $worn.feet.accessory_colourCustom>> <</if>> <img @class="'layer-sexunder colour-feet anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shoes/' + $worn.feet.variable + '/' + _feetjob + '.png'" @style="_shoeColour"> <<if $worn.feet.accessory>> <<if $worn.feet.accessory_colour isnot 0>> <img @class="'layer-sexshoes colour-feet_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shoes/' + $worn.feet.variable + '/' + _feetjob + 'acc.png'" @style="_shoeColour"> <<else>> <img @class="'layer-sexshoes anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/shoes/' + $worn.feet.variable + '/' + _feetjob + 'acc.png'"> <</if>> <</if>> <</if>> <<if !$worn.legs.type.includes("naked")>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _feetjob to "feetjob">> <<else>> <<set _feetjob to "rest">> <</if>> <<if $worn.legs.state is setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base>> <<set _feetposition to "full">> <<else>> <<set _feetposition to "knees">> <</if>> <<if $worn.legs.colour>> <<set _legColour to $worn.legs.colourCustom>> <</if>> <<if $worn.legs.accessory_colour>> <<set _legAccColour to $worn.legs.accessory_colourCustom>> <</if>> <<if setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "waist">> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + '.png'" @style="_legColour"> <<elseif setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "ankles">> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + '.png'" @style="_legColour"> <img @class="'layer-sexskinback colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + '.png'" @style="_legColour"> <<else>> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + '.png'" @style="_legColour"> <img @class="'layer-sexskinback colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + '.png'" @style="_legColour"> <</if>> <<if $worn.legs.accessory>> <<if setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "waist">> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'acc.png'" @style="_legAccColour"> <<elseif setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "ankles">> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + 'acc.png'" @style="_legAccColour"> <img @class="'layer-sexlegsbackacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + 'acc.png'" @style="_legAccColour"> <<else>> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + 'acc.png'" @style="_legAccColour"> <img @class="'layer-sexlegsbackacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + 'acc.png'" @style="_legAccColour"> <</if>> <</if>> <</if>> </div> <</widget>> <<widget "clothesidle">> <<imgOpacity>> <div class="i256"> <<if $worn.head.name isnot "naked" and !$worn.head.hood>> <img class="layer-sexsleeve colour-head anim-idle-2f" @src="'img/sex/doggy/active/head/'+$worn.head.variable+'/full.png'" @style="$worn.head.colourCustom"> <<if $worn.head.accessory is 1>> <img class="layer-sexsleeve colour-head_acc anim-idle-2f" @src="'img/sex/doggy/active/head/'+$worn.head.variable+'/acc.png'" @style="$worn.head.accessory_colourCustom"> <</if>> <<if $worn.head.back_img is 1 or $worn.head.back_img is "combat">> <img class="layer-sexlower colour-head anim-idle-2f" @src="'img/sex/doggy/active/head/'+$worn.head.variable+'/back.png'" @style="$worn.head.colourCustom"> <</if>> <</if>> <<if $worn.upper.set is $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set $_skirtOutfit to true>> <<if $worn.upper.name is "large towel">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/largetowel/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "waist">> <<if $worn.lower.skirt_down is 1>> <img class="layer-sexlower colour-upper anim-idle-2f" src="img/sex/doggy/active/dress/doggyactive_dress_thighs.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.lower.skirt_down is 0>> <img class="layer-sexlower colour-upper anim-idle-2f" src="img/sex/doggy/active/dress/doggyactive_dress_hips.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $worn.upper.state is "midriff">> <img class="layer-sexlower colour-upper anim-idle-2f" src="img/sex/doggy/active/dress/doggyactive_dress_tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img class="layer-sexlower colour-upper anim-idle-2f" src="img/sex/doggy/active/dress/doggyactive_dress_neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if $feetuse is "penis" or $feetstate is "tentacles">> <<set _feet_pos to "footjob_">> <<else>> <<set _feet_pos to "">> <</if>> <<if $worn.lower.name is "towel skirt">> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 0 and $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/lowertowel/doggyactive_towel_skirtup.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/lowertowel/doggyactive_towel_' + $worn.lower.state + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.name is "gym bloomers">> <<if $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/gymbloomers/doggyactive_shorts_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.name is "denim shorts">> <<if $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/denimshorts/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/denimshorts/thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/denimshorts/knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <<if _feet_pos is "footjob_">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/denimshorts/footjob_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/denimshorts/ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.name is "booty jorts">> <<if $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/bootyjorts/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/bootyjorts/thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/bootyjorts/knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <<if _feet_pos is "footjob_">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/bootyjorts/footjob_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/bootyjorts/ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.name is "micro pleated skirt">> <<switch $worn.lower.state>> <<case "waist">> <<if $worn.lower.skirt_down is 0>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/micropleatedskirt/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/micropleatedskirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<case "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/micropleatedskirt/thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<case "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/micropleatedskirt/knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<case "ankles">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/micropleatedskirt/ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</switch>> <<elseif !$worn.lower.type.includes("naked") and !$_skirtOutfit>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <<if $worn.lower.skirt_down is 0 and $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/skirt/doggyactive_skirt_waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.vagina_exposed is 1>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/skirt/doggyactive_skirt_waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/skirt/doggyactive_skirt_hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/skirt/doggyactive_skirt_thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/skirt/doggyactive_skirt_knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/doggy/active/skirt/doggyactive_skirt_ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<else>> <<if $worn.lower.state is "waist">> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'waist.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'thighs.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'knees.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "ankles">> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/longskirt/' + _feet_pos + 'ankles.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.state is "waist">> <<if $worn.lower.name is "jeans">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'waist.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'waist.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'waist.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "thighs">> <<if $worn.lower.name is "jeans">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'thighs.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'thighs.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'thighs.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "knees">> <<if $worn.lower.name is "jeans">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'knees.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'knees.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'knees.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "ankles">> <<if $worn.lower.name is "jeans">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/doggy/active/jeans/' + _feet_pos + 'ankles.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/shorts/' + _feet_pos + 'ankles.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/doggy/active/trousers/' + _feet_pos + 'ankles.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <</if>> <<if $worn.under_lower.name is "bikini bottoms">> <img class="layer-sexunder colour-under_lower anim-idle-2f" @src="'img/sex/doggy/active/bikinibottom/doggyactive_bikinibottom_' + $worn.under_lower.state + '.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.name is "cow panties">> <img class="layer-sexunder colour-under_lower anim-doggy-2f" src="img/sex/doggy/active/cowpanties/waist.png"> <<elseif $worn.under_lower.type.includes("strap-on")>> <img class="layer-sexunder colour-under_lower anim-idle-2f" @src="'img/sex/doggy/active/strapon/doggyactive_strapon_' + $worn.under_lower.state + '.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.name is "thong" or $worn.under_lower.name is "microkini bottom">> <<if $worn.under_lower.state is "waist">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/thong/waist.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "totheside">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/thong/totheside.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "thighs">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/thong/thighs.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "knees">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/thong/knees.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "ankles">> <<if _feet_pos is "footjob_">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/thong/footjob_ankles.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/thong/ankles.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $worn.under_lower.state is "waist" or $worn.under_lower.state is "totheside">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_hips.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "thighs">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_thighs.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "knees">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_knees.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<elseif $worn.under_lower.state is "ankles">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/doggy/active/plainpanties/doggyactive_plainpanties_ankles.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <<if $worn.upper.name is "tube top" or $worn.upper.name is "towel top">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tit = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tit = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tit = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tit = "large">> <<else>> <<set _tit = "huge">> <</if>> <</if>> <<set _tubeimg = $worn.upper.state_top>> <<if _tubeimg is "ankles" and ($feetuse is "penis" or $feetstate is "tentacle")>> <<set _tubeimg += "feetjob">> <</if>> <<if (_tubeimg is "chest" or _tubeimg is "midriff") and ($leftarm is "bound" or $leftarm is "grappled" or $leftarm is "behind")>> <<set _tubeimg += "bound">> <</if>> <img class="layer-sexupper colour-upper" @src="'img/sex/doggy/active/tubetop/'+_tubeimg+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<if _tit>> <img class="layer-sexbreastupper colour-upper" @src="'img/sex/doggy/active/tubetop/'+_tit+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $worn.upper.name is "tank top">> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_boundwaist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/tanktop/doggyactive_tanktop_boundneck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<elseif $worn.upper.name is "gym shirt">> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/gymshirt/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img class="layer-sexupper colour-upper_acc anim-idle-2f" src="img/sex/doggy/active/gymshirt/waist_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/gymshirt/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img class="layer-sexupper colour-upper_acc anim-idle-2f" src="img/sex/doggy/active/gymshirt/neck_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/gymshirt/boundwaist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img class="layer-sexupper colour-upper_acc anim-idle-2f" src="img/sex/doggy/active/gymshirt/boundwaist_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/gymshirt/boundneck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img class="layer-sexupper colour-upper_acc anim-idle-2f" src="img/sex/doggy/active/gymshirt/boundneck_acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<elseif $worn.upper.name is "virgin killer">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/virginkiller/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/sweater/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/long turtleneck/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "turtleneck">> <<switch $player.perceived_breastsize>> <<case 8 9 10 11 12>> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '4') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 5 6 7>> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '3') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 3 4>> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '2') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 1 2>> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '1') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 0>> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/doggy/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' ? ('_' + '0') : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</switch>> <<elseif $worn.upper.name is "tie-front top">> <<if $worn.upper.state is "waist">> <<switch $player.perceived_breastsize>> <<case 8 9 10 11 12>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/doggy/active/tiefronttop/huge.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 5 6 7>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/doggy/active/tiefronttop/large.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 3 4>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/doggy/active/tiefronttop/small.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 1 2>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/doggy/active/tiefronttop/tiny.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 0>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/doggy/active/tiefronttop/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</switch>> <</if>> <<elseif !$worn.upper.type.includes("naked") and !$_skirtOutfit>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<else>> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_boundwaist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/doggy/active/t-shirt/doggyactive_tshirt_boundneck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <</if>> <<if setup.clothes.upper[clothesIndex('upper', $worn.upper)].sleeve_img is 1 and $worn.upper.name isnot "t-shirt">> <<if $worn.upper.name is "turtleneck">> <<set _sleeves to "turtleneck">> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater" or $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <<set _sleeves to "sweatersleeves">> <<else>> <<set _sleeves to "sleeves">> <</if>> <<if $leftarm is "bound" or $leftarm is "grappled" or $leftarm is "behind">> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve_bound.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $leftarm is "penis" or $leftarmstate is "tentacle">> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/left_sleeve.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<if $rightarm is "penis" or $rightarmstate is "tentacle">> <img @class="'layer-sexsleeveback colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/right_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $rightarm isnot "bound" and $rightarm isnot "grappled" and $rightarm isnot "behind">> <img @class="'layer-sexsleeveback colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/doggy/active/' + _sleeves + '/right_sleeve.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if $worn.under_upper.name is "bikini top">> <<if $worn.under_upper.state isnot "chest" and $worn.under_upper.state isnot "midriff">> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/bikinitop/doggyactive_bikinitop_thorax.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_upper anim-idle-2f" @src="'img/sex/doggy/active/bikinitop/doggyactive_bikinitop_'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<elseif $worn.under_upper.name is "cow bra">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tit = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tit = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tit = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tit = "large">> <<else>> <<set _tit = "huge">> <</if>> <</if>> <img class="layer-sexunder colour-under_upper anim-idle-2f" @src="'img/sex/doggy/active/cowbra/'+_tit+'.png'"> <<elseif $worn.under_upper.name is "tape">> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexbreastunderupper colour-under_upper'" @src="'img/sex/doggy/active/tape/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "mesh shirt">> <<if $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexbreastunderupper colour-under_upper'" @src="'img/sex/doggy/active/mesh/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<if $worn.under_upper.state is "midriff">> <<set _state to "midriff">> <<else>> <<set _state to "neck">> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<set _bound to "">> <<else>> <<set _bound to "bound">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-idle-2f'" @src="'img/sex/doggy/active/mesh/doggyactive_mesh_'+_bound+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.under_upper.name is "chest wrap">> <<if $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/chestwrap/none.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/chestwrap/tiny.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/chestwrap/small.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/chestwrap/large.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/chestwrap/huge.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <</if>> <<elseif $worn.under_upper.name is "swim shirt">> <<if $worn.under_upper.state is "midriff" or $worn.under_upper.state is "waist">> <<set _state to "midriff">> <<else>> <<set _state to "neck">> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<set _bound to "">> <<else>> <<set _bound to "bound">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-idle-2f-'+_animspeed" @src="'img/sex/doggy/active/swimshirt/'+_bound+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "shibari ropes">> <img @class="'layer-sexunder colour-under_upper anim-idle-2f-'+_animspeed" @src="'img/sex/doggy/active/shibari/'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif !$worn.under_upper.type.includes("naked")>> <<if $worn.under_upper.state isnot "chest" and $worn.under_upper.state isnot "midriff">> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/doggy/active/bikinitop/doggyactive_bikinitop_thorax.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_upper anim-idle-2f" @src="'img/sex/doggy/active/bikinitop/doggyactive_bikinitop_'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <</if>> <<if $worn.face.variable.startsWith("gag")>> <img @class="'layer-sexunder colour-face anim-idle-2f-'+_animspeed" src="img/sex/doggy/active/facewear/gag/full.png" @style="$worn.face.colourCustom"> <<if $worn.face.type.includes("blindfold")>> <img @class="'layer-sexunder colour-face anim-idle-2f-'+_animspeed" src="img/sex/doggy/active/facewear/blindfold/full.png" @style="$worn.face.colourCustom"> <</if>> <<elseif $worn.face.variable.startsWith("muzzle")>> <img @class="'layer-sexunder colour-face anim-idle-2f-'+_animspeed" src="img/sex/doggy/active/facewear/muzzle/full.png" @style="$worn.face.colourCustom"> <<elseif $worn.face.name isnot "naked">> <img @class="'layer-sexunder colour-face anim-idle-2f-'+_animspeed" @src="'img/sex/doggy/active/facewear/'+$worn.face.variable+'/full.png'" @style="$worn.face.colourCustom"> <<if $worn.face.accessory is 1>> <img @class="'layer-sexunder anim-idle-2f-'+_animspeed" @src="'img/sex/doggy/active/facewear/'+$worn.face.variable+'/acc.png'"> <</if>> <</if>> <<if $worn.neck.name is "cow bell">> <img class="layer-sexunder anim-idle-2f" src="img/sex/doggy/active/cow/full.png"> <<elseif $worn.neck.name is "necktie">> <img class="layer-sextiedoggy colour-neck" src="img/sex/doggy/active/tie/neck.png" style="transform: translateX(-75%);"> <<elseif $worn.neck.name is "scarf">> <img class="layer-sexunder colour-neck anim-idle-2f" src="img/sex/doggy/active/scarf/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <<elseif $worn.neck.name is "gold choker">> <img class="layer-sexunder anim-idle-2f" src="img/sex/doggy/active/goldchoker/full.png"> <<elseif $worn.neck.name is "cloth choker">> <img class="layer-sexunder colour-neck anim-idle-2f" src="img/sex/doggy/active/clothchoker/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <</if>> <<if $worn.hands.name isnot "naked">> <<if $worn.hands.leftImage is 1>> <<if $leftarm is "penis">> <img class="layer-sexunder colour-hands anim-idle-2f" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/left handjob.png'" @style="$worn.hands.colourCustom"> <<elseif $leftarm is "bound">> <<elseif $leftarm is "grappled">> <<elseif $leftarm is "behind">> <<elseif $leftarmstate is "tentacle">> <<else>> <img class="layer-sexunder colour-hands anim-idle-2f" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/left hand.png'" @style="$worn.hands.colourCustom"> <</if>> <</if>> <<if $worn.hands.rightImage is 1>> <<if $rightarm is "penis">> <img class="layer-sexBackArm colour-hands anim-idle-2f" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/right handjob.png'" @style="$worn.hands.colourCustom"> <<elseif $rightarm is "bound">> <<elseif $rightarm is "grappled">> <<elseif $rightarm is "behind">> <<elseif $rightarmstate is "tentacle">> <<else>> <img class="layer-sexBackArm colour-hands anim-idle-2f" @src="'img/sex/doggy/active/hands/'+$worn.hands.variable+'/right hand.png'" @style="$worn.hands.colourCustom"> <</if>> <</if>> <</if>> <<if $worn.feet.type.includes("heels") or ["light-up trainers"].includes($worn.feet.name)>> <<set _feetjob to ($feetuse is 'penis' ? 'feetjob' : 'thighs')>> <<if $worn.feet.colour>> <<set _shoeColour to $worn.feet.colourCustom>> <</if>> <<if $worn.feet.accessory_colour>> <<set _shoeAccColour to $worn.feet.accessory_colourCustom>> <</if>> <img class="layer-sexunder colour-feet anim-idle-2f" @src="'img/sex/doggy/active/shoes/' + $worn.feet.variable + '/' + _feetjob + '.png'" @style="_shoeColour"> <<if $worn.feet.accessory>> <<if $worn.feet.accessory_colour isnot 0>> <img class="layer-sexshoes colour-feet_acc anim-idle-2f" @src="'img/sex/doggy/active/shoes/' + $worn.feet.variable + '/' + _feetjob + 'acc.png'" @style="_shoeColour"> <<else>> <img class="layer-sexshoes anim-idle-2f" @src="'img/sex/doggy/active/shoes/' + $worn.feet.variable + '/' + _feetjob + 'acc.png'"> <</if>> <</if>> <</if>> <<if !$worn.legs.type.includes("naked")>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _feetjob to "feetjob">> <<else>> <<set _feetjob to "rest">> <</if>> <<if $worn.legs.state is setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base>> <<set _feetposition to "full">> <<else>> <<set _feetposition to "knees">> <</if>> <<if $worn.legs.colour>> <<set _legColour to $worn.legs.colourCustom>> <</if>> <<if $worn.legs.accessory_colour>> <<set _legAccColour to $worn.legs.accessory_colourCustom>> <</if>> <<if setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "waist">> <img class="layer-sexlegs colour-legs anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + '.png'" @style="_legColour"> <<elseif setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "ankles">> <img class="layer-sexlegs colour-legs anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + '.png'" @style="_legColour"> <img class="layer-sexskinback colour-legs anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + '.png'" @style="_legColour"> <<else>> <img class="layer-sexlegs colour-legs anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + '.png'" @style="_legColour"> <img class="layer-sexskinback colour-legs anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + '.png'" @style="_legColour"> <</if>> <<if $worn.legs.accessory>> <<if setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "waist">> <img class="layer-sexlegsacc colour-legs_acc anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'acc.png'" @style="_legAccColour"> <<elseif setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "ankles">> <img class="layer-sexlegsacc colour-legs_acc anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + 'acc.png'" @style="_legAccColour"> <img class="layer-sexlegsbackacc colour-legs_acc anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + 'acc.png'" @style="_legAccColour"> <<else>> <img class="layer-sexlegsacc colour-legs_acc anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + 'acc.png'" @style="_legAccColour"> <img class="layer-sexlegsbackacc colour-legs_acc anim-doggy-2f" @src="'img/sex/doggy/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + 'acc.png'" @style="_legAccColour"> <</if>> <</if>> <</if>> </div> <</widget>> <<widget "clothesidlemissionary">> <<imgOpacity>> <<leg_position>> <div class="i256"> <<if $worn.head.name isnot "naked" and !$worn.head.hood>> <img class="layer-sexsleeve colour-head anim-idle-2f" @src="'img/sex/missionary/active/head/'+$worn.head.variable+'/full.png'" @style="$worn.head.colourCustom"> <<if $worn.head.accessory is 1>> <img class="layer-sexsleeve colour-head_acc anim-idle-2f" @src="'img/sex/missionary/active/head/'+$worn.head.variable+'/acc.png'" @style="$worn.head.accessory_colourCustom"> <</if>> <<if $worn.head.back_img is 1 or $worn.head.back_img is "combat">> <img class="layer-sexupper colour-head anim-idle-2f" @src="'img/sex/missionary/active/head/'+$worn.head.variable+'/back.png'" @style="$worn.head.colourCustom"> <</if>> <</if>> <<if !$worn.upper.type.includes("naked") and !["gym shirt","tube top","towel top"].includes($worn.upper.name)>> <<if $worn.upper.name is "turtleneck" and $worn.upper.state is "chest">> <<elseif $player.perceived_breastsize is 0>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 2>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/tiny.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 4>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/small.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 6>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/large.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/huge.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if !$worn.under_upper.type.includes("naked") and $worn.under_upper.state_top is setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_top_base and $worn.under_upper.name isnot "chest wrap" and $worn.under_upper.name isnot "mesh shirt" and $worn.under_upper.name isnot "tape">> <<if $worn.upper.name is "turtleneck" and $worn.upper.state is "midriff">> <<elseif $player.perceived_breastsize is 0>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/none.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize lte 2>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/tiny.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize lte 4>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/small.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize lte 6>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/large.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/idle/breastcover/huge.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <</if>> <<if $worn.upper.set is $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set $_skirtOutfit to true>> <<if $worn.upper.name is "large towel">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/missionary/active/largetowel/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "waist">> <<if $worn.lower.skirt_down is 1>> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/down.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.skirt_down is 0>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/top/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "midriff">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/top/tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/neck.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/top/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<if $leftarm is "penis" or $leftarmstate is "tentacle">> <</if>> <<if $rightarm is "penis" or $rightarmstate is "tentacle">> <</if>> <</if>> <<if $worn.upper.name is "tie-front top">> <<if $worn.upper.state is "waist">> <<switch $player.perceived_breastsize>> <<case 8 9 10 11 12>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/missionary/active/tiefronttop/huge.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 5 6 7>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/missionary/active/tiefronttop/large.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 3 4>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/missionary/active/tiefronttop/small.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 1 2>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/missionary/active/tiefronttop/tiny.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<case 0>> <img class="layer-sexbasefront colour-upper anim-idle-2f" src="img/sex/missionary/active/tiefronttop/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</switch>> <</if>> <<elseif $worn.upper.name is "gym shirt">> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "midriff">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<if $player.perceived_breastsize is 0>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 2>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/tiny.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 4>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/small.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 6>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/large.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/active/gymshirt/huge.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $worn.upper.name is "virgin killer">> <img class="layer-sexupper colour-upper anim-idle-2f-" @src="'img/sex/missionary/active/virginkiller/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/missionary/active/sweater/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/missionary/active/long turtleneck/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "turtleneck">> <img class="layer-sexupper colour-upper anim-idle-2f" @src="'img/sex/missionary/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' and $player.perceived_breastsize >= 8 ? '_huge' : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "tube top" or $worn.upper.name is "towel top">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tubeimg = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tubeimg = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tubeimg = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tubeimg = "large">> <<else>> <<set _tubeimg = "huge">> <</if>> <<set _anim = "">> <<else>> <<set _tubeimg = $worn.upper.state_top>> <<set _anim = " anim-idle-2f">> <</if>> <<if ($anususe is "penis" or _leg_position is "up") and ["ankles","knees","thighs"].includes(_tubeimg)>> <<set _tubeimg += "up">> <</if>> <img @class="'layer-sexupper colour-upper'+_anim" @src="'img/sex/missionary/active/tubetop/'+_tubeimg+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif !$worn.upper.type.includes("naked") and !$_skirtOutfit>> <<if $worn.upper.state is "waist">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/top/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "midriff">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/top/tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img class="layer-sexupper colour-upper anim-idle-2f" src="img/sex/missionary/idle/top/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if setup.clothes.upper[clothesIndex('upper', $worn.upper)].sleeve_img is 1 and $worn.upper.name isnot "t-shirt">> <<if $worn.upper.name is "turtleneck">> <<set _sleeves to "turtleneck">> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater" or $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <<set _sleeves to "sweatersleeves">> <<else>> <<set _sleeves to "sleeves">> <</if>> <<if ($leftarm is "bound" or $leftarm is "grappled" or $leftarm is "behind") and ($rightarm is "bound" or $rightarm is "grappled" or $rightarm is "behind")>> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/both_sleeves_bound.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <<if $leftarm is "penis" or $leftarmstate is "tentacle">> <img @class="'layer-sexsleeveback colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/left_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<if $rightarm is "penis" or $rightarmstate is "tentacle">> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif ($rightarm is "bound" or $rightarm is "grappled" or $rightarm is "behind") and $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve_bound.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $enemytype is "beast" and $monster isnot 1 and _stanceCheck is "top" and $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve_stroke.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexsleeve colour-upper anim-doggy-2f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <</if>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _feet_pos to "_feetjob">> <<elseif _leg_position is "up">> <<set _feet_pos to "_up">> <<else>> <<set _feet_pos to "_down">> <</if>> <<if $worn.lower.name is "micro pleated skirt" and $debug is 1>> <<switch $worn.lower.state>> <<case "waist">> <<if $worn.lower.skirt_down is 0>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/micropleatedskirt/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/micropleatedskirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<case "thighs">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/micropleatedskirt/thighs.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<case "knees">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/micropleatedskirt/knees.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<case "ankles">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/micropleatedskirt/ankles.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<case "midriff">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/micropleatedskirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</switch>> <<elseif $worn.lower.name is "gym bloomers">> <<if $worn.lower.state is "waist">> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/gymbloomers/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/gymbloomers/waistdown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<else>> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/gymbloomers/ankle.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/active/gymbloomers/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.name is "denim shorts">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/missionary/active/denimshorts/' + $worn.lower.state + _feet_pos + '.png'"> <<elseif $worn.lower.name is "booty jorts">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/missionary/active/bootyjorts/' + $worn.lower.state + _feet_pos + '.png'"> <<elseif !$worn.lower.type.includes("naked") and $worn.upper.set isnot $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <<if $worn.lower.state is "waist">> <<if $worn.lower.skirt_down is 1>> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/down.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.skirt_down is 0>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "midriff">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "chest">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/neck.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" src="img/sex/missionary/idle/skirt/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/missionary/active/longskirt/' + $worn.lower.state + _feet_pos + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif !$worn.lower.type.includes("naked") and !$_skirtOutfit>> <<if $worn.lower.name is "jeans">> <img class="layer-sexlower anim-idle-2f" @src="'img/sex/missionary/active/jeans/' + $worn.lower.state + _feet_pos + '.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/missionary/active/shorts/' + $worn.lower.state + _feet_pos + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img class="layer-sexlower colour-lower anim-idle-2f" @src="'img/sex/missionary/active/trousers/' + $worn.lower.state + _feet_pos + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<if $worn.under_lower.name is "thong" or $worn.under_lower.name is "microkini bottom">> <<if $worn.under_lower.state is "waist" or $worn.under_lower.state is "totheside">> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/active/thong/waist.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/idle/thong/waistdown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<else>> <<if $anususe is "penis" or $vaginause is "penis" or _leg_position is "up">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/active/thong/ankle.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/active/thong/ankledown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.under_lower.name is "cow panties">> <img class="layer-sexunder colour-under_lower anim-doggy-2f" src="img/sex/missionary/active/cowpanties/waist.png"> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $worn.under_lower.state is "waist" or $worn.under_lower.state is "totheside">> <<if $anususe is "penis" or _leg_position is "up">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/idle/panties/waist.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/idle/panties/waistdown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<else>> <<if $anususe is "penis" or $vaginause is "penis" or _leg_position is "up">> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/idle/panties/ankle.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img class="layer-sexunder colour-under_lower anim-idle-2f" src="img/sex/missionary/idle/panties/ankledown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <</if>> <<if $worn.under_upper.name is "chest wrap" and $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/active/chestwrap/none.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/active/chestwrap/tiny.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/active/chestwrap/small.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/active/chestwrap/large.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <img class="layer-sexunder colour-under_upper anim-idle-2f" src="img/sex/missionary/active/chestwrap/huge.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<elseif $worn.under_upper.name is "tape">> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexunder colour-under_upper'" @src="'img/sex/missionary/active/tape/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "mesh shirt">> <<if $worn.under_upper.state is "midriff">> <<set _state to "midriff">> <<else>> <<set _state to "neck">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-idle-2f'" @src="'img/sex/missionary/active/mesh/'+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _upperOpacity : '')"> <<if $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexunder colour-under_upper'" @src="'img/sex/missionary/active/mesh/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<elseif $worn.under_upper.name is "cow bra">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tit = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tit = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tit = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tit = "large">> <<else>> <<set _tit = "huge">> <</if>> <</if>> <img class="layer-sexunder colour-under_upper anim-idle-2f" @src="'img/sex/missionary/active/cowbra/'+_tit+'.png'"> <<elseif $worn.under_upper.name is "swim shirt">> <<if $worn.under_upper.state is "waist">> <<set _state to "waist">> <<elseif $worn.under_upper.state is "midriff">> <<set _state to "midriff">> <<else>> <<set _state to "chest">> <</if>> <img class="layer-sexunder colour-under_upper anim-idle-2f" @src="'img/sex/missionary/active/swimshirt/'+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "shibari ropes">> <img class="layer-sexunder colour-under_upper anim-idle-2f" @src="'img/sex/missionary/active/shibari/'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif !$worn.under_upper.type.includes("naked")>> <img class="layer-sexskin colour-under_upper anim-idle-2f" src="img/sex/missionary/idle/bra/bra.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<if $worn.face.variable.startsWith("gag")>> <img class="layer-sexunder colour-face anim-idle-2f" src="img/sex/missionary/active/facewear/gag/full.png" @style="$worn.face.colourCustom"> <<if $worn.face.type.includes("blindfold")>> <img class="layer-sexunder colour-face anim-idle-2f" src="img/sex/missionary/active/facewear/blindfold/full.png" @style="$worn.face.colourCustom"> <</if>> <<elseif $worn.face.variable.startsWith("muzzle")>> <img class="layer-sexunder colour-face anim-idle-2f" src="img/sex/missionary/active/facewear/muzzle/full.png" @style="$worn.face.colourCustom"> <<elseif $worn.face.name isnot "naked">> <img class="layer-sexunder colour-face anim-idle-2f" @src="'img/sex/missionary/active/facewear/'+$worn.face.variable+'/full.png'" @style="$worn.face.colourCustom"> <<if $worn.face.accessory is 1>> <img class="layer-sexunder anim-idle-2f" @src="'img/sex/missionary/active/facewear/'+$worn.face.variable+'/acc.png'"> <</if>> <</if>> <<if $worn.neck.name is "cow bell">> <img class="layer-sexunder anim-idle-2f" src="img/sex/missionary/active/cow/full.png"> <<elseif $worn.neck.name is "necktie">> <img class="layer-sextiemissionary colour-neck" src="img/sex/missionary/active/tie/neck.png"> <<elseif $worn.neck.name is "scarf">> <img class="layer-sexunder colour-neck anim-idle-2f" src="img/sex/missionary/active/scarf/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <<elseif $worn.neck.name is "gold choker">> <img class="layer-sexunder anim-idle-2f" src="img/sex/missionary/active/goldchoker/full.png"> <<elseif $worn.neck.name is "cloth choker">> <img class="layer-sexunder colour-neck anim-idle-2f" src="img/sex/missionary/active/clothchoker/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <</if>> <<if $worn.hands.name isnot "naked">> <<if $worn.hands.leftImage is 1>> <<if $leftarm is "penis">> <img class="layer-sexunder colour-hands anim-idle-2f" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/left handjob.png'" @style="$worn.hands.colourCustom"> <<elseif $leftarm is "bound">> <<elseif $leftarm is "grappled">> <<elseif $leftarm is "behind">> <<elseif $leftarmstate is "tentacle">> <<else>> <</if>> <</if>> <<if $worn.hands.rightImage is 1>> <<if $rightarm is "penis">> <img class="layer-sexhands colour-hands anim-idle-2f" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/right handjob.png'" @style="$worn.hands.colourCustom"> <<elseif $rightarm is "bound">> <<elseif $rightarm is "grappled">> <<elseif $rightarm is "behind">> <<elseif $rightarmstate is "tentacle">> <<else>> <img class="layer-sexhands colour-hands anim-idle-2f" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/right arm.png'" @style="$worn.hands.colourCustom"> <</if>> <</if>> <</if>> <<if $worn.feet.type.includes("heels") or ["light-up trainers", "ankle cuffs", "ball and chain"].includes($worn.feet.name)>> <<set _legl to ((_leg_position is "up") ? 'legl' : 'legldown')>> <<set _legr to ((_leg_position is "up") ? 'legr' : 'legrdown')>> <<if $worn.feet.colour>> <<set _shoeColour to $worn.feet.colourCustom>> <</if>> <<if $worn.feet.accessory_colour>> <<set _shoeAccColour to $worn.feet.accessory_colourCustom>> <</if>> <img class="layer-sexbaseoverlay colour-feet" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legl + '.png'" @style="_shoeColour"> <img class="layer-sexunder colour-feet" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legr + '.png'" @style="_shoeColour"> <<if $worn.feet.accessory>> <<if $worn.feet.accessory_colour isnot 0>> <img class="layer-sexbaseoverlay colour-feet_acc" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legl + 'acc.png'" @style="_shoeAccColour"> <img class="layer-sexshoes colour-feet_acc" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legr + 'acc.png'" @style="_shoeAccColour"> <<else>> <img class="layer-sexbaseoverlay" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legl + 'acc.png'"> <img class="layer-sexshoes" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legr + 'acc.png'"> <</if>> <</if>> <<if $worn.feet.name is "ankle cuffs">> <<if _leg_position is "up">> <img class="layer-sexbaseoverlay" @src="'img/sex/missionary/active/shoes/anklecuffs/acc_both_up.png'"> <<else>> <img class="layer-sexbaseoverlay" @src="'img/sex/missionary/active/shoes/anklecuffs/acc_both_down.png'"> <</if>> <</if>> <</if>> <<if !$worn.legs.type.includes("naked")>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _feetjob to "feetjob">> <<elseif _leg_position is "up">> <<set _feetjob to "up">> <<else>> <<set _feetjob to "down">> <</if>> <<if $worn.legs.state is setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base>> <<set _feetposition to "full">> <<else>> <<set _feetposition to "knees">> <</if>> <<if $worn.legs.colour>> <<set _legColour to $worn.legs.colourCustom>> <</if>> <<if $worn.legs.accessory_colour>> <<set _legAccColour to $worn.legs.accessory_colourCustom>> <</if>> <<if setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "waist">> <img class="layer-sexlegs colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + '.png'" @style="_legColour"> <<elseif setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "ankles">> <<if _feetjob is "feetjob">> <img class="layer-sexlegs colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + '.png'" @style="_legColour"> <<else>> <img class="layer-sexlegsback colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + '.png'" @style="_legColour"> <img class="layer-sexlegs colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + '.png'" @style="_legColour"> <</if>> <<else>> <<if _feetjob is "feetjob">> <img class="layer-sexlegs colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + '.png'" @style="_legColour"> <<else>> <img class="layer-sexlegsback colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + '.png'" @style="_legColour"> <img class="layer-sexlegs colour-legs anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + '.png'" @style="_legColour"> <</if>> <</if>> <<if $worn.legs.accessory>> <<if setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "waist">> <img class="layer-sexlegsbackacc colour-legs_acc anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'acc.png'" @style="_legAccColour"> <<elseif setup.clothes.legs[clothesIndex('legs', $worn.legs)].state_base is "ankles">> <img class="layer-sexlegsbackacc colour-legs_acc anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + 'acc.png'" @style="_legAccColour"> <img class="layer-sexlegsacc colour-legs_acc anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + 'acc.png'" @style="_legAccColour"> <<else>> <img class="layer-sexlegsbackacc colour-legs_acc anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'left' + 'acc.png'" @style="_legAccColour"> <img class="layer-sexlegsacc colour-legs_acc anim-missionary-2f" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _feetjob + 'right' + 'acc.png'" @style="_legAccColour"> <</if>> <</if>> <</if>> </div> <</widget>> <<widget "clothesactivemissionary">> <<imgOpacity>> <div class="i256"> <<if $worn.head.name isnot "naked" and !$worn.head.hood>> <img @class="'layer-sexsleeve colour-head anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/head/'+$worn.head.variable+'/full.png'" @style="$worn.head.colourCustom"> <<if $worn.head.accessory is 1>> <img @class="'layer-sexsleeve colour-head_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/head/'+$worn.head.variable+'/acc.png'" @style="$worn.head.accessory_colourCustom"> <</if>> <<if $worn.head.back_img is 1 or $worn.head.back_img is "combat">> <img @class="'layer-sexupper colour-head anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/head/'+$worn.head.variable+'/back.png'" @style="$worn.head.colourCustom"> <</if>> <</if>> <<if !$worn.upper.type.includes("naked") and !["gym shirt","tube top","towel top"].includes($worn.upper.name)>> <<if $worn.upper.name is "turtleneck" and $worn.upper.state is "chest">> <<elseif $player.perceived_breastsize is 0>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 2>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/tiny.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 4>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/small.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 6>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/large.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/huge.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if !$worn.under_upper.type.includes("naked") and $worn.under_upper.state_top is setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_top_base and $worn.under_upper.name isnot "chest wrap" and $worn.under_upper.name isnot "mesh shirt" and $worn.under_upper.name isnot "tape">> <<if $worn.upper.name is "turtleneck" and $worn.upper.state is "midriff">> <<elseif $player.perceived_breastsize is 0>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/none.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize lte 2>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/tiny.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize lte 4>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/small.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize lte 6>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/large.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/huge.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <</if>> <<if $worn.upper.set is $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set $_skirtOutfit to true>> <<if $worn.upper.name is "large towel">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/largetowel/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "waist">> <<if $worn.lower.skirt_down is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.skirt_down is 0>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/top/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "midriff">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/top/tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/neck.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/top/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/ankle.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<if $leftarm is "penis" or $leftarmstate is "tentacle">> <</if>> <<if $rightarm is "penis" or $rightarmstate is "tentacle">> <</if>> <</if>> <<if $worn.upper.name is "gym shirt">> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "midriff">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/acc.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<if $player.perceived_breastsize is 0>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 2>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/tiny.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 4>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/small.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $player.perceived_breastsize lte 6>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/large.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymshirt/huge.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<elseif $worn.upper.name is "virgin killer">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/virginkiller/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/sweater/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/long turtleneck/' + $worn.upper.state + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "turtleneck">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/turtleneck/' + $worn.upper.state + ($worn.upper.state is 'chest' and $player.perceived_breastsize >= 8 ? '_huge' : '') + '.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.name is "tube top" or $worn.upper.name is "towel top">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tubeimg = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tubeimg = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tubeimg = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tubeimg = "large">> <<else>> <<set _tubeimg = "huge">> <</if>> <<else>> <<set _tubeimg = $worn.upper.state_top>> <</if>> <<if ($anususe is "penis" or _leg_position is "up") and ["ankles","knees","thighs"].includes(_tubeimg)>> <<set _tubeimg += "up">> <</if>> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/tubetop/'+_tubeimg+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif !$worn.upper.type.includes("naked") and !$_skirtOutfit>> <<if $worn.upper.state is "waist">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/top/waist.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "midriff">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/top/tummy.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $worn.upper.state is "chest">> <img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/top/neck.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if setup.clothes.upper[clothesIndex('upper', $worn.upper)].sleeve_img is 1 and $worn.upper.name isnot "t-shirt">> <<if $worn.upper.name is "turtleneck">> <<set _sleeves to "turtleneck">> <<elseif $worn.upper.name is "sweater" or $worn.upper.name is "girl's sweater" or $worn.upper.name is "cable knit turtleneck" or $worn.upper.name is "turtleneck jumper">> <<set _sleeves to "sweatersleeves">> <<else>> <<set _sleeves to "sleeves">> <</if>> <<if ($leftarm is "bound" or $leftarm is "grappled" or $leftarm is "behind") and ($rightarm is "bound" or $rightarm is "grappled" or $rightarm is "behind")>> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/both_sleeves_bound.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <<if $leftarm is "penis" or $leftarmstate is "tentacle">> <img @class="'layer-sexsleeveback colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/left_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <<if $rightarm is "penis" or $rightarmstate is "tentacle">> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve_handjob.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif ($rightarm is "bound" or $rightarm is "grappled" or $rightarm is "behind") and $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve_bound.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<elseif $enemytype is "beast" and $monster isnot 1 and _stanceCheck is "top" and $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve_stroke.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <<else>> <img @class="'layer-sexsleeve colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/' + _sleeves + '/right_sleeve.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <</if>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _feet_pos to "_feetjob">> <<elseif $worn.lower.state is "knees">> <<set _feet_pos to "_down">> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<set _feet_pos to "_left">> <<else>> <<set _feet_pos to "_up">> <</if>> <<if $worn.lower.name is "micro pleated skirt">> <<if $worn.lower.state is "waist">> <<if $worn.lower.skirt_down is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/micropleatedskirt/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.skirt_down is 0>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/micropleatedskirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif $worn.lower.state is "midriff">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/micropleatedskirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "chest">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/micropleatedskirt/neck.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/micropleatedskirt/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/micropleatedskirt/ankle.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.name is "gym bloomers">> <<if $worn.lower.state is "waist">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymbloomers/waistdown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymbloomers/waist.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<else>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymbloomers/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/gymbloomers/ankle.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.lower.name is "denim shorts">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/denimshorts/' + $worn.lower.state + _feet_pos + '.png'"> <<elseif $worn.lower.name is "booty jorts">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/bootyjorts/' + $worn.lower.state + _feet_pos + '.png'"> <<elseif !$worn.lower.type.includes("naked") and $worn.upper.set isnot $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <<if $worn.lower.state is "waist">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/hips.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "midriff">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/tummy.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<elseif $worn.lower.state is "chest">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/neck.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/ankledown.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/skirt/ankle.png" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/longskirt/' + $worn.lower.state + _feet_pos + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <<elseif !$worn.lower.type.includes("naked") and !$_skirtOutfit>> <<if $worn.lower.name is "jeans">> <img @class="'layer-sexlower anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/jeans/' + $worn.lower.state + _feet_pos + '.png'"> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].short is 1>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shorts/' + $worn.lower.state + _feet_pos + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <<else>> <img @class="'layer-sexlower colour-lower anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/trousers/' + $worn.lower.state + _feet_pos + '.png'" @style="($worn.lower.colour is 'custom'? $worn.lower.colourCustom + _lowerOpacity : '')"> <</if>> <</if>> <<if $worn.under_lower.name is "thong" or $worn.under_lower.name is "microkini bottom">> <<if $worn.under_lower.state is "waist" or $worn.under_lower.state is "totheside">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/thong/waistdown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/thong/waist.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<else>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/thong/ankledown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/thong/ankle.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <<elseif $worn.under_lower.name is "cow panties">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/cowpanties/waist.png"> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $worn.under_lower.state is "waist" or $worn.under_lower.state is "totheside">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/panties/waistdown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/panties/waist.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<else>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/panties/ankledown.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <<else>> <img @class="'layer-sexunder colour-under_lower anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/panties/ankle.png" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <</if>> <</if>> <<if $worn.under_upper.name is "chest wrap" and $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/chestwrap/none.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/chestwrap/tiny.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/chestwrap/small.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/chestwrap/large.png" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/chestwrap/huge.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<elseif $worn.under_upper.name is "tape">> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/tape/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "mesh shirt">> <<if $worn.under_upper.state is "midriff">> <<set _state to "midriff">> <<else>> <<set _state to "neck">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/mesh/'+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _upperOpacity : '')"> <<if $worn.under_upper.exposed is 0>> <<if $player.perceived_breastsize is 0>> <<set _size to "none">> <<elseif $player.perceived_breastsize is 1 or $player.perceived_breastsize is 2>> <<set _size to "tiny">> <<elseif $player.perceived_breastsize is 3 or $player.perceived_breastsize is 4>> <<set _size to "small">> <<elseif $player.perceived_breastsize gte 5 and $player.perceived_breastsize lte 7>> <<set _size to "large">> <<elseif $player.perceived_breastsize gte 8 and $player.perceived_breastsize lte 12>> <<set _size to "huge">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/mesh/'+_size+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<elseif $worn.under_upper.name is "cow bra">> <<if $worn.upper.state_top is "chest">> <<if $player.perceived_breastsize is 0>> <<set _tit = "none">> <<elseif $player.perceived_breastsize lte 2>> <<set _tit = "tiny">> <<elseif $player.perceived_breastsize lte 4>> <<set _tit = "small">> <<elseif $player.perceived_breastsize lte 6>> <<set _tit = "large">> <<else>> <<set _tit = "huge">> <</if>> <</if>> <img @class="'layer-sexunder colour-under_upper anim-idle-4f-'+_animspeed" @src="'img/sex/missionary/active/cowbra/'+_tit+'.png'"> <<elseif $worn.under_upper.name is "swim shirt">> <<if $worn.under_upper.state is "waist">> <<set _state to "waist">> <<elseif $worn.under_upper.state is "midriff">> <<set _state to "midriff">> <<else>> <<set _state to "chest">> <</if>> <img @class="'layer-sexunder colour-under_upper anim-idle-4f-'+_animspeed" @src="'img/sex/missionary/active/swimshirt/'+_state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif $worn.under_upper.name is "shibari ropes">> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shibari/'+$worn.under_upper.state+'.png'" @style="($worn.under_upper.colour is 'custom' ? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <<elseif !$worn.under_upper.type.includes("naked")>> <img @class="'layer-sexunder colour-under_upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/bra/bra.png" @style="($worn.under_upper.colour is 'custom'? $worn.under_upper.colourCustom + _underUpperOpacity : '')"> <</if>> <<if $worn.face.variable.startsWith("gag")>> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/facewear/gag/full.png" @style="$worn.face.colourCustom"> <<if $worn.face.type.includes("blindfold")>> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/facewear/blindfold/full.png" @style="$worn.face.colourCustom"> <</if>> <<elseif $worn.face.variable.startsWith("muzzle")>> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/facewear/muzzle/full.png" @style="$worn.face.colourCustom"> <<elseif $worn.face.name isnot "naked">> <img @class="'layer-sexunder colour-face anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/facewear/'+$worn.face.variable+'/full.png'" @style="$worn.face.colourCustom"> <<if $worn.face.accessory is 1>> <img @class="'layer-sexunder anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/facewear/'+$worn.face.variable+'/acc.png'"> <</if>> <</if>> <<if $worn.neck.name is "cow bell">> <img @class="'layer-sexunder anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/cow/full.png"> <<elseif $worn.neck.name is "necktie">> <img @class="'layer-sextiemissionary colour-neck anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/tie/neck.png"> <<elseif $worn.neck.name is "scarf">> <img @class="'layer-sexunder colour-neck anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/scarf/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <<elseif $worn.neck.name is "gold choker">> <img @class="'layer-sexunder anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/goldchoker/full.png"> <<elseif $worn.neck.name is "cloth choker">> <img @class="'layer-sexunder colour-neck anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/clothchoker/full.png" @style="($worn.neck.colour is 'custom'? $worn.neck.colourCustom : '')"> <</if>> <<if $worn.hands.name isnot "naked">> <<if $worn.hands.leftImage is 1>> <<if $leftarm is "penis">> <img @class="'layer-sexsclera colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/left handjob.png'" @style="$worn.hands.colourCustom"> <<elseif $leftarm is "bound">> <<elseif $leftarm is "grappled">> <<elseif $leftarm is "behind">> <<elseif $leftarmstate is "tentacle">> <<else>> <</if>> <</if>> <<if $worn.hands.rightImage is 1>> <<if $rightarm is "penis">> <img @class="'layer-sexhands colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/right handjob.png'" @style="$worn.hands.colourCustom"> <<elseif $rightarm is "bound">> <<elseif $rightarm is "grappled">> <<elseif $rightarm is "behind">> <<elseif $rightarmstate is "tentacle">> <<elseif $enemytype is "beast" and $monster isnot 1 and _stanceCheck is "top">> <img @class="'layer-sexhands colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/right arm stroke.png'" @style="$worn.hands.colourCustom"> <<else>> <img @class="'layer-sexhands colour-hands anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/hands/'+$worn.hands.variable+'/right arm.png'" @style="$worn.hands.colourCustom"> <</if>> <</if>> <</if>> <<if $worn.feet.type.includes("heels") or ["light-up trainers", "ankle cuffs", "ball and chain"].includes($worn.feet.name)>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _legl to 'legl'>> <<set _legr to 'feetjob'>> <<else>> <<set _legl to 'legl'>> <<set _legr to (($penisuse is "othervagina" or $penisuse is "otheranus") ? 'legrdown' : 'legr')>> <</if>> <<if $worn.feet.colour>> <<set _shoeColour to $worn.feet.colourCustom>> <</if>> <<if $worn.feet.accessory_colour>> <<set _shoeAccColour to $worn.feet.accessory_colourCustom>> <</if>> <img @class="'layer-sexbaseoverlay colour-feet anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legl + '.png'" @style="_shoeColour"> <img @class="'layer-sexunder colour-feet anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legr + '.png'" @style="_shoeColour"> <<if $worn.feet.accessory>> <<if $worn.feet.accessory_colour isnot 0>> <img @class="'layer-sexbaseoverlay colour-feet_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legl + 'acc.png'" @style="_shoeAccColour"> <img @class="'layer-sexshoes colour-feet_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legr + 'acc.png'" @style="_shoeAccColour"> <<else>> <img @class="'layer-sexbaseoverlay anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legl + 'acc.png'"> <img @class="'layer-sexshoes anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/' + $worn.feet.variable + '/' + _legr + 'acc.png'"> <</if>> <</if>> <<if $worn.feet.name is "ankle cuffs">> <<if _legl is 'legl'>> <<if _legr is 'legrdown'>> <img @class="'layer-sexbaseoverlay anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/anklecuffs/acc_left_up.png'"> <<else>> <img @class="'layer-sexbaseoverlay anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/anklecuffs/acc_both_up.png'"> <</if>> <<else>> <<if _legr is 'legrdown'>> <img @class="'layer-sexbaseoverlay anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/anklecuffs/acc_both_down.png'"> <<else>> <img @class="'layer-sexbaseoverlay anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/shoes/anklecuffs/acc_right_up.png'"> <</if>> <</if>> <</if>> <</if>> <<if !$worn.legs.type.includes("naked")>> <<set $_legsClothing to setup.clothes.legs[clothesIndex('legs', $worn.legs)]>> <<if $feetuse is "penis" or $feetstate is "tentacle">> <<set _legl to 'up'>> <<set _legr to 'feetjob'>> <<elseif $penisuse isnot "othervagina" and $penisuse isnot "otheranus">> <<set _legl to 'up'>> <<set _legr to 'up'>> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<set _legl to 'up'>> <<set _legr to 'down'>> <<else>> <<set _legl to 'down'>> <<set _legr to 'down'>> <</if>> <<if $worn.legs.state is $_legsClothing.state_base>> <<set _feetposition to "full">> <<else>> <<set _feetposition to "knees">> <</if>> <<set _legColour to "">> <<if $worn.legs.colour>> <<set _legColour to $worn.legs.colourCustom || "">> <</if>> <<set _legAccColour to "">> <<if $worn.legs.accessory_colour>> <<set _legAccColour to $worn.legs.accessory_colourCustom || "">> <</if>> <<if $_legsClothing.state_base is "waist">> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + '.png'" @style="_legColour"> <<elseif $_legsClothing.state_base is "ankles">> <<if _legr is "feetjob">> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + '.png'" @style="_legColour"> <<else>> <img @class="'layer-sexlegsback colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legl + 'left' + '.png'" @style="_legColour"> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'right' + '.png'" @style="_legColour"> <</if>> <<else>> <<if _legr is "feetjob">> <img @class="'layer-sexlegsback colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legl + 'left' + '.png'" @style="_legColour"> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + '.png'" @style="_legColour"> <<else>> <img @class="'layer-sexlegsback colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legl + 'left' + '.png'" @style="_legColour"> <img @class="'layer-sexlegs colour-legs anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'right' + '.png'" @style="_legColour"> <</if>> <</if>> <<if $worn.legs.accessory>> <<if $_legsClothing.state_base is "waist">> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'acc.png'" @style="_legAccColour"> <<elseif $_legsClothing.state_base is "ankles">> <<if _legr is "feetjob">> <img @class="'layer-sexlegsbackacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'acc.png'" @style="_legAccColour"> <<else>> <img @class="'layer-sexlegsbackacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legl + 'left' + 'acc.png'" @style="_legAccColour"> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'right' + 'acc.png'" @style="_legAccColour"> <</if>> <<else>> <<if _legr is "feetjob">> <img @class="'layer-sexlegsbackacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legl + 'left' + 'acc.png'" @style="_legAccColour"> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'acc.png'" @style="_legAccColour"> <<else>> <img @class="'layer-sexlegsbackacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legl + 'left' + 'acc.png'" @style="_legAccColour"> <img @class="'layer-sexlegsacc colour-legs_acc anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/legs/' + $worn.legs.variable + '/' + _feetposition + _legr + 'right' + 'acc.png'" @style="_legAccColour"> <</if>> <</if>> <</if>> <</if>> </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" : "">> <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 + '.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)) + '.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 + '.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||""]>> <<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.png'" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'right.png'" @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.png'" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'left.png'" @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">> <<set _filters to $skinColor.current>> <<set _img to setup.tanImg.sidebar[($options.tanImgEnabled ? "t" : "f")]>> <div id="img" @class="limitedColourContainerClasses() + ' noAnimations'"> <<charLight "118px" "187px" "limited">> <<if $options.sidebarRenderer is 'canvas' or $options.sidebarRenderer is 'both'>> /* <img> renderer */ <<canvas-player-base-body>> <</if>> <<if $options.sidebarRenderer is 'img' or $options.sidebarRenderer is 'both'>> /* legacy renderer */ /*Prep for image checks*/ <<switch $player.perceived_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 0 1 2>> <<set _breastSize to 1>> <</switch>> <<if $player.penisExist>> <<set _penisSize to Math.clamp($player.penissize, -2, 4)>> <</if>> <<set _disabled to ["disabled","hidden"]>> <img class="layer-base" @src="_img.basenoarms" @style="'filter: '+_filters.body"> <img class="layer-basehead" @src="_img.basehead" @style="'filter: '+_filters.body"> <<if $options.tanImgEnabled>> <<if $skinColor.tanValues[0] isnot $skinColor.tanValues[2]>> <img class="layer-base" @src="_img.baseTanSwimshorts" @style="'filter: '+_filters.swimshorts"> <img class="layer-base" @src="_img.baseTanSwimsuit_UUpper" @style="'filter: '+_filters.swimsuitTop"> <img class="layer-base" @src="_img.baseTanSwimsuit_ULower" @style="'filter: '+_filters.swimsuitBottom"> <img class="layer-base" @src="_img.baseTanBikini_ULower" @style="'filter: '+_filters.bikiniBottom"> <</if>> <</if>> <img class="layer-base" @src="_img.leftarmidle" @style="'filter: '+_filters.body"> <<if !_disabled.includes($transformationParts.demon.wings)>> <<if $exposed gte 2 and $dontHide is false and $transformationParts.traits.flaunting is "default">> <img class="layer-tailPenisCover" @src="'img/transformations/demon/flauntwings/'+$transformationParts.demon.wings+'.png'"> <<else>> <img class="layer-backhair" @src="'img/transformations/demon/wings/'+$transformationParts.demon.wings+'.png'"> <</if>> <</if>> <<if !_disabled.includes($transformationParts.angel.wings)>> <img class="layer-backhair" @src="'img/transformations/angel/rightwing/'+$transformationParts.angel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.fallenAngel.wings)>> <img class="layer-backhair" @src="'img/transformations/fallen/rightwing/'+$transformationParts.fallenAngel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.wings)>> <img class="layer-backhair colour-hair" @src="'img/transformations/bird/rightwing/'+$transformationParts.bird.wings+'.png'"> <</if>> <img class="layer-base" @src="_img.rightarmidle" @style="'filter: '+_filters.body"> <<if !_disabled.includes($transformationParts.demon.tail)>> <<if $exposed gte 2 and $dontHide is false and $transformationParts.traits.flaunting is "default">> <img class="layer-tailPenisCover" @src="'img/transformations/demon/flaunttail/'+$transformationParts.demon.tail+'.png'"> <<else>> <img class="layer-backhair" @src="'img/transformations/demon/tail/'+$transformationParts.demon.tail+'.png'"> <</if>> <</if>> <<if !_disabled.includes($transformationParts.angel.wings)>> <img class="layer-backhair" @src="'img/transformations/angel/leftwing/'+$transformationParts.angel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.fallenAngel.wings)>> <img class="layer-backhair" @src="'img/transformations/fallen/leftwing/'+$transformationParts.fallenAngel.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.bird.wings)>> <img class="layer-backhair colour-hair" @src="'img/transformations/bird/leftwing/'+$transformationParts.bird.wings+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.fallenAngel.halo)>> <img class="layer-over_head-back" @src="'img/transformations/fallen/backbrokenhalo/'+$transformationParts.fallenAngel.halo+'.png'"> <img class="layer-halo-front" @src="'img/transformations/fallen/frontbrokenhalo/'+$transformationParts.fallenAngel.halo+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.angel.halo)>> <img class="layer-over_head-back" @src="'img/transformations/angel/backhalo/'+$transformationParts.angel.halo+'.png'"> <img class="layer-halo-front" @src="'img/transformations/angel/fronthalo/'+$transformationParts.angel.halo+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.tail)>> <img class="layer-backhair colour-hair" @src="'img/transformations/wolf/tail/'+$transformationParts.wolf.tail+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.cat.tail)>> <img class="layer-backhair colour-hair" @src="'img/transformations/cat/tail/'+$transformationParts.cat.tail+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.ears)>> <img class="layer-backhair colour-hair" @src="'img/transformations/wolf/ears/'+$transformationParts.wolf.ears+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.pits)>> <img class="layer-hirsute colour-hair" @src="'img/transformations/hirsute/pits/'+$transformationParts.wolf.pits+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.pubes)>> <img class="layer-hirsute colour-hair" @src="'img/transformations/hirsute/pubes/'+$transformationParts.wolf.pubes+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.wolf.cheeks)>> <img class="layer-hirsute colour-hair" @src="'img/transformations/wolf/cheeks/'+$transformationParts.wolf.cheeks+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.cat.ears)>> <img class="layer-backhair colour-hair" @src="'img/transformations/cat/ears/'+$transformationParts.cat.ears+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.demon.horns)>> <img class="layer-horns" @src="'img/transformations/demon/horns/'+$transformationParts.demon.horns+'.png'"> /*<img class="layer-face colour-hair" src="img/transformations/demon/hair_overlay.png">*/ <</if>> <<if !_disabled.includes($transformationParts.cow.horns)>> <img class="layer-horns" @src="'img/transformations/cow/horns/'+$transformationParts.cow.horns+'.png'"> <</if>> <<if !_disabled.includes($transformationParts.cow.ears)>> <img class="layer-horns" @src="'img/transformations/cow/ears/'+$transformationParts.cow.ears+'.png'"> <img class="layer-face" src="img/transformations/cow/tag.png"> <</if>> <<if !_disabled.includes($transformationParts.cow.tail)>> <img class="layer-backhair" @src="'img/transformations/cow/tail/'+$transformationParts.cow.tail+'.png'"> <</if>> <<if $hairposition is "front">> <img class="layer-hairforwards colour-hair" @src="'img/hair/sides/' + $hairtype + '/' + $hairlengthstage + '.png'"> <<else>> <img class="layer-backhair colour-hair" @src="'img/hair/sides/' + $hairtype + '/' + $hairlengthstage + '.png'"> <</if>> <img class="layer-fronthair colour-hair" @src="'img/hair/fringe/' + $fringetype + '/' + $fringelengthstage + '.png'"> <<if $hairlengthstage is "thighs">> <<switch $hairtype>> <<case "default">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/default/thighs.png"> <<case "loose">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/loose/thighs.png"> <<case "curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/curl/thighs.png"> <<case "defined curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/defined curl/thighs.png"> <<case "neat">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/neat/thighs.png"> <<case "dreads">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/dreads/thighs.png"> <<default>> <</switch>> <<elseif $hairlengthstage is "feet">> <<switch $hairtype>> <<case "default">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/default/feet.png"> <<case "loose">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/loose/feet.png"> <<case "straight">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/straight/feet.png"> <<case "curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/curl/feet.png"> <<case "defined curl">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/defined curl/feet.png"> <<case "neat">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/neat/feet.png"> <<case "dreads">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/dreads/feet.png"> <<case "ruffled">> <img class="layer-backhair colour-hair anim-idle-2f" src="img/hair/back/ruffled/feet.png"> <<default>> <</switch>> <</if>> <<if $options.neverNudeMenus>> /* If player doesn't want to see nude character in menus, render the default breifs or bra + panties on their body */ <<if $player.gender_appearance neq "m" or $player.perceived_breastsize gte 3>> <div class="clothes-div layer-under_upper"> <img class="clothes-pale-white" src="img/clothes/under_upper/plainbra/full.png" style=""> <img class="clothes-pale-white" src="img/clothes/under_upper/plainbra/2.png" style=""> </div> <</if>> <<if $player.gender_appearance is "m">> <div class="clothes-div layer-under_lower"> <img class="clothes-pale-white" src="img/clothes/under_lower/briefs/full.png" style=""> <img class="" src="img/clothes/under_lower/briefs/acc.png" style=""> </div> <<else>> <div class="clothes-div layer-under_lower"> <img class="clothes-pale-white" src="img/clothes/under_lower/plainpanties/full.png" style=""> </div> <</if>> <<else>> <img class="layer-breasts" @src="_img['breasts'+ _breastSize]" @style="'filter: '+_filters.breasts"> <<if $options.tanImgEnabled and $skinColor.tanValues[0] isnot $skinColor.tanValues[1]>> <img class="layer-breasts" @src="_img.baseTanBikini_UUpper + _breastSize + '.png'" @style="'filter: '+_filters.bikiniTop"> <</if>> <<if $pbdisable is "f">> <<set _pbColour = ($makeup.pbcolour != 0 ? $makeup.pbcolour : $naturalhaircolour).replace(/ /g, '-')>> <div @class="'layer-pbhair pbhair-' + _pbColour"> <<if $pblevel gt 1>> <img class="anim-idle-2f" @src="'img/hair/phair/pb' + $pblevel + '.png'"> <</if>> <<if $pbstrip gte 1>> <img class="anim-idle-2f" @src="'img/hair/phair/pbstrip' + $pbstrip + '.png'"> <</if>> </div> <div @class="'layer-pbhairballs pbhair-' + _pbColour"> <<if $player.ballsExist is true and $pblevelballs gt 1 and !$worn.genitals.name.startsWith("chastity")>> <img class="anim-idle-2f" @src="'img/hair/phair/balls/' + _penisSize + '_pb' + $pblevelballs + '.png'"> <</if>> </div> <</if>> <!-- P image insert here - This is not compatible with female pdmod, requires additional editing - add new layer in base.css--> <<if _penisSize isnot undefined>> <<if $player.virginity.penile is true>> <img class="layer-penis" @src="_img['penis_virgin' + ($player.ballsExist ? '':'noballs') + _penisSize]" @style="'filter: '+_filters.penis"> <<else>> <img class="layer-penis" @src="_img['penis' + ($player.ballsExist ? '':'noballs') + _penisSize]" @style="'filter: '+_filters.penis"> <</if>> <</if>> <</if>> <<if playerHasStrapon()>> <<set _class to 'anim-idle-2f' + ($worn.under_lower.colour_sidebar and typeof($worn.under_lower.colour) == "string" ? ' clothes-'+$worn.under_lower.colour.replace(/ /g, '-'):'')>> <<set _style to ($worn.under_lower.colourCustom ? $worn.under_lower.colourCustom : $worn.under_lower.colour)>> <div @class="'clothes-div layer-under_lower'"> <img @class="_class" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/full.png'" @style="_style"> <<if $worn.under_lower.accessory is 1>> <<set _classAcc to 'anim-idle-2f ' + ($worn.under_lower.accessory_colour_sidebar and typeof($worn.under_lower.accessory_colour) == "string" ? ' clothes-'+$worn.under_lower.accessory_colour.replace(/ /g, '-') :'')>> <<set _styleAcc to ($worn.under_lower.accessory_colourCustom ? $worn.under_lower.accessory_colourCustom :'')>> <img @class="_classAcc" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/' + 'acc.png'" @style="_styleAcc"> <</if>> </div> <</if>> <<faceimg 1>> <</if>> /* $options.sidebarRenderer is img */ </div> <</widget>>
<<widget "clothing_data">> <<set setup.clothes to {}>> <<set setup.moddedClothes to {}>> <<init_over_upper>> <<init_over_lower>> <<init_upper>> <<init_lower>> <<init_under_upper>> <<init_under_lower>> <<init_genitals>> <<init_over_head>> <<init_head>> <<init_face>> <<init_neck>> <<init_hands>> <<init_legs>> <<init_feet>> <<set _allClothes to []>> <<run allClothesSetup()>> <<set setup.clothes_all_slots to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower","over_head", "head", "face", "neck", "hands", "legs", "feet", "genitals"]>> <!-- Throw an error if any clothing item has an index which is not correct for its position in its array. --> <<run Object.keys(setup.clothes).forEach(slot => { if(slot === 'all') return false; setup.clothes[slot].forEach((item, i) => { if (item.index !== i) throw new Error("The index of "+item.name+" should be "+i+", not "+item.index) }) })>> <!-- Find all unique traits (types) clothes can have --> <<set setup.clothingTraits = [...new Set(Object.keys(setup.clothes).flatMap(x => setup.clothes[x]).flatMap(x => x.type))]>> <<init_npc_clothes>> <</widget>> <<widget "clothing_arrays">> <<script>> V.clothes = {}; V.store = {}; V.wardrobe = { space: 20 }; V.outfitTmp = {}; V.carried = {}; V.worn = {}; const worn = {}; for (let slot of setup.clothes_all_slots) { V.store[slot] = []; V.wardrobe[slot] = []; V.carried[slot] = clone(setup.clothes[slot][0]); V.worn[slot] = clone(setup.clothes[slot][0]); /* create a proxy that will forward the calls to V.worn[slot], but also pull extra properties from setup.clothes if necessary. writing to C.worn.slot.property will only affect V.worn.slot.property. please, AVOID calling C.worn.slot without properties!! */ worn[slot] = new Proxy ( { /* direct proxy to V.worn is impossible due to the latter getting re-created every passage, so we use empty object instead */ }, { get(nil, prop) { return prop in V.worn[slot] ? V.worn[slot][prop] : setup.clothes[slot][clothesIndex(slot, V.worn[slot])][prop]; }, set(nil, prop, val) { return V.worn[slot][prop] = val }, } ); }; /* freeze worn to prevent proxies from being overwritten */ Object.freeze(worn); C.worn = worn; V.outfit = [{ index: 0, name: "Pyjamas", over_upper: "naked", over_lower: "naked", upper: "pyjama shirt", lower: "pyjama bottoms", under_upper: "naked", under_lower: "naked", over_head: "naked", head: "naked", face: "naked", neck: "naked", hands: "naked", legs: "naked", feet: "naked", type: ["sleep"], colors: false }]; <</script>> <<wardrobesUpdate>> <</widget>> <<widget "clothinginit">> <<clothing_arrays>> <<set $upperoff to 0>> <<set $loweroff to 0>> <<set $underloweroff to 0>> <<set $underupperoff to 0>> <<set $upperwet to 0>> <<set $lowerwet to 0>> <<set $underlowerwet to 0>> <<set $underupperwet to 0>> <<set $upperwetstage to 0>> <<set $lowerwetstage to 0>> <<set $underupperwetstage to 0>> <<set $underlowerwetstage to 0>> <<set $waterwash to 0>> <<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_legs to "none">> <<set $wear_feet to "none">> <<set $wear_genitals to "none">> <<set $wear_outfit to "none">> <</widget>> <<widget "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])>> <<set $worn.under_upper to clone(setup.clothes.under_upper[0])>> <<set $worn.under_lower to clone(setup.clothes.under_lower[0])>> <<set $worn.over_head to clone(setup.clothes.over_head[0])>> <<set $worn.head to clone(setup.clothes.head[0])>> <<set $worn.face to clone(setup.clothes.face[0])>> <<set $worn.neck to clone(setup.clothes.neck[0])>> <<set $worn.hands to clone(setup.clothes.neck[0])>> <<set $worn.legs to clone(setup.clothes.legs[0])>> <<set $worn.feet to clone(setup.clothes.feet[0])>> <<if ($player.gender is "f" and $background isnot "crossdresser") or ($player.gender is "m" and $background is "crossdresser") or ($player.gender 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 $outfit.push( {index: $outfit.length, name: "Everyday", over_upper: "naked", over_lower: "naked", upper: "sundress", lower: "sundress skirt", under_upper: "naked", under_lower: "plain panties", over_head: "naked", head: "naked", face: "naked", neck: "naked", legs: "girl's gym socks", feet: "school shoes", type: ["normal"], colors: false }, {index: $outfit.length, name: "School", over_upper: "naked", over_lower: "naked", upper: "school shirt", lower: "school skirt", under_upper: "naked", under_lower: "plain panties", over_head: "naked", head: "hairpin", face: "naked", neck: "naked", legs: "girl's gym socks", feet: "school shoes", type: ["school"], colors: false }, {index: $outfit.length, name: "Swimwear", over_upper: "naked", over_lower: "naked", upper: "naked", lower: "naked", under_upper: "school swimsuit", under_lower: "school swimsuit bottom", over_head: "naked", head: "naked", face: "naked", neck: "naked", legs: "naked", feet: "naked", type: ["swim"], colors: false } )>> <<set $worn.upper to clone(setup.clothes.upper[1])>> <<set $worn.upper.colour to "white">> <<set $worn.lower to clone(setup.clothes.lower[1])>> <<set $worn.lower.colour to "white">> <<set $worn.under_lower to clone(setup.clothes.under_lower[1])>> <<set $worn.under_lower.colour to "pale white">> <<set $worn.legs to clone(setup.clothes.legs[3])>> <<set $worn.head = clone(setup.clothes.head[1])>> <<set $worn.feet = clone(setup.clothes.feet[1])>> <<if $player.breastsize lte 3>> <<set $wardrobe.under_upper.push(clone(setup.clothes.under_upper[12]))>> <<set $wardrobe.under_upper.last().colour to "pale white">> <<else>> <<set $worn.under_upper = clone(setup.clothes.under_upper[12])>> <<set $worn.under_upper.colour to "pale white">> <<set $outfit[1].under_upper = "plain bra">> <<set $outfit[2].under_upper = "plain bra">> <</if>> <<set $wardrobe.upper.push(clone(setup.clothes.upper[5]))>> <<set $wardrobe.upper.last().colour to "white">> <<set $wardrobe.upper.last().accessory_colour to "light blue">> <<set $wardrobe.lower.push(clone(setup.clothes.lower[7]))>> <<set $wardrobe.lower.last().colour to "black">> <<set $wardrobe.upper.push(clone(setup.clothes.upper[2]))>> <<set $wardrobe.upper.last().colour to "blue">> <<set $wardrobe.lower.push(clone(setup.clothes.lower[2]))>> <<set $wardrobe.lower.last().colour to "blue">> <<set $wardrobe.under_upper.push(clone(setup.clothes.under_upper[2]))>> <<set $wardrobe.under_upper.last().colour to "blue">> <<set $wardrobe.under_lower.push(clone(setup.clothes.under_lower[6]))>> <<set $wardrobe.under_lower.last().colour to "blue">> <<else>> <<set $outfit.push( {index: $outfit.length, name: "Everyday", over_upper: "naked", over_lower: "naked", upper: "t-shirt", lower: "shorts", under_upper: "naked", under_lower: "briefs", over_head: "naked", head: "naked", face: "naked", neck: "naked", legs: "boy's gym socks", feet: "school shoes", type: ["normal"], colors: false }, {index: $outfit.length, name: "School", over_upper: "naked", over_lower: "naked", upper: "school shirt", lower: "school shorts", under_upper: "naked", under_lower: "briefs", over_head: "naked", head: "naked", face: "naked", neck: "naked", legs: "boy's gym socks", feet: "school shoes", type: ["school"], colors: false }, {index: $outfit.length, name: "Swimwear", over_upper: "naked", over_lower: "naked", upper: "naked", lower: "naked", under_upper: "naked", under_lower: "school swim shorts", over_head: "naked", head: "naked", face: "naked", neck: "naked", legs: "naked", feet: "naked", type: ["swim"], colors: false } )>> <<set $worn.upper to clone(setup.clothes.upper[4])>> <<set $worn.upper.colour to "tangerine">> <<set $worn.lower to clone(setup.clothes.lower[5])>> <<set $worn.lower.colour to "blue">> <<set $worn.under_lower to clone(setup.clothes.under_lower[4])>> <<set $worn.under_lower.colour to "black">> <<set $worn.legs to clone(setup.clothes.legs[2])>> <<set $worn.feet = clone(setup.clothes.feet[1])>> <<set $wardrobe.upper.push(clone(setup.clothes.upper[5]))>> <<set $wardrobe.upper.last().colour to "white">> <<set $wardrobe.upper.last().accessory_colour to "light blue">> <<set $wardrobe.lower.push(clone(setup.clothes.lower[6]))>> <<set $wardrobe.lower.last().colour to "black">> <<set $wardrobe.upper.push(clone(setup.clothes.upper[2]))>> <<set $wardrobe.upper.last().colour to "blue">> <<set $wardrobe.lower.push(clone(setup.clothes.lower[2]))>> <<set $wardrobe.lower.last().colour to "blue">> <<set $wardrobe.under_lower.push(clone(setup.clothes.under_lower[7]))>> <<set $wardrobe.under_lower.last().colour to "blue">> <<set $wardrobe.head.push(clone(setup.clothes.head[1]))>> <</if>> <!-- strip the unneeded vars from starting clothes --> <<run clothesDataTrimmerLoop()>> <</widget>> <<widget "init_npc_clothes">> <<set _npcClothesItems to { "upper": { "shirt": {name:"shirt", integrity_max:100, word:"a", action:"lift"}, "naked": {name:"naked", integrity_max:100, word:"n", action:"none"}, "school shirt": {name:"school shirt", integrity_max:100, word:"a", action:"unbutton"}, "school blouse": {name:"school blouse", integrity_max:100, word:"a", action:"unbutton"}, "dress shirt": {name:"dress shirt", integrity_max:100, word:"a", action:"unbutton"}, "school blazer": {name:"school blazer", integrity_max:100, word:"a", action:"pull"}, "teacher's uniform": {name:"teacher's uniform", integrity_max:100, word:"a", action:"unbutton"}, "swim shirt": {name:"swim shirt", integrity_max:100, word:"a", action:"lift"}, "school swimsuit top": {name:"school swimsuit top", integrity_max:100, word:"a", action:"pull"}, "bikini top": {name:"bikini top", integrity_max:100, word:"a", action:"pull"}, "microkini top": {name:"microkini top", integrity_max:100, word:"a", action:"pull"}, "diving suit": {name:"diving suit", integrity_max:100, word:"a", action:"unzip"}, "sailor shirt": {name:"sailor shirt", integrity_max:100, word:"a", action:"unbutton"}, "hi-vis jacket": {name:"hi-vis jacket", integrity_max:100, word:"a", action:"unzip"}, "denim shirt": {name:"denim shirt", integrity_max:100, word:"a", action:"unbutton"}, "hoodie": {name:"hoodie", integrity_max:100, word:"a", action:"lift"}, "vest": {name:"vest", integrity_max:100, word:"a", action:"lift"}, "police shirt": {name:"police shirt", integrity_max:100, word:"a", action:"unbutton"}, "uniform shirt": {name:"uniform shirt", integrity_max:100, word:"a", action:"unbutton"}, "monk robe top": {name:"monk robe top", integrity_max:100, word:"a", action:"open"}, "nun robe top": {name:"nun robe top", integrity_max:100, word:"a", action:"open"}, "robe top": {name:"robe top", integrity_max:100, word:"a", action:"open"}, "black robe top": {name:"black robe top", integrity_max:100, word:"a", action:"open"}, "jumpsuit shirt": {name:"jumpsuit shirt", integrity_max:100, word:"a", action:"unzip"}, "tuxedo shirt": {name:"tuxedo shirt", integrity_max:100, word:"a", action:"unbutton"}, "evening gown top": {name:"evening gown top", integrity_max:100, word:"a", action:"pull"}, "ballgown top": {name:"ballgown top", integrity_max:100, word:"a", action:"pull"}, "gothic jacket and vest": {name:"gothic jacket and vest", integrity_max:100, word:"a", action:"unbutton"}, "gothic gown top": {name:"gothic gown top", integrity_max:100, word:"a", action:"pull"}, "business suit top": {name:"business suit top", integrity_max:100, word:"a", action:"unbutton"}, "t-shirt": {name:"t-shirt", integrity_max:100, word:"a", action:"lift"}, "sundress top": {name:"sundress top", integrity_max:100, word:"a", action:"pull"}, "tracksuit top": {name:"tracksuit top", integrity_max:100, word:"a", action:"unzip"}, "peacoat": {name:"peacoat", integrity_max:100, word:"a", action:"unbutton"}, "turtleneck": {name:"turtleneck", integrity_max:100, word:"a", action:"lift"}, "collared shirt": {name:"collared shirt", integrity_max:100, word:"a", action:"unbutton"}, "blazer": {name:"blazer", integrity_max:100, word:"a", action:"lift"}, "sports jersey": {name:"sports jersey", integrity_max:100, word:"a", action:"lift"}, "sweater vest": {name:"sweater vest", integrity_max:100, word:"a", action:"lift"}, "v neck": {name:"v neck", integrity_max:100, word:"a", action:"lift"}, "tank top": {name:"tank top", integrity_max:100, word:"a", action:"pull"}, "blouse": {name:"blouse", integrity_max:100, word:"a", action:"lift"}, "crop top": {name:"crop top", integrity_max:100, word:"a", action:"pull"}, "tank top": {name:"tank top", integrity_max:100, word:"a", action:"pull"}, "bra": {name:"bra", integrity_max:100, word:"a", action:"undo"}, "puffer jacket": {name:"puffer jacket", integrity_max:100, word:"a", action:"unzip"}, "trenchcoat": {name:"trenchcoat", integrity_max:100, word:"a", action:"open"}, "coat": {name:"coat", integrity_max:100, word:"a", action:"open"}, "hoodie": {name:"hoodie", integrity_max:100, word:"a", action:"lift"}, "sweater": {name:"sweater", integrity_max:100, word:"a", action:"lift"}, "rain coat": {name:"rain coat", integrity_max:100, word:"a", action:"unzip"}, "flannel": {name:"flannel", integrity_max:100, word:"a", action:"unbutton"}, "woolen jumper": {name:"woolen jumper", integrity_max:100, word:"a", action:"lift"}, "fleece jumper": {name:"fleece jumper", integrity_max:100, word:"a", action:"lift"}, "jacket": {name:"jacket", integrity_max:100, word:"a", action:"unzip"}, "camo jacket": {name:"camo jacket", integrity_max:100, word:"a", action:"unzip"}, "trench coat": {name:"trench coat", integrity_max:100, word:"a", action:"open"}, "leather vest": {name:"leather vest", integrity_max:100, word:"a", action:"open"}, "leather harness": {name:"leather harness", integrity_max:100, word:"a", action:"open"}, "bathrobe": {name:"bathrobe", integrity_max:100, word:"a", action:"open"}, "lab coat": {name:"lab coat", integrity_max:100, word:"a", action:"unbutton"}, "security vest": {name:"security vest", integrity_max:100, word:"a", action:"unbutton"}, "doctor's coat": {name:"doctor's coat", integrity_max:100, word:"a", action:"unbutton"}, "nurse's coat": {name:"nurse's coat", integrity_max:100, word:"a", action:"unbutton"}, "patient gown": {name:"patient gown", integrity_max:100, word:"a", action:"pull"}, "jumpsuit top": {name:"jumpsuit top", integrity_max:100, word:"a", action:"unzip"}, "coverall top": {name:"coverall top", integrity_max:100, word:"a", action:"unzip"}, "dance shirt": {name:"dance shirt", integrity_max:100, word:"a", action:"pull"}, "shirtless suit": {name:"shirtless suit", integrity_max:100, word:"a", action:"open"}, "low-neck dress": {name:"low-neck dress", integrity_max:100, word:"a", action:"pull"}, "riding top": {name:"riding top", integrity_max:100, word:"a", action:"unbutton"}, "shadbelly coat": {name:"shadbelly coat", integrity_max:100, word:"a", action:"unbutton"}, "ramshackle hunting coat": {name:"ramshackle hunting coat", integrity_max:100, word:"a", action:"unbutton"}, "ruined suit": {name:"ruined suit", integrity_max:100, word:"a", action:"open"}, "grey sweater": {name:"grey sweater", integrity_max:100, word:"a", action:"lift"}, "grey cardigan": {name:"grey cardigan", integrity_max:100, word:"a", action:"open"}, "leather jacket": {name:"leather jacket", integrity_max:100, word:"a", action:"open"}, "jacaranda vest": {name:"jacaranda vest", integrity_max:100, word:"a", action:"pull"}, "blossoming growths": {name:"blossoming growths", integrity_max:100, word:"n", action:"pull"}, "leaf shirt": {name:"leaf shirt", integrity_max:100, word:"a", action:"pull"}, "leaf corset": {name:"leaf corset", integrity_max:100, word:"a", action:"pull"}, "pine top": {name:"pine top", integrity_max:100, word:"a", action:"pull"}, "plant top": {name:"plant top", integrity_max:100, word:"a", action:"pull"}, "sundress": {name:"sundress", integrity_max:100, word:"a", action:"lift"}, "tuxedo": {name:"tuxedo", integrity_max:100, word:"a", action:"unbutton"}, "gothic gown": {name:"gothic gown", integrity_max:100, word:"a", action:"pull"}, "kimono": {name:"kimono", integrity_max:100, word:"a", action:"pull"}, "christmas top": {name:"christmas top", integrity_max:100, word:"a", action:"pull"}, "ribbons": {name:"ribbons", integrity_max:100, word:"n", action:"unwrap"}, "pyjama shirt": {name:"pyjama shirt", integrity_max:100, word:"a", action:"lift"}, "ghost sheet": {name:"ghost sheet", integrity_max:100, word:"a", action:"lift"}, "vampire jacket": {name:"vampire jacket", integrity_max:100, word:"a", action:"open"}, "witch dress": {name:"witch dress", integrity_max:100, word:"a", action:"pull"}, "flowing robe": {name:"flowing robe", integrity_max:100, word:"a", action:"lift"} }, "lower": { "naked": {name:"naked", integrity_max:100, word:"n", action:"none"}, "trousers": {name:"trousers", integrity_max:100, word:"n", action:"pull"}, "skirt": {name:"skirt", integrity_max:100, word:"a", action:"lift"}, "school shorts": {name:"school shorts", integrity_max:100, word:"n", action:"pull"}, "school skirt": {name:"school skirt", integrity_max:100, word:"a", action:"lift"}, "short school skirt": {name:"short school skirt", integrity_max:100, word:"a", action:"lift"}, "school trousers": {name:"school trousers", integrity_max:100, word:"n", action:"pull"}, "long school skirt": {name:"long school skirt", integrity_max:100, word:"a", action:"lift"}, "teacher's slacks": {name:"teacher's slacks", integrity_max:100, word:"n", action:"unzip"}, "school swim shorts": {name:"school swim shorts", integrity_max:100, word:"n", action:"pull"}, "school swimsuit bottoms": {name:"school swimsuit bottoms", integrity_max:100, word:"n", action:"aside"}, "swim shorts": {name:"swim shorts", integrity_max:100, word:"n", action:"pull"}, "board shorts": {name:"board shorts", integrity_max:100, word:"n", action:"pull"}, "bikini bottoms": {name:"bikini bottoms", integrity_max:100, word:"n", action:"pull"}, "microkini bottoms": {name:"microkini bottoms", integrity_max:100, word:"n", action:"pull"}, "diving suit bottoms": {name:"diving suit bottoms", integrity_max:100, word:"n", action:"unzip"}, "sailor trousers": {name:"sailor trousers", integrity_max:100, word:"n", action:"unzip"}, "cargo trousers": {name:"cargo trousers", integrity_max:100, word:"n", action:"pull"}, "police trousers": {name:"police trousers", integrity_max:100, word:"n", action:"unzip"}, "police skirt": {name:"police skirt", integrity_max:100, word:"a", action:"lift"}, "uniform trousers": {name:"uniform trousers", integrity_max:100, word:"n", action:"unzip"}, "monk robes": {name:"monk robes", integrity_max:100, word:"n", action:"aside"}, "nun robe skirt": {name:"nun robe skirt", integrity_max:100, word:"a", action:"lift"}, "robes": {name:"robes", integrity_max:100, word:"n", action:"aside"}, "black robes": {name:"black robes", integrity_max:100, word:"n", action:"aside"}, "jumpsuit bottoms": {name:"jumpsuit bottoms", integrity_max:100, word:"n", action:"unzip"}, "tuxedo trousers": {name:"tuxedo trousers", integrity_max:100, word:"n", action:"unzip"}, "evening gown": {name:"evening gown", integrity_max:100, word:"a", action:"lift"}, "ballgown skirt": {name:"ballgown skirt", integrity_max:100, word:"a", action:"lift"}, "breeches": {name:"breeches", integrity_max:100, word:"a", action:"pull"}, "gothic trousers": {name:"gothic trousers", integrity_max:100, word:"n", action:"unzip"}, "gothic gown": {name:"gothic gown", integrity_max:100, word:"a", action:"lift"}, "business trousers": {name:"business trousers", integrity_max:100, word:"n", action:"unzip"}, "sundress skirt": {name:"sundress skirt", integrity_max:100, word:"a", action:"lift"}, "tracksuit bottoms": {name:"tracksuit bottoms", integrity_max:100, word:"n", action:"pull"}, "slacks": {name:"slacks", integrity_max:100, word:"n", action:"unzip"}, "jeans": {name:"jeans", integrity_max:100, word:"n", action:"unbutton"}, "khakis": {name:"khakis", integrity_max:100, word:"n", action:"unzip"}, "jeans": {name:"jeans", integrity_max:100, word:"n", action:"unzip"}, "shorts": {name:"shorts", integrity_max:100, word:"n", action:"pull"}, "miniskirt": {name:"miniskirt", integrity_max:100, word:"a", action:"lift"}, "boyshorts": {name:"boyshorts", integrity_max:100, word:"n", action:"pull"}, "panties": {name:"panties", integrity_max:100, word:"n", action:"pull"}, "boxers": {name:"boxers", integrity_max:100, word:"n", action:"unbutton"}, "briefs": {name:"briefs", integrity_max:100, word:"n", action:"pull"}, "jorts": {name:"jorts", integrity_max:100, word:"n", action:"pull"}, "sweatpants": {name:"sweatpants", integrity_max:100, word:"n", action:"pull"}, "rain bottoms": {name:"rain bottoms", integrity_max:100, word:"n", action:"pull"}, "camo bottoms": {name:"camo bottoms", integrity_max:100, word:"n", action:"unzip"}, "assless chaps": {name:"assless chaps", integrity_max:100, word:"n", action:"pull"}, "hot pants": {name:"hot pants", integrity_max:100, word:"n", action:"pull"}, "leather trousers": {name:"leather trousers", integrity_max:100, word:"n", action:"pull"}, "bathrobe": {name:"bathrobe", integrity_max:100, word:"a", action:"lift"}, "lab trousers": {name:"lab trousers", integrity_max:100, word:"n", action:"unzip"}, "security trousers": {name:"security trousers", integrity_max:100, word:"n", action:"unzip"}, "white trousers": {name:"white trousers", integrity_max:100, word:"n", action:"pull"}, "white skirt": {name:"white skirt", integrity_max:100, word:"a", action:"lift"}, "gown skirt": {name:"gown skirt", integrity_max:100, word:"a", action:"lift"}, "jumpsuit trousers": {name:"jumpsuit trousers", integrity_max:100, word:"n", action:"pull"}, "coverall bottoms": {name:"coverall bottoms", integrity_max:100, word:"n", action:"unzip"}, "dance shorts": {name:"dance shorts", integrity_max:100, word:"n", action:"pull"}, "formal trousers": {name:"formal trousers", integrity_max:100, word:"n", action:"pull"}, "cropped dress skirt": {name:"cropped dress skirt", integrity_max:100, word:"a", action:"lift"}, "riding trousers": {name:"riding trousers", integrity_max:100, word:"n", action:"pull"}, "chapette breeches": {name:"chapette breeches", integrity_max:100, word:"n", action:"pull"}, "torn hunting trousers": {name:"torn hunting trousers", integrity_max:100, word:"n", action:"pull"}, "ruined trousers": {name:"ruined trousers", integrity_max:100, word:"n", action:"pull"}, "dark trousers": {name:"dark trousers", integrity_max:100, word:"n", action:"pull"}, "torn jeans": {name:"torn jeans", integrity_max:100, word:"n", action:"unbutton"}, "bloomers": {name:"bloomers", integrity_max:100, word:"n", action:"lift"}, "bell flower dress": {name:"bell flower dress", integrity_max:100, word:"a", action:"lift"}, "lotus skirt": {name:"lotus skirt", integrity_max:100, word:"a", action:"lift"}, "leaf skirt": {name:"leaf skirt", integrity_max:100, word:"a", action:"lift"}, "evergreen dress": {name:"evergreen dress", integrity_max:100, word:"a", action:"lift"}, "plant skirt": {name:"plant skirt", integrity_max:100, word:"a", action:"lift"}, "kimono bottoms": {name:"kimono bottoms", integrity_max:100, word:"n", action:"lift"}, "christmas bottoms": {name:"christmas bottoms", integrity_max:100, word:"n", action:"pull"}, "ribbons": {name:"ribbons", integrity_max:100, word:"n", action:"unwrap"}, "pyjama bottoms": {name:"pyjama bottoms", integrity_max:100, word:"n", action:"pull"}, "ghost sheet": {name:"ghost sheet", integrity_max:100, word:"a", action:"lift"}, "vampire trousers": {name:"vampire trousers", integrity_max:100, word:"n", action:"pull"}, "witch dress skirt": {name:"witch dress skirt", integrity_max:100, word:"a", action:"lift"}, "flowing robe": {name:"flowing robe", integrity_max:100, word:"a", action:"lift"} } }>> <<set setup.npcClothesSets to [ {name: "naked", type: "naked", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("naked", "naked"), desc: "naked"}, {name: "maleDefault", type: "default", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"}, {name: "femaleDefault", type: "default", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleSchool", type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "school shorts"), desc: "school uniform"}, {name: "femaleSchool", type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "school skirt"), desc: "school uniform"}, {name: "femaleSchoolShort", type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "short school skirt"), desc: "school uniform"}, {name: "maleSchoolLong", type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school blouse", "school trousers"), desc: "school uniform"}, {name: "femaleSchoolLong", type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school blouse", "long school skirt"), desc: "school uniform"}, {name: "maleSchoolDress", type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("dress shirt", "school trousers"), desc: "school uniform"}, {name: "femaleSchoolDress", type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("dress shirt", "school skirt"), desc: "school uniform"}, {name: "maleSchoolBlazer", type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school blazer", "school trousers"), desc: "school uniform"}, {name: "femaleSchoolBlazer", type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school blazer", "long school skirt"), desc: "school uniform"}, {name: "teacher", type: "teacher", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("teacher's uniform", "teacher's slacks"), desc: "teacher's uniform"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleSchoolSwim", type: "schoolSwim", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "school swim shorts"), desc: "school swimsuit"}, {name: "maleSchoolSwimShirt", type: "schoolSwim", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("swim shirt", "school swim shorts"), desc: "school swimsuit"}, {name: "femaleSchoolSwim", type: "schoolSwim", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("school swimsuit top", "school swimsuit bottoms"), desc: "school swimsuit"}, {name: "maleSwim1", type: "beach", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "swim shorts"), desc: "swimsuit"}, {name: "maleSwim2", type: "beach", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "board shorts"), desc: "swimsuit"}, {name: "femaleSwim1", type: "beach", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("bikini top", "bikini bottoms"), desc: "bikini"}, {name: "femaleSwim2", type: "beach", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("microkini top", "microkini bottoms"), desc: "microkini"}, {name: "neutralSwim", type: "beach", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("swim shirt", "board shorts"), desc: "swimsuit"}, {name: "divingSuit", type: "beachDive", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("diving suit", "diving suit bottoms"), desc: "diving suit"}, {name: "sailor", type: "sailor", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sailor shirt", "sailor trousers"), desc: "sailor outfit"}, {name: "docker1", type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hi-vis jacket", "cargo trousers"), desc: "hi-vis jacket and cargo trousers"}, {name: "docker2", type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("denim shirt", "jeans"), desc: "denim shirt and jeans"}, {name: "docker3", type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hoodie", "cargo trousers"), desc: "hoodie and cargo trousers"}, {name: "docker4", type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("vest", "jeans"), desc: "vest and jeans"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "malePolice", type: "police", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("police shirt", "police trousers"), desc: "police uniform"}, {name: "femalePolice", type: "police", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("police shirt", "police skirt"), desc: "police uniform"}, {name: "neutralPolice", type: "police", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("uniform shirt", "uniform trousers"), desc: "police uniform"}, {name: "maleRobe", type: "temple", gender: "m", outfit: 1, clothes: npcAssignClothesToSet("monk robe top", "monk robes"), desc: "robe"}, {name: "femaleRobe", type: "temple", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("nun robe top", "nun robe skirt"), desc: "robe"}, {name: "neutralRobe", type: "temple", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("robe top", "robes"), desc: "robe"}, {name: "neutralRobeBlack", type: "templeBlack", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("black robe top", "black robes"), desc: "black robe"}, {name: "prisonJumpsuit", type: "prison", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("jumpsuit shirt", "jumpsuit bottoms"), desc: "prison jumpsuit"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleFormal1", type: "formal", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tuxedo shirt", "tuxedo trousers"), desc: "tuxedo"}, {name: "femaleFormal1", type: "formal", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("evening gown top", "evening gown"), desc: "formal gown"}, {name: "femaleFormal2", type: "formal", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("ballgown top", "ballgown skirt"), desc: "ballgown"}, {name: "neutralFormal", type: "formal", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("dress shirt", "breeches"), desc: "dress shirt and breeches"}, {name: "maleFormalRare", type: "formalRare", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("gothic jacket and vest", "gothic trousers"), desc: "gothic suit"}, {name: "femaleFormalRare", type: "formalRare", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("gothic gown top", "gothic gown"), desc: "gothic gown"}, {name: "business", type: "business", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("business suit top", "business trousers"), desc: "business suit"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleTown1", type: "town", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "shorts"), desc: "t-shirt and shorts"}, {name: "femaleTown1", type: "town", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress top", "sundress skirt"), desc: "sundress"}, {name: "maleTown2", type: "town", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"}, {name: "femaleTown2", type: "town", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"}, {name: "townTrack", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("tracksuit top", "tracksuit bottoms"), desc: "tracksuit"}, {name: "townCoat", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("peacoat", "slacks"), desc: "peacoat and slacks"}, {name: "townTurtleneck", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("turtleneck", "jeans"), desc: "turtleneck and jeans"}, {name: "townCollar", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("collared shirt", "khakis"), desc: "collared shirt and khakis"}, {name: "townBlazer", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("blazer", "trousers"), desc: "blazer and trousers"}, {name: "townJersey", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sports jersey", "trousers"), desc: "sports jersey and trousers"}, {name: "townSweaterVest", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater vest", "khakis"), desc: "sweater vest and khakis"}, {name: "townVNeck", type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("v neck", "jeans"), desc: "v neck shirt and jeans"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleWarm1", type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "shorts"), desc: "t-shirt and shorts"}, {name: "femaleWarm1", type: "warm", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress top", "sundress skirt"), desc: "sundress"}, {name: "maleWarm2", type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tank top", "shorts"), desc: "tank top and shorts"}, {name: "femaleWarm2", type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("blouse", "skirt"), desc: "blouse and skirt"}, {name: "maleWarmShirtless", type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "shorts"), desc: "shorts"}, {name: "femaleWarmCrop", type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("crop top", "miniskirt"), desc: "crop top and miniskirt"}, {name: "femaleWarmTank", type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("tank top", "boyshorts"), desc: "tank top and boyshorts"}, {name: "neutralWarmBlazer", type: "warm", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("blazer", "shorts"), desc: "blazer and shorts"}, {name: "neutralWarmJersey", type: "warm", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sports jersey", "jorts"), desc: "sports jersey and jorts"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "coldPuffer", type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("puffer jacket", "slacks"), desc: "puffer jacket"}, {name: "coldTrench", type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("trenchcoat", "jeans"), desc: "trenchcoat"}, {name: "coldCoat", type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("coat", "jeans"), desc: "coat"}, {name: "coldHoodie", type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hoodie", "sweatpants"), desc: "hoodie"}, {name: "coldSweater", type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater", "sweatpants"), desc: "sweater and sweatpants"}, {name: "rainCoat", type: "rain", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("rain coat", "rain bottoms"), desc: "rain coat"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "wildsFlannel", type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("flannel", "jeans"), desc: "flannel and jeans"}, {name: "wildsWJumper", type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("woolen jumper", "khakis"), desc: "woolen jumper"}, {name: "wildsFJumper", type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("fleece jumper", "khakis"), desc: "fleece jumper"}, {name: "wildsJacket", type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("jacket", "khakis"), desc: "jacket and khakis"}, {name: "forestCamo", type: "forest", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("camo jacket", "camo bottoms"), desc: "camouflaged hunting outfit"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "brothelTrench", type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("trench coat", "assless chaps"), desc: "trench coat"}, {name: "brothelVest", type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather vest", "hot pants"), desc: "leather vest"}, {name: "brothelHarness", type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather harness", "leather trousers"), desc: "leather harness"}, {name: "bathrobe", type: "spa", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("bathrobe", "bathrobe"), desc: "bathrobe"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "compoundLab", type: "compoundLab", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("lab coat", "lab trousers"), desc: "lab coat"}, {name: "security", type: "security", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("security vest", "security trousers"), desc: "security uniform"}, {name: "doctor", type: "hospital", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("doctor's coat", "white trousers"), desc: "doctor uniform"}, {name: "nurse", type: "hospital", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("nurse's coat", "white skirt"), desc: "nurse uniform"}, {name: "patient", type: "patient", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("patient gown", "gown skirt"), desc: "patient gown"}, {name: "jumpsuit", type: "worker", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("jumpsuit top", "jumpsuit trousers"), desc: "jumpsuit"}, {name: "coveralls", type: "worker", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("coverall top", "coverall bottoms"), desc: "coveralls"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleUndies", type: "undies", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "briefs"), desc: "briefs"}, {name: "femaleUndies", type: "undies", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("bra", "panties"), desc: "bra and panties"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "dance", type: "dance_studio", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("dance shirt", "dance shorts"), desc: "dance uniform"}, {name: "maleBriar", type: "Briar", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirtless suit", "formal trousers"), desc: "shirtless suit"}, {name: "femaleBriar", type: "Briar", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("low-neck dress", "cropped dress skirt"), desc: "plunging neckline dress"}, {name: "riding", type: "riding", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("riding top", "riding trousers"), desc: "riding outfit"}, {name: "ridingFormal", type: "Remy", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("shadbelly coat", "chapette breeches"), desc: "formal riding outfit"}, {name: "Eden", type: "Eden", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ramshackle hunting coat", "torn hunting trousers"), desc: "hunting outfit"}, {name: "Morgan", type: "Morgan", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ruined suit", "ruined trousers"), desc: "ruined outfit"}, {name: "maleLandry", type: "Landry", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("grey sweater", "dark trousers"), desc: "grey sweater"}, {name: "femaleLandry", type: "Landry", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("grey cardigan", "dark trousers"), desc: "grey cardigan"}, {name: "Whitney", type: "Whitney", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather jacket", "torn jeans"), desc: "leather jacket"}, {name: "AlexJorts", type: "Alex", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("flannel", "jorts"), desc: "flannel and jorts"}, {name: "AlexSkirt", type: "Alex", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("flannel", "skirt"), desc: "flannel and skirt"}, {name: "maleAlexSleep", type: "Alex", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "boxers"), desc: "t-shirt and boxers"}, {name: "femaleAlexSleep", type: "Alex", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "boyshorts"), desc: "t-shirt and boyshorts"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "malePlantSpring", type: "plantSpring", gender: "m", outfit: 1, clothes: npcAssignClothesToSet("jacaranda vest", "bloomers"), desc: "mass of leafy coverings"}, {name: "femalePlantSpring", type: "plantSpring", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("blossoming growths", "bell flower dress"), desc: "mass of leafy coverings"}, {name: "plantSummer", type: "plantSummer", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("leaf shirt", "lotus skirt"), desc: "mass of leafy coverings"}, {name: "plantAutumn", type: "plantAutumn", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("leaf corset", "leaf skirt"), desc: "mass of leafy coverings"}, {name: "plantWinter", type: "plantWinter", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("pine top", "evergreen dress"), desc: "mass of leafy coverings"}, {name: "plantGeneric", type: "plant", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("plant top", "plant skirt"), desc: "plant top and skirt"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "robinGiftShirt", type: "robinGift", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "shorts"), desc: "shirt and shorts"}, {name: "robinGiftSundress", type: "robinGift", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress", "sundress skirt"), desc: "sundress"}, {name: "robinGiftTux", type: "robinGift", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tuxedo", "tuxedo trousers"), desc: "tuxedo"}, {name: "robinGiftGown", type: "robinGift", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("gothic gown", "gothic gown"), desc: "gothic gown"}, {name: "robinGiftKimono", type: "robinGift", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("kimono", "kimono bottoms"), desc: "kimono"}, {name: "robinGiftChristmas", type: "robinGift", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("christmas top", "christmas bottoms"), desc: "christmas outfit"}, {name: "robinLewdRibbons", type: "robinRibbons", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ribbons", "ribbons"), desc: "mass of ribbons"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "pyjamas", type: "sleep", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("pyjama shirt", "pyjama bottoms"), desc: "pyjama shirt and bottoms"}, {name: "ghost", type: "halloween", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("ghost sheet", "ghost sheet"), desc: "ghost costume"}, {name: "vampire", type: "halloween", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("vampire jacket", "vampire trousers"), desc: "vampire costume"}, {name: "witch", type: "halloween", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("witch dress", "witch dress skirt"), desc: "witch costume"}, {name: "moonRobe", type: "Wraith", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("flowing robe", "flowing robe"), desc: "flowing robe"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "sweater", type: "sweater", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater", "jeans"), desc: "sweater and jeans"}, /*--------------------------------------------------------------------------------------------------------------------------------------------------*/ {name: "maleDefault", type: "default", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"}, {name: "femaleDefault", type: "default", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"} ]>> <</widget>>
<<widget "charLight">> <<if $options.characterLightEnabled and $options.images is 1>> /* Position glow and spotlight */ <<set _offsetX = _args[0]>> <<set _offsetY = _args[1]>> /* If _class == "limited" then only show spotlight and glow */ <<set _class = _args[2] || "">> <<set _angelDemonBalance = ($angel / 6 - $demon / 6) * $options.lightTFColor>> <<set _sliderMult = 0.5>> <div @class="'char-light ' + _class" @style=" '--offset-x: ' + _offsetX + '; --offset-y: ' + _offsetY + '; --spotlight: ' + ($options.lightSpotlight * _sliderMult) + '; --gradient: ' + ($options.lightGradient * _sliderMult) + '; --glow: ' + ($options.lightGlow * _sliderMult) + '; --flat: ' + ($options.lightFlat * _sliderMult) "> <div class="angel" @style="'opacity: ' + _angelDemonBalance"></div> <div class="demon" @style="'opacity: ' + -_angelDemonBalance"></div> </div> <</if>> <</widget>> <<widget "charLightCombat">> <<if $options.characterLightEnabled and $options.images is 1 and $options.combatImages is 1>> <<set _position = _args[0] || "">> <<set _props = _args[1] || []>> <<if _position == "doggy">> <<if _props.includes("haybale") or _props.includes("milk")>> <<set _heightOffset = "225px">> <<elseif _props.includes("bench")>> <<set _heightOffset = "240px">> <<elseif _props.includes("table")>> <<set _heightOffset = "277px">> <</if>> <<elseif _position == "missionary">> <<if _props.includes("haybale") or _props.includes("milk")>> <<set _heightOffset = "225px">> <<elseif _props.includes("bench")>> <<set _heightOffset = "228px">> <<elseif _props.includes("table")>> <<set _heightOffset = "265px">> <</if>> <</if>> <div @class="'char-light-combat ' + _position" @style="'--light-intensity: ' + $options.lightCombat + (_heightOffset ? '; --height-offset: ' + _heightOffset : '')"></div> <</if>> <</widget>>
/* Witten 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>> <<print ($_started.length gt 1) ? "foreign penises" : "a foreign penis">> <<else>> <<print ($_started.length gt 1) ? "foreign objects" : "a foreign object">> <</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 penis<<print ($_continued.length gt 1) ? "es" : "">> <<else>> The foreign object<<print ($_continued.length gt 1) ? "s" : "">> <</if>> <<else>> <<print ($_continued.length gt 1) ? "Those" : "The one">> <</if>> in your <<print formatList($_continued)>> <<print ($_continued.length gt 1) ? "are" : "is">> 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>> The foreign penis<<print ($_disappeared.length gt 1) ? "es" : "">> <<else>> The foreign object<<print ($_disappeared.length gt 1) ? "s" : "">> <</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 "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 gt 0 and $tryOn.value lt $money>> <<sendItemsToDropdown>> <<link "Buy clothes and send to wardrobe">> <<buyTryOnClothes "wardrobe">> <<updatesidebarmoney>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<updateclothingshop>> <</link>> <br> <<elseif $tryOn.value is 0>> <<link [[Leave|Library Rental Counter]]>><<shopClothingFilterReset>><<ShowUnderEquip "normal">><<endnpc>><<unset $clothes_choice>><<set $tryOn.autoReset to true>><<set $eventskip to 1>><<unset $tempDisable>><<endevent>><</link>> <br><br> <</if>> <</if>> <</widget>>
<div id="clothingShop-div" class="main-shop-div"> <<forestShop-main>> </div>
<<widget "forestShop-intro">> <<npc Gwylan>><<person1>> You enter the strange building. The interior is dark and crowded by tall shelves, holding all manner of items. <br><br> 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 $gwylan_rescue is 1>> It's Gwylan. <br><br> "You came!" <<else>> <br><br> "A customer!" <</if>> <<he>> says, dropping the ladder and walking over. <<He>> wipes <<his>> hands on <<his>> apron. "Welcome to my shop." <<if $gwylan_rescue is 1 and $gwylan_aborted gte 1>> <br><br> <<gwylanRescueApologyShop "Intro">> <<set $gwylan_aborted to 0>> <<elseif $gwylan_rescue isnot 1>> <br><br> <<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. "I'm Gwylan." <<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 knick-knacks here. Things you won't find in normal shops. 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>> laughs. "I could believe it." <</if>> <br><br> <<link [[Next|Forest Shop]]>><<endevent>><</link>> <br> <</widget>> <<widget "forestShop-text">> 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 $gwylan_aborted gte 1>> <<gwylanRescueApologyShop>> <<set $gwylan_aborted to 0>> <<else>> You hear Gwylan shuffling somewhere in the gloom. <</if>> <<if $robin_in_forest_shop>> Robin is busy admiring the costumes. <<if !$halloween_robin_costume or $halloween_robin_costume is "ghost">> <br><br> <<link [[Talk to Robin|Robin Forest Costume Intro]]>><<forestShop-leave>><<clothingReset>><</link>> <</if>> <</if>> <</widget>> <<widget "forestShop-leave">> <<shopClothingFilterReset>><<unset $clothes_choice>><<ShowUnderEquip "normal">><<ShowUnderEquip "over">> <<set $tryOn.autoReset to true>><<set $eventskip to 1>><<unset $tempDisable>> <</widget>> <<widget "forestShop-main">> <<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<set $shopName = "forest">> <<if $tryOn.autoReset isnot false>><<tryOnReset>><</if>> <<specialClothesUpdate>> <<if $forest_shop_intro isnot 1>> <<set $forest_shop_intro to 1>> <<forestShop-intro>> <<else>> <<forestShop-text>> <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> <<if $christmas_gift_robin is undefined and $christmas is 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>> <<ind>><<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>> <<ind>><<link [[Look for the snow globe (0:20)|Forest Snowglobe]]>><<pass 20>><</link>> <<elseif $money gte 2000>> <<ind>><<link [[Purchase the snow globe (£20)|Forest Snowglobe Buy]]>><<set $money -= 2000>><</link>> <</if>> <br> <</if>> <<clothingcategoryicon "all">> <<link "View all">><<replace "#clothingShop-div">><<AllShop>><</replace>><</link>> <br><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 "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 rack">><<replace "#clothingShop-div">><<FeetShop>><</replace>><</link>> <br><br> <<run linkifyDivs('.button-back-to-shop')>> <<if $tryOn.value gt 0 and $tryOn.value lt $money>> <<sendItemsToDropdown>> <<link "Buy clothes and send to wardrobe">> <<buyTryOnClothes "wardrobe">> <<updatesidebarmoney>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<updateclothingshop>> <</link>> <br> <<elseif $tryOn.value is 0>> <<if $robin_in_forest_shop>> <<link [[Leave with Robin (0:10)|Robin Forest Shop Home]]>><<endnpc "Gwylan">><<forestShop-leave>><<pass 10>><</link>> <<else>> <<link [[Leave|Forest]]>><<endnpc "Gwylan">><<forestShop-leave>><</link>> <</if>> <</if>> <</if>> <</widget>>
<<effects>> You search through an assortment of strange clothes, before finding a Christmas-themed outfit in Robin's size. There's a price tag: "£80". <br><br> <<if $money gte 8000>> <<link [[Buy it|Forest Christmas Robin Buy]]>><<set $christmas_gift_robin to "christmas_unwrapped">><</link>> <br> <</if>> <<link [[Next|Forest Shop]]>><</link>> <br>
<<effects>> You hand Gwylan the cash. <<if $christmas_wrap is undefined>>Now you just need wrapping paper. <span class="gold">You can buy some at the shopping centre.</span><<else>>You can wrap it in your room.<</if>> <br><br> <<link [[Next|Forest Shop]]>><</link>> <br>
<<effects>><<npc 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> "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 globe 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 snowgsnow globelobe 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> <<if $money gte 2000>> <<link [[Purchase the snow globe (£20)|Forest Snowglobe Buy]]>><<set $money -= 2000>><</link>> <<else>> You can't afford it. <</if>> <br> <<link [[Back|Forest Shop]]>><<set $pubfame.gwylan.snowglobe to 1>><<endevent>><</link>>
<<effects>><<npc Gwylan>> You hand over the money to Gwylan, and <<he>> hands you the snow globe. "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!" <br><br> <<pubfameComplete "gwylan">> <<link [[Next|Forest Shop]]>><<endevent>><</link>>
<<widget "specialClothesEffectsSetup">> <<if $specialClothesEffects is undefined>> <<set $specialClothesEffects to { bimbo:0, bimboTotal:0, bimboMessage:0 }>> <</if>> <</widget>> <<widget "bimboCheck">> <<if $worn[_args[0]].type.includes("bimbo")>> <<set $specialClothesEffects.bimbo++>> <</if>> <</widget>> <<widget "bimboUpdate">> <<if $specialClothesEffects.bimbo gt 0>> <<set $breastgrowthtimer -= $specialClothesEffects.bimbo * 5>> <<if $player.penisExist>> <<set $penisgrowthtimer += $specialClothesEffects.bimbo * 5>> <</if>> <<set $bottomgrowthtimer -= $specialClothesEffects.bimbo * 5>> <<if $specialClothesEffects.bimboTotal lt 10000>> <<set $specialClothesEffects.bimboTotal += $specialClothesEffects.bimbo>> <</if>> <<set $specialClothesEffects.bimbo to 0>> <<if $specialClothesEffects.bimboTotal gte 400 and $specialClothesEffects.bimboMessage is 0>> <<set $specialClothesEffects.bimboMessage to 1>><<set _skipEvent to true>> <<if $player.gender_body is "m">> <<set $player.gender_body to "a">> <</if>> <span class="lewd"> You feel different, but you're not sure how or why. <<if $worn.upper.type.includes("bimbo") or $worn.lower.type.includes("bimbo") or $worn.feet.type.includes("bimbo")>> Your clothing seems to cling to you. <</if>> </span> <br> <<elseif $specialClothesEffects.bimboTotal lt 400 and $specialClothesEffects.bimboMessage is 1>> <<set $specialClothesEffects.bimboMessage to 0>> <</if>> <<if $specialClothesEffects.bimboTotal gte 800 and $specialClothesEffects.bimboMessage is 1 and _skipEvent isnot true>> <<set $specialClothesEffects.bimboMessage to 2>><<set _skipEvent to true>> <<if $player.gender_body isnot "f">> <<set $player.gender_body to "f">> <</if>> <span class="lewd"> You feel different yet again, this time you're more sure about it, something is making you look more feminine. <<if $worn.upper.type.includes("bimbo") or $worn.lower.type.includes("bimbo") or $worn.feet.type.includes("bimbo")>> You feel different yet again, but this time you're more sure about it. <<else>> Your thoughts turn to the outfit you had on earlier. <</if>> </span> <br> <<elseif $specialClothesEffects.bimboTotal lt 800 and $specialClothesEffects.bimboMessage is 2>> <<set $specialClothesEffects.bimboMessage to 1>> <</if>> <<if $specialClothesEffects.bimboTotal gte 1200 and $specialClothesEffects.bimboMessage is 2 and _skipEvent isnot true>> <<set $specialClothesEffects.bimboMessage to 3>> <<if !$backgroundTraits.includes("lustful")>> <<run $backgroundTraits.pushUnique("lustful")>> <</if>> <<arousal 10000>> <span class="lewd">You feel an odd sense of yearning grow within you, and you are filled with a deep desire. An unbearable lust soon takes hold.</span> <br> <<elseif $specialClothesEffects.bimboTotal lt 1200 and $specialClothesEffects.bimboMessage is 3>> <<set $specialClothesEffects.bimboMessage to 2>> <</if>> <</if>> <</widget>> <<widget "heelsUpdate">> <<if $worn.feet.type.includes("heels")>> <<if $feetskill lt $worn.feet.reveal>> <<set $tiredness += (($worn.feet.reveal - $feetskill) / 150)>> <</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>> <<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>> <<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>> <<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>> <<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>> <<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>> <<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>> <<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>> <<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>> <<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 quizically.<</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_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">> <br> <<link [[Get dressed|$passage]]>><<storeon _temp_strip "noreplace">><<set $eventskip to 1>><</link>> <br> <</if>> /*Just incase 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 !$worn.over_upper.cursed and !$worn.over_lower.cursed and _overOutfit>> <!-- over outfit can be stripped --> <<if $exhibitionism gte 15 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 $exhibitionism gte 15 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 $exhibitionism gte 35 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 $exhibitionism gte 15 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 $exhibitionism gte 15 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 $exhibitionism gte 35 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 $exhibitionism gte 15 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 $exhibitionism gte 15 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 $exhibitionism gte 35 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 Object.keys(_stripOptions).length gt 0>> 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>> <<default>> <</switch>> <</link>> <br><br> <</if>> <<exposure>> <</widget>>
<<widget "updateClothes-obsolete">> <<set _equip to setup.clothes_all_slots>> <<set _skip to ["integrity","integrity_max","colour","accessory_colour", "exposed", "vagina_exposed", "anus_exposed", "anal_shield", "one_piece", "skirt_down", "state", "state_top","name_cap","iconFile","accIcon","notuck","skirt","description","colour_options","accessory_colour_options","fabric_strength","integrity_max","bustresize","sleeve_img","breast_img","exposed_base","vagina_exposed_base","anus_exposed_base","state_top_base","state_base","word","femininity","strap","cost","shop","cursed","collared"]>> <<set _remap_colours to {"light-pink":"light pink", "blue-steel":"blue steel"}>> <!-- 0.3.9.3: adding "hoodposition" variable to all hoodies Just add the variable to hoodies that don't have it, skip it after this --> <<if $objectVersion.updateClothes gte 31>> <<set _skip.push("hoodposition")>> <</if>> <<for _i to 0; _i lt _equip.length; _i++>> <<set _worn to $worn[_equip[_i]]>> <<set _default to setup.clothes[_equip[_i]][clothesIndex(_equip[_i],_worn)]>> <<set _keys to Object.keys(_default)>> <<for _j to 0; _j lt _keys.length; _j++>> <<if _skip.includes(_keys[_j])>> <<continue>> <</if>> <<if _keys[_j] is "outfitPrimary">> <<if _worn[_keys[_j]] is undefined and _default[_keys[_j]] isnot undefined>> <<set _worn[_keys[_j]] to clone(_default[_keys[_j]])>> <<if _worn.one_piece is "broken">> <<if _equip[_i] is "upper">> <<set _worn[_keys[_j]].lower to "broken">> <<elseif _equip[_i] is "under_upper">> <<set _worn[_keys[_j]].under_lower to "broken">> <</if>> <</if>> <</if>> <<continue>> <</if>> <<if _keys[_j] is "outfitSecondary">> <<if _worn[_keys[_j]] is undefined and _default[_keys[_j]] isnot undefined>> <<set _worn[_keys[_j]] to clone(_default[_keys[_j]])>> <<if _worn.one_piece is "broken">> <<set _worn[_keys[_j]][1] to "broken">> <</if>> <</if>> <<continue>> <</if>> <<set _worn[_keys[_j]] to clone(_default[_keys[_j]])>> <</for>> <<set _worn.colour to _remap_colours[_worn.colour] || _worn.colour>> <<set _worn.accessory_colour to _remap_colours[_worn.accessory_colour] || _worn.accessory_colour>> <<if (_worn.colour is 0 and _default.colour_options.length gt 0) or (_worn.accessory_colour is 0 and _default.accessory_colour_options gt 0)>> <<updateClothingColours _worn>> <</if>> <!--Fix for 0.2.21.x issue--> <<if _worn.colour_combat isnot undefined and _default.colour_options.length is 0>> <<set _worn.colour to 0>> <</if>> <<if _worn.accessory_colour_combat isnot undefined and _default.colour_options.length is 0>> <<set _worn.accessory_colour to 0>> <</if>> <!--end of fix--> <<if _equip[_i] is "genitals">> <<continue>> <</if>> <<if _worn.name is "Crop top">> <<set _worn.name to "crop top">> <</if>> <<set _carried to $carried[_equip[_i]]>> <<set _default to setup.clothes[_equip[_i]][clothesIndex(_equip[_i],_carried)]>> <<set _keys to Object.keys(_default)>> <<for _j to 0; _j lt _keys.length; _j++>> <<if _skip.includes(_keys[_j])>> <<continue>> <</if>> <<if _keys[_j] is "outfitPrimary">> <<if _carried[_keys[_j]] is undefined and _default[_keys[_j]] isnot undefined>> <<set _carried[_keys[_j]] to clone(_default[_keys[_j]])>> <<if _carried.one_piece is "broken">> <<if _equip[_i] is "upper">> <<set _carried[_keys[_j]].lower to "broken">> <<elseif _equip[_i] is "under_upper">> <<set _carried[_keys[_j]].under_lower to "broken">> <</if>> <</if>> <</if>> <<continue>> <</if>> <<if _keys[_j] is "outfitSecondary">> <<if _carried[_keys[_j]] is undefined and _default[_keys[_j]] isnot undefined>> <<set _carried[_keys[_j]] to clone(_default[_keys[_j]])>> <<if _carried.one_piece is "broken">> <<set _carried[_keys[_j]][1] to "broken">> <</if>> <</if>> <<continue>> <</if>> <<set _carried[_keys[_j]] to clone(_default[_keys[_j]])>> <</for>> <<set _carried.colour to _remap_colours[_carried.colour] || _carried.colour>> <<set _carried.accessory_colour to _remap_colours[_carried.accessory_colour] || _carried.accessory_colour>> <<if (_carried.colour is 0 and _default.colour_options.length gt 0) or (_carried.accessory_colour is 0 and _default.accessory_colour_options gt 0)>> <<updateClothingColours _carried>> <</if>> <!--Fix for 0.2.21.x issue--> <<if _carried.colour_combat isnot undefined and _default.colour_options.length is 0>> <<set _carried.colour to 0>> <</if>> <<if _carried.accessory_colour_combat isnot undefined and _default.colour_options.length is 0>> <<set _carried.accessory_colour to 0>> <</if>> <!--end of fix--> <<if _carried.name is "Crop top">> <<set _carried.name to "crop top">> <</if>> <<for _j to 0; _j lt $wardrobe[_equip[_i]].length; _j++>> <<set _wardrobe to $wardrobe[_equip[_i]][_j]>> <<set _default to setup.clothes[_equip[_i]][clothesIndex(_equip[_i],_wardrobe)]>> <<set _keys to Object.keys(_default)>> <<for _k to 0; _k lt _keys.length; _k++>> <<if _skip.includes(_keys[_k])>> <<continue>> <</if>> <<if _keys[_k] is "outfitPrimary">> <<if _wardrobe[_keys[_k]] is undefined and _default[_keys[_k]] isnot undefined>> <<set _wardrobe[_keys[_k]] to clone(_default[_keys[_k]])>> <<if _wardrobe.one_piece is "broken">> <<if _equip[_i] is "upper">> <<set _wardrobe[_keys[_k]].lower to "broken">> <<elseif _equip[_i] is "under_upper">> <<set _wardrobe[_keys[_k]].under_lower to "broken">> <</if>> <</if>> <</if>> <<continue>> <</if>> <<if _keys[_k] is "outfitSecondary">> <<if _wardrobe[_keys[_k]] is undefined and _default[_keys[_k]] isnot undefined>> <<set _wardrobe[_keys[_k]] to clone(_default[_keys[_k]])>> <<if _wardrobe.one_piece is "broken">> <<set _wardrobe[_keys[_k]][1] to "broken">> <</if>> <</if>> <<continue>> <</if>> <<set _wardrobe[_keys[_k]] to clone(_default[_keys[_k]])>> <</for>> <<set _wardrobe.colour to _remap_colours[_wardrobe.colour] || _wardrobe.colour>> <<set _wardrobe.accessory_colour to _remap_colours[_wardrobe.accessory_colour] || _wardrobe.accessory_colour>> <<if (_wardrobe.colour is 0 and _default.colour_options.length gt 0) or (_wardrobe.accessory_colour is 0 and _default.accessory_colour_options gt 0)>> <<updateClothingColours _wardrobe>> <</if>> <!--Fix for 0.2.21.x issue--> <<if _wardrobe.colour_combat isnot undefined and _default.colour_options.length is 0>> <<set _wardrobe.colour to 0>> <</if>> <<if _wardrobe.accessory_colour_combat isnot undefined and _default.colour_options.length is 0>> <<set _wardrobe.accessory_colour to 0>> <</if>> <!--end of fix--> <</for>> <</for>> <<for _i to 0; _i lt $outfit.length; _i++>> <<if $outfit[_i].upper is "Crop top">> <<set $outfit[_i].upper to "crop top">> <</if>> <</for>> <</widget>> <<widget "updateClothingColours-obsolete">> <!-- Used for making clothes colour customisable. Structured in such a way that primary and accessory colours can be updated separately without affecting the other, if applicable. --> <!-- This widget should be updated whenever a new clothing item is made colour customisable with the clothing item in question. Colours should be specifically chosen based on whatever best matches the original. --> <<switch _args[0].name>> <<case "winter jacket">> <<set _args[0].colour to (_args[0].colour is 0 ? "black" : _args[0].colour)>> <<set _args[0].accessory_colour to (_args[0].accessory_colour is 0 ? "tan" : _args[0].accessory_colour)>> <<case "cool shades" "square shades" "round shades" "shield shades" "punk shades">> <<set _args[0].colour to (_args[0].colour is 0 ? "black" : _args[0].colour)>> <<case "aviators">> <<set _args[0].colour to (_args[0].colour is 0 ? "grey" : _args[0].colour)>> <<case "glasses">> <<set _args[0].colour to (_args[0].colour is 0 ? "silver" : _args[0].colour)>> <<case "witch shoes">> <<set _args[0].colour to (_args[0].colour is 0 ? "black" : _args[0].colour)>> <<default>> <!-- Catch-all case if people forget to adjust this widget for whatever clothing item is updated. Can make weird looking clothes if "custom" is selected. --> <<set _args[0].colour to (_args[0].colour is 0 ? _default.colour_options.random() : _args[0].colour)>> <<set _args[0].accessory_colour to (_args[0].accessory_colour is 0 ? _default.accessory_colour_options.random() : _args[0].accessory_colour)>> <</switch>> <</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()>> <<if $runWardrobeSanityChecker is true>> <<wardrobeSanityCheck>> <<set $runWardrobeSanityChecker to false>> <</if>> <<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> <<undress $wardrobe_location>> <</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", "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, "legs":false, "feet":false, "genitals":false}>> <<set $_itemNames 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>> /*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 $corruption_slime gte 80 and $wardrobeOption is "wear">> <<if currentSkillValue('willpower') lt 800 and _item.reveal lt 500 and !_item.type.includesAny("school", "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*/ <<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 _item.accessory_colour isnot $_wardrobeItem.accessory_colour>> <<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_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 _selectedWardrobe[$_outfitSlot][$_outfitId].outfitSecondary[1] to "split">> <<set _selectedWardrobe[$_outfitSlot][$_outfitId].one_piece to "split">> <<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 $_itemNames.push(_item.name)>> <<set _selectedWardrobe[_slot].deleteAt(_wearId)>> <</if>> <</for>> <<if $wardrobeOption is "wear" and $_itemNames.length gte 1>> You put on the <<print formatList($_itemNames)>>. <</if>> <<if _wearAction is "dry">> <<dry>> You squeeze the water from your clothes. <<effectswater>> <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_legs to "none">> <<set $wear_feet to "none">> <<set $wear_genitals to "none">> <<set $wear_outfit to "none">> <<exposure>> <</widget>> <<widget "wardrobe">> <div id="action-popup">Don't look here.</div> <<unset $tempDisable>> <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> | <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> <<if $options.newWardrobeStyle>> <<dynamic "wardrobeLinks" "wardrobeLinks">> <<dynamic "wardrobeContents" "wardrobeList">> <<else>> <div id="oldWardrobeListDisplay"> <<oldWardrobeListDisplay>> </div> <</if>> <br> <hr> <<temperature>> <span>Warmth:</span> <<warmthscale>> <div id="warmth-description"> <<warmth_description>> </div> <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: '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 $multipleWardrobes is "all" and !$wardrobes[$wardrobe_location].isolated>> <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].isolated>> <<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: <label>Everyday <<radiobutton "$outfit_type" 0 checked>></label> | <label>Sleep<<radiobutton "$outfit_type" "sleep">></label> | <label>Swimming<<radiobutton "$outfit_type" "swim">></label> <br> <label> Save Clothes Colours in Set <<checkbox "_saveColor" false true autocheck>> </label> <br> <<if $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 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), 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", "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>> <<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 $_item to _args[0]>> <<set $_integrityMax to clothingData(_args[1],$_item,'integrity_max')>> <<if $_item.integrity gt ($_integrityMax * 9 / 10)>> <<set $_output to "">> <<elseif $_item.integrity gt ($_integrityMax * 5 / 10)>> <<set $_output to "(frayed)">> <<elseif $_item.integrity gt ($_integrityMax * 2 / 10)>> <<set $_output to "(torn)">> <<else>> <<set $_output to "(tattered)">> <</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">> <<set _linkOption2 to _args[1] || "Tuck in">> <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 "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 "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> | <<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> | <<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 isnot 0>> <span @class="_wornItem.colour">(_wornItem.colour)</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">> (Separated) <</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">> (Separated) <</if>> <</if>> <</if>> <<wardrobeintegrity _wornItem _wardrobe_list>> <a onclick="document.getElementById('wardrobeItemDetails').classList.toggle('hidden')">Extra Info</a> <br> <div id="wardrobeItemDetails" class="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> <<warmth _wornItem.warmth>> <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> <br> <</if>> <<if _wardrobe_list is "upper" and $worn.lower.name isnot "naked" and _wornItem.outfitPrimary is undefined and !_wornItemData.notuck>> <div class="no-numberify"><<toggleUpperTuck>></div> <br> <</if>> <<if _wardrobe_list is "neck">> <div id="wardrobeLeash" class="no-numberify"><<toggleLeash>></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 isnot 0>> <span @class="_selectedWardrobe[_wardrobe_list][_i].colour">(_item.colour)</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">> (Separated) <</if>> <</if>> <<if _item.outfitSecondary isnot undefined>> <<if _item.one_piece is "split">> (Separated) <<else>> <span class="red">(Broken)</span> <</if>> <</if>> <<wardrobeintegrity _item _wardrobe_list>> | <<reveal _item.reveal>> </div> <</for>> <div style="clear:both;"></div> <</if>> <<temperature>> <</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-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 _selectedWardrobe[_wardrobe_list][_i].colour isnot 0>> <span @class="_selectedWardrobe[_wardrobe_list][_i].colour">(_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 "outfit">> <<if _descending>> <<set _status to ["broken",0,1]>> /* NO SPLIT ADDED */ <<else>> <<set _status to [1,0,"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()>> <<else>> <<set _sortedItemReveal to _itemReveal.sort(function(a, b){return 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*/ <<set $lastWardrobeSanityCheck to $saveVersions.last()>> /*Update _equip as required*/ <<set _equip to ["lower", "under_lower", "head"]>> <<for _slot range _equip>> <<set $_itemIndex to {}>> <<for $_i to 0; $_i lt _selectedWardrobe[_slot].length; $_i++>> <<if _selectedWardrobe[_slot][$_i].outfitSecondary is undefined>> <<continue>> <</if>> <<if _selectedWardrobe[_slot][$_i].outfitSecondary[1] is "broken" or _selectedWardrobe[_slot][$_i].outfitSecondary[1] is "split">> <<continue>> <</if>> /*Prep*/ <<set $_markBroken to true>> <<set $_found to false>> <<set $_item to _selectedWardrobe[_slot][$_i]>> <<set $_outfitSecondary to _selectedWardrobe[_slot][$_i].outfitSecondary>> <<if $_itemIndex[$_outfitSecondary[0]] is undefined>> <<set $_itemIndex[$_outfitSecondary[0]] to []>> <</if>> /*Look for a primary piece that matches*/ <<for $_j to 0; $_j lt _selectedWardrobe[$_outfitSecondary[0]].length; $_j++>> <<if _selectedWardrobe[$_outfitSecondary[0]][$_j].name isnot $_outfitSecondary[1]>> <<continue>> <</if>> <<if $_itemIndex[$_outfitSecondary[0]].includes($_j)>> <<continue>> <</if>> <<if _selectedWardrobe[$_outfitSecondary[0]][$_j].colour is $_item.colour and _selectedWardrobe[$_outfitSecondary[0]][$_j].accessory_colour is $_item.accessory_colour>> <<if $_item.colour isnot "custom" and $_item.accessory_colour isnot "custom">> <<set $_markBroken to false>> <<run $_itemIndex[$_outfitSecondary[0]].push(clone($_j))>> <<break>> <<elseif $_item.colourCustom is _selectedWardrobe[$_outfitSecondary[0]][$_j].colourCustom and $_item.accessory_colourCustom is _selectedWardrobe[$_outfitSecondary[0]][$_j].accessory_colourCustom>> <<set $_markBroken to false>> <<run $_itemIndex[$_outfitSecondary[0]].push(clone($_j))>> <<break>> <</if>> <</if>> <</for>> <<if $_markBroken is true>> /*Mark as broken*/ <<set _selectedWardrobe[_slot][$_i].outfitSecondary[1] to "broken">> <<set _selectedWardrobe[_slot][$_i].one_piece to "broken">> <<set _selectedWardrobe[_slot][$_i].set to clone(_slot)>> <<set _selectedWardrobe[_slot][$_i].sanityCheck to true>> <</if>> <</for>> <</for>> <</widget>> <<widget "wardrobeGetRepairedClothes">> <<set _equip to setup.clothingLayer.all>> <<set _takenAway to 0>> <<for $_i to 0; $_i lt _equip.length; $_i++>> <<if $wardrobeRepair[_equip[$_i]] is undefined>> <<continue>> <</if>> <<for $_j to 0; $_j lt $wardrobeRepair[_equip[$_i]].length; $_j++>> <<if _selectedWardrobe[_equip[$_i]].length gte _selectedWardrobe.space>> <<set _takenAway++>> <<continue>> <</if>> <<if $wardrobeRepair[_equip[$_i]][$_j][5]>> <<generalSend "wardrobe" _equip[$_i] `$wardrobeRepair[_equip[$_i]][$_j][0]` `$wardrobeRepair[_equip[$_i]][$_j][1]` `$wardrobeRepair[_equip[$_i]][$_j][3]`>> <<set _selectedWardrobe[_equip[$_i]].last().one_piece to "split">> <<if _selectedWardrobe[_equip[$_i]].last().outfitPrimary>> <<for $_label, $_value range _selectedWardrobe[_equip[$_i]].last().outfitPrimary>> <<set _selectedWardrobe[_equip[$_i]].last().outfitPrimary[$_label] to "split">> <</for>> <<elseif _selectedWardrobe[_equip[$_i]].last().outfitSecondary>> <<set _selectedWardrobe[_equip[$_i]].last().outfitSecondary[1] to "split">> <</if>> <<else>> <<sendToWardrobeFromDefault "wardrobe" _equip[$_i] `$wardrobeRepair[_equip[$_i]][$_j][0]` `$wardrobeRepair[_equip[$_i]][$_j][1]` `$wardrobeRepair[_equip[$_i]][$_j][3]`>> <</if>> <<if $wardrobeRepair[_equip[$_i]][$_j][2] isnot undefined and $wardrobeRepair[_equip[$_i]][$_j][2] isnot null>> /*colourCustom*/ <<set _selectedWardrobe[_equip[$_i]].last().colourCustom to $wardrobeRepair[_equip[$_i]][$_j][2]>> <<if _selectedWardrobe[_equip[$_i]].last().outfitPrimary isnot undefined and _selectedWardrobe[_equip[$_i]].last().one_piece isnot "split">> <<for $_label, $_value range _selectedWardrobe[_equip[$_i]].last().outfitPrimary>> <<if _selectedWardrobe[$_label].last().name is $_value>> <<set _selectedWardrobe[$_label].last().colourCustom to $wardrobeRepair[_equip[$_i]][$_j][2]>> <</if>> <</for>> <</if>> <</if>> <<if $wardrobeRepair[_equip[$_i]][$_j][4] isnot undefined and $wardrobeRepair[_equip[$_i]][$_j][4] isnot null>> /*accessory_colourCustom*/ <<set _selectedWardrobe[_equip[$_i]].last().accessory_colourCustom to $wardrobeRepair[_equip[$_i]][$_j][4]>> <<if _selectedWardrobe[_equip[$_i]].last().outfitPrimary isnot undefined and _selectedWardrobe[_equip[$_i]].last().one_piece isnot "split">> <<for $_label, $_value range _selectedWardrobe[_equip[$_i]].last().outfitPrimary>> <<if _selectedWardrobe[$_label].last().name is $_value>> <<set _selectedWardrobe[$_label].last().colourCustom to $wardrobeRepair[_equip[$_i]][$_j][2]>> <</if>> <</for>> <</if>> <</if>> <</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 $_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 $_ids 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 $_ids.length gt 0>> <<set $_id to $_ids.random()>> <<set $_selectedItem to _selectedWardrobe[$_slot][$_id]>> <<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 $_id>> <<unset $_id>> <</if>> <</if>> <</for>> <<unset $randomWear>> <</widget>> <<widget "warmth_description">> <<switch $body_temperature_outside>> <<case "hot">> <span class="red">You'll be far too hot outside.</span> <<case "warm">> <span class="purple">You'll be too warm outside.</span> <<case "cold">> <span class="red">You'll be cold outside.</span> <<case "chilly">> <span class="purple">You'll be a bit chilly outside.</span> <<default>> <span class="green">You'll be a comfortable temperature outside.</span> <</switch>> <br> $warmth warmth versus $chill chill <br> Comfortable warmth range: <<print ($chill + 1)>> - <<print Math.trunc(($chill * 1.3) + 69)>> <</widget>> <<widget "wardrobeSelection">> <<if !$multipleWardrobes or !$wardrobes[$wardrobe_location]>> <<set $wardrobe_location to "wardrobe">> <<elseif $forceWardrobeLocation>> <<set $wardrobe_location to $forceWardrobeLocation>> <<elseif $multipleWardrobes is "isolated" and !$wardrobes[$wardrobe_location].isolated>> <<set $wardrobe_location to "wardrobe">> <</if>> <<if $debug and $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">> <<unset $saveColor>><<unset $wardrobeRepeat>><<unset $tempDisable>><<set $delete_outfit to "none">><<unset $forceWardrobeLocation>> <</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>> <<link [[Leave|Beach]]>><<cleanupOnWardrobeExit>><</link>> <<elseif $exhibitionism gte 75>> <<link [[Sneak outside|Beach Changing Room Sneak]]>><</link>><<exhibitionist5>> <<else>> You can't go out like this! <</if>> <<case "Sydney Beach Changing Room">> <<if $exposed lte 1>> <<link [[Leave|Sydney Beach Swimsuit]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't go out like this! <</if>> <<case "Sydney Beach Changing Room Leave">> <<if $exposed lte 1>> <<link [[Leave|Sydney Beach Leave]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't go out like this! <</if>> <<case "Eden Wardrobe">> <<if isLoveInterest("Eden") or $exhibitionism gte 75 or $exposed lte 0 or ($exhibitionism gte 55 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 $exhibitionism gte 75 or $exposed lte 0 or ($exhibitionism gte 55 and $exposed lte 1)>> <<link [[Done|Eden Cabin Bed]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Asylum Wardrobe">> <<if $exhibitionism gte 75 or $exposed lte 0 or ($exhibitionism gte 55 and $exposed lte 1)>> <<link [[Done|Asylum Cell]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Farm Wardrobe">> <<if $exhibitionism gte 75 or $exposed lte 0 or ($exhibitionism gte 55 and $exposed lte 1)>> <<link [[Done|Farm Bedroom]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Strip Club Wardrobe">> <<if $exhibitionism gte 55 or $exposed lte 0 or ($exhibitionism gte 15 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 $exhibitionism gte 55 or $exposed lte 0 or ($exhibitionism gte 15 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">> <<link [[Leave|School Boy Changing Room]]>><<cleanupOnWardrobeExit>><</link>> <<else>> <<link [[Leave|School Girl Changing Room]]>><<cleanupOnWardrobeExit>><</link>> <</if>> <<case "Farm Assault Wardrobe">> <<if $exhibitionism gte 75 or $exposed lte 0 or ($exhibitionism gte 55 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>> <</switch>> <br><br> <</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">> <<wardrobeSelection>> You are in a small wooden 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>> You stand in front of your open locker. <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 $_i to 0; $_i lt _equip.length; $_i++>> <<set _toDelete to []>> <<for $_j to 0; $_j lt $wardrobe[_equip[$_i]].length; $_j++>> <<if setup.clothes[_equip[$_i]][clothesIndex(_equip[$_i],$wardrobe[_equip[$_i]][$_j])].shop.length is 0>> <<continue>> <</if>> <<if $wardrobe[_equip[$_i]][$_j].outfitPrimary is undefined and $crateContents is "outfits">> <<continue>> <</if>> <<set _value += Math.floor(tailorClothingCost($wardrobe[_equip[$_i]][$_j],_equip[$_i]) * ($wardrobe[_equip[$_i]][$_j].integrity / clothingData(_equip[$_i],$wardrobe[_equip[$_i]][$_j],'integrity_max')) / 3)>> <<run _toDelete.push(clone($_j))>> <</for>> <<for $_j to $wardrobe[_equip[$_i]].length; $_j gte 0; $_j-->> <<if _toDelete.includes($_j)>> <<run $wardrobe[_equip[$_i]].deleteAt($_j)>> <</if>> <</for>> <</for>> The driver takes the crate away, leaving <<printmoney `_value + 5000`>> in its place. <<set $money += Math.floor(_value + 5000)>> <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 _items[_i].outfitPrimary is undefined and _items[_i].outfitSecondary is undefined and $crateContents is "outfits">> <<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>> <<for $_i to 0; $_i lt _equip.length; $_i++>> <<set _toDelete to []>> <<for $_j to 0; $_j lt $wardrobe[_equip[$_i]].length; $_j++>> <<if $wardrobe[_equip[$_i]][$_j].integrity is clothingData(_equip[$_i],$wardrobe[_equip[$_i]][$_j],'integrity_max') and $wardrobe[_equip[$_i]][$_j].one_piece isnot "broken" and $crateContents is "damaged">> <<continue>> <</if>> <<if $wardrobe[_equip[$_i]][$_j].outfitPrimary is undefined and $wardrobe[_equip[$_i]][$_j].outfitSecondary is undefined and $crateContents is "outfits">> <<continue>> <</if>> <<set _value += Math.floor(tailorClothingCost($wardrobe[_equip[$_i]][$_j],_equip[$_i]) * (1 - ($wardrobe[_equip[$_i]][$_j].integrity / clothingData(_equip[$_i],$wardrobe[_equip[$_i]][$_j],'integrity_max'))) * 1.25)>> <<if $wardrobeRepair[_equip[$_i]] is undefined>> <<set $wardrobeRepair[_equip[$_i]] to []>> <</if>> <<if $wardrobe[_equip[$_i]][$_j].outfitSecondary and $wardrobe[_equip[$_i]][$_j].one_piece is "broken">> /* If a secondary part of an outfit is broken adds the primary part so the complete outfit will be repaired */ <<set _upperSlot to $wardrobe[_equip[$_i]][$_j].outfitSecondary[0]>> <<set _upperItem to setup.clothes[_upperSlot].findIndex(x => x.name === setup.clothes[_equip[$_i]][clothesIndex(_equip[$_i],$wardrobe[_equip[$_i]][$_j])].outfitSecondary[1])>> <<if $wardrobeRepair[_upperSlot] is undefined>> <<set $wardrobeRepair[_upperSlot] to []>> <</if>> <<set _itemStats to [ clone(_upperItem), clone($wardrobe[_equip[$_i]][$_j].colour), clone($wardrobe[_equip[$_i]][$_j].colourCustom), clone($wardrobe[_equip[$_i]][$_j].accessory_colour), clone($wardrobe[_equip[$_i]][$_j].accessory_colourCustom), false ]>> <<run $wardrobeRepair[_upperSlot].push(clone(_itemStats))>> <<run _toDelete.push(clone($_j))>> <<else>> <<set _splitted to ($wardrobe[_equip[$_i]][$_j].one_piece === "split" ? true : false)>> <<set _itemStats to [ clone(clothesIndex(_equip[$_i],$wardrobe[_equip[$_i]][$_j])), clone($wardrobe[_equip[$_i]][$_j].colour), clone($wardrobe[_equip[$_i]][$_j].colourCustom), clone($wardrobe[_equip[$_i]][$_j].accessory_colour), clone($wardrobe[_equip[$_i]][$_j].accessory_colourCustom), clone(_splitted) ]>> <<run $wardrobeRepair[_equip[$_i]].push(clone(_itemStats))>> <<run _toDelete.push(clone($_j))>> <</if>> <</for>> <<for $_j to $wardrobe[_equip[$_i]].length; $_j gte 0; $_j-->> <<if _toDelete.includes($_j)>> <<run $wardrobe[_equip[$_i]].deleteAt($_j)>> <</if>> <</for>> <</for>> <<if _value gt 5000>> <<set $money -= _value - 5000>> 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*/ <<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]>> /*Outfit pieces*/ <<if _outfitPrimaryWear isnot undefined>> <<set _colour to $worn[$_slot].colour>> <<set _accessory_colour to $worn[$_slot].accessory_colour>> <<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>> <<else>> <!-- Error --> <</if>> <</for>> <</if>> <</if>> <<unset _outfitPrimaryWear>> <</if>> <</widget>> <!-- args: slot, item index, colour, accessory_colour --> <<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 is 1>> <<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>> <<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]>> <</widget>> <<widget "overlowerwear">> <<generalWear "over_lower" _args[0] _args[1] _args[2]>> <</widget>> <<widget "upperwear">> <<generalWear "upper" _args[0] _args[1] _args[2]>> <</widget>> <<widget "lowerwear">> <<generalWear "lower" _args[0] _args[1] _args[2]>> <</widget>> <<widget "underupperwear">> <<generalWear "under_upper" _args[0] _args[1] _args[2]>> <</widget>> <<widget "underlowerwear">> <<generalWear "under_lower" _args[0] _args[1] _args[2]>> <</widget>> <<widget "genitalswear">> <<generalWear "genitals" _args[0] _args[1] _args[2]>> <</widget>> <<widget "overheadwear">> <<generalWear "over_head" _args[0] _args[1] _args[2]>> <</widget>> <<widget "headwear">> <<generalWear "head" _args[0] _args[1] _args[2]>> <</widget>> <<widget "facewear">> <<generalWear "face" _args[0] _args[1] _args[2]>> <</widget>> <<widget "neckwear">> <<generalWear "neck" _args[0] _args[1] _args[2]>> <</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]>> <</widget>> <<widget "handswear">> <<generalWear "hands" _args[0] _args[1] _args[2]>> <</widget>> <<widget "legswear">> <<generalWear "legs" _args[0] _args[1] _args[2]>> <</widget>> <<widget "feetwear">> <<generalWear "feet" _args[0] _args[1] _args[2]>> <</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*/ <<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]>> <<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>> <<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>> <</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]>> <<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 is 1>> <<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 _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. 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]>> <</widget>> <<widget "overlowersend">> <<generalSend _args[1] "over_lower" _args[0] _args[2] _args[3]>> <</widget>> <<widget "uppersend">> <<generalSend _args[1] "upper" _args[0] _args[2] _args[3]>> <</widget>> <<widget "lowersend">> <<generalSend _args[1] "lower" _args[0] _args[2] _args[3]>> <</widget>> <<widget "underuppersend">> <<generalSend _args[1] "under_upper" _args[0] _args[2] _args[3]>> <</widget>> <<widget "underlowersend">> <<generalSend _args[1] "under_lower" _args[0] _args[2] _args[3]>> <</widget>> <<widget "genitalssend">> <<generalSend _args[1] "genitals" _args[0] _args[2] _args[3]>> <</widget>> <<widget "overheadsend">> <<generalSend _args[1] "over_head" _args[0] _args[2] _args[3]>> <</widget>> <<widget "headsend">> <<generalSend _args[1] "head" _args[0] _args[2] _args[3]>> <</widget>> <<widget "facesend">> <<generalSend _args[1] "face" _args[0] _args[2] _args[3]>> <</widget>> <<widget "necksend">> <<generalSend _args[1] "neck" _args[0] _args[2] _args[3]>> <</widget>> <<widget "handssend">> <<generalSend _args[1] "hands" _args[0] _args[2] _args[3]>> <</widget>> <<widget "legssend">> <<generalSend _args[1] "legs" _args[0] _args[2] _args[3]>> <</widget>> <<widget "feetsend">> <<generalSend _args[1] "feet" _args[0] _args[2] _args[3]>> <</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>> <<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>> <<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>> <<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 "legsstrip">> <<generalStrip "legs">> <</widget>> <<widget "feetstrip">> <<generalStrip "feet">> <</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>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "clothesruined">> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<underlowerruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "underruined">> <<underupperruined>> <<underlowerruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> /*_args[0] = slot name*/ /*_args[1] = true for ruin all pieces of an outfit*/ <<widget "generalRuined">> <<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>> <<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>> <<set $NPCList[$penistarget].penis to 0>> <</if>> <</if>> <</switch>> /*Re-buy*/ <<if _args[0] isnot "genitals" and $clothingrebuy is 1 and !_noRebuy>> <<if $carried[_args[0]].name isnot "naked" and $carried[_args[0]].cursed isnot 1>> <<generalRuinedRebuy _args[0] $carried>> <</if>> <<if $worn[_args[0]].name isnot "naked" and $worn[_args[0]].cursed isnot 1>> <<generalRuinedRebuy _args[0] $worn>> <</if>> <</if>> <<unset _noRebuy>> /*Other Pieces*/ <<set _outfitPrimaryRuined to $carried[_args[0]].outfitPrimary>> <<if _outfitPrimaryRuined isnot undefined>> <<for _labelRuined, _valueRuined range _outfitPrimaryRuined>> <<if $carried[_labelRuined].outfitSecondary isnot undefined>> <<if $carried[_labelRuined].outfitSecondary[1] is $carried[_args[0]].name>> <<set $carried[_labelRuined].outfitSecondary[1] to "broken">> <<set $carried[_labelRuined].one_piece to "broken">> <<set $carried[_labelRuined].set to _labelRuined>> <<if _args[1]>> <<generalRuined _labelRuined>> <<elseif _labelRuined is "head" and $carried.head.hood>> <<headruined>> <<elseif _labelRuined is "over_head" and $carried.over_head.hood>> <<overheadruined>> <</if>> <</if>> <</if>> <</for>> <</if>> <<unset _outfitPrimaryRuined>> <<set _outfitPrimaryRuined to $worn[_args[0]].outfitPrimary>> <<if _outfitPrimaryRuined isnot undefined>> <<for _labelRuined, _valueRuined range _outfitPrimaryRuined>> <<if $worn[_labelRuined].outfitSecondary isnot undefined>> <<if $worn[_labelRuined].outfitSecondary[1] is $worn[_args[0]].name>> <<set $worn[_labelRuined].outfitSecondary[1] to "broken">> <<set $worn[_labelRuined].one_piece to "broken">> <<set $worn[_labelRuined].set to _labelRuined>> <<if _args[1]>> <<generalRuined _labelRuined>> <<elseif _labelRuined is "head" and $worn.head.hood>> <<headruined>> <<elseif _labelRuined is "over_head" and $worn.over_head.hood>> <<overheadruined>> <</if>> <</if>> <</if>> <</for>> <</if>> <<unset _outfitPrimaryRuined>> /*Main Outfit Piece*/ <<set _outfitSecondaryRuined to $carried[_args[0]].outfitSecondary>> <<if _outfitSecondaryRuined isnot undefined>> <<if $carried[_outfitSecondaryRuined[0]].name is _outfitSecondaryRuined[1] and $carried[_outfitSecondaryRuined[0]].outfitPrimary isnot undefined>> <<if $carried[_outfitSecondaryRuined[0]].outfitPrimary[_args[0]] is $carried[_args[0]].name>> <<if _args[1]>> <<generalRuined _outfitSecondaryRuined[0] _args[1]>> <<else>> <<set $carried[_outfitSecondaryRuined[0]].outfitPrimary[_args[0]] to "broken">> <<set $carried[_outfitSecondaryRuined[0]].one_piece to "broken">> <</if>> <</if>> <</if>> <</if>> <<unset _outfitSecondaryRuined>> <<set _outfitSecondaryRuined to $worn[_args[0]].outfitSecondary>> <<if _outfitSecondaryRuined isnot undefined>> <<if $worn[_outfitSecondaryRuined[0]].name is _outfitSecondaryRuined[1] and $worn[_outfitSecondaryRuined[0]].outfitPrimary isnot undefined>> <<if $worn[_outfitSecondaryRuined[0]].outfitPrimary[_args[0]] is $worn[_args[0]].name>> <<if _args[1]>> <<generalRuined _outfitSecondaryRuined[0] _args[1]>> <<else>> <<set $worn[_outfitSecondaryRuined[0]].outfitPrimary[_args[0]] to "broken">> <<set $worn[_outfitSecondaryRuined[0]].one_piece to "broken">> <</if>> <</if>> <</if>> <</if>> <<unset _outfitSecondaryRuined>> <<set $worn[_args[0]] to clone(setup.clothes[_args[0]][0])>> <<set $carried[_args[0]] to clone(setup.clothes[_args[0]][0])>> <</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">> /* NO SPLIT ADDED */ <<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(getClothingCost($_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>> <<set $money -= $_cost>> <<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]>> <<generalRuined "upper">> <</widget>> <<widget "lowerruined">> <<set _noRebuy to _args[0]>> <<generalRuined "lower">> <</widget>> <<widget "underupperruined">> <<set _noRebuy to _args[0]>> <<generalRuined "under_upper">> <</widget>> <<widget "underlowerruined">> <<set _noRebuy to _args[0]>> <<generalRuined "under_lower">> <</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 "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>> <<if !($worn.upper.name is "naked" and $worn.lower.name is "naked" and $worn.under_lower.name is "naked" and $worn.under_upper.name is "naked")>> You fix your clothing. <br><br> <</if>> <<exposure>> <<if _args[0] is "towel">> <<towelup>> <<elseif _args[0] is "plant">> <<plantup>> <</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 $carried[$_slot].name isnot "naked">> <<if $worn[$_slot].cursed is 1>> <<carriedSend "wardrobe" $_slot>> <<else>> <<set _slots.pushUnique($_slot)>> <<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>> <<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>> <<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 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.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">> <<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">> <<generalSteal "under_upper" _args[0]>> <</widget>> <<widget "underlowersteal">> <<generalSteal "under_lower" _args[0]>> <</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 "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 "undressKeepFace">> <<set $_location to _args[0]>> <<for $_slot range setup.clothingLayer.all.except("face")>> <<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>> <</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 _args[1] == "under_lower" and $worn.under_lower.type.includes("strap-on")>> <<run window.wardrobeStripStraponException($worn.under_lower.name)>> <<else>> <<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, "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>> <<unset _cursedPrevent>> <<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">> <<if !setup.wardrobeSkip.includes($worn[_labelUndress].name) and $worn[_labelUndress].name is _valueUndress>> <<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>> <</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 ($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 "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 _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>> <<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 $_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))>> <</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))>> <</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, "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]>> <<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 $multipleWardrobes>> <<if ["asylum", "prison"].includes($location)>> <<set $_selectedWardrobe to $wardrobes[$location]>> <<elseif $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)>> <<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 "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_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 $corruption_slime gte 80>> <<if currentSkillValue('willpower') lt 800 and _item.reveal lt 500 and !_item.type.includesAny("school", "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>> <<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_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, 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")>> <</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 "peppersprays">> <<if $options.pepperSprayDisplay isnot "none">> <div id="pepper-sprays" class="pepper-sprays"> <!-- Compact style (dots) --> <<if $spraymax gt 1 and ($options.pepperSprayDisplay is "compact" or $spraymax gt 7 or ($spraymax gt 5 and $options.sidebarRenderer is "both"))>> <<if $spray gt 0>> <img src="img/ui/pepperspray.png"> <<else>> <img src="img/ui/emptyspray.png"> <</if>> <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, or 5 if renderer is "both") --> <<else>> <<for _i to 1; _i lte $spraymax; _i++>> <<if $spray gte _i>> <img src="img/ui/pepperspray.png"> <<else>> <img src="img/ui/emptyspray.png"> <</if>> <</for>> <</if>> </div> <</if>> <</widget>> <<widget "condomsSidebar">> <<if $condomLvl gte 1 and $options.condomsDisplay isnot "none" and $condoms isnot undefined>> <div id="condoms-sidebar" class="condoms-sidebar"> <img 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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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 ($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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 (($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 (($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 and $enemytype isnot "man") and !$promiscuityIgnore) or $awareness lt 300>> <!-- Do Nothing --> <<else>> <<if $NPCList[$anustarget].penis is "anusdouble" or $NPCList[$anustarget].penis is "anusimminentdouble" or $NPCList[$anustarget].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].penis is "anusimminentdouble" or $NPCList[$anusdoubletarget].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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 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 ($promiscuity lte 54 and $enemytype is "man" or $deviancy lte 54 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 $vaginaldoubledisable is "f" 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 $analdoubledisable is "f" 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 ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _anusaction["Cooperate"] to "cooperate">> <<else>> <<set _anusaction["Fuck"] to "cooperate">> <</if>> <<if ($consensual is 0 or ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $analskill gte 800>> <<set _anusaction["Edge " + $NPCList[$anustarget].pronouns.him] to "penisEdging">> <</if>> <<if !playerIsPregnant() and canBeMPregnant() 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 ($promiscuity gte 75 and $enemytype is "man") or ($deviancy gte 75 and $enemytype isnot "man")) and $analskill gte 800>> <<set _anusaction["Edge " + $NPCList[$anustarget].pronouns.him] to "penisDoubleEdging">> <</if>> <<set _anusaction["Pull away"] to "doubleescape">> <</widget>> <<widget "actionsanusPenisDoublePenetration">> <<set _anusaction["Take it"] to "doubletake">> <<if $consensual is 0 or ($promiscuity lte 74 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 74 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 ($promiscuity gte 75 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $analskill gte 800>> <<set _anusaction["Edge " + $NPCList[$anustarget].pronouns.him] 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">> <<personselect $anustarget>> <<set $anusaction to 0>><<submission 10>><<analskilluse>><<combatpromiscuity5>> <<if $anususe is 0>> <<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>> <</widget>> <<widget "effectsanuspenisfuck">> <<if $anusaction is "anuspenisfuck" and ["anusentrance","anusimminent"].includes($NPCList[$anustarget].penis)>> <<set $anusaction to 0>><<submission 20>><<analskilluse>><<combatpromiscuity5>> <<if $anusWetness + ($analskill / 10) gte ($NPCList[$anustarget].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<set $anusactiondefault to "cooperate">> <<if $player.virginity.anal isnot true>> <<set $NPCList[$anustarget].penis to "anus">> <<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>><<takeNPCVirginity $anustarget "penile">><<analstat>><<raped>><<anusraped>><<set $anusstate to "penetrated">> <<elseif $player.virginity.anal is true>> <<set $NPCList[$anustarget].penis to "anus">> <<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">><<takeNPCVirginity $anustarget "penile">><<bruise anus>><<analstat>><<violence 30>><<raped>><<anusraped>><<set $anusstate to "penetrated">><<set $speechanusvirgin to 1>> <</if>> <<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">><<set $anusaction to 0>><<submission 10>><<analskilluse>><<combatpromiscuity5>> <<if combatSkillCheck("anal", $anusdoubletarget)>> <<submission 2>><<set $anususe to "penisdouble">><<set $NPCList[$anusdoubletarget].penis to "anusentrancedouble">><<set $anusstate to "doubleentrance">> <<if $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">> <<else>> <<set $NPCList[$anustarget].penis to "anusdouble">> <<set $anusstate to "doublepenetrated">> <</if>> <<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>> <</if>> <</widget>> <<widget "effectsanuspenisdoublefuck">> <<if $anusaction is "anuspenisdoublefuck">> <<set $anusaction to 0>><<submission 20>><<analskilluse>><<combatpromiscuity5>> <<set _doublepenissize to $NPCList[$anustarget].penissize>> <<set _npcA to $anustarget>> <<set _npcB to $anusdoubletarget>> <<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 $anusWetness + ($analskill / 10) gte (_doublepenissize * 15) + random(1, 40) or random(1, 3) is 2>> <<set $anusactiondefault to "doublecooperate">> <<if $player.virginity.anal isnot true>> <<set $NPCList[$anustarget].penis to "anusdouble">> <<set $NPCList[$anusdoubletarget].penis to "anusdouble">> <<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>><<takeNPCVirginity $anustarget "penile">><<takeNPCVirginity $anusdoubletarget "penile">><<analstat>><<analdoublestat>><<raped>><<anusraped>><<set $anusstate to "doublepenetrated">> <<elseif $player.virginity.anal is true>> <<set $NPCList[$anustarget].penis to "anusdouble">> <<set $NPCList[$anusdoubletarget].penis to "anusdouble">> <<anus_lube_text>> <span class="pink">you <<analtext>> push against the $NPCList[_npcA].fullDescription's $NPCList[_npcA].penisdesc and the $NPCList[_npcB].fullDescription's $NPCList[_npcB].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 _mydesc "anal">><<takeNPCVirginity $anustarget "penile">><<takeNPCVirginity $anusdoubletarget "penile">><<bruise anus>><<analstat>><<analdoublestat>><<violence 30>><<raped>><<anusraped>><<set $anusstate to "doublepenetrated">><<set $speechanusvirgin to 1>> <</if>> <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>><<analstat>><<analdoublestat>><<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 $promiscuity lte 34 and $enemytype is "man" or $consensual is 1 and $deviancy lte 34 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 ($promiscuity lte 34 and $enemytype is "man" or $deviancy lte 34 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 $feettarget isnot "self">> <<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.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))>> <<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 $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 $worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $vaginause is "cover">> <<set _leftaction["Keep covering your pussy"] to "leftcovervaginameek">> <<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">> <<set _leftaction["Keep covering your pussy"] to "leftcovervagina">> <<elseif $vaginause is 0>> <<set _leftaction["Cover your pussy"] to "leftcovervagina">> <</if>> <</if>> <</if>> <<if $worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1>> <<set _penis to playerHasStrapon() ? 'strap-on' : '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">> <<set _leftaction["Keep covering your " + _penis] to "leftcoverpenismeek">> <<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">> <<set _leftaction["Keep covering your " + _penis] to "leftcoverpenis">> <<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>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $anususe is "cover">> <<set _leftaction["Keep covering your ass"] to "leftcoveranusmeek">> <<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">> <<set _leftaction["Keep covering your ass"] to "leftcoveranus">> <<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 $condomlvl 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.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))>> <<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 $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 $worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $vaginause is "cover">> <<set _rightaction["Keep covering your pussy"] to "rightcovervaginameek">> <<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">> <<set _rightaction["Keep covering your pussy"] to "rightcovervagina">> <<elseif $vaginause is 0>> <<set _rightaction["Cover your pussy"] to "rightcovervagina">> <</if>> <</if>> <</if>> <<if $worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1>> <<set _penis to playerHasStrapon() ? 'strap-on' : '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">> <<set _rightaction["Keep covering your " + _penis] to "rightcoverpenismeek">> <<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">> <<set _rightaction["Keep covering your " + _penis] to "rightcoverpenis">> <<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>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $anususe is "cover">> <<set _rightaction["Keep covering your ass"] to "rightcoveranusmeek">> <<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">> <<set _rightaction["Keep covering your ass"] to "rightcoveranus">> <<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 $condomlvl lte 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 $penisuse is 0>> <<set _handGuideOptions["your penis"] to "penis">> <</if>> <<if $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">> <<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 $promiscuity gte 15 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 $promiscuity gte 35 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 $promiscuity gte 15 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 $promiscuity gte 35 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 $analdisable is "f" 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 $analdisable is "f" 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 $promiscuity gt 34 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 $analdisable is "f" 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 $analdisable is "f" 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 $analdisable is "f" 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 $promiscuity gt 34 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 $analdisable is "f" 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 $promiscuity gt 34 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 $promiscuity gt 34 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 $promiscuity gt 34 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 $promiscuity gt 34 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 $promiscuity gt 34 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 $promiscuity gt 34 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>> <<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>> <</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>> <<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>> <</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>> <<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>> <</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> <<else>> <<set $worn.lower.state to "thighs">> You pull down your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <</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> <<else>> You pull down your $worn.under_lower.name 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.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <<else>> You hold the spray in both hands, and unload a full blast at the assailant. <<He>> clutches <<his>> face. <<if !$npc.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <</if>> <<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.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <<else>> You spray the assailant. <<He>> clutches <<his>> face. <<if !$npc.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <</if>> <<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.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <<else>> You spray the assailant. <<He>> clutches <<his>> face. <<if !$npc.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <</if>> <<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.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <<else>> You spray the assailant. <<He>> clutches <<his>> face. <<if !$npc.includes("Eden") and !$npc.includes("Morgan") and !$npc.includes("Kylar") and !$abomination>> <<ggcrime>><<crimeup 500>> <</if>> <</if>> <<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)>> <</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 "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>>. <<encountersteal>> <<set $leftactiondefault to "rest">><<set $rightactiondefault to "rest">> <<else>> <<brat 30 $lefttarget>><<set $speechsteal to 1>> You rummage inside the <<persons>> <<wallet>>. <<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>>. <<elseif $stealstateleft is 0>> <<set $stealstateleft to 1>> You open the <<persons>> <<wallet>>. <<elseif $stealstateleft is 1>> <<set $stealstateleft to 2>> You rummage through the <<persons>> <<wallet>>. <<else>> <<unset $stealstateleft>><<set $stealtarget += $lefttarget>><<set $stealdifficulty += 0.2>> You sneak your hand into the <<persons>> <<wallet>>. <<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>>. <<He>> isn't fooled. <<He>> shifts <<his>> valuables away from you. <<elseif $stealstateleft is 0>> You try to open the <<persons>> <<wallet>>. <<He>> notices and shifts <<his>> valuables away. <<elseif $stealstateleft is 1>> You rummage through the <<persons>> <<wallet>>. <<He>> notices and shifts <<his>> valuables away. <<else>> You sneak your hand into the <<persons>> <<wallet>>. <<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>>. <<elseif $stealstateright is 0>> <<set $stealstateright to 1>> You open the <<persons>> <<wallet>>. <<elseif $stealstateright is 1>> <<set $stealstateright to 2>> You rummage through the <<persons>> <<wallet>>. <<else>> <<unset $stealstateright>><<set $stealtarget += $righttarget>><<set $stealdifficulty += 0.2>> You sneak your hand into the <<persons>> <<wallet>>. <<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>>. <<He>> isn't fooled. <<He>> shifts <<his>> valuables away from you. <<elseif $stealstateright is 0>> You try to open the <<persons>> <<wallet>>. <<He>> notices and shifts <<his>> valuables away. <<elseif $stealstateright is 1>> You rummage through the <<persons>> <<wallet>>. <<He>> notices and shifts <<his>> valuables away. <<else>> You sneak your hand into the <<persons>> <<wallet>>. <<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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 the <<persons>> 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 the <<persons>> 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 is "hypnosis" or $_target.lefthand is "hypnosis_scream" or $_target.lefthand is "hypnosis_cover" or $_target.lefthand is "hypnosis_orgasm" or $_target.lefthand is "hypnosis_masochism">> You whack the <<print $_target.lefttool>> from the <<personselect $lefttarget>><<persons>> hand. <<combat-reset-hand "left">><<set $_target.lefttool to 0>> <<elseif $_target.righthand is "hypnosis" or $_target.righthand is "hypnosis_scream" or $_target.righthand is "hypnosis_cover" or $_target.righthand is "hypnosis_orgasm" or $_target.righthand is "hypnosis_masochism">> You whack the <<print $_target.righttool>> from the <<personselect $lefttarget>><<persons>> 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 is "hypnosis_scream" or $_target.lefthand is "hypnosis_cover" or $_target.lefthand is "hypnosis_orgasm" or $_target.lefthand is "hypnosis_masochism">> You whack the <<print $_target.lefttool>> from the <<personselect $righttarget>><<persons>> hand. <<combat-reset-hand "left">><<set $_target.lefttool to 0>> <<elseif $_target.righthand is "hypnosis" or $_target.righthand is "hypnosis_scream" or $_target.righthand is "hypnosis_cover" or $_target.righthand is "hypnosis_orgasm" or $_target.righthand is "hypnosis_masochism">> You whack the <<print $_target.righttool>> from the <<personselect $righttarget>><<persons>> 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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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 $NPCName[$NPCNameList.indexOf("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>>ingulf<<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, $_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, $_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, $_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 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 "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 $breastfeedingdisable is "f">> 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>> <<person1>> <<if $npc.length isnot 0>> <<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 $promiscuity lte 54 and $enemytype is "man" or $consensual is 1 and $deviancy lte 54 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 $promiscuity lte 34>> <!-- 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 ($promiscuity lte 54 and $enemytype is "man" or $deviancy lte 54 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 ($promiscuity lte 34 and $enemytype is "man" or $deviancy lte 34 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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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 ($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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>> <<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 ($promiscuity lte 34 and $enemytype is "man" or $deviancy lte 34 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 $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 $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 $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 chastity 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 $analdisable is "f" 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 $vaginaldoubledisable is "f" 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 $analdoubledisable is "f" 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 $analdisable is "f" 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 $vaginaldoubledisable is "f" 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 $analdoubledisable is "f" 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 $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 $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 $analdoubledisable is "f" 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 $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 $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 + ($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>> <<penilestat>><<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>> <<penilestat>><<raped>><<penisraped>> <</if>> <<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 + ($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>><<combatpromiscuity5>> <<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>><<combatpromiscuity5>> <<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>> <<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 $asphyxiaLvl 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 $submissive lte 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 and !$robinRentEvent>> <<set _mouthaction["Moan"] to "moan">> <</if>> <<if !$npcSub and $asphyxiaLvl 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 $condomLvl 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>> <<set _askActions["to leave your mask on" + _diffText] to "nomask">> <</if>> <<if Object.keys(_askActions).length gt 0>> <<set _mouthaction["Ask "+_pron+""] to "ask">> <<set _defaultsCombatAction to "askActions">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if Object.values(_askActions).includes(_actionsSet[_set])>> <<set $askAction to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $askAction to Object.values(_askActions)[0]>> <</if>> <<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">> <!-- possible alternatives: ...--> <<if $arousal gte ($arousalmax / 5) * 4>> shafts <<elseif $arousal gte ($arousalmax / 5) * 3>> boners <<elseif $arousal gte ($arousalmax / 5) * 2>> dicks <<elseif $arousal gte $arousalmax / 5>> glandes <<else>> penises <</if>> <</widget>> <<widget "pussies">> <!-- possible alternatives: muffs, twats, slits, snatches, vulvas ...--> <<if $arousal gte ($arousalmax / 5) * 4>> clits <<elseif $arousal gte ($arousalmax / 5) * 3>> cunts <<elseif $arousal gte ($arousalmax / 5) * 2>> pussies <<elseif $arousal gte $arousalmax / 5>> quims <<else>> vaginas <</if>> <</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>> <<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">> <<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>> <<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 ($monsterchance gte $rng and $hallucinations gte 1) or ($monsterchance gte $rng and $monsterhallucinations is "f") or ($greathawkmonster is 2) or ($bestialitydisable is "t")>> <<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 $NPCName[$NPCNameList.indexOf("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">> <<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 ($pregnancyspeechdisable is "f" ? "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." <</switch>> <<elseif $enemytype is "beast">> <<if $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "You want to <<print ($pregnancyspeechdisable is "f" ? "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 ($pregnancyspeechdisable is "f" ? "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 ($pregnancyspeechdisable is "f" ? "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 ($pregnancyspeechdisable is "f" ? "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 ($pregnancyspeechdisable is "f" ? "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 ($pregnancyspeechdisable is "f" ? "breed with" : "fuck")>> me? I'm flattered." <<else>> "<<print ($pregnancyspeechdisable is "f" ? "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 $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 $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 to you 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 $NPCName[$NPCNameList.indexOf("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>> <<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">> <<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 hunter!" <<else>> "Y...you're tresspassing 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 hunter!" <<else>> "Y...you're tresspassing 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 ($pregnancyspeechdisable is "f" ? "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>> <<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 $mockaction is $NPCList[$mouthtarget].insecurity>> <<if $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]>> penis. <<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]>> penis. <<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>> <<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>> <<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>> <<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]>> penis 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 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 $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 $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 $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 $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">> <<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 $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 $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 fasten 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 fasten 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 in 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 in 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 in 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 $pregnancyspeechdisable is "f">>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 $pregnancyspeechdisable is "f">>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 yipp 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 "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 $analdisable is "f">>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>> <<default>> <<actionsconfront>> <</switch>> <</if>> <</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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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 ($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 ($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 (($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 $promiscuity lte 74 and $enemytype is "man" or $consensual is 1 and $deviancy lte 74 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>><<NPCvirginitywarning $NPCList[_j].fullDescription "penile">></label> <<else>> | <label><span class="sub">Envelop <<his>> penis</span> <<radiobutton "$vaginaaction" "vaginapenisfuck">> <<combatpromiscuous5>><<vaginalvirginitywarning>><<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 (($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 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 $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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 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 ($promiscuity lte 54 and $enemytype is "man" or $deviancy lte 54 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 $analdoubledisable is "f" and $awareness gt 300 and $anususe is "penis" and !playerChastity("anus")>> <<if $NPCList[$anustarget].penissize gte 2 and !($consensual is 1 and ($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 $vaginaldoubledisable is "f" 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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 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 ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "cooperate">> <<else>> <<set _vaginaaction["Fuck"] to "cooperate">> <</if>> <<if ($consensual is 0 or ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $vaginalskill gte 800>> <<set _vaginaaction["Edge " + $NPCList[$vaginatarget].pronouns.him] to "penisEdging">> <</if>> <<if !playerIsPregnant() and playerPregnancyPossibleWith($NPCList[$vaginatarget]) and $enemyarousal gte $enemyarousalmax and $demon gte 6 and $demonbuild gte 90>> <<set _vaginaaction["Force impregnation"] to "forceImpregnation">> <</if>> <<if $vaginaldoubledisable is "f" 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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 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 $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 ($promiscuity lte 54 and $enemytype is "man" or $deviancy lte 54 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 ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $vaginalskill gte 800>> <<set _vaginaaction["Edge " + $NPCList[$vaginatarget].pronouns.him] 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 ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "doublecooperate">> <<else>> <<set _vaginaaction["Fuck"] to "doublecooperate">> <</if>> <<if ($consensual is 0 or ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $vaginalskill gte 800>> <<set _vaginaaction["Edge " + $NPCList[$vaginatarget].pronouns.him] 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 (($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 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 <<combatperson>>'s 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>><<combatperson>>'s pussy with your own.</span> <<else>> <span class="blue">You try to press your <<pussy>> against <<personselect $vaginatarget>><<combatperson>>'s, 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 + ($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 + ($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 cocks.</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 _mydesc "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 _mydesc "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">> <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>> <<if $options.images is 1 and $options.combatImages is 1>> <<if $position isnot "stalk">> <<timed 100ms>> <<combatimg>> <br> <</timed>> <</if>> <</if>> <<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>> __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>> <</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*/ /*Sends the required variables to the chosen display type*/ <<widget "generateCombatAction">> <<switch $options.combatControls>> <<case "radio" "columnRadio">> <<generateCombatActionRadio _args[0] _args[1] _args[3]>> <<case "lists" "limitedLists">> <<generateCombatActionList _args[0] _args[1] _args[2]>> <</switch>> <</widget>> /*Generated each set of actions in the form of a set of radio buttons*/ <<widget "generateCombatActionRadio">> <br> <<for _labelC, _valueC range _args[0]>> <label> <<print '<<radiobutton "$'+_args[1]+'" "'+_valueC+'" ' + (_valueC is _args[2] ? "checked" : "") + '>>'>> <span @id="(_valueC isnot 'ask' ?'':'askLabel')" @class="(_valueC isnot 'ask' ? combatListColor('', _valueC, '') : $askActionColour)"><<print _labelC>></span> <<print '<<'+_args[1]+'Difficulty "'+_valueC+'">>'>><<if $options.combatControls is "radio">> |<</if>> </label> <</for>> <br><br> <</widget>> /*Generated each set of actions in the form of a list*/ <<widget "generateCombatActionList">> <<if _args[0]>> <<set _options to _args[0]>> <<set _name to _args[1]>> <<capture _var _options _name>> <span @id="_name + 'Select'" @class="_args[2] + 'List flavorText'"> <<listbox `"$"+_name` autoselect>> <<optionsfrom _options>> <</listbox>> </span> /*Changes the colour of the list border when the option is changed*/ <<combatButtonAdjustments _name "">> <</capture>> <</if>> <</widget>> /*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 || {}).rape || {}>> <<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">> <<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>> <br> <<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[_j].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<combatpersons>> $NPCList[_j].penisdesc<<if $NPCList[_j].chastity.penis.includes("chastity")>> through <<his>> $NPCList[_j].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[_j].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[_j].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].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>> <br> <<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>> <<if Object.values(_leftaction).includes($leftactiondefault) is false or _args[0] is true or $leftactiondefault is "rest">> <<set _defaultsCombatAction to "leftaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _leftaction "leftaction" _textColor $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>> <<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 $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 $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 $analdisable is "f">> <<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 incase 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>> <br> <<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[_j].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<combatpersons>> $NPCList[_j].penisdesc<<if $NPCList[_j].chastity.penis.includes("chastity")>> through <<his>> $NPCList[_j].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[_j].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[_j].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].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>> <br> <<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[_j].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[_j].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>> <<if Object.values(_rightaction).includes($rightactiondefault) is false or _args[0] is true or $rightactiondefault is "rest">> <<set _defaultsCombatAction to "rightaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _rightaction "rightaction" _textColor $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>> <<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 $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 $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 $analdisable is "f">> <<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 incase 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 "rightDildoAnus">> <<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")>> <br> <<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[_j].chastity.penis.includes("chastity")>>pressed against<<else>>holding<</if>> <<combatpersons>> <<npcPenis _j>>.</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[_j].chastity.vagina.includes("chastity")>>pressed against<<else>>holding back<</if>> <<combatpersons>> <<npcVagina _j>>.</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>> <<if Object.values(_feetaction).includes($feetactiondefault) is false or _args[0] is true or $feetactiondefault is "rest">> <<set _defaultsCombatAction to "feetaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _feetaction "feetaction" _textColor $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>> <</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>> <<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 $options.combatControls.includes("adio") and _targetnumber gt 1>> <br> <<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':'')"><<combatPerson>>'s 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>><<combatPerson>>'s <<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>><<combatPerson>>'s <<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>><<combatPerson>>'s <<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>><<combatPerson>>'s <<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':'')"><<combatPerson>>'s 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>> <<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, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _mouthaction "mouthaction" _textColor $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 "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>> <<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>> <<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>> <br> <<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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s 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>><<combatPerson>>'s <<npcVagina _j>> 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>><<combatPerson>>'s <<npcVagina _j>> 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':'')"><<combatPerson>>'s 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>><<combatPerson>>'s <<npcAnus _j>> 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>><<combatPerson>>'s <<npcAnus _j>> 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':'')"><<combatPerson>>'s 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>><<combatPerson>>'s <<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>><<combatPerson>>'s <<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>><<combatPerson>>'s <<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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s 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[_j].chastity.anus.includes("shield")>>, teasing through <<his>> $NPCList[_j].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>> <<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, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _penisaction "penisaction" _textColor $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>><<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 "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 ?'gold':'')">Your <<pussy>> is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <br> <<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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s 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>><<combatPerson>>'s <<npcPenis _j>> hovers near your <<pussy>>.</span> <<if $vaginaldoubledisable is "f">> <<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>><<combatPerson>>'s <<npcPenis _j>> presses against your <<pussy>>.</span> <<if $vaginaldoubledisable is "f">> <<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>><<combatPerson>>'s <<npcPenis _j>> penetrates your <<pussy>>.</span> <<if $vaginaldoubledisable is "f">> <<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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s 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>><<combatPerson>>'s <<npcPenisSimple $_npcA>> presses against your ?vulva while <<personselect $_npcB>><<combatperson>>'s <<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>><<combatPerson>>'s <<npcPenisSimple $_npcA>> penetrates your vagina while <<personselect $_npcB>><<combatperson>>'s <<npcPenisSimple $_npcB>> presses against your ?vulva. </span> <<else>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPerson>>'s <<npcPenisSimple $_npcA>> presses against your ?vulva while <<personselect $_npcB>><<combatperson>>'s <<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>><<combatPerson>>'s <<npcPenisSimple $_npcA>> penetrates your vagina while <<personselect $_npcB>><<combatperson>>'s <<npcPenisSimple $_npcB>> presses against your ?vulva. </span> <<else>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPerson>>'s <<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':'')"><<combatPerson>>'s fingers press against your ?vulva.</span> <<case "otherhand">> <<set _vaginaOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "vaginaentrance">><<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>> <<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, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _vaginaaction "vaginaaction" _textColor $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>><<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>><<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 _j>> 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>> <br> <<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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s 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 <<combatperson>>'s 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':'')"><<combatPerson>>'s 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':'')"><<combatPerson>>'s <<npcPenis _j>> hovers near your <<bottom>><<andButtPlug>>.</span> <<if $analdoubledisable is "f">> <<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':'')"><<combatPerson>>'s <<npcPenis _j>> 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':'')"><<combatPerson>>'s <<npcPenisSimple _j>> penetrates your anus.</span> <<if $analdoubledisable is "f">> <<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':'')"><<combatPerson>>'s <<npcPenisSimple _j>> 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':'')"><<combatPerson>>'s <<npcPenisSimple _j>> 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" "anus">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s 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>> <<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, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "")>> <<generateCombatAction _anusaction "anusaction" _textColor $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">><<bottomdifficulty>> <<combatpromiscuous1>> <<case "bottomhandbay">><<bottomdifficulty>> <<combatpromiscuous1>> <<case "penischeeks">><<analdifficulty>> <<combatpromiscuous4>> <<case "anustopenis">><<analdifficulty>> <<combatpromiscuous5>> <<case "anuspenisfuck">><<combatpromiscuous5>> <<analvirginitywarning>><<NPCvirginitywarning $NPCList[_n].fullDescription "penile">> <<case "otherAnusRub" "otherMouthAnusRub">> <<analdifficulty>> <<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':'')"><<combatPerson>>'s <<npcPenisSimple _j>> 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>> <<set _textColor to combatListColor('chestaction', (Object.values(_chestaction).includes($chestaction) ? $chestaction : Object.values(_chestaction)[0]), "")>> <<generateCombatAction _chestaction "chestaction" _textColor $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>> <<set _textColor to combatListColor('thighaction', (Object.values(_thighaction).includes($thighaction) ? $thighaction : Object.values(_thighaction)[0]), "")>> <<generateCombatAction _thighaction "thighaction" _textColor $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 ((($promiscuity gte 75 and $enemytype is "man") or ($deviancy gte 75 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 ((($promiscuity gte 75 and $enemytype is "man") or ($deviancy gte 75 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>> <br> <<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>> <br> <<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>> <<if Object.values(_leftaction).includes($leftactiondefault) is false or _args[0] is true or $leftactiondefault is "rest">> <<set _defaultsCombatAction to "leftaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "Self")>> <<generateCombatActionOthers _leftaction "leftaction" _textColor $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>> <br> <<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>> <<if Object.values(_rightaction).includes($rightactiondefault) is false or _args[0] is true or $rightactiondefault is "rest">> <<set _defaultsCombatAction to "rightaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "Self")>> <<generateCombatActionOthers _rightaction "rightaction" _textColor $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">> <br> <<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>> <<if Object.values(_feetaction).includes($feetactiondefault) is false or _args[0] is true or $feetactiondefault is "rest">> <<set _defaultsCombatAction to "feetaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt $maxDefaultActionSets; _set++>> <<if 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]), "Self")>> <<generateCombatActionOthers _feetaction "feetaction" _textColor $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>> <<widget "generateCombatActionOthers">> <<switch $options.combatControls>> <<case "radio" "columnRadio">> <<generateCombatActionOthersRadio _args[0] _args[1] _args[3] _args[4]>> <<case "lists" "limitedLists">> <<generateCombatActionOthersList _args[0] _args[1] _args[2] _args[4]>> <</switch>> <</widget>> <<widget "generateCombatActionOthersRadio">> <<for _labelC, _valueC range _args[0]>> <label> <<print '<<radiobutton "$'+_args[1]+'" "'+_valueC+'" ' + (_valueC is _args[2] ? "checked" : "") + '>>'>> <span @class="combatListColor('', _valueC, _args[3])"><<print _labelC>></span> <<print '<<'+_args[1]+'Difficulty'+_args[3]+' "'+_valueC+'">>'>><<if $options.combatControls is "radio">> |<</if>> </label> <</for>> <</widget>> <<widget "generateCombatActionOthersList">> <<if _args[0]>> <<set _options to _args[0]>> <<set _name to _args[1]>> <<set _typeOfCombat to _args[3]>> <<capture _var _options _name>> <span @id="_name + 'Select'" @class="_args[2] + 'List flavorText'"> <<listbox `"$"+_name` autoselect>> <<optionsfrom _options>> <</listbox>> </span> <<combatButtonAdjustments _name _typeOfCombat>> <</capture>> <</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>> <<if $options.images is 1 and $options.combatImages is 1>> <<if $position isnot "stalk">> <<timed 100ms>> <<combatimg>> <br> <</timed>> <</if>> <</if>> <<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 50>> <<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>> <<if $pregnancyspeechdisable is "f">> "So glad I was here to see this <<bitch>> get bred." <<else>> "So glad I was here to see this <<bitch>> get fucked." <</if>> <</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, letting 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 whilst it's being sat on." <<case 2>> "That pussy isn't hiding how excited <<pshe>> looks. <<pShe>>'s 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 <<breasts>>. 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 20 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." <<insecurity "breasts_tiny" 1>><<ginsecurity "breasts_tiny">> <<elseif $rng gte 33>> "<<pHer>> chest is so flat <<pshe>> could pass as a boy." <<insecurity "breasts_tiny" 1>><<ginsecurity "breasts_tiny">> <<elseif $rng gte 20 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!" <<insecurity "breasts_tiny" 1>><<ginsecurity "breasts_tiny">> <<elseif $rng gte 20 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!" <<insecurity "breasts_tiny" 1>><<ginsecurity "breasts_tiny">> <<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?" <<insecurity "breasts_tiny" 1>><<ginsecurity "breasts_tiny">> <<else>> "Don't worry, you're cute even without boobs." <<insecurity "breasts_tiny" 1>><<ginsecurity "breasts_tiny">> <</if>> <</if>> <</if>> <<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." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<elseif $rng gte 33>> "Look at those little tits. I bet the other boys pick on you." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<else>> "Don't be shy, there's nothing lewd about your boy nipples, even if they look like a girl's." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <</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." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<elseif $rng gte 33>> "Now however large your breasts grow, I'll have evidence of when they were small and cute." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<elseif $rng gte 20 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 20 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." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <</if>> <<else>> <<if $rng gte 67>> "I can see the shape of <<pher>> tiny breasts beneath <<pher>> $worn.upper.name." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<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." <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <</if>> <</if>> <</if>> <<elseif $player.breastsize lte 7>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Your breasts are very photogenic." <<if $player.gender is "m">><<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">><</if>> <<elseif $rng gte 33>> "Your breasts are mesmerising." <<if $player.gender is "m">><<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">><</if>> <<else>> "This picture of your breasts will come in handy." <<if $player.gender is "m">><<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">><</if>> <</if>> <<else>> <<if $rng gte 67>> "Get <<pher>> top off, I want a picture of <<pher>> breasts." <<if $player.gender is "m">><<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">><</if>> <<elseif $rng gte 33>> "Don't be embarrassed, it's not like your breasts are exposed yet." <<if $player.gender is "m">><<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">><</if>> <<else>> "Even clothed I can tell how lovely <<pher>> breasts are." <<if $player.gender is "m">><<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">><</if>> <</if>> <</if>> <<elseif $player.breastsize lte 10>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "<<pHer>> breasts flop about so beautifully." <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<elseif $rng gte 33>> "Those are some impressive mammaries." <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<elseif $rng gte 20 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!" <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<elseif $rng gte 20 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!" <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<else>> "Don't be ashamed, you should be proud of such large breasts." <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <</if>> <<else>> <<if $rng gte 67>> "Are <<pher>> breasts really as large as they seem? Only one way to find out." <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<elseif $rng gte 33>> "Get <<pher>> top off, I want a picture of <<pher>> large breasts for later use." <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<else>> "Breasts that large are lewd even under clothes." <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <</if>> <</if>> <<else>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Those are some gigantic udders." <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <<elseif $rng gte 33>> "You could feed every baby in town with those." <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <<else>> "Glad I got photographic proof, no one would believe how big they were otherwise." <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <</if>> <<else>> <<if $rng gte 67>> "You can't fake breasts this large, surely." <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <<elseif $rng gte 33>> "Get <<pher>> top off, I want a picture of these massive things." <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <<else>> "Breasts this huge are lewd even under clothes." <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <</if>> <</if>> <</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 <<genitals>>. 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 $pregnancyspeechdisable is "f">> "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 $pregnancyspeechdisable is "f">> "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>> <<if $pregnancyspeechdisable is "f">> "<<pHer>> <<bitch>> pussy is twitching and it's not even in yet. <<pShe>> can't wait to be bred." <<else>> "<<pHer>> <<bitch>> pussy is twitching and it's not even in yet. <<pShe>> can't wait to be fucked." <</if>> <<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 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>> <<else>> <<if playerChastity()>> <<if $rng gte 90 and ($anusstate is "penetrated" or $anusstate is "doublepenetrated") and playerChastity("hidden")>> "Should have gotten yourself an anal shield, going to cum in you regardless" <<elseif $rng gte 67>> "As if that will help you stay pure." <<elseif $rng gte 33>> "Someone unlock or break that chastity device, someone could be having a good time" <<else>> "Shame I can't see what's under that device." <</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>> /*ToDo: Strapon - check if these display during combat with a strap on*/ <<if $player.penissize gte 4>> <<if $rng gte 67>> "<<pShes>> huge!" <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<elseif $rng gte 33>> "<<pHer>> penis is freakishly big." <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<else>> "I've never seen such a huge cock." <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <</if>> <<elseif $player.penissize is 3>> <<if $rng gte 67>> "<<pShes>> bigger than I expected." <<if $player.gender is "h">><<insecurity "penis_big" 1>><<ginsecurity "penis_big">><</if>> <<elseif $rng gte 33>> "Don't be shy, you should be proud of your penis." <<if $player.gender is "h">><<insecurity "penis_big" 1>><<ginsecurity "penis_big">><</if>> <<else>> "<<pHer>> penis is the perfect size." <<if $player.gender is "h">><<insecurity "penis_big" 1>><<ginsecurity "penis_big">><</if>> <</if>> <<elseif $player.penissize is 2>> <<if $rng gte 67>> "I got a great picture of <<pher>> cute penis." <<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>> <<elseif $player.penissize is 1>> <<if $rng gte 67>> "<<pShes>> so small!" <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <<elseif $rng gte 33>> "Such a small and cute penis." <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <<else>> "I thought <<pher>> penis would be bigger." <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <</if>> <<else>> <<if $rng gte 67>> "<<pShes>> so tiny!" <<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">> <<elseif $rng gte 33>> "I can't believe it's so tiny!" <<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">> <<else>> "I've never seen such a pathetic penis." <<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">> <</if>> <</if>> <</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 <<pshe>>'s 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 $vaginatarget>><<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 $pregnancyspeechdisable is "f">> <<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 $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 50>> <<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 50>> <<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 keep their distance, afraid you'll lash out. <<else>> The audience keep 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>> <<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]>> <!-- Health Max per type --> <<set _t to ["dog","cat","pig","wolf","dolphin","lizard","bear","boar","creature","horse","fox","hawk","cow","spider"]>> <!-- 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"] ]>> <!-- 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"]>> <!-- 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]>> <!-- 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>> <!-- Set hallucination creatures to always be monsters. Shadow types could be .monster = "shadow" --> <<if $NPCList[_n].type is "creature" and !_tower_creature>> <<set $NPCList[_n].monster to "monster">> <<elseif _beast_monster isnot "beast" and ($monsterchance gte $rng and ($hallucinations gte 1 or $monsterhallucinations is "f")) or (_beast_monster is "monster") or ($bestialitydisable is "t" and $NPCList[0].monster is "monster")>> <<set $NPCList[_n].monster to "monster">> <<if ["dog","pig","wolf","dolphin","boar","fox","hawk","cow"].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].gender is "f">> <<set $NPCList[_n].type to $NPCList[_n].type + "girl">> <<else>> <<set $NPCList[_n].type to $NPCList[_n].type + "boy">> <</if>> <</if>> <<if $NPCList[_n].monster is "monster">> <<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"].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 $breast_mod gte $_breastMin[_brlvl]>><<set $_breastMin[_brlvl] to $breast_mod>><</if>> <<if $breast_mod gte $_breastMax[_brlvl]>><<set $_breastMax[_brlvl] to $breast_mod>><</if>> <<if $breast_mod lt 0>> <<set $_breastMin[_brlvl] to Math.clamp($_breastMin[_brlvl]+$breast_mod, 0, 12)>> <<set $_breastMax[_brlvl] to Math.clamp($_breastMax[_brlvl]+$breast_mod, 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 $blackchance>> <<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 $cbchance and $debugEnableHerms>> <<set $NPCList[_n].penis to 0>> <<set $NPCList[_n].vagina to 0>> <<elseif $rng lte $cbchance>> <<set $NPCList[_n].vagina to 0>> <<else>> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $NPCList[_n].gender is "f">> <<if $rng lte $dgchance and $debugEnableHerms>> <<set $NPCList[_n].vagina to 0>> <<set $NPCList[_n].penis to 0>> <<elseif $rng lte $dgchance>> <<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>>
<<widget "beastimgdoggy">> <<set _na to $active_enemy>> <<set _npc to $NPCList[_na]>> <<set _type to $NPCList[_na].type>> <<set _state to _args[0] || "idle">> <<set _frames to _args[1] || 4>> <<set _animClass to "anim-" + _state + "-" + _frames + "f" + (_state isnot "idle" ? "-" + _animspeed : "")>> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<if $anusstate is "penetrated" or $vaginastate is "penetrated">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/horse/horse_penetrated.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/horse/horse_entrance.png"> <</if>> <<elseif $monster isnot 1>> <<if $enemytype is "beast" and $NPCList[_na].stance is "top" or $enemytype is "beast" and $vaginause is "penis" or $enemytype is "beast" and $anususe is "penis" or $enemytype is "beast" and $penisuse is "othervagina" or $enemytype is "beast" and $penisuse is "otheranus">> <<if $NPCList[_na].penis is "none" and $player.penisExist or $penisuse is "othervagina" or $penisuse is "otheranus">> <<if $NPCList[_na].type is "lizard">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activelizard.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activelizardfrontleg.png"> <<elseif $beastname is "blackwolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activeblackwolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activeblackwolffrontleg.png"> <<elseif $NPCList[_na].type is "wolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activewolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activewolffrontleg.png"> <<elseif $NPCList[_na].type is "dolphin">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/dolphin/activedolphin.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/dolphin/activedolphinfrontleg.png"> <<elseif $NPCList[_na].type is "bear">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/bear/activebear.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/bear/activebearfrontleg.png"> <<elseif $NPCList[_na].type is "cat">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/cat/activecat.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/cat/activecatfrontlegs.png"> <<elseif $NPCList[_na].type is "creature">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/creature/activecreature.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/creature/activecreaturefrontleg.png"> <<elseif $NPCList[_na].type is "hawk">> <<elseif $NPCList[_na].type is "cow" or $NPCList[_na].type is "bull">> <!-- Cow sprites go here --> <<elseif $NPCList[_na].type is "pig" or $NPCList[_na].type is "boar">> <!-- Boar sprites go here --> <<elseif $NPCList[_na].type is "fox">> <img @class="'layer-sexbetweenlegs anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/fox/activefox.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activebeast.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/femalebeast/activebeastfrontleg.png"> <</if>> <<elseif !["leftarm", "rightarm", "feet"].includes(_npc.penis)>> <<if $NPCList[_na].type is "lizard">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activelizard.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activelizardfrontleg.png"> <<elseif $beastname is "blackwolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activeblackwolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activeblackwolffrontleg.png"> <<elseif $NPCList[_na].type is "wolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activewolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activewolffrontleg.png"> <<elseif $NPCList[_na].type is "dolphin">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphin.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinfrontleg.png"> <<elseif _npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/pig/activepig.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/pig/activepigfrontleg.png"> <<elseif _npc.type is "boar">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/boar/activeboar.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/boar/activeboarfrontleg.png"> <<if $enemyarousal gte ($enemyarousalmax / 5) * 3>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/boar/drool_2.png"> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/boar/drool_1.png"> <</if>> <<elseif $NPCList[_na].type is "bear">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebear.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearfrontleg.png"> <<elseif $NPCList[_na].type is "cat">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecat.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatfrontlegs.png"> <<elseif $NPCList[_na].type is "creature">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/creature/activecreature.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/creature/activecreaturefrontleg.png"> <<elseif $NPCList[_na].type is "hawk">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bird/birdfront.png"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bird/birdback.png"> <<elseif $NPCList[_na].type is "cow" or $NPCList[_na].type is "bull">> <!-- Cow sprites go here --> <<elseif $NPCList[_na].type is "fox">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/fox/activefox.png"> <img @class="'layer-beastaboveplayer anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/fox/activefoxfrontleg.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeast.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastfrontleg.png"> <</if>> <</if>> <<elseif $NPCList[_na].stance is "topface" and $enemytype is "beast">> <<if $NPCList[_na].type is "lizard">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activelizard.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activelizardfrontleg.png"> <<elseif $beastname is "blackwolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activeblackwolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activeblackwolffrontleg.png"> <<elseif $NPCList[_na].type is "wolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activewolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activewolffrontleg.png"> <<elseif $NPCList[_na].type is "dolphin">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/dolphin/activedolphin.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/dolphin/activedolphinfrontleg.png"> <<elseif $NPCList[_na].type is "bear">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/bear/activebear.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/bear/activebearfrontleg.png"> <<elseif _npc.type is "boar" or _npc.type is "pig">> <img @class="'layer-beastback front ' + _animClass" @src="'img/sex/doggy/frontbeast/' + _type + '/back.png'"> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/' + _type + '/front.png'"> <<elseif $NPCList[_na].type is "cow" or $NPCList[_na].type is "bull">> <!-- Cow sprites go here --> <<elseif $NPCList[_na].type is "fox">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/fox/activefox.png"> <<elseif $NPCList[_na].type is "creature">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/creature/activecreature.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/creature/activecreaturefrontleg.png"> <<else>> <</if>> <</if>> <<else>> <<if $position is "doggy">> <<if $NPCList[_na].type is "dogboy" or $NPCList[_na].type is "doggirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dog/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dog/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dog/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dog/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dog/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dog/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "bearboy" or $NPCList[_na].type is "beargirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bear/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bear/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bear/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bear/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bear/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bear/vaginal.png"> <</if>> <<elseif $beastname is "blackwolf" and ($NPCList[_na].type is "wolfboy" or $NPCList[_na].type is "wolfgirl")>> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/dp_bound.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/dp_eyes.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/dp.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/dp_eyes.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/anal.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/anal_eyes.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/vaginal.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/vaginal_eyes.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/oral.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/oral_eyes.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/vaginal.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/black_wolf/vaginal_eyes.png"> <</if>> <<elseif $NPCList[_na].type is "wolfboy" or $NPCList[_na].type is "wolfgirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/wolf/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/wolf/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/wolf/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/wolf/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/wolf/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/wolf/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "boarboy" or $NPCList[_na].type is "boargirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/boar/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/boar/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/boar/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/boar/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/boar/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/boar/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "pigboy" or $NPCList[_na].type is "piggirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/pig/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/pig/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/pig/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/pig/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/pig/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/pig/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/cat/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/cat/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/cat/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/cat/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/cat/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/cat/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "dolphinboy" or $NPCList[_na].type is "dolphingirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dolphin/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dolphin/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dolphin/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dolphin/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dolphin/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/dolphin/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "lizardboy" or $NPCList[_na].type is "lizardgirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/lizard/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/lizard/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/lizard/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/lizard/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/lizard/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/lizard/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "harpy">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bird/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bird/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bird/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bird/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bird/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/bird/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "cowgirl" or $NPCList[_na].type is "bullboy">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <!-- Cow monster sprites go here --> <<elseif $vaginause is "penis" and $anususe is "penis">> <!-- Cow monster sprites go here --> <<elseif $anususe is "penis">> <!-- Cow monster sprites go here --> <<elseif $vaginause is "penis">> <!-- Cow monster sprites go here --> <<elseif $mouthuse is "penis">> <!-- Cow monster sprites go here --> <<else>> <!-- Cow monster sprites go here --> <</if>> <<elseif $NPCList[_na].type is "foxboy" or $NPCList[_na].type is "foxgirl">> <<if $vaginause is "penis" and $anususe is "penis" and ($leftarm is "bound" or $leftarm is "grappled")>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/fox/dp_bound.png"> <<elseif $vaginause is "penis" and $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/fox/dp.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/fox/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/fox/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/fox/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/fox/vaginal.png"> <</if>> <</if>> <<else>> <</if>> <</if>> <<beastimggenitals>> <</widget>> <<widget "beastimgmissionary">> <<set _na to $active_enemy>> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<if $penisstate is "penetrated" or $penisstate is "otheranus">> <img @class="'layer-foreground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/horse/horse_penetrated.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/horse/horse_entrance.png"> <</if>> <<elseif $monster isnot 1 and $position is "missionary">> <<if $enemytype is "beast" and $NPCList[_na].stance is "top" or $enemytype is "beast" and $vaginause is "penis" or $enemytype is "beast" and $anususe is "penis" or $enemytype is "beast" and $penisuse is "othervagina" or $enemytype is "beast" and $penisuse is "otheranus">> <<if $feetuse isnot "penis" and $NPCList[_na].lefthand isnot "penis" and $NPCList[_na].righthand isnot "penis">> <<if $beastname is "blackwolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/blackwolf.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/blackwolffrontleg.png"> <<elseif $NPCList[_na].type is "bear">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/bear/bearbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/bear/bearfrontleg.png"> <<elseif $NPCList[_na].type is "cat">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/cat/catbasefem.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/cat/catfrontlegfem.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/cat/catbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/cat/catfrontleg.png"> <</if>> <<elseif $NPCList[_na].type is "dog">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/dog/dogbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/dog/dogfrontleg.png"> <<elseif $NPCList[_na].type is "dolphin">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/dolphin/dolphinbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/dolphin/dolphinfrontleg.png"> <<elseif $NPCList[_na].type is "lizard">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/lizard/lizardbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/lizard/lizardfrontleg.png"> <<elseif $NPCList[_na].type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/pig/pigbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/pig/pigfrontleg.png"> <<elseif $NPCList[_na].type is "boar">> <img @class="'layer-sexbetweenlegs anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/boar/boarbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/boar/boarfrontleg.png"> <<if $enemyarousal gte ($enemyarousalmax / 5) * 3>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/boar/drool_2.png"> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/boar/drool_1.png"> <</if>> <<elseif $NPCList[_na].type is "wolf">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/wolf/wolfbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/wolf/wolffrontleg.png"> <<elseif $NPCList[_na].type is "hawk">> <<elseif $NPCList[_na].type is "cow" or $NPCList[_na].type is "bull">> <!-- Cow sprites go here --> <<elseif $NPCList[_na].type is "fox">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/fox/foxbase.png"> <img @class="'layer-beastaboveplayer anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/fox/foxfrontleg.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/creature/beastbase.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/creature/beastfrontleg.png"> <</if>> <</if>> <</if>> <<elseif $monster is 1>> <<if $NPCList[_na].type is "dogboy" or $NPCList[_na].type is "doggirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dog/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dog/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dog/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dog/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dog/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "bearboy" or $NPCList[_na].type is "beargirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bear/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bear/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bear/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bear/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bear/vaginal.png"> <</if>> <<elseif $beastname is "blackwolf" and ($NPCList[_na].type is "wolfboy" or $NPCList[_na].type is "wolfgirl")>> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/penile.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/penile_eyes.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/anal.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/anal_eyes.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/vaginal.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/vaginal_eyes.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/oral.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/oral_eyes.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/vaginal.png"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/black_wolf/vaginal_eyes.png"> <</if>> <<elseif $NPCList[_na].type is "wolfboy" or $NPCList[_na].type is "wolfgirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/wolf/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/wolf/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/wolf/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/wolf/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/wolf/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "boarboy" or $NPCList[_na].type is "boargirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/boar/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/boar/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/boar/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/boar/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/boar/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "pigboy" or $NPCList[_na].type is "piggirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/pig/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/pig/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/pig/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/pig/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/pig/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/cat/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/cat/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/cat/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/cat/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/cat/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "dolphinboy" or $NPCList[_na].type is "dolphingirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dolphin/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dolphin/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dolphin/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dolphin/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/dolphin/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "lizardboy" or $NPCList[_na].type is "lizardgirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/lizard/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/lizard/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/lizard/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/lizard/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/lizard/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "harpy">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bird/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bird/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bird/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bird/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/bird/vaginal.png"> <</if>> <<elseif $NPCList[_na].type is "cowgirl" or $NPCList[_na].type is "bullboy">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <!-- Cow monster sprites go here --> <<elseif $anususe is "penis">> <!-- Cow monster sprites go here --> <<elseif $vaginause is "penis">> <!-- Cow monster sprites go here --> <<elseif $mouthuse is "penis">> <!-- Cow monster sprites go here --> <<else>> <!-- Cow monster sprites go here --> <</if>> <<elseif $NPCList[_na].type is "foxboy" or $NPCList[_na].type is "foxgirl">> <<if $penisuse is "othervagina" or $penisuse is "otheranus">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/fox/penile.png"> <<elseif $anususe is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/fox/anal.png"> <<elseif $vaginause is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/fox/vaginal.png"> <<elseif $mouthuse is "penis">> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/fox/oral.png"> <<else>> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" src="img/sex/missionary/shadow/fox/vaginal.png"> <</if>> <</if>> <</if>> <<beastimggenitalsmissionary>> <</widget>> <<widget "beastimggenitals">> <<set _na to $active_enemy>> <<set $_npc to $NPCList[_na]>> <<set $_type to $_npc.type>> <<set _filters to $skinColor.current>> <<set _img to setup.tanImg.doggy[($options.tanImgEnabled ? "t" : "f")]>> <<if $enemytype is "beast">> <<if $_type is "dolphin">> <<if $NPCList[_na].penis is "anusentrance" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "anusimminent" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "anus" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinpenis.png"> <</if>> <<if $NPCList[_na].penis is "cheeks" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "thighs" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vaginaentrance" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vaginaimminent" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vagina" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/dolphin/activedolphinpenis.png"> <</if>> <<if $NPCList[_na].penis is "mouthentrance" or $NPCList[_na].penis is "mouthimminent">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/dolphin/activedolphinmouthentrance.png"> <</if>> <<if $NPCList[_na].penis is "mouth">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/dolphin/activedolphinmouth.png"> <</if>> <<if $NPCList[_na].penis is "leftarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activedolphinlefthandpenis"> <</if>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activedolphinlefthand" @style="'filter: '+_filters.body"> <</if>> <<if $NPCList[_na].penis is "rightarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activedolphinrighthandpenis"> <</if>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activedolphinrighthand" @style="'filter: '+_filters.body"> <</if>> <<elseif $_type is "bear">> <<if $NPCList[_na].penis is "anusentrance" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "anusimminent" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "anus" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearpenis.png"> <</if>> <<if $NPCList[_na].penis is "cheeks" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "thighs" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vaginaentrance" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vaginaimminent" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vagina" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/bear/activebearpenis.png"> <</if>> <<if $NPCList[_na].penis is "mouthentrance" or $NPCList[_na].penis is "mouthimminent">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/bear/activebearmouthentrance.png"> <</if>> <<if $NPCList[_na].penis is "mouth">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/bear/activebearmouth.png"> <</if>> <<if $NPCList[_na].penis is "leftarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activebearlefthandpenis"> <</if>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activebearlefthand" @style="'filter: '+_filters.body"> <</if>> <<if $NPCList[_na].penis is "rightarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activebearrighthandpenis"> <</if>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activebearrighthand" @style="'filter: '+_filters.body"> <</if>> <<elseif $_type is "cat">> <<if $NPCList[_na].penis is "anusentrance" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "anusimminent" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "anus" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatpenis.png"> <</if>> <<if $NPCList[_na].penis is "cheeks" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatanusentrance.png"> <</if>> <<if $NPCList[_na].penis is "thighs" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vaginaentrance" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vaginaimminent" and $position isnot "missionary">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatvaginaentrance.png"> <</if>> <<if $NPCList[_na].penis is "vagina" and $position isnot "missionary">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/cat/activecatpenis.png"> <</if>> <<if $NPCList[_na].penis is "mouthentrance" or $NPCList[_na].penis is "mouthimminent">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/cat/activecatmouthentrance.png"> <</if>> <<if $NPCList[_na].penis is "mouth">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/cat/activecatmouth.png"> <</if>> <<if $NPCList[_na].penis is "leftarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activebearrighthandpenis"> <</if>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activecatlefthand" @style="'filter: '+_filters.body"> <</if>> <<if $NPCList[_na].penis is "rightarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activebearrighthandpenis"> <</if>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activecatrighthand" @style="'filter: '+_filters.body"> <</if>> <<elseif $_type is "boar" or $_type is "pig">> <<if $_npc.penissize gt 0 and $position isnot "missionary">> <<if ["anus", "anusentrance", "anusimminent", "vagina", "vaginaentrance", "vaginaimminent"].includes($_npc.penis)>> <img @class="'layer-beastback anim-doggy-4f-' + _animspeed" @src="'img/sex/doggy/beast/' + $_type + '/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-' + _animspeed" @src="'img/sex/doggy/beast/' + $_type + '/penis.png'"> <<elseif ["mouth"].includes($_npc.penis)>> <img @class="'layer-beastback ' + _animClass" @src="'img/sex/doggy/frontbeast/' + $_type + '/balls.png'"> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/' + $_type + '/oralpenis.png'"> <<elseif ["mouthimminent"].includes($_npc.penis) or $_npc.stance is "topface">> <img @class="'layer-beastback ' + _animClass" @src="'img/sex/doggy/frontbeast/' + $_type + '/balls.png'"> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/' + $_type + '/penis.png'"> <<elseif ["leftarm"].includes($_npc.penis)>> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/' + $_type + '/penis.png'"> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/activebeastlefthand2.png'"> <<elseif ["rightarm"].includes($_npc.penis)>> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/' + $_type + '/penis.png'"> <img @class="'layer-beastforeground front ' + _animClass" @src="'img/sex/doggy/frontbeast/activebeastlefthand2.png'"> <<elseif $_npc.stance isnot "approach" and $_npc.penis is 0>> <img @class="'layer-beastback anim-doggy-4f-' + _animspeed" @src="'img/sex/doggy/beast/' + $_type + '/balls.png'"> <img @class="'layer-beastforeground anim-doggy-4f-' + _animspeed" @src="'img/sex/doggy/beast/' + $_type + '/penis.png'"> <</if>> <</if>> <<else>> <<if $NPCList[_na].penis is "anusentrance" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/anal_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/anal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/anal_imminent.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastanusentrance.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "anusimminent" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/anal_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/anal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/anal_imminent.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastanusentrance.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "anus" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/anal.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/anal.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/anal.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastpenis.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "cheeks" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/anal_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/anal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/anal_imminent.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastanusentrance.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "thighs" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal_dp_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal_dp_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal_dp_imminent.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastvaginaentrance.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal_imminent.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastvaginaentrance.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "vaginaentrance" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal_dp_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal_dp_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal_dp_imminent.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastvaginaentrance.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal_imminent.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastvaginaentrance.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "vaginaimminent" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal_dp_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal_dp_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal_dp_imminent.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastvaginaentrance.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal_imminent.png"> <<elseif $_type isnot "boar">> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastvaginaentrance.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "vagina" and $position isnot "missionary" and $_type isnot "horse" and $_type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastpenis.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/vaginal.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/vaginal.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/vaginal.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/activebeastpenis.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "mouthentrance" or $NPCList[_na].penis is "mouthimminent">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/oral_imminent.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/oral_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/oral_imminent.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activebeastmouthentrance.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "mouth">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($_type)>> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/knot/oral.png"> <<elseif $_type is "catboy" or $_type is "catgirl">> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/cat/oral.png"> <<elseif $monster is 1>> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/monster/normal/oral.png"> <<else>> <img @class="'layer-beastfront anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activebeastmouth.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "leftarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activebeastlefthandpenis"> <</if>> <img @class="'layer-sexbasefront anim-doggy-4f-'+_animspeed" @src="_img.activebeastlefthand" @style="'filter: '+_filters.body"> <</if>> <<if $NPCList[_na].penis is "rightarm">> <<if $options.tanImgEnabled>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activebeastrighthandpenis"> <</if>> <img @class="'layer-sexbaseback anim-doggy-4f-'+_animspeed" @src="_img.activebeastrighthand" @style="'filter: '+_filters.body"> <</if>> <</if>> <</if>> <<if $enemytype is "beast">> <<if $chestuse is "penis">> <img @class="'layer-sexpenis anim-doggy-4f-'+_animspeed" src="img/sex/doggy/frontbeast/activebeastchest.png"> <</if>> <</if>> <</widget>> <<widget "beastimggenitalsmissionary">> <<set $_npc to $NPCList[_na]>> <<set $_type to $_npc.type>> <<if $NPCList[_na].penis is "anusentrance" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/anal_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/anal_imminent.png"> <<elseif $npc.type is "boar" or $npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/anal_imminent.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "anusimminent" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/anal_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/anal_imminent.png"> <<elseif $npc.type is "boar" or $npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/anal_imminent.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "anus">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/anal.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/anal.png"> <<elseif $npc.type is "boar" or $npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/anal.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "cheeks" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/anal_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/anal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/anal_imminent.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "thighs" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_dp_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_dp_imminent.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/vaginal_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_imminent.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "vaginaentrance" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/vaginal_dp_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_dp_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_dp_imminent.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/vaginal_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_imminent.png"> <<elseif $npc.type is "boar" or $npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_imminent.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "vaginaimminent" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/vaginal_dp_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_dp_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_dp_imminent.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/vaginal_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_imminent.png"> <<elseif $npc.type is "boar" or $npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_imminent.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "vagina" and $NPCList[_na].type isnot "horse" and $NPCList[_na].type isnot "centaur">> <<if $anususe is "penis">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/vaginal_dp.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal_dp.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal_dp.png"> <</if>> <<else>> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/vaginal.png"> <<elseif $npc.type is "boar" or $npc.type is "pig">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/vaginal.png"> <</if>> <</if>> <</if>> <<if $NPCList[_na].penis is "mouthentrance" or $NPCList[_na].penis is "mouthimminent">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/oral_imminent.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/oral_imminent.png"> <<elseif $monster is 1>> <img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/oral_imminent.png"> <</if>> <</if>> <<if $NPCList[_na].penis is "mouth">> <<if ["dogboy", "doggirl", "wolfboy", "wolfgirl", "foxboy", "foxgirl"].includes($NPCList[_na].type)>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/knot/oral.png"> <<elseif $NPCList[_na].type is "catboy" or $NPCList[_na].type is "catgirl">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/cat/oral.png"> <<elseif $monster is 1>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/monster/normal/oral.png"> <</if>> <</if>> <<if ($_type is "boar" or $_type is "pig") and $_npc.gender is "m" and $_npc.penissize gt 0 and $_npc.penis is 0>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/balls.png'"> <img @class="'layer-beastforeground anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/beast/'+$_type+'/penis.png'"> <</if>> <</widget>> <<widget "beastimgidle">> <<set _na to $active_enemy>> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<if $anusstate is "imminent" or $anusstate is "entrance" or $vaginastate is "imminent" or $vaginastate is "entrance">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/horse_entrance.png"> <<elseif $penisstate is "imminent" or $penisstate is "entrance">> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/missionary/beast/horse_entrance.png"> <<else>> <img @class="'layer-beastback anim-doggy-4f-'+_animspeed" src="img/sex/doggy/beast/horse.png"> <</if>> <</if>> <</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 $uncomfortable.hypnosis is false>> <<hypnosisicon>>A primal urge swells within you. <span class="purple">You drop to your knees, and give a provocative wiggle.</span><<hypnosisicon>> <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)>> <<hypnosisicon>>A primal urge swells within you. <span class="purple">You drop to your knees, and give a provocative wiggle.</span><<hypnosisicon>> <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">><<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 $pregnancyspeechdisable is "f">>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 $pregnancyspeechdisable is "f">>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 $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 20>> <<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 $rng gte 21>> <<if $mouthsubmit is 1>> <<bHe>> allows you to pleasure <<bhis>> $NPCList[_n].penisdesc with your mouth. <<submission 5>> <<else>> <<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">> <</if>> <</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>><</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 envelope 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 $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. <<sex 10 "genitals">><<set $enemyanger += 10>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "penisentrance">> <<if $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>> <<bHe>> hovers <<bhis>> $NPCList[_n].penisdesc close to your <<penis>>. <<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 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">> <<if playerChastity("penis")>> <<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <</if>> <<elseif $NPCList[_n].penis is "penis">> <<if $rng gte 1>> <<if $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>> <<if playerChastity("penis")>> <<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <</if>> <<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>> lift <<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>><</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 $pregnancyspeechdisable is "f">>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>><</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 envelope 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 $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. <<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 $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 envelope 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 $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. <<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 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>> <<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>> <<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 $analdisable is "f">> <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>> <<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 $analingusdisablereceiving is "f">> <<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 $bestialitydisable is "f">>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 <<him>> 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.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 <<him>> 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 <<him>> 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 "closeimg">> <<set _filters to $skinColor.current>> <<set _na to $active_enemy>> <<imgOpacity>> <<getTentacleColour>> <<if $position is "wall">> <<set _img to setup.tanImg.close["doggy"][($options.tanImgEnabled ? "t" : "f")]>> <<set _position to "doggy">> <<else>> <<set _img to setup.tanImg.close[$position][($options.tanImgEnabled ? "t" : "f")]>> <<set _position to $position>> <</if>> <<if playerChastity("hidden")>> <<if $worn.genitals.name is "gold chastity belt">> <<set _beltName to "Gold">> <<else>> <<set _beltName to "">> <</if>> <</if>> <<set _pbColour = ($makeup.pbcolour != 0 ? $makeup.pbcolour : $naturalhaircolour).replace(/ /g, '-')>> <<if $player.vaginaExist and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <div class="i64" id="closevagina"> <<set _vagina = _img.vagina>> <<set _aroused = $vaginaWetness gte 75>> <<set _penetrate = "">> <<set _cum = "entrance">> <<set _frames = "anim-close-6f-" + _animspeed>> <<set _penis_frames = _frames>> <<set _penetrator_frames = _frames>> <<set _penetratorColour to "">> <<set _penetratorFilter to "">> <<set _idle = false>> <<if playerChastity("hidden") and !playerHasStrapon()>> <<switch $vaginastate>> <<case "tentacle" "tentacleentrance" "tentacleimminent" "entrance" "imminent" "othermouthentrance" "othermouthimminent">> <<set _aniFrame to 'anim-close-6f-'+_animspeed>> <<default>> <<set _aniFrame to "anim-idle-6f-slow">> <</switch>> <img @class="_aniFrame" @src="_img.vaginaChastityBase" @style="'filter: '+_filters.body"> <<if $pbdisable is "f">> <<if $pbstrip gte 1>> <img @class="'pbhair-' + _pbColour + ' ' +_aniFrame" @src="'img/sex/close/'+_position+'/phair/vaginapbstrip'+$pbstrip+'.png'"> <</if>> <<if $pblevel gte 2>> <img @class="'pbhair-' + _pbColour + ' ' +_aniFrame" @src="'img/sex/close/'+_position+'/phair/vaginapb'+$pblevel+'.png'"> <</if>> <</if>> <img @class="_aniFrame" @src="'img/sex/close/'+_position+'/chastityBelt/vagina'+_beltName+'.png'"> <<if $worn.under_lower.state is "totheside">> <img @class="'colour-under_lower ' + _aniFrame" @src="'img/sex/close/' + _position + '/vaginatotheside.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<switch $vaginastate>> <<case "tentacleentrance" "tentacleimminent">> <img @class="'_aniFrame '+_tentacleColour" @src="'img/sex/close/'+_position+'/chastityBelt/tentacle.png'"> <<case "entrance" "imminent">> <<if $enemytype is "beast">> <img @class="_aniFrame" @src="'img/sex/close/'+_position+'/chastityBelt/beast.png'"> <<else>> <img @class="_aniFrame+' '+(npcHasStrapon($vaginatarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$vaginatarget].strapon.color : '')" @src="_img.vaginaChastityMan" @style="'filter: '+(!npcHasStrapon($vaginatarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour] : '')"> <<if wearingCondom($vaginatarget)>> <img @class="_aniFrame+' condom-'+ $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')" @src="'img/sex/close/'+_position+'/chastityBelt/man_condom.png'"> <</if>> <</if>> <<case "othermouthentrance" "othermouthimminent">> <<if $enemytype is "beast">> <img @class="_aniFrame" @src="'img/sex/close/'+_position+'/beast/vaginaentrance.png'"> <</if>> <</switch>> <<else>> <<if $vaginastate is "tentacle" or $vaginastate is "tentacledeep">> <<set _vagina = _img.vaginapenetrate>> <<set _penetrate = "penetrate">> <<set _cum = "penetrate">> <<set _penetrator = "close/" + _position + "/vaginatentaclepenetrated.png">> <<set _penetratorColour to _tentacleColour>> <<elseif $vaginastate is "tentacleentrance" or $vaginastate is "tentacleimminent">> <<set _penetrator = "close/" + _position + "/vaginatentacleentrance.png">> <<set _penetratorColour to _tentacleColour>> <<elseif $vaginastate is "penetrated" or $vaginastate is "doublepenetrated">> <<if ($enemytype is "beast" and $NPCList[_na].penissize gte 5) or ($vaginastate is "doublepenetrated" and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>> <<set _vagina = _img.vaginapenetratebig>> <<else>> <<set _vagina = _img.vaginapenetrate>> <</if>> <<set _penetrate = "penetrate">> <<set _cum = "penetrate">> <<if $enemytype is "machine">> <<set _penetrator = "machine/vaginal/" + _position + "/penetrated_close.png">> <<elseif $enemytype is "beast">> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<set _penetrator = "close/horse/vaginapenetratedhorse.png">> <<else>> <<set _penetrator = "close/" + _position + "/vaginapenetratedbeast.png">> <</if>> <<elseif $vaginastate is "doublepenetrated" and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> <<set _penetratorBase to "close/" + _position + "/vaginapenetratedouble_base.png">> <<if $options.tanImgEnabled>> <<set _penetrator = "closeRed/" + _position + "/vaginapenetratedouble_top.png">> <<set _penetratorColour = (npcHasStrapon($vaginatarget) ? "strapon-"+$NPCList[$vaginatarget].strapon.color : "")>> <<set _penetratorFilter = (npcHasStrapon($vaginatarget) ? "" : setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour])>> <<set _penetrator2 = "closeRed/" + _position + "/vaginapenetratedouble_bottom.png">> <<set _penetrator2Colour = (npcHasStrapon($vaginadoubletarget) ? "strapon-"+$NPCList[$vaginadoubletarget].strapon.color : "")>> <<set _penetrator2Filter = (npcHasStrapon($vaginadoubletarget) ? "" : setup.npcSkinDefaults[$NPCList[$vaginadoubletarget].skincolour])>> <<else>> <<set _penetrator = "close/" + _position + "/vaginapenetratedouble_top.png">> <<set _penetrator2 = "close/" + _position + "/vaginapenetratedouble_bottom.png">> <</if>> <<if wearingCondom($vaginatarget)>> <<set _penetratorCondom to "close/" + _position + "/vaginapenetratedouble_top_condom.png">> <<set _penetratorCondomColour to "condom-" + $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')>> <</if>> <<if wearingCondom($vaginadoubletarget)>> <<set _penetrator2Condom to "close/" + _position + "/vaginapenetratedouble_bottom_condom.png">> <<set _penetrator2CondomColour to "condom-" + $NPCList[$vaginadoubletarget].condom.colour.replace(/ /g, '-')>> <</if>> <<else>> <<set _penetratorBase to "close/" + _position + "/vaginapenetrated_base.png">> <<if $options.tanImgEnabled>> <<set _penetrator = "closeRed/" + _position + "/vaginapenetrated.png">> <<set _penetratorColour = (npcHasStrapon($vaginatarget) ? "strapon-"+$NPCList[$vaginatarget].strapon.color : "")>> <<set _penetratorFilter = (npcHasStrapon($vaginatarget) ? "" : setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour])>> <<else>> <<set _penetrator = "close/" + _position + "/vaginapenetrated.png">> <</if>> <<if wearingCondom($vaginatarget)>> <<set _penetratorCondom to "close/" + _position + "/vaginapenetrated_condom.png">> <<set _penetratorCondomColour to "condom-" + $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')>> <</if>> <</if>> <<elseif $vaginastate is "entrance">> <<if $enemytype is "machine">> <<set _penetrator = "machine/vaginal/" + _position + "/entrance_close.png">> <<elseif $enemytype is "beast">> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<set _penetrator = "close/horse/vaginaentrancehorse.png">> <<else>> <<set _penetrator = "close/" + _position + "/vaginaentrancebeast.png">> <</if>> <<else>> <<if $options.tanImgEnabled>> <<set _penetrator = "closeRed/" + _position + "/vaginaentrance.png">> <<set _penetratorColour = (npcHasStrapon($vaginatarget) ? "strapon-"+$NPCList[$vaginatarget].strapon.color : "")>> <<set _penetratorFilter = (npcHasStrapon($vaginatarget) ? "" : setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour])>> <<else>> <<set _penetrator = "close/" + _position + "/vaginaentrance.png">> <</if>> <<if wearingCondom($vaginatarget)>> <<set _penetratorCondom to "close/" + _position + "/vaginaentrance_condom.png">> <<set _penetratorCondomColour to "condom-" + $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')>> <</if>> <</if>> <<elseif $vaginastate is "imminent">> <<set _frames = "anim-close-3f-" + _animspeed>> <<set _penis_frames = "anim-close-6f-" + _animspeed>> <<set _penetrator_frames = "anim-close-3f-" + _animspeed>> <<if $enemytype is "machine">> <<set _penetrator_frames = "anim-close-6f-" + _animspeed>> <<set _penetrator = "machine/vaginal/" + _position + "/entrance_close.png">> <<elseif $enemytype is "beast">> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<set _penetrator_frames = "anim-close-6f-" + _animspeed>> <<set _penetrator = "close/horse/vaginaentrancehorse.png">> <<else>> <<set _penetrator = "close/" + _position + "/vaginaentrancebeast.png">> <</if>> <<else>> <<if $options.tanImgEnabled>> <<set _penetrator = "closeRed/" + _position + "/vaginaentrance.png">> <<set _penetratorColour = (npcHasStrapon($vaginatarget) ? "strapon-"+$NPCList[$vaginatarget].strapon.color : "")>> <<set _penetratorFilter = (npcHasStrapon($vaginatarget) ? "" : setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour])>> <<else>> <<set _penetrator = "close/" + _position + "/vaginaentrance.png">> <</if>> <<if wearingCondom($vaginatarget)>> <<set _penetratorCondom to "close/" + _position + "/vaginaentrance_condom.png">> <<set _penetratorCondomColour to "condom-" + $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')>> <</if>> <</if>> <<elseif $enemytype is "beast" and ($vaginastate is "othermouthentrance" or $vaginastate is "othermouthimminent") and $monster isnot 1>> <<set _penetrator = "close/" + _position + "/beast/vaginaentrance.png">> <<elseif $enemytype is "beast" and $vaginastate is "othermouth" and $monster isnot 1>> <<set _penetrator = "close/" + _position + "/beast/vagina.png">> <<elseif $vaginause is "othervagina">> <<set _penetrator = "close/" + _position + "/trib.png">> <<else>> <<set _idle = true>> <<set _frames = "anim-idle-1f-slow">> <<set _penis_frames = _frames>> <<set _penetrator_frames = _frames>> <</if>> <!-- Vagina --> <img @class="_frames" @src="_vagina" @style="'filter: ' + _filters.body"> <<if _aroused and _penetrate is "">> <img @class="_frames" @src="_img.vaginaaroused" @style="'filter: ' + _filters.body"> <</if>> <!-- Pubic hair --> <<if $pbdisable is "f">> <<if $pbstrip gte 1>> <img @class="'pbhair-' + _pbColour + ' ' + _frames" @src="'img/sex/close/' + _position + '/phair/vagina' + _penetrate + 'pbstrip' + $pbstrip + '.png'"> <</if>> <<if $pblevel gte 2>> <img @class="'pbhair-' + _pbColour + ' ' + _frames" @src="'img/sex/close/' + _position + '/phair/vagina' + _penetrate + 'pb' + $pblevel + '.png'"> <</if>> <</if>> <!-- Wolf TF pubic hair --> <<if !["hidden", "disabled"].includes($transformationParts.wolf.pubes)>> <img @class="'pbhair-' + _pbColour + ' ' + _frames" @src="'img/sex/close/' + _position + '/vaginahirsute.png'"> <</if>> <!-- Bird TF pubic hair --> <<if !["hidden", "disabled"].includes($transformationParts.bird.pubes)>> <img @class="'pbhair-' + _pbColour + ' ' + _frames" @src="'img/sex/close/' + _position + '/vaginahirsute.png'"> <</if>> <!-- Hermaphrodite penis --> <<if $player.penisExist>> <<if $player.ballsExist is false>> <img @class="_penis_frames" @src="_img.futavaginanoballs" @style="'filter: ' + _filters.body"> /* add clause for strap-ons? */ <<else>> <img @class="_penis_frames" @src="_img.futavagina" @style="'filter: ' + _filters.body"> <</if>> <</if>> <!-- Dripping cum --> <<if setup.bodyliquid.combined("vagina") gte 1>> <<if _idle is false>> <img @class="_frames" @src="'img/sex/close/' + _position + '/vagina' + _cum + 'cum.png'"> <<else>> <img @src="'img/sex/close/' + _position + '/vaginacum.gif'"> <</if>> <</if>> <!-- Panties to the side --> <<if $worn.under_lower.state is "totheside">> <img @class="'colour-under_lower ' + _frames" @src="'img/sex/close/' + _position + '/vaginatotheside.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <!-- Enemy penis or substitute --> <<if _idle is false>> <img @class="_penetratorColour + ' ' + _penetrator_frames" @src="'img/sex/' + _penetrator" @style="'filter: '+ _penetratorFilter"> <<if _penetratorCondom>> <img @class="_penetratorCondomColour + ' ' + _penetrator_frames" @src="'img/sex/' + _penetratorCondom"> <</if>> <<if _penetrator2>> <img @class="_penetrator2Colour + ' ' + _penetrator_frames" @src="'img/sex/' + _penetrator2" @style="'filter: '+ _penetrator2Filter"> <<if _penetrator2Condom>> <img @class="_penetrator2CondomColour + ' ' + _penetrator_frames" @src="'img/sex/' + _penetrator2Condom"> <</if>> <</if>> <<if _penetratorBase>> <img @class="_penetrator_frames" @src="'img/sex/' + _penetratorBase"> <</if>> <</if>> <</if>> </div> <</if>> <<if $worn.under_lower.anus_exposed is 1 and $worn.lower.anus_exposed is 1>> <div class="i64" id="closeanus"> <<set _idle = false>> <<set _penetrated = false>> <<set _imageColour to "">> <<set _imageFilter to "">> <<if $anusstate is "tentacle">> <<set _image = 'close/' + _position + '/anustentaclepenetrated.png'>> <<set _imageColour to _tentacleColour>> <<elseif $anusstate is "tentacledeep">> <<set _penetrated = true>> <<set _image = 'close/' + _position + '/anustentaclepenetrated.png'>> <<set _imageColour to _tentacleColour>> <<elseif $anusstate is "tentacleentrance">> <<set _image = 'close/' + _position + '/anustentacleentrance.png'>> <<set _imageColour to _tentacleColour>> <<elseif $anusstate is "tentacleimminent">> <<set _image = 'close/' + _position + '/anustentacleentrance.png'>> <<set _imageColour to _tentacleColour>> <<elseif $anusstate is "penetrated" or $anusstate is "doublepenetrated">> <<set _penetrated = true>> <<if $enemytype is "machine">> <<set _image = 'machine/anal/' + _position + '/penetrated_close.png'>> <<elseif $enemytype is "beast">> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<set _image = 'close/horse/anuspenetratedhorse.png'>> <<else>> <<set _image = 'close/' + _position + '/anuspenetratedbeast.png'>> <</if>> <<elseif $anusstate is "doublepenetrated" and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<set _imageBase to "close/" +_position+ "/anuspenetratedouble_base.png">> <<if $options.tanImgEnabled>> <<set _image = "closeRed/" + _position + "/anuspenetratedouble_top.png">> <<set _imageColour = (npcHasStrapon($anustarget) ? "strapon-"+$NPCList[$anustarget].strapon.color : "")>> <<set _imageFilter = (npcHasStrapon($anustarget) ? "" : setup.npcSkinDefaults[$NPCList[$anustarget].skincolour])>> <<set _image2 = "closeRed/" + _position + "/anuspenetratedouble_bottom.png">> <<set _image2Colour = (npcHasStrapon($anusdoubletarget) ? "strapon-"+$NPCList[$anusdoubletarget].strapon.color : "")>> <<set _image2Filter = (npcHasStrapon($anusdoubletarget) ? "" : setup.npcSkinDefaults[$NPCList[$anusdoubletarget].skincolour])>> <<else>> <<set _image = "close/" + _position + "/anuspenetratedouble_top.png">> <<set _image2 = "close/" + _position + "/anuspenetratedouble_bottom.png">> <</if>> <<if wearingCondom($anustarget)>> <<set _imageCondom to "close/" + _position + "/anuspenetratedouble_top_condom.png">> <<set _imageCondomColour to "condom-" + $NPCList[$anustarget].condom.colour.replace(/ /g, '-')>> <</if>> <<if wearingCondom($anusdoubletarget)>> <<set _image2Condom to "close/" + _position + "/anuspenetratedouble_bottom_condom.png">> <<set _image2CondomColour to "condom-" + $NPCList[$anusdoubletarget].condom.colour.replace(/ /g, '-')>> <</if>> <<else>> <<set _imageBase to "close/" + _position + "/anuspenetrated_base.png">> <<if $options.tanImgEnabled>> <<set _image = "closeRed/" + _position + "/anuspenetrated.png">> <<set _imageColour = (npcHasStrapon($anustarget) ? "strapon-"+$NPCList[$anustarget].strapon.color : "")>> <<set _imageFilter = (npcHasStrapon($anustarget) ? "" : setup.npcSkinDefaults[$NPCList[$anustarget].skincolour])>> <<else>> <<set _image = "close/" + _position + "/anuspenetrated.png">> <</if>> <<if wearingCondom($anustarget)>> <<set _imageCondom to "close/" + _position + "/anuspenetrated_condom.png">> <<set _imageCondomColour to "condom-" + $NPCList[$anustarget].condom.colour.replace(/ /g, '-')>> <</if>> <</if>> <<elseif $anusstate is "entrance">> <<if $enemytype is "machine">> <<set _image = 'machine/anal/' + _position + '/entrance_close.png'>> <<elseif $enemytype is "beast">> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<set _image = 'close/horse/anusentrancehorse.png'>> <<else>> <<set _image = 'close/' + _position + '/anusentrancebeast.png'>> <</if>> <<else>> <<if $options.tanImgEnabled>> <<set _image = "closeRed/" + _position + "/anusentrance.png">> <<set _imageColour = (npcHasStrapon($anustarget) ? "strapon-"+$NPCList[$anustarget].strapon.color : "")>> <<set _imageFilter = (npcHasStrapon($anustarget) ? "" : setup.npcSkinDefaults[$NPCList[$anustarget].skincolour])>> <<else>> <<set _image = "close/" + _position + "/anusentrance.png">> <</if>> <<if wearingCondom($anustarget)>> <<set _imageCondom to "close/" + _position + "/anusentrance_condom.png">> <<set _imageCondomColour to "condom-" + $NPCList[$anustarget].condom.colour.replace(/ /g, '-')>> <</if>> <</if>> <<elseif $anusstate is "imminent">> <<if $enemytype is "machine">> <<set _image = 'machine/anal/' + _position + '/entrance_close.png'>> <<elseif $enemytype is "beast">> <<if $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur">> <<set _image = 'close/horse/anusentrancehorse.png'>> <<else>> <<set _image = 'close/' + _position + '/anusentrancebeast.png'>> <</if>> <<else>> <<if $options.tanImgEnabled>> <<set _image = "closeRed/" + _position + "/anusentrance.png">> <<set _imageColour = (npcHasStrapon($anustarget) ? "strapon-"+$NPCList[$anustarget].strapon.color : "")>> <<set _imageFilter = (npcHasStrapon($anustarget) ? "" : setup.npcSkinDefaults[$NPCList[$anustarget].skincolour])>> <<else>> <<set _image = "close/" + _position + "/anusentrance.png">> <</if>> <<if wearingCondom($anustarget)>> <<set _imageCondom to "close/" + _position + "/anusentrance_condom.png">> <<set _imageCondomColour to "condom-" + $NPCList[$anustarget].condom.colour.replace(/ /g, '-')>> <</if>> <</if>> <<elseif $enemytype is "beast" and $anusstate is "othermouthentrance" and $monster isnot 1>> <<set _image = 'close/' + _position + '/beast/anusentrance.png'>> <<elseif $enemytype is "beast" and $anusstate is "othermouthimminent" and $monster isnot 1>> <<set _image = 'close/' + _position + '/beast/anusentrance.png'>> <<elseif $enemytype is "beast" and $anusstate is "othermouth" and $monster isnot 1>> <<set _image = 'close/' + _position + '/beast/anus.png'>> <<else>> <<set _idle = true>> <</if>> <<if _idle == true>> <img class="anim-idle-1f-slow" @src="_img.anus" @style="'filter: ' + _filters.body"> <<if $worn.under_lower.state is "totheside">> <img class="colour-under_lower anim-idle-1f-slow" @src="'img/sex/close/' + _position + '/anustotheside.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<else>> <img @class="'anim-close-6f-' + _animspeed" @src="_penetrated ? _img.anuspenetrate : _img.anus" @style="'filter: ' + _filters.body"> <<if $worn.under_lower.state is "totheside">> <img @class="'colour-under_lower anim-close-6f-' + _animspeed" @src="'img/sex/close/' + _position + '/anustotheside' + (_penetrated ? 'penetrate' : '') + '.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <img @class="_imageColour + ' anim-close-6f-' + _animspeed" @src="'img/sex/' + _image" @style="'filter: '+ _imageFilter"> <<if _imageCondom>> <img @class="_imageCondomColour + ' anim-close-6f-' + _animspeed" @src="'img/sex/' + _imageCondom"> <</if>> <<if _image2>> <img @class="_image2Colour + ' anim-close-6f-' + _animspeed" @src="'img/sex/' + _image2" @style="'filter: '+ _image2Filter"> <<if _image2Condom>> <img @class="_image2CondomColour + ' anim-close-6f-' + _animspeed" @src="'img/sex/' + _image2Condom"> <</if>> <</if>> <<if _imageBase>> <img @class="'anim-close-6f-' + _animspeed" @src="'img/sex/' + _imageBase"> <</if>> <</if>> </div> <</if>> <div class="i64" id="closechest"> <<if $chestuse is "penis" or $chestuse is "tentacle">> <<if $player.breastsize gte 8>> <img @src="_img.chest+'chest_job_big.png'" @class="'anim-close-10f-'+_animspeed" @style="'filter: ' + _filters.body"> <img id="closechestnip" @src="_img.chest+'chest_job_big_nip.png'" @class="'anim-close-10f-'+_animspeed" @style="'filter: ' + _filters.body"> <img id="closechestpenis" @src="_img.chest+'chest_job_big_penis.png'" @class="'anim-close-10f-'+_animspeed+' '+(npcHasStrapon($chesttarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$chesttarget].strapon.color : '')" @style="'filter: '+(!npcHasStrapon($chesttarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$chesttarget].skincolour] : '')"> <<else>> <img @src="_img.chest+'base.png'" @class="'anim-close-6f-'+_animspeed" @style="'filter: ' + _filters.body"> <img id="closechestbreasts" @src="_img.chest+$player.breastsize+'_job.png'" @class="'anim-close-6f-'+_animspeed" @style="'filter: ' + _filters.body"> <img id="closechestnip" @src="_img.chest+$player.breastsize+'_job_nip.png'" @class="'anim-close-6f-'+_animspeed" @style="'filter: ' + _filters.body"> <<if $chestuse is "penis" and $enemytype is "beast">> <img id="closechestpenis" @src="_img.chest+'beast.png'" @class="'anim-close-6f-'+_animspeed"> <<elseif $chestuse is "penis">> <img id="closechestpenis" @src="_img.chest+'man.png'" @class="'anim-close-6f-'+_animspeed+' '+(npcHasStrapon($chesttarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$chesttarget].strapon.color : '')" @style="'filter: '+(!npcHasStrapon($chesttarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$chesttarget].skincolour] : '')"> <<if wearingCondom($chesttarget)>> <img id="closechestpenis" @src="'img/sex/close/chest/man_condom.png'" @class="'anim-close-6f-'+_animspeed+' condom-'+ $NPCList[$chesttarget].condom.colour.replace(/ /g, '-')"> <</if>> <<else>> <img id="closechestpenis" @src="_img.chest+'tentacle.png'" @class="'anim-close-6f-'+_animspeed+' '+_tentacleColour"> <</if>> <</if>> <<elseif ($worn.upper.exposed gte 2 or $upperwetstage gte 3) and ($worn.under_upper.exposed gte 1 or $underupperwetstage gte 3)>> <img @src="_img.chest+$player.breastsize+'.png'" @style="'filter: ' + _filters.body"> <img id="closechestpenis" @src="_img.chest+$player.breastsize+'_nip.png'" @style="'filter: ' + _filters.body"> <</if>> </div> <<if ($player.penisExist or playerHasStrapon()) and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <div class="i64" id="closepenis"> <<if $player.vaginaExist>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisbase" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisbase" @style="'filter: '+_filters.body"> <</if>> <<if $worn.under_lower.state is "totheside">> <img @class="'colour-under_lower anim-close-6f-'+_animspeed" @src="'img/sex/close/' + _position + '/penistotheside.png'" @style="($worn.under_lower.colour is 'custom'? $worn.under_lower.colourCustom + _underLowerOpacity : '')"> <</if>> <<if playerChastity("hidden") and !playerHasStrapon()>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/' + _position + '/chastityBelt/penis'+_beltName+'.png'"> <<switch $penisstate>> <<case "tentacleentrance" "tentacleimminent">> <img @class="'anim-close-6f-'+_animspeed+' '+_tentacleColour" @src="'img/sex/close/' + _position + '/chastityBelt/tentacle.png'"> <<case "entrance" "imminent">> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisentrance" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <<case "othermouthentrance" "othermouthimminent">> <<if $enemytype is "beast">> <img @class="'anim-close-6f-'+_animspeed" src="img/sex/close/' + _position + '/beast/penisentrance.png"> <</if>> <</switch>> <<elseif $worn.genitals.name.includes("cage") and !playerHasStrapon()>> <<switch $worn.genitals.name>> <<case "flat chastity cage">><<set $_chastityCage to "flat">> <<case "small chastity cage">><<set $_chastityCage to "small">> <<default>><<set $_chastityCage to "">> <</switch>> <img @class="'anim-close-6f-'+_animspeed" @src="_img['chastitypenis'+$_chastityCage]" @style="'filter: '+_filters.body"> <img @class="'anim-close-6f-'+_animspeed+' colour-genitals'" @src="'img/sex/close/'+_position+'/chastity'+$_chastityCage+'.png'"> <<elseif playerHasStrapon()>> /* Need to add strap-on close sprite here */ <<if playerChastity("hidden")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/' + _position + '/chastityBelt/penis'+_beltName+'.png'"> <</if>> <<set _ppcolor to "strapon-"+$worn.under_lower.colour>> /* Add different shape phalluses here */ <<if $worn.under_lower.variable is "straponknotted">> <img @class="'layer-sexmouth '+_ppcolor+' anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/straponcloseknot.png'"> <<elseif $worn.under_lower.variable is "straponhorse">> <img @class="'layer-sexmouth '+_ppcolor+' anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/straponcloseknot.png'"> <<else>> <img @class="'layer-sexmouth '+_ppcolor+' anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/straponclose.png'"> <</if>> /* This is the NPC getting penetrated */ <<if $penisstate is "penetrated" or $penisstate is "otheranus">> <img @class="'layer-sextears anim-close-6f-'+_animspeed" @src="_img.penispenetrated" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <<if $options.tanImgEnabled>> <img @class="'layer-sextears anim-close-6f-'+_animspeed" @src="'img/sex/closeRed/'+_position+'/penispenetrated_pink.png'"> <</if>> <</if>> <<elseif $penisstate is "tentacle">> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-6f-'+_animspeed+' '+_tentacleColour" @src="'img/sex/close/'+_position+'/penistentaclepenetrated.png'"> <<elseif $penisstate is "tentacledeep">> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-6f-'+_animspeed+' '+_tentacleColour" @src="'img/sex/close/'+_position+'/penistentaclepenetrated.png'"> <<elseif $penisstate is "tentacleentrance">> <<if $player.ballsExist is false>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-3f-'+_animspeed+' '+_tentacleColour" @src="'img/sex/close/'+_position+'/penistentacleentrance.png'"> <<elseif $penisstate is "tentacleimminent">> <<if $player.ballsExist is false>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-3f-'+_animspeed+' '+_tentacleColour" @src="'img/sex/close/'+_position+'/penistentacleentrance.png'"> <<elseif $penisstate is "penetrated">> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <<if $enemytype is "beast" and ($monster isnot 1 or $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penispenetrated.png'"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penispenetrated" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <<if $options.tanImgEnabled>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/closeRed/'+_position+'/penispenetrated_pink.png'"> <</if>> <</if>> <<elseif $penisstate is "otheranus">> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <<if $enemytype is "beast" and ($monster isnot 1 or $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penispenetrated.png'"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penispenetrated" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <<if $options.tanImgEnabled>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/closeRed/'+_position+'/penispenetrated_pink.png'"> <</if>> <</if>> <<elseif $penisstate is "imminent">> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <<if $enemytype is "beast" and ($monster isnot 1 or $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penisentrancevagina.png'"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisentrance" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <</if>> <<elseif $penisstate is "entrance">> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <<if $enemytype is "beast" and ($monster isnot 1 or $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penisentrancevagina.png'"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisentrance" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.ballsExist is false>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <<if $enemytype is "beast" and ($monster isnot 1 or $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penisentrancevagina.png'"> <<else>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.penisentrance" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <</if>> <<elseif $penisstate is "otheranusentrance">> <<if $player.ballsExist is false>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <<if $enemytype is "beast" and ($monster isnot 1 or $NPCList[_na].type is "horse" or $NPCList[_na].type is "centaur")>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penisentrancevagina.png'"> <<else>> <img @class="'anim-close-3f-'+_animspeed" @src="_img.penisentrance" @style="'filter: '+($options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$penistarget].skincolour] : '')"> <</if>> <<elseif $enemytype is "beast" and $penisstate is "othermouthentrance" and $monster isnot 1>> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisentrancenoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisentrance1" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penisentrance.png'"> <<elseif $enemytype is "beast" and $penisstate is "othermouthimminent" and $monster isnot 1>> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisimminentnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisimminent1" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penisimminent.png'"> <<elseif $enemytype is "beast" and $penisstate is "othermouth" and $monster isnot 1>> <<if $player.ballsExist is false>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penisnoballs" @style="'filter: '+_filters.body"> <<else>> <img @class="'anim-close-6f-'+_animspeed" @src="_img.penis1" @style="'filter: '+_filters.body"> <</if>> <img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/beast/penis.png'"> <<else>> <<if $player.ballsExist is false>> <img class="anim-idle-1f-slow" @src="_img.futapenisnoballs" @style="'filter: '+_filters.body"> <<else>> <img class="anim-idle-1f-slow" @src="_img.penis" @style="'filter: '+_filters.body"> <</if>> <</if>> <<if wearingCondom("player")>> <<if ["penetrated","otheranus","imminent","entrance","otheranusimminent","otheranusentrance"].includes($penisstate)>> <img @class="'anim-close-6f-'+_animspeed+' condom-'+ $player.condom.colour.replace(/ /g, '-')" @src="'img/sex/close/'+_position+'/penis_condom.png'"> <<else>> <img @class="'anim-close-1f-slow condom-'+ $player.condom.colour.replace(/ /g, '-')" @src="'img/sex/close/'+_position+'/penis_condom.png'"> <</if>> <</if>> </div> <</if>> <</widget>>
<<widget "consensualman">> <!-- Unused --> <</widget>>
/* <<widget "consensualman">> <!-- Unused --> <</widget>> */
/* <<widget "consensualman">> <!-- Unused --> <</widget>> */
<<widget "doggyimg">> <<voreimg>> <<closeimg>> <<set _filters to $skinColor.current>> <<set _img to setup.tanImg.doggy[($options.tanImgEnabled ? "t" : "f")]>> <<set _disabled to ["disabled","hidden"]>> <<set _xx to $enemynomax-1>> <<if _xx is -1>> <<set _stanceCheck to 0>> <<else>> <<set _stanceCheck to $NPCList[_xx].stance>> <</if>> <<if ndef _custom_eyelenses_left_style>> <<set _custom_eyelenses_left_style = "">> <<for _i = 0; _i < $custom_eyecolours.length; _i++>> <<if $custom_eyecolours[_i].variable == $makeup.eyelenses.left>> <<run _custom_eyelenses_left_style = "filter: " + window.colorNameTranslate($makeup.eyelenses.left, "hue")>> <</if>> <</for>> <</if>> <<if $makeup.eyelenses.left == 0>> <<set _colourEyeLeft to "eye-" + $leftEyeColour>> <<script>>T.colourEyeLeft = T.colourEyeLeft.replace(/\s/g, '-')<</script>> <<else>> <<set _colourEyeLeft to "eye-" + $makeup.eyelenses.left>> <<script>>T.colourEyeLeft = T.colourEyeLeft.replace(/\s/g, '-')<</script>> <</if>> <<if playerBellySize() || $bellySizeDebug>> <<set _bellySize to playerBellySize() || $bellySizeDebug>> <<if (($worn.upper.type.includes("bellyHide") && $worn.upper.exposed lt 2) or !($worn.over_upper.type.includes("naked")))>> <<set _bellySize -= 5>> <</if>> <</if>> <div class="char_combat i256"> <<switch _swarmcreature>> <<case "fish">> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount1.png"> <<elseif _swarmactive lte 2>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount2.png"> <<elseif _swarmactive lte 3>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount3.png"> <<elseif _swarmactive lte 4>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount4.png"> <<elseif _swarmactive lte 9>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount5.png"> <<elseif _swarmactive gte 10>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/fish/fishcount6.png"> <</if>> <<case "eels">> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/eels/eelcount1.png"> <<elseif _swarmactive lte 2>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/eels/eelcount2.png"> <<elseif _swarmactive lte 3>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/eels/eelcount3.png"> <<elseif _swarmactive lte 4>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/eels/eelcount4.png"> <<elseif _swarmactive lte 9>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/eels/eelcount5.png"> <<elseif _swarmactive gte 10>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/eels/eelcount6.png"> <</if>> <<case "spiders">> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/spiders/spidercount1.png"> <<elseif _swarmactive lte 2>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/spiders/spidercount2.png"> <<elseif _swarmactive lte 3>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/spiders/spidercount3.png"> <<elseif _swarmactive lte 4>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/spiders/spidercount4.png"> <<elseif _swarmactive lte 9>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/spiders/spidercount5.png"> <<elseif _swarmactive gte 10>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/spiders/spidercount6.png"> <</if>> <<case "worms">> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/worms/wormcount1.png"> <<elseif _swarmactive lte 2>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/worms/wormcount2.png"> <<elseif _swarmactive lte 3>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/worms/wormcount3.png"> <<elseif _swarmactive lte 4>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/worms/wormcount4.png"> <<elseif _swarmactive lte 9>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/worms/wormcount5.png"> <<elseif _swarmactive gte 10>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/worms/wormcount6.png"> <</if>> <<case "maggots">> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/maggots/maggotcount1.png"> <<elseif _swarmactive lte 2>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/maggots/maggotcount2.png"> <<elseif _swarmactive lte 3>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/maggots/maggotcount3.png"> <<elseif _swarmactive lte 4>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/maggots/maggotcount4.png"> <<elseif _swarmactive lte 9>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/maggots/maggotcount5.png"> <<elseif _swarmactive gte 10>> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/maggots/maggotcount6.png"> <</if>> <<default>> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/slime/slimecount1.png"> <<elseif _swarmactive lte 2>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/slime/slimecount2.png"> <<elseif _swarmactive lte 3>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/slime/slimecount3.png"> <<elseif _swarmactive lte 4>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/slime/slimecount4.png"> <<elseif _swarmactive lte 9>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/slime/slimecount5.png"> <<elseif _swarmactive gte 10>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/slime/slimecount6.png"> <</if>> <</switch>> <<swarm_img>> <<if $thighuse is "othermouth">> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/doggyactivepenilemouthentrance.png"> <</if>> <<if $penisstate is "othermouthimminent">> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/doggyactivepenilemouthimminent.png"> <</if>> <<if $penisstate is "othermouthentrance">> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/doggyactivepenilemouthentrance.png"> <</if>> <<if $mouthstate is "kissimminent">> <img class="layer-sexpenis anim-idle-3f-slow" src="img/sex/doggy/doggyactiveoralmouthimminent.png"> <</if>> <<if $mouthstate is "kissentrance">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyactiveoralmouthentrance.png"> <</if>> <<if $vaginastate is "othermouthimminent">> <img class="layer-sexpenis anim-idle-4f-mid" src="img/sex/doggy/doggyactivevaginalmouthimminent.png"> <</if>> <<if $vaginastate is "othermouthentrance">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyactivevaginalmouthentrance.png"> <</if>> <<if $vaginastate is "imminent" or $vaginastate is "doubleimminent">> <<if $enemytype is "machine">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/machine/vaginal/doggy/entrance.png"> <<elseif $enemytype isnot "beast">> <img @class="'layer-sexpenis anim-idle-2f-slow '+ (npcHasStrapon($vaginatarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$vaginatarget].strapon.color : '')" @src="_img.doggyvaginalimminent" @style="'filter: '+(!npcHasStrapon($vaginatarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour] : '')"> <<if wearingCondom($vaginatarget)>> <img @class="'layer-sexpenis anim-idle-2f-slow condom-'+ $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')" src="img/sex/doggy/doggyvaginalimminent_condom.png"> <</if>> <<if $options.silhouetteEnabled and $anususe isnot "penis">> <img class="layer-shadowmanbackground anim-idle-2f-slow" src="img/sex/doggy/shadow/vaginalimminent.png"> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if wearingCondom($vaginatarget) isnot "worn" and !npcHasStrapon($vaginatarget)>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyvaginalimminentcum.png"> <</if>> <</if>> <</if>> <</if>> <<if $bottomuse is "mouth">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyactiveanalmouthentrance.png"> <</if>> <<if $anusstate is "othermouthimminent">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyactiveanalmouthimminent.png"> <</if>> <<if $anusstate is "othermouthentrance">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyactiveanalmouthentrance.png"> <</if>> <<if $anusstate is "imminent" or $anusstate is "doubleimminent">> <<if $enemytype is "machine">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/machine/anal/doggy/entrance.png"> <<elseif $enemytype isnot "beast">> <img @class="'layer-sexpenis anim-idle-2f-slow '+ (npcHasStrapon($anustarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$anustarget].strapon.color : '')" @src="_img.doggyanalimminent" @style="'filter: '+(!npcHasStrapon($anustarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$anustarget].skincolour] : '')"> <<if wearingCondom($anustarget)>> <img @class="'layer-sexpenis anim-idle-2f-slow condom-'+ $NPCList[$anustarget].condom.colour.replace(/ /g, '-')" src="img/sex/doggy/doggyanalimminent_condom.png"> <</if>> <<if $options.silhouetteEnabled>> <img class="layer-shadowmanbackground anim-idle-2f-slow" src="img/sex/doggy/shadow/analimminent.png"> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if wearingCondom($anustarget) isnot "worn" and !npcHasStrapon($anustarget)>> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/doggy/doggyanalimminentcum.png"> <</if>> <</if>> <</if>> <</if>> <<if $anusstate is "entrance" or $anusstate is "doubleentrance">> <<if $enemytype is "machine">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/machine/anal/doggy/entrance.png"> <<elseif $enemytype isnot "beast">> <img @class="'layer-sexpenis anim-idle-1f-slow '+ (npcHasStrapon($anustarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$anustarget].strapon.color : '')" @src="_img.doggyanalentrance" @style="'filter: '+(!npcHasStrapon($anustarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$anustarget].skincolour] : '')"> <<if wearingCondom($anustarget)>> <img @class="'layer-sexpenis anim-idle-1f-slow condom-'+ $NPCList[$anustarget].condom.colour.replace(/ /g, '-')" src="img/sex/doggy/doggyanalentrance_condom.png"> <</if>> <<if $options.silhouetteEnabled and $debug is 1>> <img class="layer-shadowmanbackground" src="img/sex/doggy/shadow/analentrance.png"> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if wearingCondom($anustarget) isnot "worn" and !npcHasStrapon($anustarget)>> <img class="layer-sexpenis anim-idle-4f-fast" src="img/sex/doggy/doggyanalentrancecum.png"> <</if>> <</if>> <</if>> <</if>> <<if $vaginastate is "entrance" or $vaginastate is "doubleentrance">> <<if $enemytype is "machine">> <img class="layer-sexpenis anim-idle-2f-slow" src="img/sex/machine/vaginal/doggy/entrance.png"> <<elseif $enemytype isnot "beast">> <img @class="'layer-sexpenis anim-idle-1f-slow '+ (npcHasStrapon($vaginatarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$vaginatarget].strapon.color : '')" @src="_img.doggyvaginalentrance" @style="'filter: '+(!npcHasStrapon($vaginatarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$vaginatarget].skincolour] : '')"> <<if wearingCondom($vaginatarget)>> <img @class="'layer-sexpenis anim-idle-1f-slow condom-'+ $NPCList[$vaginatarget].condom.colour.replace(/ /g, '-')" src="img/sex/doggy/doggyvaginalentrance_condom.png"> <</if>> <<if $options.silhouetteEnabled and $anususe isnot "penis" and $debug is 1>> <img class="layer-shadowmanbackground" src="img/sex/doggy/shadow/vaginalentrance.png"> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if wearingCondom($vaginatarget) isnot "worn" and !npcHasStrapon($vaginatarget)>> <img class="layer-sexpenis anim-idle-4f-fast" src="img/sex/doggy/doggyvaginalentrancecum.png"> <</if>> <</if>> <</if>> <</if>> <<if $mouthstate is "imminent">> <<if $enemytype isnot "beast">> <img @class="'layer-parasite anim-idle-2f-slow '+ (npcHasStrapon($mouthtarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$mouthtarget].strapon.color : '')" @src="_img.doggyoralimminent" @style="'filter: '+(!npcHasStrapon($mouthtarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$mouthtarget].skincolour] : '')"> <<if wearingCondom($mouthtarget)>> <img @class="'layer-over_lower anim-idle-2f-slow condom-'+ $NPCList[$mouthtarget].condom.colour.replace(/ /g, '-')" src="img/sex/doggy/doggyoralimminent_condom.png"> <</if>> <<if $options.silhouetteEnabled>> <img class="layer-shadowmanforeground anim-idle-2f-slow" src="img/sex/doggy/shadow/oralimminent.png"> <</if>> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if wearingCondom($mouthtarget) isnot "worn" and !npcHasStrapon($mouthtarget)>> <img class="layer-parasite anim-idle-4f-fast" src="img/sex/doggy/doggyoralimminentcum.png"> <</if>> <</if>> <</if>> <<if $mouthstate is "entrance">> <<if $enemytype isnot "beast">> <img @class="'layer-parasite anim-idle-2f-slow '+ (npcHasStrapon($mouthtarget) && $options.tanImgEnabled ? 'strapon-' + $NPCList[$mouthtarget].strapon.color : '')" @src="_img.doggyoralentrance" @style="'filter: '+(!npcHasStrapon($mouthtarget) && $options.tanImgEnabled ? setup.npcSkinDefaults[$NPCList[$mouthtarget].skincolour] : '')"> <<if wearingCondom($mouthtarget)>> <img @class="'layer-over_lower anim-idle-2f-slow condom-'+ $NPCList[$mouthtarget].condom.colour.replace(/ /g, '-')" src="img/sex/doggy/doggyoralentrance_condom.png"> <</if>> <<if $options.silhouetteEnabled>> <img class="layer-shadowmanforeground anim-idle-2f-slow" src="img/sex/doggy/shadow/oralentrance.png"> <</if>> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if wearingCondom($mouthtarget) isnot "worn" and !npcHasStrapon($mouthtarget)>> <img class="layer-parasite anim-idle-4f-fast" src="img/sex/doggy/doggyoralentrancecum.png"> <</if>> <</if>> <</if>> <<if $enemytype is "machine">> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<print '<img class="layer-apparatus anim-idle-4f-fast" src="img/sex/machine/tattoo/doggy/' + $machine.tattoo.use + '.png">'>> <</if>> <</if>> <</if>> <<if $prop.includes("haybale")>> <img src="img/sex/prop/haybale.png"> <</if>> <<if $prop.includes("table")>> <img src="img/sex/prop/doggy_table.png"> <</if>> <<if $prop.includes("bench")>> <img src="img/sex/prop/doggy_bench.png"> <</if>> <<if $prop.includes("examtable")>> <img src="img/sex/prop/doggy_examtable.png"> <</if>> <<if $prop.includes("hospitalbed")>> <img class="layer-behind" src="img/sex/prop/doggy_hospitalbed.png"> <img class="layer-frontfrontforeground" src="img/sex/prop/doggy_hospitalbedrails.png"> <<if $prop.includes("ivbag")>> <img class="layer-voreback" src="img/sex/prop/doggy_ivbag.png"> <</if>> <</if>> <<if $prop.includes("milk")>> <<if _milk_img is "milk_7">> <img class="layer-behind anim-idle-4f-fast" src="img/sex/prop/milk/milk_overload.png"> <<else>> <img class="layer-behind anim-idle-4f-fast" src="img/sex/prop/milk/milk.png"> <</if>> <<if _milk_img>> <img class="layer-behind anim-idle-4f-fast" @src="'img/sex/prop/milk/' + _milk_img + '.png'"> <</if>> <</if>> <<if $prop.includes("semen")>> <<if _semen_img is "semen_7">> <img class="layer-behind anim-idle-4f-fast" src="img/sex/prop/milk/semen_overload.png"> <<else>> <img class="layer-behind anim-idle-4f-fast" src="img/sex/prop/milk/semen.png"> <</if>> <<if _semen_img>> <img class="layer-behind anim-idle-4f-fast" @src="'img/sex/prop/milk/' + _semen_img + '.png'"> <</if>> <</if>> <<if $prop.includes("rails")>> <img class="layer-midapparatus" src="img/sex/prop/rails.png"> <</if>> </div> <<if $vaginastate isnot "penetrated" and $vaginastate isnot "doublepenetrated" and $anusstate isnot "penetrated" and $anusstate isnot "doublepenetrated" and $mouthstate isnot "penetrated" and $penisstate isnot "penetrated" and $penisstate isnot "otheranus" and $rightarm isnot "penis" and $leftarm isnot "penis" and $anusstate isnot "cheeks" and $thighuse isnot "penis" and $feetuse isnot "penis" and $vaginastate isnot "othermouth" and $anusstate isnot "othermouth" and $mouthstate isnot "kiss" and $penisstate isnot "othermouth" and $chestuse isnot "penis" and $vaginastate isnot "tentacleentrance" and $vaginastate isnot "tentacleimminent" and $vaginastate isnot "tentacle" and $vaginastate isnot "tentacledeep" and $vaginause isnot "tentaclerub" and $penisstate isnot "tentacleentrance" and $penisstate isnot "tentacleimminent" and $penisstate isnot "tentacle" and $penisstate isnot "tentacledeep" and $penisuse isnot "tentaclerub" and $anusstate isnot "tentacleentrance" and $anusstate isnot "tentacleimminent" and $anusstate isnot "tentacle" and $anusstate isnot "tentacledeep" and $anususe isnot "tentaclerub" and $mouthstate isnot "tentacleentrance" and $mouthstate isnot "tentacleimminent" and $mouthstate isnot "tentacle" and $mouthstate isnot "tentacledeep" and $feetstate isnot "tentacle" and $leftarmstate isnot "tentacle" and $rightarmstate isnot "tentacle" and _stanceCheck isnot "top" and !$animDebug>> <div class="char_combat i256"> <<beastimgdoggy "idle" 2>> <<clothesidle>> <<beastimgidle>> <img class="layer-sexbase anim-idle-2f" @src="_img.doggyactivebase" @style="'filter: '+_filters.body"> <img class="layer-sexlegsdoggy anim-idle-2f" @src="_img.doggyactivebaselegs" @style="'filter: '+_filters.body"> <!-- Mouth is closed in idle frames here. activeclosedmouth can be used in active, though. <img class="layer-sexmouth" src="img/sex/doggy/active/body/doggyactivemouth.png"> --> <img class="layer-sexmouth" @src="_img.doggyactiveclosedmouth" @style="'filter: '+_filters.body"> /* ToDo: Pregnancy - Figure out how this will work with clothes. */ <<if _bellySize>> <<if _bellySize lte 7 and (!$worn.upper.type.includesAny("naked", "bellyShow") and ["midriff", "waist"].includesAny($worn.upper.state, $worn.lower.state))>> <<elseif $worn.upper.type.includesAny("naked", "bellyShow") or ($worn.upper.exposed gte 1 and !["midriff", "waist"].includes($worn.upper.state))>> <<if ["midriff", "waist"].includes($worn.lower.state)>> <img class="layer-sexlower anim-idle-2f" @src="_img.doggyactivepreggybelly+'overlay.png'" @style="'filter: '+_filters.body"> <<else>> <img class="layer-sexlower anim-idle-2f" @src="_img.doggyactivepreggybelly+'overlay_exposed.png'" @style="'filter: '+_filters.body"> <</if>> <img class="layer-sexlower anim-idle-2f" @src="_img.doggyactivepreggybelly+ _bellySize + '.png'" @style="'filter: '+_filters.body"> <<else>> <img class="layer-sexaboveclothes colour-upper anim-idle-2f" @src="'img/sex/doggyRed/active/body/preggyBelly/pregnancy_belly_overlay.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <img class="layer-sexaboveclothes colour-upper anim-idle-2f" @src="'img/sex/doggyRed/active/body/preggyBelly/pregnancy_belly_'+_bellySize+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')"> <</if>> <</if>> <<if $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <img class="layer-sexbasefront anim-idle-2f" @src="_img.doggyactivebaseleftarm" @style="'filter: '+_filters.body"> <<elseif $worn.upper.set is $worn.lower.set and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <img class="layer-sexaboveclothes anim-idle-2f" @src="_img.doggyactiveleftarmbound" @style="'filter: '+_filters.body"> <<else>> <img class="layer-sexbase anim-idle-2f" @src="_img.doggyactiveleftarmbound" @style="'filter: '+_filters.body"> <</if>> <<if $rightarm isnot "bound" and $rightarm isnot "grappled" and $rightarm isnot "behind">> <img class="layer-sexbaseback anim-idle-2f" @src="_img.doggyactivebaserightarm" @style="'filter: '+_filters.body"> <<else>> <</if>> <<if $position is "wall">> <<if $walltype is "cleanpillory">> <img class="layer-apparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pilloryclean_active.png"> <img class="layer-midapparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorycleanoverlay_active.png"> <<elseif $walltype is "horse_pillory">> <img class="layer-apparatus anim-idle-2f" src="img/sex/doggy/active/pillory/horse_pillory.png"> <<elseif $walltype is "pillory">> <<if $pilloryaudience gte 5>> <img class="layer-frontapparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorytomatoes4_active.png"> <<elseif $pilloryaudience gte 4>> <img class="layer-frontapparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorytomatoes3_active.png"> <<elseif $pilloryaudience gte 3>> <img class="layer-frontapparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorytomatoes2_active.png"> <<elseif $pilloryaudience gte 2>> <img class="layer-frontapparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorytomatoes1_active.png"> <</if>> <img class="layer-apparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorydirty_active.png"> <img class="layer-midapparatus anim-idle-2f" src="img/sex/doggy/active/pillory/pillorydirtyoverlay_active.png"> <<else>> <img class="layer-foreground" src="img/sex/doggy/doggywall.png"> <</if>> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> <img class="layer-sexblush" @src="_img.doggyactiveblush5"> <<elseif $arousal gte ($arousalmax / 5) * 3>> <img class="layer-sexblush" @src="_img.doggyactiveblush4"> <<elseif $arousal gte ($arousalmax / 5) * 2>> <img class="layer-sexblush" @src="_img.doggyactiveblush3"> <<elseif $exposed gte 2 or $arousal gte $arousalmax / 5>> <img class="layer-sexblush" @src="_img.doggyactiveblush2"> <<elseif $exposed gte 1 or $arousal gte 100>> <img class="layer-sexblush" @src="_img.doggyactiveblush1"> <</if>> <<if $pain gte 100>> <img class="layer-sextears anim-idle-2f" src="img/sex/doggy/active/body/doggyactivetears5.png"> <<elseif $pain gte 80>> <img class="layer-sextears anim-idle-2f" src="img/sex/doggy/active/body/doggyactivetears4.png"> <<elseif $pain gte 60>> <img class="layer-sextears anim-idle-2f" src="img/sex/doggy/active/body/doggyactivetears3.png"> <<elseif $pain gte 40>> <img class="layer-sextears anim-idle-2f" src="img/sex/doggy/active/body/doggyactivetears2.png"> <<elseif $pain gte 20>> <img class="layer-sextears" src="img/sex/doggy/active/body/doggyactivetears1.png"> <</if>> <<if $makeup.lipstick>> <img @class="'layer-sexblush anim-doggy-2f-'+_animspeed+' lipstick-' + $makeup.lipstick.replace(/ /g, '-')" src="img/sex/doggy/makeup/lipstick_closed.png"> <</if>> <<if $makeup.eyeshadow>> <img @class="'layer-sexblush anim-doggy-2f-'+_animspeed+' eyeshadow-' + $makeup.eyeshadow.replace(/ /g, '-')" src="img/sex/doggy/makeup/eyeshadow.png"> <</if>> <<