Newer
Older
<<widget "tentaclestart">>
<<if $abomination isnot 1>>
<<set $enemyarousalmax to 10000>>
<</if>>
<<set $tentacles to {
"max": _args[0],
"active": _args[0],
}>>
<<if _args[2]>>
<<set _tentacleType to _args[2]>>
<<else>>
<<set _tentacleType to "tentacle">>
<</if>>
<<if ["root","shoot"].includes(_tentacleType)>>
<<set _babyType to "vine">>
<<elseif _tentacleType is "tendril">>
<<set _babyType to "tentacle">>
<<else>>
<<set _babyType to _tentacleType>>
<</if>>
<<if ["root","shoot","vine","metal"].includes(_tentacleType) or _args[3] is "metal">>
<<set $banishDisable to true>>
<</if>>
/* Deciding if tentacle templates should be defined somewhere else still */
/* Argument 0 is the number of tentacles.
* Argument 1 is health.
* Argument 2 is tentacle type, which can be replaced with "vines", "machines" etc later on. Optional, unless also using Argument 3.
* Argument 3 is variant, and will give different offspring as well as allowing different batches of descriptions.
* Argument 4 is whether or not the variant impacts the full description and offspring. If Argument 4 is used, Argument 3 will only impact which description batches are part of _tentacledescs. If Argument 4 is "desc", Argument 3 will impact description batches and variant, but not offspring.*/
<<set _tentacledescs to [
{"desc":"slimy","baby":0,"size":2,"traits":[]},
{"desc":"sticky","baby":0,"size":2,"traits":[]},
{"desc":"thick","baby":_babyType,"size":3,"traits":[]},
{"desc":"throbbing","baby":0,"size":2,"traits":[]},
{"desc":"slick","baby":0,"size":2,"traits":[]},
{"desc":"moist","baby":0,"size":2,"traits":[]},
{"desc":"quivering","baby":0,"size":2,"traits":[]},
{"desc":"sodden","baby":0,"size":2,"traits":[]},
{"desc":"shivering","baby":0,"size":2,"traits":[]},
{"desc":"shuddering","baby":0,"size":2,"traits":[]},
{"desc":"convulsing","baby":0,"size":2,"traits":["hypno"]},
{"desc":"undulating","baby":0,"size":2,"traits":[]},
{"desc":"damp","baby":0,"size":2,"traits":[]},
{"desc":"bulbous","baby":0,"size":3,"traits":[]},
{"desc":"gyrating","baby":0,"size":2,"traits":[]},
{"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"]},
]>>
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<<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>>
<<for _i to 0; _i lt _args[0]; _i++>>
<<set _tentacledata to _tentacledescs[_i]>>
<<set _tentacle to {
"desc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc,
"fullDesc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc + " " + _tentacleType,
"type": _tentacleType,
"tentaclehealth": _args[1],
"tentaclehealthstart": _args[1],
"shaft": 0,
"head": 0,
"id": "tentacle"+_i,
"baby": (_args[3] and (!_args[4] or _args[4] is "baby") and _tentacledata.baby isnot 0 ? _args[3] + " " + _tentacledata.baby : _tentacledata.baby ),
"babychance": 400,
"size": _tentacledata.size,
"traits": _tentacledata.traits
}>>
<<set $tentacles[_i] to clone(_tentacle)>>
<</for>>
<<if $rng gte 51>>
<<set $position to "missionary">>
<<wetnessCalculate>>
<<resetLastOptions>>
<<getCombatDefaultsType>>
<<if !$tentacleColour>>
<<if $tentacles[0].fullDesc.includes("pale")>>
<<set $tentacleColour to "tentacles-wraith">>
<<elseif $tentacles[0].fullDesc.includes("metal")>>
<<set $tentacleColour to "tentacles-red">>
<<elseif $tentacles[0].type>>
<<switch $tentacles[0].type>>
<<case "vine" "shoot">>
<<set $tentacleColour to "tentacles-vines">>
<<case "root">>
<<set $tentacleColour to "tentacles-roots">>
<<default>>
<<set $tentacleColour to "tentacles-purple">>
<</switch>>
<<else>>
<<set $tentacleColour to "tentacles-purple">>
<</if>>
<</if>>
<</widget>>
<<widget "tentacles">>
<div @class="($debugLines ? 'debugLines-tentacles' : '')">
<<for _i to 0; _i lt $tentacles.max; _i++>>
<<set _tentacle to $tentacles[_i]>>
<<if _tentacle isnot undefined>>
<<tentacleadv _tentacle>>
<<set _tentacle.tentaclehealth -= 0.2>>
<</if>>
<</for>>
<<if $panicattacks gte 1 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _panicchecked isnot true>>
<<rng>>
<<if $rng is 100>>
<<set $panicparalysis to 5>>
<</if>>
<<set _panicchecked to true>>
<</if>>
<<if $panicattacks gte 2 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _paniccheckedviolence isnot true>>
<<rng>>
<<if $rng is 100>>
<<set $panicviolence to 3>>
<</if>>
<<set _paniccheckedviolence to true>>
<<if $arousal gte $arousalmax and $orgasmdown lte 0>>
<<orgasm>>
<</widget>>
<<widget "effectstentacles">>
<<effectspain>>
<<effectsorgasm>>
<<effectsdissociation>>
<div @class="($debugLines ? 'debugLines-effectstentacleadv' : '')">
<<for _i to 0; _i lt $tentacles.max; _i++>>
<<if $tentacles[_i] isnot undefined>>
<<set _tentacle to $tentacles[_i]>>
<<effectstentacleadv _tentacle>>
<</if>>
<</for>>
</div>
<</widget>>
<<widget "actionstentacles">>
<div @class="($debugLines ? 'debugLines-actionstentacles' : '')">
<<set $enemyarousal to $arousal>>
<<if $vorecreature is 0 and _swarmcreature is undefined>>
<</if>>
<<willpowerpain>>
<<willpowerorgasm>>
<<actioncarry>>
<<actioncarrydrop>>
<<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0>>
<<generateActionsTentacle>>
<</if>>
<</widget>>
<<for _i to 0; _i lt $tentacles.max; _i++>>
<<if $tentacles[_i] isnot undefined>>
<<set _tentacle to $tentacles[_i]>>
<</widget>>
<<for _i to 0; _i lt $tentacles.max; _i++>>
<<if $tentacles[_i] isnot undefined>>
<<set _tentacle to $tentacles[_i]>>
<</widget>>
<<for _i to 0; _i lt $tentacles.max; _i++>>
<<if $tentacles[_i] isnot undefined>>
<<set _tentacle to $tentacles[_i]>>
<</widget>>
<<for _i to 0; _i lt $tentacles.max; _i++>>
<<if $tentacles[_i] isnot undefined>>
<<set _tentacle to $tentacles[_i]>>
<</widget>>
<<widget "upperslither">>
<<if $worn.over_upper.name isnot "naked">>
then <<slithers>> beneath your $worn.over_upper.name<<if $worn.upper.name isnot "naked">> and $worn.upper.name<</if>>
<<elseif $worn.upper.name isnot "naked">>
then <<slithers>> beneath your $worn.upper.name
<<else>>
then <<slithers>> across your bare skin
<</if>>
<</widget>>
<<widget "lowerslither">>
<<if $worn.over_lower.name isnot "naked">>
then <<slithers>> beneath your $worn.over_lower.name<<if $worn.lower.name isnot "naked">> and $worn.lower.name<</if>>
<<elseif $worn.lower.name isnot "naked">>
then <<slithers>> beneath your $worn.lower.name
<<else>>
then <<slithers>> across your bare skin
<</if>>
<</widget>>
<<widget "underslither">>
then <<slithers>> beneath your $worn.lower.name and $worn.under_lower.name
<<elseif playerChastity()>>
then <<slithers>> beneath your $worn.lower.name against your <<print $worn.genitals.name>>
<<else>>
<<if playerChastity("hidden")>>
against your <<print $worn.genitals.name>>.
<<elseif $worn.under_lower.type.includes("naked") and playerChastity("hidden")>>
then <<slithers>> against your <<print $worn.genitals.name>>
<</widget>>
<<widget "statetentacles">>
<<for _j to 0; _j lt $tentacles.max; _j++>>
<<if $tentacles[_j] isnot undefined>>
<<if $tentacles[_j].shaft is "finished" and $tentacles[_j].name isnot "finished">>
<</if>>
<<if $ejaculating isnot 1>>
You count <<number $tentacles.active>> <<print $tentacles[0].type>><<if $tentacles.active isnot 1>>s<</if>> surrounding you.
<</widget>>
<<widget "leftarmtentacledisable">>
<<for _j to 0; _j lt $tentacles.max; _j++>>
<<if $tentacles[_j] isnot undefined>>
<<if $tentacles[_j].id is $leftarm>>
<<set $tentacles[_j].head to 0>>
<</if>>
<</widget>>
<<widget "rightarmtentacledisable">>
<<for _j to 0; _j lt $tentacles.max; _j++>>
<<if $tentacles[_j] isnot undefined>>
<<if $tentacles[_j].id is $rightarm>>
<<set $tentacles[_j].head to 0>>
<</if>>
<</widget>>
<<widget "feettentacledisable">>
<<for _j to 0; _j lt $tentacles.max; _j++>>
<<if $tentacles[_j] isnot undefined>>
<<set $tentacles[_j].head to 0>>
<</if>>