Skip to content
Snippets Groups Projects
tentacles.twee 11.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • :: Widgets Tentacles [widget]
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<if $abomination isnot 1>>
    		<<set $enemyarousalmax to 10000>>
    	<</if>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<set $tentacles to {
    		"max": _args[0],
    		"active": _args[0],
    	}>>
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<if _args[0]>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    		<<if _args[2]>>
    			<<set _tentacleType to _args[2]>>
    		<<else>>
    			<<set _tentacleType to "tentacle">>
    		<</if>>
    		<<if ["root","shoot"].includes(_tentacleType)>>
    			<<set _babyType to "vine">>
    		<<elseif _tentacleType is "tendril">>
    			<<set _babyType to "tentacle">>
    		<<else>>
    			<<set _babyType to _tentacleType>>
    		<</if>>
    		<<if ["root","shoot","vine","metal"].includes(_tentacleType) or _args[3] is "metal">>
    			<<set $banishDisable to true>>
    		<</if>>
    
    Purity's avatar
    Purity committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    		/* Deciding if tentacle templates should be defined somewhere else still */
    		/* Argument 0 is the number of tentacles.
    		* Argument 1 is health.
    		* Argument 2 is tentacle type, which can be replaced with "vines", "machines" etc later on. Optional, unless also using Argument 3.
    		* Argument 3 is variant, and will give different offspring as well as allowing different batches of descriptions.
    		* Argument 4 is whether or not the variant impacts the full description and offspring. If Argument 4 is used, Argument 3 will only impact which description batches are part of _tentacledescs. If Argument 4 is "desc", Argument 3 will impact description batches and variant, but not offspring.*/
    		<<set _tentacledescs to [
    			{"desc":"slimy","baby":0,"size":2,"traits":[]},
    			{"desc":"sticky","baby":0,"size":2,"traits":[]},
    			{"desc":"thick","baby":_babyType,"size":3,"traits":[]},
    			{"desc":"throbbing","baby":0,"size":2,"traits":[]},
    			{"desc":"slick","baby":0,"size":2,"traits":[]},
    			{"desc":"moist","baby":0,"size":2,"traits":[]},
    			{"desc":"quivering","baby":0,"size":2,"traits":[]},
    			{"desc":"sodden","baby":0,"size":2,"traits":[]},
    			{"desc":"shivering","baby":0,"size":2,"traits":[]},
    			{"desc":"shuddering","baby":0,"size":2,"traits":[]},
    			{"desc":"convulsing","baby":0,"size":2,"traits":["hypno"]},
    			{"desc":"undulating","baby":0,"size":2,"traits":[]},
    			{"desc":"damp","baby":0,"size":2,"traits":[]},
    			{"desc":"bulbous","baby":0,"size":3,"traits":[]},
    			{"desc":"gyrating","baby":0,"size":2,"traits":[]},
    			{"desc":"large","baby":_babyType,"size":3,"traits":[]},
    			{"desc":"bumpy","baby":0,"size":2,"traits":[]},
    			{"desc":"thin","baby":0,"size":1,"traits":[]},
    			{"desc":"narrow","baby":0,"size":1,"traits":[]},
    			{"desc":"squishy","baby":0,"size":2,"traits":[]},
    			{"desc":"rough","baby":0,"size":2,"traits":["pain"]},
    		]>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    		<<if _args[3]>>
    			<<if _args[3] is "pale">>
    				<<set _tentacledescs.push(
    					{"desc":"ghostly","baby":_babyType,"size":2,"traits":[]},
    					{"desc":"translucent","baby":0,"size":1,"traits":["hypno"]},
    					{"desc":"twitching","baby":0,"size":2,"traits":[]},
    					{"desc":"manic","baby":0,"size":3,"traits":[]},
    					{"desc":"cloudy","baby":_babyType,"size":3,"traits":[]},
    					{"desc":"ethereal","baby":0,"size":1,"traits":[]},
    					{"desc":"incandescent","baby":0,"size":3,"traits":["hypno"]},
    					{"desc":"iridescent","baby":_babyType,"size":2,"traits":["hypno"]},
    					{"desc":"searing","baby":0,"size":3,"traits":["pain"]},
    				)>>
    			<<elseif _args[3] is "vine">>
    				<<set _tentacledescs.push(
    					{"desc":"flowering","baby":_babyType,"size":3,"traits":[]},
    					{"desc":"blossoming","baby":0,"size":3,"traits":[]},
    					{"desc":"wooden","baby":0,"size":2,"traits":[]},
    					{"desc":"blooming","baby":_babyType,"size":2,"traits":["hypno"]},
    					{"desc":"climbing","baby":0,"size":2,"traits":[]},
    					{"desc":"mossy","baby":0,"size":2,"traits":[]},
    					{"desc":"grassy","baby":0,"size":2,"traits":[]},
    					{"desc":"thorny","baby":0,"size":2,"traits":["pain"]},
    					{"desc":"pistil","baby":_babyType,"size":1,"traits":[]},
    					{"desc":"leafy","baby":0,"size":1,"traits":[]},
    					{"desc":"sprouting","baby":0,"size":1,"traits":[]},
    					{"desc":"sapling","baby":0,"size":1,"traits":[]},
    				)>>
    			<<elseif _args[3] is "metal">>
    				<<set _tentacledescs.push(
    					{"desc":"jerking","baby":0,"size":3,"traits":[]},
    					{"desc":"plated","baby":0,"size":3,"traits":[]},
    					{"desc":"sparking","baby":0,"size":2,"traits":["pain"]},
    					{"desc":"shiny","baby":0,"size":2,"traits":[]},
    					{"desc":"labelled","baby":_babyType,"size":2,"traits":[]},
    					{"desc":"jolting","baby":0,"size":2,"traits":["pain"]},
    					{"desc":"rusted","baby":0,"size":2,"traits":[]},
    					{"desc":"wired","baby":0,"size":1,"traits":["hypno"]},
    					{"desc":"stainless","baby":0,"size":1,"traits":[]},
    				)>>
    			<</if>>
    
    Purity's avatar
    Purity committed
    		<</if>>
    
    
    majou's avatar
    majou committed
    		<<set _tentacledescs to shuffle(_tentacledescs)>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    		<<for _i to 0; _i lt _args[0]; _i++>>
    			<<set _tentacledata to _tentacledescs[_i]>>
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    			<<set _tentacle to {
    				"desc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc,
    				"fullDesc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc + " " + _tentacleType,
    				"type": _tentacleType,
    				"tentaclehealth": _args[1],
    				"tentaclehealthstart": _args[1],
    				"shaft": 0,
    				"head": 0,
    				"id": "tentacle"+_i,
    				"baby": (_args[3] and (!_args[4] or _args[4] is "baby") and _tentacledata.baby isnot 0 ? _args[3] + " " + _tentacledata.baby : _tentacledata.baby ),
    				"babychance": 400,
    				"size": _tentacledata.size,
    				"traits": _tentacledata.traits
    			}>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    			<<set $tentacles[_i] to clone(_tentacle)>>
    		<</for>>
    
    Vrelnir's avatar
    Vrelnir committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<</if>>
    	<<set $combat to 1>>
    
    Purity's avatar
    Purity committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<if $rng gte 51>>
    	<<set $position to "missionary">>
    
    Purity's avatar
    Purity committed
    	<<else>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<set $position to "doggy">>
    
    Purity's avatar
    Purity committed
    	<</if>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<wetnessCalculate>>
    	<<resetLastOptions>>
    	<<getCombatDefaultsType>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<if !$tentacleColour>>
    		<<if $tentacles[0].fullDesc.includes("pale")>>
    			<<set $tentacleColour to "tentacles-wraith">>
    		<<elseif $tentacles[0].fullDesc.includes("metal")>>
    			<<set $tentacleColour to "tentacles-red">>
    		<<elseif $tentacles[0].type>>
    			<<switch $tentacles[0].type>>
    				<<case "vine" "shoot">>
    					<<set $tentacleColour to "tentacles-vines">>
    				<<case "root">>
    					<<set $tentacleColour to "tentacles-roots">>
    				<<default>>
    					<<set $tentacleColour to "tentacles-purple">>
    			<</switch>>
    		<<else>>
    			<<set $tentacleColour to "tentacles-purple">>
    		<</if>>
    	<</if>>
    <</widget>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<div @class="($debugLines ? 'debugLines-tentacles' : '')">
    	<<for _i to 0; _i lt $tentacles.max; _i++>>
    		<<set _tentacle to $tentacles[_i]>>
    		<<if _tentacle isnot undefined>>
    			<<tentacleadv _tentacle>>
    			<<set _tentacle.tentaclehealth -= 0.2>>
    		<</if>>
    	<</for>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<if $panicattacks gte 1 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _panicchecked isnot true>>
    		<<rng>>
    		<<if $rng is 100>>
    			<<set $panicparalysis to 5>>
    		<</if>>
    		<<set _panicchecked to true>>
    	<</if>>
    	<<if $panicattacks gte 2 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _paniccheckedviolence isnot true>>
    		<<rng>>
    		<<if $rng is 100>>
    			<<set $panicviolence to 3>>
    		<</if>>
    		<<set _paniccheckedviolence to true>>
    
    Rukarin's avatar
    Rukarin committed
    	<</if>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<if $arousal gte $arousalmax and $orgasmdown lte 0>>
    		<<orgasm>>
    
    Rukarin's avatar
    Rukarin committed
    	<</if>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<br>
    	</div>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<<effectspain>>
    	<<effectsorgasm>>
    	<<effectsdissociation>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<div @class="($debugLines ? 'debugLines-effectstentacleadv' : '')">
    		<<for _i to 0; _i lt $tentacles.max; _i++>>
    			<<if $tentacles[_i] isnot undefined>>
    				<<set _tentacle to $tentacles[_i]>>
    				<<effectstentacleadv _tentacle>>
    			<</if>>
    		<</for>>
    	</div>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<br>
    
    Crimson Tide's avatar
    Crimson Tide committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    	<div @class="($debugLines ? 'debugLines-actionstentacles' : '')">
    		<<set $enemyarousal to $arousal>>
    		<<if $vorecreature is 0 and _swarmcreature is undefined>>
    
    Jimmys's avatar
    Jimmys committed
    			<<animateCombat>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    		<</if>>
    		<<willpowerpain>>
    		<<willpowerorgasm>>
    		<<actioncarry>>
    		<<actioncarrydrop>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    		<<combatstate>>
    		<<carryblock>>
    
    Rukarin's avatar
    Rukarin committed
    
    
    Crimson Tide's avatar
    Crimson Tide committed
    		<<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0>>
    			<<generateActionsTentacle>>
    		<</if>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    	</div>
    	<br><br>
    
    Crimson Tide's avatar
    Crimson Tide committed
    <<widget "actionstentaclespenis">> /* unused */
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    	<<for _i to 0; _i lt $tentacles.max; _i++>>
    		<<if $tentacles[_i] isnot undefined>>
    			<<set _tentacle to $tentacles[_i]>>
    
    klorpa's avatar
    klorpa committed
    			<<actionstentacleadvpenis _tentacle>>
    		<</if>>
    	<</for>>
    	<br>
    
    Crimson Tide's avatar
    Crimson Tide committed
    <<widget "actionstentacleslegs">> /* unused */
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    	<<for _i to 0; _i lt $tentacles.max; _i++>>
    		<<if $tentacles[_i] isnot undefined>>
    			<<set _tentacle to $tentacles[_i]>>
    
    klorpa's avatar
    klorpa committed
    			<<actionstentacleadvlegs _tentacle>>
    		<</if>>
    	<</for>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    <<widget "actionstentaclesrighthand">> /* unused */
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    	<<for _i to 0; _i lt $tentacles.max; _i++>>
    		<<if $tentacles[_i] isnot undefined>>
    			<<set _tentacle to $tentacles[_i]>>
    
    klorpa's avatar
    klorpa committed
    			<<actionstentacleadvrighthand _tentacle>>
    		<</if>>
    	<</for>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    <<widget "actionstentacleslefthand">> /* unused */
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    	<<for _i to 0; _i lt $tentacles.max; _i++>>
    		<<if $tentacles[_i] isnot undefined>>
    			<<set _tentacle to $tentacles[_i]>>
    
    klorpa's avatar
    klorpa committed
    			<<actionstentacleadvlefthand _tentacle>>
    		<</if>>
    	<</for>>
    
    LollipopScythe's avatar
    LollipopScythe committed
    	<<if $worn.over_upper.name isnot "naked">>
    		then <<slithers>> beneath your $worn.over_upper.name<<if $worn.upper.name isnot "naked">> and $worn.upper.name<</if>>
    	<<elseif $worn.upper.name isnot "naked">>
    
    klorpa's avatar
    klorpa committed
    		then <<slithers>> beneath your $worn.upper.name
    	<<else>>
    		then <<slithers>> across your bare skin
    	<</if>>
    
    LollipopScythe's avatar
    LollipopScythe committed
    	<<if $worn.over_lower.name isnot "naked">>
    		then <<slithers>> beneath your $worn.over_lower.name<<if $worn.lower.name isnot "naked">> and $worn.lower.name<</if>>
    	<<elseif $worn.lower.name isnot "naked">>
    
    klorpa's avatar
    klorpa committed
    		then <<slithers>> beneath your $worn.lower.name
    	<<else>>
    		then <<slithers>> across your bare skin
    	<</if>>
    
    klorpa's avatar
    klorpa committed
    	<<if $worn.lower.name isnot "naked">>
    
    Vrelnir's avatar
    Vrelnir committed
    		<<if !$worn.under_lower.type.includes("naked")>>
    
    klorpa's avatar
    klorpa committed
    			then <<slithers>> beneath your $worn.lower.name and $worn.under_lower.name
    
    LollipopScythe's avatar
    LollipopScythe committed
    		<<elseif playerChastity()>>
    			then <<slithers>> beneath your $worn.lower.name against your <<print $worn.genitals.name>>
    
    klorpa's avatar
    klorpa committed
    		<<else>>
    		<</if>>
    
    Vrelnir's avatar
    Vrelnir committed
    		<<if !$worn.under_lower.type.includes("naked")>>
    
    klorpa's avatar
    klorpa committed
    			then <<slithers>> beneath your $worn.under_lower.name
    
    LollipopScythe's avatar
    LollipopScythe committed
    			<<if playerChastity("hidden")>>
    				against your <<print $worn.genitals.name>>.
    
    klorpa's avatar
    klorpa committed
    			<</if>>
    
    LollipopScythe's avatar
    LollipopScythe committed
    		<<elseif $worn.under_lower.type.includes("naked") and playerChastity("hidden")>>
    			then <<slithers>> against your <<print $worn.genitals.name>>
    
    klorpa's avatar
    klorpa committed
    		<<else>>
    			then <<slithers>> across your bare skin
    		<</if>>
    
    Vrelnir's avatar
    Vrelnir committed
    	<</if>>
    
    	<<for _j to 0; _j lt $tentacles.max; _j++>>
    		<<if $tentacles[_j] isnot undefined>>
    
    Vrelnir's avatar
    Vrelnir committed
    			<<if $tentacles[_j].shaft is "finished" and $tentacles[_j].name isnot "finished">>
    
    Lucky Lucky's avatar
    Lucky Lucky committed
    				<<set $tentacles.active -= 1>>
    
    Vrelnir's avatar
    Vrelnir committed
    				<<set $tentacles[_j].name to "finished">>
    
    klorpa's avatar
    klorpa committed
    			<</if>>
    
    klorpa's avatar
    klorpa committed
    	<</for>>
    
    Vrelnir's avatar
    Vrelnir committed
    <<sexcheck>>
    
    Crimson Tide's avatar
    Crimson Tide committed
    <<if $ejaculating isnot 1>>
    	You count <<number $tentacles.active>> <<print $tentacles[0].type>><<if $tentacles.active isnot 1>>s<</if>> surrounding you.
    
    Crimson Tide's avatar
    Crimson Tide committed
    <</if>>
    
    <<widget "leftarmtentacledisable">>
    
    	<<for _j to 0; _j lt $tentacles.max; _j++>>
    		<<if $tentacles[_j] isnot undefined>>
    			<<if $tentacles[_j].id is $leftarm>>
    				<<set $tentacles[_j].head to 0>>
    
    klorpa's avatar
    klorpa committed
    			<</if>>
    
    klorpa's avatar
    klorpa committed
    	<</for>>
    
    <<widget "rightarmtentacledisable">>
    
    	<<for _j to 0; _j lt $tentacles.max; _j++>>
    		<<if $tentacles[_j] isnot undefined>>
    			<<if $tentacles[_j].id is $rightarm>>
    				<<set $tentacles[_j].head to 0>>
    
    klorpa's avatar
    klorpa committed
    			<</if>>
    
    klorpa's avatar
    klorpa committed
    	<</for>>
    
    Vrelnir's avatar
    Vrelnir committed
    
    
    <<widget "feettentacledisable">>
    
    	<<for _j to 0; _j lt $tentacles.max; _j++>>
    		<<if $tentacles[_j] isnot undefined>>
    
    			<<if $tentacles[_j].id is $feetuse>>
    
    klorpa's avatar
    klorpa committed
    			<</if>>
    
    klorpa's avatar
    klorpa committed
    	<</for>>
    
    TonyFox's avatar
    TonyFox committed
    <</widget>>