code:
:: Widgets Actions Penis [widget]

<<widget "actionspenistovagina">>

<<if $combattype is "train">>
	<<set _end to $enemyno-1>>
<<else>>
	<<set _end to 0>>
<</if>>

<<if !$worn.genitals.type.includes("chastity")>>
	<<for _j = $enemyno-1; _j gte _end; _j-->>
		<<if $NPCList[_j].vagina is 0>>
			<<if $consensual is 1 and ($enemytype is man ? $promiscuity : $deviancy) lte 74>>

			<<elseif $NPCList[_j].stance isnot "topface">>
				<<if $penisactiondefault is "penistovagina">>
					| Press against <<his>> pussy <<radiobutton "$penisaction" "penistovagina" checked>><<peniledifficulty>> <<combatpromiscuous5>>
				<<else>>
					| Press against <<his>> pussy <<radiobutton "$penisaction" "penistovagina">><<peniledifficulty>> <<combatpromiscuous5>>
				<</if>>
				<<break>>
			<</if>>
		<</if>>
	<</for>>
<</if>>

<</widget>>

<<widget "actionspenistovaginanew">>
<<if !$worn.genitals.type.includes("chastity")>>
	<<set $_target to $NPCList[$penistarget]>>
	<<if $_target.vagina is 0>>
		<<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 74 and !$promiscuityIgnore>>

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

	<<else>>
		<<set _pp to "">>
		<<if $_target.chastity.penis.includes("chastity")>>
			<<set _pp to "caged penis">>
		<<elseif $_target.penisdesc.includes("strap-on")>>
			<<set _pp to "strap-on cock">>
		<<else>>
			<<set _pp to "penis">>
		<</if>>
		<<if $worn.genitals.type.includes("chastity")>>
			<<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>>

	<<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">>
		<<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 $worn.genitals.anal_shield isnot 1>>
	<<set _penisaction["Offer your anus instead"] to "penisanus">>
<</if>>
<<if $analdoubledisable is "f" and $awareness gt 300 and $anususe is "penis" and $worn.genitals.anal_shield isnot 1 and $NPCList[$anustarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2>>
	<<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 $worn.genitals.anal_shield isnot 1>>
	<<set _penisaction["Offer your anus instead"] to "penisanus">>
<</if>>
<<if $analdoubledisable is "f" and $awareness gt 300 and $anususe is "penis" and $worn.genitals.anal_shield isnot 1 and $NPCList[$anustarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2>>
	<<set _penisaction["Offer double anal instead"] to "penisanusdouble">>
<</if>>
<<set _penisaction["Pull away"] to "fencingescape">>
<</widget>>

<<widget "actionspenistoanus">>

<<if $combattype is "train">>
	<<set _end to $enemyno-1>>
<<else>>
	<<set _end to 0>>
<</if>>

<<for _j = $enemyno-1; _j gte _end; _j-->>
	<<if !$worn.genitals.type.includes("chastity") and $NPCList[_j].stance isnot "topface">>
		<<if $NPCList[_j].vagina is 0 or $NPCList[_j].penis is 0>>
			<<if $consensual is 1 and ($enemytype is man ? $promiscuity : $deviancy) lte 74>>

			<<else>>
				<<if $penisactiondefault is "penistoanus">>
					| Press against <<his>> ass <<radiobutton "$penisaction" "penistoanus" checked>><<peniledifficulty>> <<combatpromiscuous5>>
				<<else>>
					| Press against <<his>> ass <<radiobutton "$penisaction" "penistoanus">><<peniledifficulty>> <<combatpromiscuous5>>
				<</if>>
				<<break>>
			<</if>>
		<</if>>
	<</if>>
<</for>>
<</widget>>

<<widget "actionspenistoanusnew">>
<<set $_target to $NPCList[$penistarget]>>
<<if !$worn.genitals.type.includes("chastity")>>
	<<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>>

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

<<if $combattype is "train">>
	<<set _end to $enemyno-1>>
<<else>>
	<<set _end to 0>>
<</if>>

<<if !$worn.genitals.type.includes("chastity") 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].vagina is "penisentrance" or $NPCList[_j].vagina is "penisimminent">>
			<<if $consensual is 1 and ($enemytype is man ? $promiscuity : $deviancy) lte 74>>

			<<else>>
				<<if $penisactiondefault is "penisvaginafuck">>
					| Penetrate <<his>> pussy <<radiobutton "$penisaction" "penisvaginafuck" checked>> <<combatpromiscuous5>><<penilevirginitywarning>><<NPCvirginitywarning $NPCList[_j].fullDescription "vaginal">>
				<<else>>
					| Penetrate <<his>> pussy <<radiobutton "$penisaction" "penisvaginafuck">> <<combatpromiscuous5>><<penilevirginitywarning>><<NPCvirginitywarning $NPCList[_j].fullDescription "vaginal">>
				<</if>>
				<<break>>
			<</if>>
		<</if>>
	<</for>>
<</if>>

<</widget>>

<<widget "actionspenisvaginafucknew">>
<<if !$worn.genitals.type.includes("chastity") 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")>>

		<<else>>
			<<set _penisaction["Penetrate " + $_target.pronouns.his + " pussy"] to "penisvaginafuck">>
		<</if>>
	<</if>>
<</if>>

<</widget>>

<<widget "actionspenisanusfuck">>

<<if $combattype is "train">>
	<<set _end to $enemyno-1>>
<<else>>
	<<set _end to 0>>
<</if>>

<<if !$worn.genitals.type.includes("chastity") 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].vagina is "otheranusentrance" or $NPCList[_j].vagina is "otheranusimminent" or $NPCList[_j].penis is "otheranusentrance" or $NPCList[_j].penis is "otheranusimminent">>
			<<if $consensual is 1 and ($enemytype is man ? $promiscuity : $deviancy) lte 74>>

			<<else>>
				<<if $penisactiondefault is "penisanusfuck">>
					| Penetrate <<his>> ass <<radiobutton "$penisaction" "penisanusfuck" checked>> <<combatpromiscuous5>><<penilevirginitywarning>><<NPCvirginitywarning $NPCList[_j].fullDescription "anal">>
				<<else>>
					| Penetrate <<his>> ass <<radiobutton "$penisaction" "penisanusfuck">> <<combatpromiscuous5>><<penilevirginitywarning>><<NPCvirginitywarning $NPCList[_j].fullDescription "anal">>
				<</if>>
				<<break>>
			<</if>>
		<</if>>
	<</for>>
<</if>>

<</widget>>

<<widget "actionspenisanusfucknew">>
<<if !$worn.genitals.type.includes("chastity") 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)>>

		<<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>>
<</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["Edging"] 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 ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55) and $penileskill gte 800>>
	<<set _penisaction["Edging"] to "vaginaEdging">>
<</if>>
<</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>>
	<<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["Edging"] 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["Edging"] to "otheranusEdging">>
<</if>>
<</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>>

:: Widgets Effects Penis [widget]

<<widget "effectspenistovagina">>
<<if $penisaction is "penistovagina">>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<submission 10 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
		<<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>>

			You press your <<penis>> against <<combatpersons>> <<npcVagina $penistarget>>.
			<<if $condomUse is false>>
			<<elseif $condomUse is true and !$player.condom and $parasite.penis.name is undefined>>
				<<equipCondom>>
				<<He>> slips a condom on your <<penis>>.
			<</if>>
			<<if $enemytype is "beast">><<set $_target.stance to "top">><</if>>
			<<set $_target.location.genitals to "genitals">>
		<<else>>
			You try to press your <<penis>> against <<combatpersons>> <<npcVagina $penistarget>>, but the entrance is already occupied.<<set $penisactiondefault to "penistovagina">>
		<</if>>
	<<else>>
		You try to press your <<penis>> against <<combatpersons>> <<npcVagina $penistarget>> but <<he>> pushes you away.<<set $penisactiondefault to "penistovagina">>
	<</if>>
<</if>>
<</widget>>

<<widget "effectspenistoanus">>
<<if $penisaction is "penistoanus">>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<submission 10 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
		<<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 $penistarget>>
			<<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>>

			You press your <<penis>> against <<combatpersons>> ass.
			<<if $enemytype is "beast">><<set $_target.stance to "top">><</if>>
			<<set $_target.location.genitals to "genitals">>
		<<else>>
			You try to press your <<penis>> against <<combatpersons>> <<npcAnus $penistarget>>, but your position won't let you.
			<<set $penisactiondefault to "penistoanus">>
			<<if $condomUse is false>>
			<<elseif $condomUse is true and !$player.condom and $parasite.penis.name is undefined>>
				<<equipCondom>>
				<<He>> slips a condom on your <<penis>>.
			<</if>>
		<</if>>
	<<else>>
		You try to press your <<penis>> against <<combatpersons>> <<npcAnus $penistarget>> but <<he>> pushes you away.
		<<set $penisactiondefault to "penistoanus">>
		<<if $condomUse is false>>
		<<elseif $condomUse is true and !$player.condom and $parasite.penis.name is undefined>>
			<<equipCondom>>
			<<He>> slips a condom on your <<penis>>.
		<</if>>
	<</if>>
<</if>>
<</widget>>

<<widget "effectspenisvaginafuck">>
<<if $penisaction is "penisvaginafuck" and ($penissize gte 0 or $arousal gte $arousalmax * (3 / 4))>>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<submission 20 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
	<<if random(0,1) is 1 or ($penisWetness + ($penileskill / 10)) gte ($penissize * 15) + random(1, 40)>>
		<<set $_target to $NPCList[$penistarget]>>
		<<set $_target.vagina to "penis">><<set $penisactiondefault to "cooperate">>
		<<if $player.virginity.penile isnot true>>
			<<penis_lube_text>> you <<peniletext>> thrust deep into <<combatpersons>> pussy.
			<<sex 30 $penistarget>>
		<<elseif $player.virginity.penile is true>>
			<<penis_lube_text>> you <<peniletext>> thrust your virgin penis into <<combatpersons>> pussy.
			You feel your foreskin separate from your glans, forever robbing you of your purity.
			<<sex 100 $penistarget>><<violence 30 $penistarget>><<bruise penis>><<set $speechpenisvirgin to 1>>
		<</if>>
		<<penilestat>><<raped>><<penisraped>><<set $penisstate to "penetrated">>
		<<takeVirginity $_target.fullDescription "penile">>
		<<takeNPCVirginity $_target.fullDescription "vaginal">>
	<<else>>
		You <<peniletext>> press your <<penis>> against <<combatpersons>> pussy, but fail to penetrate, instead angling away and rubbing past <<his>> clit.
		<<sex 20 $penistarget>><<penilestat>><<set $penisactiondefault to "penisvaginafuck">>
	<</if>>
<<elseif $penisaction is "penisvaginafuck">>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<set $penisactiondefault to "penisvaginafuck">>
	You fail to penetrate <<combatpersons>> pussy. Such a tiny penis is hard to wield. You need to be more aroused.
<</if>>
<</widget>>

<<widget "effectspenisanusfuck">>
<<if $penisaction is "penisanusfuck" and ($penissize gte 0 or $arousal gte ($arousalmax / 4) * 3)>>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<submission 20 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
	<<if random(0,1) is 1 or ($penisWetness + ($penileskill / 10)) gte ($penissize * 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 $player.virginity.penile isnot true>>
			<<penis_lube_text>> you <<peniletext>> thrust deep into <<combatpersons>> ass.
			<<sex 30 $penistarget>>
		<<elseif $player.virginity.penile is true>>
			<<penis_lube_text>> you <<peniletext>> thrust your virgin penis into <<combatpersons>> ass.
			You feel your foreskin separate from your glans, forever robbing you of your purity.
			<<sex 100 $penistarget>><<violence 30 $penistarget>><<bruise penis>><<set $speechpenisvirgin to 1>>
		<</if>>
		<<penilestat>><<raped>><<penisraped>><<set $penisstate to "otheranus">>
		<<takeVirginity $_target.fullDescription "penile">>
		<<takeNPCVirginity $_target.fullDescription "anal">>
	<<else>>
		You <<peniletext>> press your <<penis>> against <<combatpersons>> ass, but fail to penetrate, instead angling away and rubbing between <<his>> cheeks.
		<<sex 20 $penistarget>><<penilestat>><<set $penisactiondefault to "penisanusfuck">>
	<</if>>
<<elseif $penisaction is "penisanusfuck">>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<set $penisactiondefault to "penisanusfuck">>
	You fail to penetrate <<combatpersons>> ass. 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 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
		<<if $NPCList[$penistarget].penis is 0>>
			<<set $_target to $NPCList[$penistarget]>>
			<<submission 5 $penistarget>><<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>>
			You caress <<combatpersons>> <<npcPenisSimple $penistarget>> with your penis<<if $worn.genitals.type.includes("chastity")>>, through your $worn.genitals.name<</if>>.
			<<if $enemytype is "beast">>
				<<set $_target.stance to "top">>
			<</if>>
			<<set $_target.location.genitals to "genitals">>
		<<else>>
			You try to press your <<penis>> against <<combatpersons>> <<npcPenisSimple $penistarget>>, but the phallus is already occupied.<<set $penisactiondefault to "penistopenis">>
		<</if>>
	<<else>>
		You try to move your <<penis>> nearer <<combatpersons>> <<npcPenisSimple $penistarget>>, but <<ohe>> pushes you off.<<set $penisactiondefault to "penistopenis">>
	<</if>>
<</if>>
<</widget>>

<<widget "effectspenistopenisfuck">>
<<if $penisaction is "penistopenisfuck">>
	<<personselect $penistarget>>
	<<set $penisaction to 0>><<submission 5 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
		<<submission 5 $penistarget>><<set $penisuse to "otherpenis">><<set $penisstate to "otherpenis">>
		<<set $NPCList[$penistarget].penis to "penis">><<set $penisactiondefault to "fencingcooperate">>
		You press <<combatpersons>> <<npcPenisSimple $penistarget>> with your penis<<if $worn.genitals.type.includes("chastity")>>, through your $worn.genitals.name<</if>>.
	<<else>>
		You try to press your <<penis>> against <<combatpersons>>, but <<ohe>> keeps you away.
		<<set $penisactiondefault to "penistopenisfuck">>
	<</if>>
<</if>>
<</widget>>


code:
:: Widgets Actions Speak [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 $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>>
				<<set _askActions["to not put anything in your pussy" + _diffText] to "novaginal">>
			<</if>>
			<<if $player.penisExist and $penilechastity is 0 and $nopenile is 0>>
				<<set _askActions["to not put your penis in anything" + _diffText] to "nopenile">>
			<</if>>
			<<if $analchastity is 0 and $noanal is 0>>
				<<set _askActions["to not put anything in your anus" + _diffText] to "noanal">>
			<</if>>
			<<if $asphyxiaLvl gte 1 and $nochoke isnot 1>>
				<<set _askActions["to not choke you" + _diffText] to "nochoke">>
			<</if>>
		<</if>>
	<<else>>
		<<set _mouthaction["Scream"] to "scream">>
		<<set _mouthaction["Plead"] to "plead">>
		<<if $angel gte 6 and $angelforgive isnot 1>>
			<<set _mouthaction["Forgive"] to "forgive">>
		<</if>>
		<<if $submissive lte 850>>
			<<set _mouthaction["Demand"] to "demand">>
		<</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>>
			<<set _askActions["to leave your top on" + _diffText] to "noupper">>
		<</if>>
	<</if>>
	<<if $submissive gte 1150>>
		<<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))>>
		<<set _askActions["to choke you"] to "askchoke">>
	<</if>>
	/*ToDo: Pregnancy, remove $pregnancyTesting to properly enable*/
	<<if $enemytype is "man" and $condomAsk is undefined and $pregnancyTesting and !$abomination>>
		<<if $npcCondoms isnot undefined>>
			<<set _askActions["to use condoms"] to "condoms">>
		<</if>>
		<<if $npcCondoms isnot undefined>>
			<<set _askActions["to not use condoms"] to "noCondoms">>
		<</if>>
	<</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" "damagedCondoms" "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" "damagedCondoms" "noCondoms">>
		<<if $combatControls is "radio">>
			<<addclass "#askLabel" "sub">><<removeclass "#askLabel" "brat">>
		<<else>>
			<<addclass "#askDifficulty" "subList">><<removeclass "#askDifficulty" "bratList">>
		<</if>>
	<<case "askchoke">>
	<<default>>
		<<if $combatControls is "radio">>
			<<addclass "#askLabel" "brat">><<removeclass "#askLabel" "sub">>
		<<else>>
			<<addclass "#askDifficulty" "bratList">><<removeclass "#askDifficulty" "subList">>
		<</if>>
<</switch>>
<</widget>>

repo_name: Area/degrees

license: mit