code:
:: Widgets Actions Left Hand [widget]
<<widget "leftdefault">>
<<if $lefttarget isnot "self">>
	<<set _leftaction["Stroke"] to "leftchest">>
	<<if $consensual isnot 1>>
		<<set _leftaction["Punch"] to "lefthit">>
	<</if>>
<</if>>
<<if $lefttarget is "self" or $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 "leftgrab">>

<<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 34 and $enemytype is "man" or $consensual is 1 and $deviancy lte 34 and $enemytype isnot "man">>

		<<else>>
			<<if $leftactiondefault is "leftgrab">>
				| Grab <<his>> penis <<radiobutton "$leftaction" "leftgrab" checked>><<handdifficulty>> <<combatpromiscuous3>>
			<<else>>
				| Grab <<his>> penis <<radiobutton "$leftaction" "leftgrab">><<handdifficulty>> <<combatpromiscuous3>>
			<</if>>
		<</if>>
		<<if $leftactiondefault is "leftstroke">>
			| Stroke <<his>> penis <<radiobutton "$leftaction" "leftstroke" checked>>
			<<break>>
		<<else>>
			| Stroke <<his>> penis <<radiobutton "$leftaction" "leftstroke">>
			<<break>>
		<</if>>
	<</if>>
<</for>>

<</widget>>

<<widget "leftgrabnew">>
<<if $lefttarget isnot "self">>
	<<set $_target to $NPCList[$lefttarget]>>
	<<if $_target.penis is 0>>
		<<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore>>

		<<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 "leftplay">>

<<if $combattype is "train">>
	<<set _end to $enemyno-1>>
<<else>>
	<<set _end to 0>>
<</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">>

<<else>>
	<<for _j = $enemyno-1; _j gte _end; _j-->>
		<<if $NPCList[_j].vagina is 0>>
			<<if $leftactiondefault is "leftplay">>
				| Play with <<his>> pussy <<radiobutton "$leftaction" "leftplay" checked>><<handdifficulty>> <<combatpromiscuous3>>
			<<else>>
				| Play with <<his>> pussy <<radiobutton "$leftaction" "leftplay">><<handdifficulty>> <<combatpromiscuous3>>
			<</if>>
			<<break>>
		<</if>>
	<</for>>
<</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>>

	<<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 "leftclothes">>

<<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")>>
	<<if $leftactiondefault is "upper">>
	| Displace your $worn.upper.name <<radiobutton "$leftaction" "upper" checked>>
	<<else>>
	| Displace your $worn.upper.name <<radiobutton "$leftaction" "upper">>
	<</if>>
<</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")>>
	<<if $leftactiondefault is "under_upper">>
	| Displace your $worn.under_upper.name <<radiobutton "$leftaction" "under_upper" checked>>
	<<else>>
	| Displace your $worn.under_upper.name <<radiobutton "$leftaction" "under_upper">>
	<</if>>
<</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")>>
	<<if $leftactiondefault is "lower">>
	| Displace your $worn.lower.name <<radiobutton "$leftaction" "lower" checked>>
	<<else>>
	| Displace your $worn.lower.name <<radiobutton "$leftaction" "lower">>
	<</if>>
<<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1>>
	<<if $leftactiondefault is "lower">>
	| Displace your $worn.lower.name <<radiobutton "$leftaction" "lower" checked>>
	<<else>>
	| Displace your $worn.lower.name <<radiobutton "$leftaction" "lower">>
	<</if>>
<</if>>

<<if $worn.under_lower.state is setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].state_base and !$worn.under_lower.type.includes("naked")>>
	<<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 $leftactiondefault is "under">>
		| Pull down your $worn.under_lower.name <<radiobutton "$leftaction" "under" checked>>
		<<else>>
		| Pull down your $worn.under_lower.name <<radiobutton "$leftaction" "under">>
		<</if>>
	<</if>>
<</if>>

<</widget>>

<<widget "leftclothesnew">>
<<if $lefttarget is "self" or $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")>>
		<<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">>
		<</if>>
	<</if>>
<</if>>
<</widget>>

<<widget "leftspray">>
<<if $consensual isnot 1 and $spray gte 1>>
	<<if $leftactiondefault is "spray">>
	| Pepper spray Remaining: $spray / $spraymax <<radiobutton "$leftaction" "spray" checked>>
	<<else>>
	| Pepper spray Remaining: $spray / $spraymax <<radiobutton "$leftaction" "spray">>
	<</if>>
<</if>>
<</widget>>

<<widget "leftspraynew">>
<<if $lefttarget isnot "self">>
	<<if $consensual isnot 1 and $spray gte 1>>
		<<set _leftaction["Pepper spray"] to "spray">>
	<</if>>
<</if>>
<</widget>>

<<widget "leftsteal">>
<<if $skulduggery gte 200 and $stealstateleft isnot 3 and $enemytype is "man" and $abomination isnot 1 and $npc.length is 0 and $water isnot 1 and $punishmentposition isnot "gloryhole">>
<<set $skulduggerydifficulty to 1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger>>
	<<if $leftactiondefault is "steal">>
	| Steal <<radiobutton "$leftaction" "steal" checked>> <<skulduggerydifficulty>><<combatcrime>>
	<<else>>
	| Steal <<radiobutton "$leftaction" "steal">> <<skulduggerydifficulty>><<combatcrime>>
	<</if>>
<</if>>
<</widget>>

<<widget "leftstealnew">>
<<if $lefttarget isnot "self" and !($stealtarget.includes($lefttarget))>>
	<<if $skulduggery gte 200 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>>
		/*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 "leftpenwhack">>
<<if $NPCList[0].lefthand is "pen" or $NPCList[0].righthand is "pen" or
$NPCList[1].lefthand is "pen" or $NPCList[1].righthand is "pen" or
$NPCList[2].lefthand is "pen" or $NPCList[2].righthand is "pen" or
$NPCList[3].lefthand is "pen" or $NPCList[3].righthand is "pen" or
$NPCList[4].lefthand is "pen" or $NPCList[4].righthand is "pen" or
$NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
	<<if $leftactiondefault is "penwhack">>
	| Whack the writing tool away <<radiobutton "$leftaction" "penwhack" checked>>
	<<else>>
	| Whack the writing tool away <<radiobutton "$leftaction" "penwhack">>
	<</if>>
<</if>>
<</widget>>

<<widget "leftpenwhacknew">>
<<if $lefttarget isnot "self">>
	<<if (typeof($NPCList[$lefttarget].lefthand) is "string" and $NPCList[$lefttarget].lefthand.includes("pen")) or (typeof($NPCList[$lefttarget].righthand) is "string" and $NPCList[$lefttarget].righthand.includes("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 "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 $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>>
	<<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>>
			<<set _leftaction["Cover your penis"] to "leftcoverpenismeek">>
		<</if>>
	<<elseif $lefttarget is "self" or $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>>
			<<set _leftaction["Cover your penis"] to "leftcoverpenis">>
		<</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 $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 $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 $targetYourself is false or _targetnumber is 1>>
	<<if !["mouthEntrance","mouthImminent","mouthPenetration","pussyPenetration","anusPenetration"].includes($penisstate) and $player.penisExist>>
		<<if !$player.condom and $condoms gt 0 and $parasite.penis.name is undefined>>
			<<set _leftaction["Put on a condom (" + $condoms + ")"] to "peniscondom">>
		<</if>>
		<<if $player.condom>>
			<<set _leftaction["Remove your condom"] to "penisremovecondom">>
		<</if>>
	<</if>>
<</if>>
<</widget>>

<<widget "leftUndressOther">>
<<if $lefttarget isnot "self">>
	<<set $_target to $NPCList[$lefttarget]>>
	<<if $_target.penis is "clothed" or $_target.vagina is "clothed">>
		<<if ($consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 14 and !$promiscuityIgnore) or $consensual isnot 1>>

		<<else>>
			<<set _leftaction[($consensual is 1 ? "Undress " : "Attempt to undress ") + $_target.pronouns.him] to "leftUndressOther">>
		<</if>>
	<</if>>
<</if>>
<</widget>>

:: Widgets Actions Right Hand [widget]

<<widget "rightdefault">>
<<if $righttarget isnot "self">>
	<<set _rightaction["Stroke"] to "rightchest">>
	<<if $consensual isnot 1>>
		<<set _rightaction["Punch"] to "righthit">>
	<</if>>
<</if>>
<<if $righttarget is "self" or $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 "rightgrab">>
<<for _j = $enemyno-1; _j gte _end; _j-->>
	<<if $NPCList[_j].penis is 0>>
		<<if $consensual is 1 and $promiscuity lte 34 and $enemytype is "man" or $consensual is 1 and $deviancy lte 34 and $enemytype isnot "man">>

		<<else>>
			<<if $rightactiondefault is "rightgrab">>
				| Grab <<his>> penis <<radiobutton "$rightaction" "rightgrab" checked>><<handdifficulty>> <<combatpromiscuous3>>
			<<else>>
				| Grab <<his>> penis <<radiobutton "$rightaction" "rightgrab">><<handdifficulty>> <<combatpromiscuous3>>
			<</if>>
		<</if>>
		<<if $rightactiondefault is "rightstroke">>
			| Stroke <<his>> penis <<radiobutton "$rightaction" "rightstroke" checked>>
			<<break>>
		<<else>>
			| Stroke <<his>> penis <<radiobutton "$rightaction" "rightstroke">>
			<<break>>
		<</if>>
	<</if>>
<</for>>

<</widget>>

<<widget "rightgrabnew">>
<<if $righttarget isnot "self">>
	<<set $_target to $NPCList[$righttarget]>>
	<<if $_target.penis is 0>>
		<<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore>>

		<<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 "rightplay">>

<<if $combattype is "train">>
	<<set _end to $enemyno-1>>
<<else>>
	<<set _end to 0>>
<</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">>

<<else>>
	<<for _j = $enemyno-1; _j gte _end; _j-->>
		<<if $NPCList[_j].vagina is 0>>
			<<if $rightactiondefault is "rightplay">>
				| Play with <<his>> pussy <<radiobutton "$rightaction" "rightplay" checked>><<handdifficulty>> <<combatpromiscuous3>>
				<<break>>
			<<else>>
				| Play with <<his>> pussy <<radiobutton "$rightaction" "rightplay">><<handdifficulty>> <<combatpromiscuous3>>
				<<break>>
			<</if>>
		<</if>>
	<</for>>
<</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>>

	<<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 "rightclothes">>

<<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")>>
	<<if $rightactiondefault is "upper">>
	| Displace your $worn.upper.name <<radiobutton "$rightaction" "upper" checked>>
	<<else>>
	| Displace your $worn.upper.name <<radiobutton "$rightaction" "upper">>
	<</if>>
<</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")>>
	<<if $rightactiondefault is "under_upper">>
	| Displace your $worn.under_upper.name <<radiobutton "$rightaction" "under_upper" checked>>
	<<else>>
	| Displace your $worn.under_upper.name <<radiobutton "$rightaction" "under_upper">>
	<</if>>
<</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")>>
	<<if $rightactiondefault is "lower">>
	| Displace your $worn.lower.name <<radiobutton "$rightaction" "lower" checked>>
	<<else>>
	| Displace your $worn.lower.name <<radiobutton "$rightaction" "lower">>
	<</if>>
<<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1>>
	<<if $rightactiondefault is "lower">>
	| Displace your $worn.lower.name <<radiobutton "$rightaction" "lower" checked>>
	<<else>>
	| Displace your $worn.lower.name <<radiobutton "$rightaction" "lower">>
	<</if>>
<</if>>

<<if $worn.under_lower.state is setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].state_base and !$worn.under_lower.type.includes("naked")>>
	<<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 $rightactiondefault is "under">>
		| Pull down your $worn.under_lower.name <<radiobutton "$rightaction" "under" checked>>
		<<else>>
		| Pull down your $worn.under_lower.name <<radiobutton "$rightaction" "under">>
		<</if>>
	<</if>>
<</if>>

<</widget>>

<<widget "rightclothesnew">>
<<if $righttarget is "self" or $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")>>
		<<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">>
		<</if>>
	<</if>>
<</if>>
<</widget>>

<<widget "rightspray">>

<<if $consensual isnot 1 and $spray gte 1>>
	<<if $rightactiondefault is "spray">>
	| Pepper spray Remaining: $spray / $spraymax <<radiobutton "$rightaction" "spray" checked>>
	<<else>>
	| Pepper spray Remaining: $spray / $spraymax <<radiobutton "$rightaction" "spray">>
	<</if>>
<</if>>

<</widget>>

<<widget "rightspraynew">>
<<if $righttarget isnot "self">>
	<<if $consensual isnot 1 and $spray gte 1>>
		<<set _rightaction["Pepper spray"] to "spray">>
	<</if>>
<</if>>
<</widget>>

<<widget "rightsteal">>
<<if $skulduggery gte 200 and $stealstateright isnot 3 and $enemytype is "man" and $abomination isnot 1 and $npc.length is 0 and $water isnot 1 and $punishmentposition isnot "gloryhole">>
<<set $skulduggerydifficulty to 1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger>>
	<<if $rightactiondefault is "steal">>
	| Steal <<radiobutton "$rightaction" "steal" checked>> <<skulduggerydifficulty>><<combatcrime>>
	<<else>>
	| Steal <<radiobutton "$rightaction" "steal">> <<skulduggerydifficulty>><<combatcrime>>
	<</if>>
<</if>>
<</widget>>

<<widget "rightstealnew">>
<<if $righttarget isnot "self" and !($stealtarget.includes($righttarget))>>
	<<if $skulduggery gte 200 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>>
		/*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 "rightpenwhack">>
<<if $NPCList[0].lefthand is "pen" or $NPCList[0].righthand is "pen" or
$NPCList[1].lefthand is "pen" or $NPCList[1].righthand is "pen" or
$NPCList[2].lefthand is "pen" or $NPCList[2].righthand is "pen" or
$NPCList[3].lefthand is "pen" or $NPCList[3].righthand is "pen" or
$NPCList[4].lefthand is "pen" or $NPCList[4].righthand is "pen" or
$NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
	<<if $rightactiondefault is "penwhack">>
	| Whack the writing tool away <<radiobutton "$rightaction" "penwhack" checked>>
	<<else>>
	| Whack the writing tool away <<radiobutton "$rightaction" "penwhack">>
	<</if>>
<</if>>

<</widget>>

<<widget "rightpenwhacknew">>
<<if $righttarget isnot "self">>
	<<if (typeof($NPCList[$righttarget].lefthand) is "string" and $NPCList[$righttarget].lefthand.includes("pen")) or (typeof($NPCList[$righttarget].righthand) is "string" and $NPCList[$righttarget].righthand.includes("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 "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 $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>>
	<<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>>
			<<set _rightaction["Cover your penis"] to "rightcoverpenismeek">>
		<</if>>
	<<elseif $righttarget is "self" or $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>>
			<<set _rightaction["Cover your penis"] to "rightcoverpenis">>
		<</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 $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 $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 $lefttarget is "self" or $targetYourself is false or _targetnumber is 1>>
	<<if !["mouthEntrance","mouthImminent","mouthPenetration","pussyPenetration","anusPenetration"].includes($penisstate) and $player.penisExist>>
		<<if !$player.condom and $condoms gt 0>>
			<<set _rightaction["Put on a condom (" + $condoms + ")"] to "peniscondom">>
		<</if>>
		<<if $player.condom>>
			<<set _rightaction["Remove your condom"] to "penisremovecondom">>
		<</if>>
	<</if>>
<</if>>
<</widget>>

<<widget "rightUndressOther">>
<<if $righttarget isnot "self">>
	<<set $_target to $NPCList[$righttarget]>>
	<<if $_target.penis is "clothed" or $_target.vagina is "clothed">>
		<<if ($consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 14 and !$promiscuityIgnore) or $consensual isnot 1>>

		<<else>>
			<<set _rightaction[($consensual is 1 ? "Undress " : "Attempt to undress ") + $_target.pronouns.him] to "rightUndressOther">>
		<</if>>
	<</if>>
<</if>>
<</widget>>

:: Widgets Actions Either Hand [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">>
					| Free your face<<radiobutton _actionVariable "freeface" `_default is "freeface" ? 'checked' : ''`>>
				<<else>>
					<<set _actions["Free your face"] to "freeface">>
				<</if>>
			<</if>>
		<</if>>
	<</if>>
<</widget>>

:: Widgets Effects Hands [widget]
<<widget "effectshandsclothes">>

<<if $leftaction is "over_upper" and $rightaction is "over_upper">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.over_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.over_upper.name, exposing your <<breasts>>.
		<</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 $breastsize gte 3>>
			You pull up your $worn.over_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.over_upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>

<<elseif $leftaction is "over_upper">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.over_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.over_upper.name, exposing your <<breasts>>.
		<</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 $breastsize gte 3>>
			You pull up your $worn.over_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.over_upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>

<<elseif $rightaction is "over_upper">>
	<<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.over_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.over_upper.name, exposing your <<breasts>>.
		<</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 $breastsize gte 3>>
			You pull up your $worn.over_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.over_upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>
<</if>>

<<if $leftaction is "upper" and $rightaction is "upper">>
<<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.upper.name, exposing your <<breasts>>.
		<</if>>
	<<else>>
		<<set $worn.upper.exposed to 2>><<set $worn.upper.state to "chest">>
		<<if $breastsize gte 3>>
			You pull up your $worn.upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>

<<elseif $leftaction is "upper">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.upper.name, exposing your <<breasts>>.
		<</if>>
	<<else>>
		<<set $worn.upper.exposed to 2>><<set $worn.upper.state to "chest">>
		<<if $breastsize gte 3>>
			You pull up your $worn.upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>

<<elseif $rightaction is "upper">>
	<<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.upper.name, exposing your <<breasts>>.
		<</if>>
	<<else>>
		<<set $worn.upper.exposed to 2>><<set $worn.upper.state to "chest">>
		<<if $breastsize gte 3>>
			You pull up your $worn.upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>
<</if>>

<<if $leftaction is "under_upper" and $rightaction is "under_upper">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.under_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.under_upper.name, exposing your <<breasts>>.
		<</if>>
	<<else>>
		<<set $worn.under_upper.exposed to 2>><<set $worn.under_upper.state to "chest">>
		<<if $breastsize gte 3>>
			You pull up your $worn.under_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.under_upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>

<<elseif $leftaction is "under_upper">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.under_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.under_upper.name, exposing your <<breasts>>.
		<</if>>
	<<else>>
		<<set $worn.under_upper.exposed to 2>><<set $worn.under_upper.state to "chest">>
		<<if $breastsize gte 3>>
			You pull up your $worn.under_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.under_upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>

<<elseif $rightaction is "under_upper">>
	<<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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 $breastsize gte 3>>
			You pull down your $worn.under_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull down your $worn.under_upper.name, exposing your <<breasts>>.
		<</if>>
	<<else>>
		<<set $worn.under_upper.exposed to 2>><<set $worn.under_upper.state to "chest">>
		<<if $breastsize gte 3>>
			You pull up your $worn.under_upper.name and your <<breasts>> flop out.
		<<else>>
			You pull up your $worn.under_upper.name, exposing your <<breasts>>.
		<</if>>
	<</if>>
<</if>>

<<if $leftaction is "lower" and $rightaction is "lower">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">>
	<<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<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, exposing your <<undies>>.
	<<else>>
		<<set $worn.lower.state to "thighs">>
		You pull down your $worn.lower.name, exposing your <<undies>>.
	<</if>>

<<elseif $leftaction is "lower">>
<<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.vagina_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, exposing your <<undies>>.
	<<else>>
		<<set $worn.lower.state to "thighs">>
		You pull down your $worn.lower.name, exposing your <<undies>>.
	<</if>>

<<elseif $rightaction is "lower">>
<<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.vagina_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, exposing your <<undies>>.
	<<else>>
		<<set $worn.lower.state to "thighs">>
		You pull down your $worn.lower.name, exposing your <<undies>>.
	<</if>>
<</if>>

<<if $leftaction is "under" and $rightaction is "under">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">>
	<<set $rightaction to 0>><<set $rightactiondefault to "rest">>
	<<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.vagina_exposed to 1>>
	<<set $worn.under_lower.state to "thighs">><<set $worn.under_lower.exposed to 2>>
	<<if $worn.under_lower.name is "naked">>
		You clutch the tattered remains of your clothing.
	<<else>>
		You pull down your $worn.under_lower.name, exposing your <<genitals>>.
	<</if>>

<<elseif $leftaction is "under">>
	<<set $leftaction to 0>><<set $leftactiondefault to "rest">><<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">>
	<<if $worn.under_lower.name is "naked">>
		You clutch the tattered remains of your clothing.
	<<else>>
		You pull down your $worn.under_lower.name, exposing your <<genitals>>.
	<</if>>

<<elseif $rightaction is "under">>
	<<set $rightaction to 0>><<set $rightactiondefault to "rest">><<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">>
	<<if $worn.under_lower.name is "naked">>
		You clutch the tattered remains of your clothing.
	<<else>>
		You pull down your $worn.under_lower.name, exposing your <<genitals>>.
	<</if>>
<</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 $enemyhealth -= 400>>
		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
				<<set $NPCList[_npctodamage].health -= (400/$enemyno)>>/* Divide damage by all current active enemies. */
				<<if $enemyno gte 2>>
					<<npcdamage _npctodamage>>
				<</if>>
			<</if>>
		<</for>>
		<<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 $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 $enemyhealth -= 200>>
		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
				<<set $NPCList[_npctodamage].health -= (200/$enemyno)>>/* Divide damage by all current active enemies. */
				<<if $enemyno gte 2>>
					<<npcdamage _npctodamage>>
				<</if>>
			<</if>>
		<</for>>
		<<set $spraystat += 1>><<spray -1>><<set $speechspray to 1>>
		<<if $enemytype is "beast">>
			You spray the <<beasttype>> in the face. It whimpers.
		<<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 $enemyhealth -= 200>>
		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
				<<set $NPCList[_npctodamage].health -= (200/$enemyno)>>/* Divide damage by all current active enemies. */
				<<if $enemyno gte 2>>
					<<npcdamage _npctodamage>>
				<</if>>
			<</if>>
		<</for>>
		<<set $spraystat += 1>><<spray -1>><<set $speechspray to 1>>
		<<if $enemytype is "beast">>
			You spray the <<beasttype>> in the face. It whimpers.
		<<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 $enemyhealth -= 200>>
		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
				<<set $NPCList[_npctodamage].health -= (200/$enemyno)>>/* Divide damage by all current active enemies. */
				<<if $enemyno gte 2>>
					<<npcdamage _npctodamage>>
				<</if>>
			<</if>>
		<</for>>
		<<set $spraystat += 1>><<spray -1>><<set $speechspray to 1>>
		<<if $enemytype is "beast">>
			You spray the <<beasttype>> in the face. It whimpers.
		<<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>>

<</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">>
	<<set $skulduggerydifficulty += 400>><<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">>

<<if $leftaction is "penwhack">>
	<<set $leftaction to 0>>
	<<set $_target to $NPCList[$lefttarget]>>
	<<if typeof($_target.lefthand) is "string" and $_target.lefthand.includes("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 typeof($_target.righthand) is "string" and $_target.righthand.includes("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 typeof($_target.lefthand) is "string" and $_target.lefthand.includes("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.includes("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 "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>>

		<<if $mouthuse is "facesit">>
			<<if $mouthstate is "vagina">>
				<<selectNpcWithPartInPosition "vagina" "facesit">>
			<<elseif $mouthstate is "anal">>
				<<selectNpcWithPartInPosition "vagina" "facesitanal">>
			<</if>>
		<<elseif $mouthstate is "nipple">>
			<<selectNpcWithPartInPosition "chest" "mouth">>
		<<elseif $mouthstate is "breasts">>
			<<selectNpcWithPartInPosition "chest" "mouthentrance">>
		<<elseif $mouthuse is "lefthand">>
			<<selectNpcWithPartInPosition "lefthand" "mouth">>
		<<elseif $mouthuse is "righthand">>
			<<selectNpcWithPartInPosition "righthand" "mouth">>
		<<elseif $mouthstate is "otheranus">>
			<<selectNpcWithPartInPosition "penis" "mouthotheranus">>
		<</if>>

		<<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 ($NPCList[$lefttarget].type is "plant" or $NPCList[$righttarget].type is "plant") and !$willpowerSuccess>>
			but you can't tear yourself from the sweet nectar.
			<<if $mouthstate is "nipple">>
				You desperately suck their $NPCList[0].breastdesc.
			<<elseif $mouthstate is "breasts">>
				You push your face back into their $NPCList[0].breastdesc.
			<<else>>
				You desperately lick the pussy pressing into your face.
			<</if>>
			<<willpower 1>>
		<<else>>
			<<if (1000 - ($rng * 10) - (($physique / $physiquemax * 100) * _freestrength) + ($enemyanger * 0.5)) lte
					(200 + $enemytrust)>>

					<<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 extracate 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."
						)>>
						<<set _npc.penis to 0>><<set _npc.location.genitals to 0>>
					<</if>>

				<<set $mouthuse to 0>><<set $mouthstate to 0>><<set $mouthaction to 0>><<set $head to 0>>
				<<brat 4>><<brat 1>>
			<<else>>

					<<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>>

				<<brat 2>>
			<</if>>
		<</if>>
	<</if>>
<</widget>>

<<widget "hand_section">>

	<<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>>
		<<hand_section_two "left">>
		<<hand_section_two "right">>
	<</if>>
<</widget>>

<<widget "hand_section_two">>
	<<set $rng to random(1, 100)>>
	<<set $_hand to $args[0]>>
	<<set $_npcHand to $NPCList[_n][$_hand + "hand"]>>

	<<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 "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 "throat">> <<combat-hand-on-throat $_hand>>
		<<case "mouth">> <<combat-hand-on-mouth $_hand>>
		<<case "genitals">> <<combat-hand-on-chastity $_hand>>
		<<case "underclothes">> <<combat-hand-on-underclothes $_hand>>
		<<case "hair">> <<combat-hand-on-hair $_hand>>
		<<case "lowerclothes">> <<combat-hand-on-lowerclothes $_hand>>
		<<case "overlowerclothes">> <<combat-hand-on-overlowerclothes $_hand>>
		<<case "overupperclothes">> <<combat-hand-on-overupperclothes $_hand>>
		<<case "upperclothes">> <<combat-hand-on-upperclothes $_hand>>
		<<case "underupperclothes">> <<combat-hand-on-underupperclothes $_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 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>>


code:
:: Widgets Actions Mouth FlavorText [widget]
<<widget "breastFlavorText">>
	<<set _j to ($NPCList.findIndex(x => x.chest is "mouthentrance"))>><<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.
<</widget>>

<<widget "nippleFlavorText">>
	<<set _j to ($NPCList.findIndex(x => x.chest is "mouth"))>><<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.
<</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>>

:: Widgets Actions Mouth [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">>

<<elseif _stanceCheck is "top">>

<<else>>
	<<for _j = $enemyno-1; _j gte _end; _j-->>
		<<if $NPCList[_j].penis is 0>>
			<<if $mouthactiondefault is "mouth">>
				| Move your lips to <<his>> penis <<radiobutton "$mouthaction" "mouth" checked>><<oraldifficulty>> <<combatpromiscuous4>>
			<<else>>
				| Move your lips to <<his>> penis <<radiobutton "$mouthaction" "mouth">><<oraldifficulty>> <<combatpromiscuous4>>
			<</if>>
			<<break>>
		<</if>>
	<</for>>
	<<for _j = $enemyno-1; _j gte _end; _j-->>
		<<if $NPCList[_j].vagina is 0>>
			<<if $mouthactiondefault is "othervagina">>
				| Move your mouth to <<his>> pussy<<radiobutton "$mouthaction" "othervagina" checked>><<oraldifficulty>> <<combatpromiscuous4>>
			<<else>>
				| Move your mouth to <<his>> pussy<<radiobutton "$mouthaction" "othervagina">><<oraldifficulty>> <<combatpromiscuous4>>
			<</if>>
			<<break>>
		<</if>>
	<</for>>
<</if>>

<<if $consensual is 1 and $promiscuity lte 34>>

<<elseif !$gloryhole>>
	<<for _j = $enemyno-1; _j gte _end; _j-->>
		<<if $NPCList[_j].chest is 0>>
			<<if $mouthactiondefault is "movetochest">>
				| Move your lips to <<his>> chest <<radiobutton "$mouthaction" "movetochest" checked>><<oraldifficulty>> <<combatpromiscuous3>>
			<<else>>
				| Move your lips to <<his>> chest <<radiobutton "$mouthaction" "movetochest">><<oraldifficulty>> <<combatpromiscuous3>>
			<</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>>

<<elseif _stanceCheck is "top">>

<<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"))>>
		<<if $NPCList[$mouthtarget].chastity.penis.includes("chastity")>>
			<<set _mouthaction["Move your head to " + $NPCList[$mouthtarget].pronouns.his + " " + $NPCList[$mouthtarget].chastity.penis] 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"))>>
		<<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>>

<<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">>
		<<set _mouthaction["Move your lips to " + $NPCList[$mouthtarget].pronouns.his + " chest"] to "movetochest">>
	<</if>>
<</if>>
<</widget>>

<<widget "oralswallow">>

	<<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">>
				| Take <<his>> penis into your mouth <<radiobutton "$mouthaction" "swallow" checked>><<oralvirginitywarning>> <<combatpromiscuous5>>
			<<else>>
				| Take <<his>> penis into your mouth <<radiobutton "$mouthaction" "swallow">><<oralvirginitywarning>> <<combatpromiscuous5>>
			<</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>>
	<<if !$NPCList[$mouthtarget].chastity.penis.includes("chastity") and ($NPCList[$mouthtarget].penis is "mouthentrance" or $NPCList[$mouthtarget].penis is "mouthimminent")>>
		<<set _mouthaction["Take " + $NPCList[$mouthtarget].pronouns.his + " penis 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">>
<<set _mouthaction["Kiss"] to "peniskiss">>

<<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">>
<<set _mouthaction["Lick"] to "lick">>
<<set _mouthaction["Pull away"] to "pullaway">>
<<oralswallownew>>
<<speak>>
<</widget>>

<<widget "combatPenisPenetrated">>
<<set _mouthaction["Suck"] to "suck">>
<<if $consensual isnot 1>>
	<<set _mouthaction["Bite"] to "bite">>
<</if>>
<<if $head isnot "grappled" and $head isnot "bound">>
	<<set _mouthaction["Pull away"] to "pullaway">>
<</if>>
<</widget>>

<<widget "combatOthervagina">>
<<set _mouthaction["Lick"] to "vaginalick">>
<<if $consensual isnot 1>>
	<<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">>
	<<set _mouthaction["Lick ass"] to "anallick">>
	<<if $submissive gte 1150>>
		<<set _mouthaction["Kiss ass"] to "analkiss">>
	<</if>>
<</widget>>

<<widget "combatBreast">>
<<set _mouthaction["Suck"] to "breastsuck">>
<<set _mouthaction["Lick"] to "breastlick">>
<<set _mouthaction["Keep your mouth closed"] to "breastclosed">>
<<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>>
	<<set _mouthaction["Bite"] to "breastbite">>
<</if>>
<</widget>>

repo_name: Area/degrees

license: mit