From d2a74eeb5d3f57d727e89847625048b19e09a913 Mon Sep 17 00:00:00 2001 From: Andrest07 <57931603+Andrest07@users.noreply.github.com> Date: Fri, 10 Nov 2023 15:43:24 +0700 Subject: [PATCH] Mirror TF Retention, Traumatized Eyes Toggle and Fallen Angel TF Cheats --- game/base-clothing/canvasmodel-img.twee | 2 +- game/base-clothing/images.twee | 3 +- game/base-combat/doggy-images.twee | 2 +- game/base-combat/missionary-images.twee | 2 +- game/base-system/mirror.twee | 745 ++++++++++-------------- game/base-system/overlays/cheats.twee | 2 + game/base-system/transformations.twee | 39 ++ game/base-system/widgets.twee | 68 +++ 8 files changed, 409 insertions(+), 454 deletions(-) diff --git a/game/base-clothing/canvasmodel-img.twee b/game/base-clothing/canvasmodel-img.twee index 87ff11e4f2..bf3c4c76bc 100644 --- a/game/base-clothing/canvasmodel-img.twee +++ b/game/base-clothing/canvasmodel-img.twee @@ -284,7 +284,7 @@ Requires prior <<selectmodel "main">> <<if $possessed>> <<set _modeloptions.trauma to $possessed>> <<else>> - <<set _modeloptions.trauma to $trauma gte ($traumamax * 0.9)>> + <<set _modeloptions.trauma to $trauma gte ($traumamax * 0.9) or $traumatized>> <</if>> <<set _modeloptions.blink to $options.blinkingEnabled>> <<set _modeloptions.eyes_bloodshot to $pain gte 100 and $willpowerpain is 0 or $tiredness >= C.tiredness.max>> diff --git a/game/base-clothing/images.twee b/game/base-clothing/images.twee index f456b0057a..6b2ae5308f 100644 --- a/game/base-clothing/images.twee +++ b/game/base-clothing/images.twee @@ -654,7 +654,8 @@ <</if>> <!-- Eyes --> - <<if ($trauma gte ($traumamax * 0.9) and _diagram is 0) or $possessed>> + <<if ($trauma gte ($traumamax * 0.9) and _diagram is 0) or $possessed or $traumatized>> + <<set $traumatized to true>> <<set _iris = "irisempty">> <<set _trauma = "-trauma">> <<else>> diff --git a/game/base-combat/doggy-images.twee b/game/base-combat/doggy-images.twee index 47174c36b0..d609fc9156 100644 --- a/game/base-combat/doggy-images.twee +++ b/game/base-combat/doggy-images.twee @@ -516,7 +516,7 @@ <img class="layer-sexsclera" src="img/sex/doggy/active/doggyactivesclerabloodshot.png"> <</if>> - <<if $trauma gte ($traumamax * 0.9) or $possessed>> + <<if $trauma gte ($traumamax * 0.9) or $possessed or $traumatized>> <img @style="_custom_eyelenses_left_style" @class="'layer-sexeyes ' + _colourEyeLeft" src="img/sex/doggy/active/doggyactiveeyesempty.png"> <<else>> <img @style="_custom_eyelenses_left_style" @class="'layer-sexeyes ' + _colourEyeLeft + ' anim-idle-2f'" src="img/sex/doggy/active/doggyactiveeyes.png"> diff --git a/game/base-combat/missionary-images.twee b/game/base-combat/missionary-images.twee index 98693dd146..587e9828cb 100644 --- a/game/base-combat/missionary-images.twee +++ b/game/base-combat/missionary-images.twee @@ -312,7 +312,7 @@ <</if>> <<run defineCustomEyeColourStyle()>> - <<if $trauma gte ($traumamax * 0.9) or $possessed>> + <<if $trauma gte ($traumamax * 0.9) or $possessed or $traumatized>> <img @style="_custom_eyelenses_right_style" @class="'layer-sexeyes ' + _colourEyeRight " src="img/sex/missionary/active/activeeyesempty.png"> <<else>> <img @style="_custom_eyelenses_right_style" @class="'layer-sexeyes ' + _colourEyeRight + ' anim-idle-2f'" src="img/sex/missionary/active/activeeyes.png"> diff --git a/game/base-system/mirror.twee b/game/base-system/mirror.twee index bd464a17f0..a74ea343e9 100644 --- a/game/base-system/mirror.twee +++ b/game/base-system/mirror.twee @@ -191,7 +191,7 @@ <</if>> <<if !$simpleMirror>> - <<if $specialTransform is 1 or $physicalTransform is 1>> + <<if $specialTransform is 1 or $physicalTransform is 1 or $angeltf is 1 or $fallenangeltf is 1 or $fallenangelplustf is 1 or $demontf is 1 or $wolftf is 1 or $cattf is 1 or $cowtf is 1 or $birdtf is 1 or $foxtf is 1>> __Transformation__ <br> <<link "Examine your inner self">><<set $mirrorMenu to "transformation">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> @@ -2196,8 +2196,13 @@ <<widget "mirrorTransformation">> <<link "Back">><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <br><br> - Hiding parts of your Inner Self will slowly increase your Trauma over time (excludes pubes and pits). + /* Hiding parts of your Inner Self will slowly increase your Trauma over time (excludes pubes and pits). If your Trauma gets too high, you will be unable to hide. + <br><br> */ + + __Genome Dump__ + <br> + <<link "Reset Transformation">><<set $mirrorMenu to "genomedump">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> <br><br> <<set _angel to $transformationParts.angel>> @@ -2210,461 +2215,272 @@ <<set _fox to $transformationParts.fox>> <<set _traits to $transformationParts.traits>> - <div id='transformations-menu' class='grid col-2'> - <div id='transformations-list' class='list'> - <div class='tf-angel'> - <<if $angel gt 1>> - __Angel__ - <br> - <<if _angel.halo isnot "disabled">> - <div class='tf-part-item'> - Halo: - <<listbox "_angel.halo" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Traditional" "traditional">> - <</listbox>> - </div> - <br> - <</if>> - <<if _angel.wings isnot "disabled">> - <div class='tf-part-item'> - Wings: - <<listbox "_angel.wings" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <br> - <</if>> - <br> - <</if>> - </div> - <div class='tf-fallen'> - <<if $fallenangel gt 1>> - __Fallen Angel__ - <br> - <<if _fallen.halo isnot "disabled">> - <div class='tf-part-item'> - Halo: - <<listbox "_fallen.halo" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Traditional" "traditional">> - <</listbox>> - </div> - <br> - <</if>> - <<if _fallen.wings isnot "disabled">> - <div class='tf-part-item'> - Wings: - <<if $fallenangel gte 4>> - <<listbox "_fallen.wings" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Feathered" "fallenplus">> - <</listbox>> - <<else>> - <<listbox "_fallen.wings" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - <</if>> - </div> - <</if>> - <br> - <</if>> - </div> - <div class='tf-demon'> - <<if $demon gt 1>> - __Demon__ - <br> - <<if _demon.horns isnot "disabled">> - <div class='tf-part-item'> - Horns: - <<listbox "_demon.horns" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Classic" "classic">> - <<option "Succubus" "succubus">> - <</listbox>> - <<gencolourselector "_demon.horns_colour">> - </div> - <</if>> - <<if _demon.wings isnot "disabled">> - <div class='tf-part-item'> - Wings: - <<listbox "_demon.wings" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Succubus" "succubus">> - <</listbox>> - <<gencolourselector "_demon.wings_colour">> - </div> - <</if>> - <<if _demon.tail isnot "disabled">> - <div class='tf-part-item'> - Tail: - <<listbox "_demon.tail" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Classic" "classic">> - <<option "Succubus" "succubus">> - <</listbox>> - <<gencolourselector "_demon.tail_colour">> - </div> - <</if>> - <<if $demon gte 4>> - <div class='tf-part-item'> - <<if $exhibitionism gte 95>> - Flaunting when exposed: - <<listbox "_traits.flaunting" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - <<ind>> - <<else>> - <span class="black">Flaunting (requires higher exhibitionism):</span> - <<listbox "_traits.flaunting" autoselect>> - <<option "Hide" "hidden">> - <</listbox>> - <<ind>> - <</if>> - </div> - <</if>> - <br> - <</if>> - </div> - <div class='tf-cat'> - <<if $cat gt 1>> - __Cat__ - <br> - <<if _cat.ears isnot "disabled">> - <div class='tf-part-item'> - Ears: - <<listbox "_cat.ears" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _cat.tail isnot "disabled">> - <div class='tf-part-item'> - Tail: - <<listbox "_cat.tail" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _cat.heterochromia isnot "disabled">> - <div class='tf-part-item'> - Heterochromia: - <<listbox "_cat.heterochromia" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <br> - <</if>> - </div> - <div class='tf-cow'> - <<if $cow gt 1>> - __Cow__ - <br> - <<if _cow.horns isnot "disabled">> - <div class='tf-part-item'> - Horns: - <<listbox "_cow.horns" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _cow.ears isnot "disabled">> - <div class='tf-part-item'> - Ears: - <<listbox "_cow.ears" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Spotted black" "spotted black">> - <<option "Spotted brown" "spotted brown">> - <</listbox>> - </div> - <</if>> - <<if _cow.tail isnot "disabled">> - <div class='tf-part-item'> - Tail: - <<listbox "_cow.tail" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Black" "black">> - <</listbox>> - </div> - <</if>> - <br> - <</if>> - </div> - <div class='tf-wolf'> - <<if $wolfgirl gt 1>> - __Wolf__ - <br> - <<if _wolf.ears isnot "disabled">> - <div class='tf-part-item'> - Ears: - <<listbox "_wolf.ears" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Feral" "feral">> - <</listbox>> - </div> - <</if>> - <<if _wolf.tail isnot "disabled">> - <div class='tf-part-item'> - Tail: - <<listbox "_wolf.tail" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <<option "Feral" "feral">> - <</listbox>> - </div> - <</if>> - <br> - <<if _wolf.cheeks isnot "disabled">> - <div class='tf-part-item'> - Cheeks: - <<listbox "_wolf.cheeks" autoselect>> - <<option "Hide" "hidden">> - <<option "Feral" "feral">> - <</listbox>> - </div> - <</if>> - <<if _wolf.pubes isnot "disabled" and $pbdisable is "f">> - <div class='tf-part-item'> - Pubes: - <<listbox "_wolf.pubes" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <br> - <<if _wolf.pits isnot "disabled" and $pbdisable is "f">> - <div class='tf-part-item'> - Pits: - <<listbox "_wolf.pits" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <br> - <</if>> - </div> - <div class='tf-bird'> - <<if $harpy gt 1>> - __Bird__ - <br> - <<if _bird.eyes isnot "disabled">> - <div class='tf-part-item'> - eyes: - <<listbox "_bird.eyes" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _bird.malar isnot "disabled">> - <div class='tf-part-item'> - Malar Stripes: - <<listbox "_bird.malar" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _bird.plumage isnot "disabled">> - <div class='tf-part-item'> - Plumage: - <<listbox "_bird.plumage" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _bird.tail isnot "disabled">> - <div class='tf-part-item'> - Tail: - <<listbox "_bird.tail" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _bird.wings isnot "disabled">> - <div class='tf-part-item'> - Wings: - <<listbox "_bird.wings" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <br> - <</if>> - <<if _bird.pubes isnot "disabled" and $pbdisable is "f">> - <div class='tf-part-item'> - Pubes: - <<listbox "_bird.pubes" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <br> - <</if>> - </div> - <div class='tf-fox'> - <<if $fox gt 1>> - __Fox__ - <br> - <<if _fox.ears isnot "disabled">> - <div class='tf-part-item'> - Ears: - <<listbox "_fox.ears" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _fox.tail isnot "disabled">> - <div class='tf-part-item'> - Tail: - <<listbox "_fox.tail" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <<if _fox.cheeks isnot "disabled">> - <div class='tf-part-item'> - Cheeks: - <<listbox "_fox.cheeks" autoselect>> - <<option "Hide" "hidden">> - <<option "Default" "default">> - <</listbox>> - </div> - <</if>> - <br> - <</if>> - </div> - <<set $_chimeraOptions to { - "demoncat_tail" : !["disabled", "hidden"].includesAny(_demon.tail, _cat.tail), - "demonharpy_wings" : !["disabled", "hidden"].includesAny(_demon.wings, _bird.wings) - }>> - <<set $_chimeraEnabled to Object.values($_chimeraOptions).some(o => o) ? "" : " hide">> - <div @class="'chimera' + $_chimeraEnabled"> - __Chimera__ - <<if $_chimeraOptions.demoncat_tail>> - /* Using demon cat chimera tail. */ - <div class='tf-part-item'> - Demon cat tail: - <<listbox "$chimera.demoncat.tail" autoselect>> - <<option "Show" true>> - <<option "Hide" false>> - <</listbox>> - </div> - <</if>> - <<if $_chimeraOptions.demonharpy_wings>> - /* Using demon harpy chimera wings. */ - <div class='tf-part-item'> - Demon harpy wings: - <<listbox "$chimera.demonharpy.wings" autoselect>> - <<option "Show" true>> - <<option "Hide" false>> - <</listbox>> - </div> - <</if>> - </div> - <div class="no-numberify"> - <<if !["demon", "cow"].every(transform => T[transform].horns is "disabled")>> - <<switch $hornslayer>> - <<case "front">> - <<link "Prioritise headwear over horns">> - <<run State.setVar("$hornslayer", "back")>> - <<run Engine.show()>> - <</link>> - <<case "back">> - <<link "Prioritise horns over headwear">> - <<run State.setVar("$hornslayer", "front")>> - <<run Engine.show()>> - <</link>> - <<default>> - <<link "Prioritise horns over headwear">> - <<run State.setVar("$hornslayer", "front")>> - <<run Engine.show()>> - <</link>> - <</switch>> - <br> - <</if>> - <<if !["demon", "cat", "cow", "wolf", "bird", "fox"].every(transform => T[transform].tail is "disabled")>> - <<switch $taillayer>> - <<case "front">> - <<link "Push tail back">> - <<run State.setVar("$taillayer", "back")>> - <<run Engine.show()>> - <</link>> - <<case "back">> - <<link "Move tail forward">> - <<run State.setVar("$taillayer", "front")>> - <<run Engine.show()>> - <</link>> - <<default>> - <<link "Push tail back">> - <<run State.setVar("$taillayer", "back")>> - <<run Engine.show()>> - <</link>> - <</switch>> - <br> - <</if>> - <<if !["angel", "fallen", "demon", "bird"].every(transform => T[transform].wings is "disabled")>> - <<switch $wingslayer>> - <<case "front">> - <<link "Push wings behind">> - <<run State.setVar("$wingslayer", "back")>> - <<run Engine.show()>> - <</link>> - <<case "back">> - <<link "Move wings forward">> - <<run State.setVar("$wingslayer", "front")>> - <<run Engine.show()>> - <</link>> - <<default>> - <<link "Push wings behind">> - <<run State.setVar("$wingslayer", "back")>> - <<run Engine.show()>> - <</link>> - <</switch>> - <br> - <</if>> - </div> - </div> - <<if _isMenuEnabled>> - <div id="transformations-colour-selector" class='list sticky centre'> - <<set _options to ['ffffff', 'ff0000', '00ff00', '0000ff', '590099', '000000']>> - <<gencoloursquares _options>> - <<gencolourpicker>> - </div> + <<if $wolfgirl gte 2 or $wolftf is 1 or $cat gte 2 or $cattf is 1 or $fox gte 3 or $foxtf is 1>> + __Traits__<br> + <<if $wolfgirl gte 2 or $wolftf is 1 or $cat gte 2 or $cattf is 1 or $fox gte 2 or $foxtf is 1>> + Fangs:<br> + <<link "Set">><<set _traits.fangs = "default">><</link>> / <<link "Clear">><<set _traits.fangs = "disabled">><</link>><br> <</if>> - </div> + <<if $cat gte 2 or $cattf is 1 or $harpy gte 2 or $harpytf is 1 or $fox gte 2 or $foxtf is 1>> + Sharp Eyes:<br> + <<link "Set">><<set _traits.sharpEyes = "default">><</link>> / <<link "Clear">><<set _traits.sharpEyes = "disabled">><</link>><br> + <</if>> + <<if $cow gte 6 or $cowtf is 1>> + Double Semen/Milk:<br> + <<link "Set">><<set $semen_max to 6000>><<set $milk_max to 6000>><</link>> / <<link "Clear">><<set $semen_max to 3000>><<set $milk_max to 3000>><</link>><br> + <</if>> + <<if $harpy gte 3 or $harpytf is 1 or $fox gte 3 or $foxtf is 1>> + Mate for Life:<br> + <<link "Set">><<set _traits.mateForLife = "default">><</link>> / <<link "Clear">><<set _traits.mateForLife = "disabled">><</link>><br> + <</if>> + <br> + <</if>> + + <<if $wolfgirl gte 6 or $wolftf is 1 or $fox gte 5 or $foxtf is 1>> + __Cheeks__<br> + <<link "Clear">><<clearcheeks>><<updatesidebarimg>><</link>><br> + <<if $wolfgirl gte 6 or $wolftf is 1>> + <<link "Wolf">><<clearcheeks>><<set _wolf.cheeks = "feral">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $fox gte 5 or $foxtf is 1>> + <<link "Fox">><<clearcheeks>><<set _fox.cheeks = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if $cat gte 7 or $cattf is 1>> + __Heterochromia__<br> + <<if _cat.heterochromia isnot "default">> + <<link [[Set|$passage]]>><<set _cat.heterochromia = "default">><<run window.determineCatEyeStages()>><<set $original_colour = [$leftEyeColour, $rightEyeColour]>><<catHeterochromiaTF 3>><<updatesidebarimg>><</link>> + <<else>> + <<link [[Clear|$passage]]>><<set _cat.heterochromia = "disabled">><<set $leftEyeColour to $original_colour[0]>><<set $rightEyeColour to $original_colour[1]>><<catHeterochromiaTF 0>><<updatesidebarimg>><</link>><br> + <</if>> + <br><br> + <</if>> + + <<if $harpy gte 2 or $harpytf is 1>> + __Malar__<br> + <<link "Set">><<set _bird.malar = "default">><<updatesidebarimg>><</link>> / <<link "Clear">><<set _bird.malar = "disabled">><<updatesidebarimg>><</link>><br> + <br> + <</if>> + + <<if ($wolfgirl gte 4 or $wolftf is 1) and $pbdisable is "f">> + __Pits__<br> + <<link "Set">><<set _wolf.pits = "default">><<updatesidebarimg>><</link>> / <<link "Clear">><<set _wolf.pits = "disabled">><<updatesidebarimg>><</link>><br> + <br> + <</if>> + + <<if $harpy gte 4 or $harpytf is 1>> + __Plumage__<br> + <<link "Set">><<set _bird.plumage = "default">><<updatesidebarimg>><</link>> / <<link "Clear">><<set _bird.plumage = "disabled">><<updatesidebarimg>><</link>><br> + <br> + <</if>> + + <<if ($wolfgirl gte 4 or $wolftf is 1) and $pbdisable is "f">> + __Pubes__<br> + <<link "Set">><<set _wolf.pubes = "default">><<updatesidebarimg>><</link>> / <<link "Clear">><<set _wolf.pubes = "disabled">><<updatesidebarimg>><</link>><br> + <br> + <</if>> + + <<if $cat gte 4 or $cattf is 1 or $cow gte 4 or $cowtf is 1 or $wolfgirl gte 4 or $wolftf is 1 or $fox gte 4 or $foxtf is 1>> + __Ears__<br> + <<link "Clear">><<clearears>><<updatesidebarimg>><</link>><br> + <<if $cat gte 4 or $cattf is 1>> + <<link "Cat">><<clearears>><<set _cat.ears = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $cow gte 4 or $cowtf is 1>> + <<link "Cow">><<clearears>><<set _cow.ears = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $wolfgirl gte 4 or $wolftf is 1>> + <<link "Wolf Default">><<clearears>><<set _wolf.ears = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $wolfgirl gte 4 or $wolftf is 1>> + <<link "Wolf Feral">><<clearears>><<set _wolf.ears = "feral">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $fox gte 4 or $foxtf is 1>> + <<link "Fox">><<clearears>><<set _fox.ears = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if $harpy gte 2 or $harpytf is 1>> + __Eyes__<br> + <<link "Clear">><<cleareyes>><<updatesidebarimg>><</link>><br> + <<if $harpy gte 2 or $harpytf is 1>> + <<link "Harpy">><<cleareyes>><<set _bird.eyes = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if $angel gte 4 or $angeltf is 1 or $fallenangel gte 1 or $fallenangeltf is 1>> + __Halo__<br> + <<link "Clear">><<clearhalo>><<updatesidebarimg>><</link>><br> + <<if $angel gte 4 or $angeltf is 1>> + Angel:<br> + <<link "Angel">><<set _angel.halo = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $fallenangel gte 1 or $fallenangeltf is 1>> + Fallen Angel:<br> + <<link "Fallen Angel">><<set _fallen.halo = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if $demon gte 2 or $demontf is 1 or $cow gte 2 or $cowtf is 1>> + __Horns__<br> + <<link "Clear">><<clearhorns>><<updatesidebarimg>><</link>><br> + <<if $demon gte 2 or $demontf is 1>> + <<link "Demon Default">><<clearhorns>><<set _demon.horns = "default">><<updatesidebarimg>><</link>> + <</if>> + <<if $demon gte 2 or $demontf is 1>> + <<link "Demon Succubus">><<clearhorns>><<set _demon.horns = "succubus">><<updatesidebarimg>><</link>> + <</if>> + <<if $demon gte 2 or $demontf is 1>> + <<link "Demon Classic">><<clearhorns>><<set _demon.horns = "classic">><<updatesidebarimg>><</link>> + <</if>> + <<if $cow gte 2 or $cowtf is 1>> + <<link "Cow">><<clearhorns>><<set _cow.horns = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if $demon gte 4 or $demontf is 1 or $cat gte 6 or $cattf is 1 or $cow gte 6 or $cowtf is 1 or $wolfgirl gte 6 or $wolftf is 1 or $harpy gte 4 or $harpytf is 1 or $fox gte 6 or $foxtf is 1>> + __Tail__<br> + <<link "Clear">><<cleartail>><<updatesidebarimg>><</link>><br> + <<if $demon gte 4 or $demontf is 1>> + <<link "Demon Default">><<cleartail>><<set _demon.tail = "default">><<updatesidebarimg>><</link>><<gencolourselector "_demon.tail_colour">><br> + <</if>> + <<if $demon gte 4 or $demontf is 1>> + <<link "Demon Succubus">><<cleartail>><<set _demon.tail = "succubus">><<updatesidebarimg>><</link>><<gencolourselector "_demon.tail_colour">><br> + <</if>> + <<if $demon gte 4 or $demontf is 1>> + <<link "Demon Classic">><<cleartail>><<set _demon.tail = "classic">><<updatesidebarimg>><</link>><<gencolourselector "_demon.tail_colour">><br> + <</if>> + <<if $cat gte 6 or $cattf is 1>> + <<link "Cat">><<cleartail>><<set _cat.tail = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $cow gte 6 or $cowtf is 1>> + <<link "Cow">><<cleartail>><<set _cow.tail = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $wolfgirl gte 6 or $wolftf is 1>> + <<link "Wolf Default">><<cleartail>><<set _wolf.tail = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $wolfgirl gte 4 or $wolftf is 1>> + <<link "Wolf Feral">><<cleartail>><<set _wolf.tail = "feral">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $harpy gte 2 or $harpytf is 1>> + <<link "Harpy">><<cleartail>><<set _bird.tail = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $fox gte 6 or $foxtf is 1>> + <<link "Fox">><<cleartail>><<set _fox.tail = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if $angel gte 6 or $angeltf is 1 or $demon gte 6 or $demontf is 1 or $fallenangel gte 2 or $fallenangeltf is 1 or $fallenangelplustf is 1 or $harpy gte 6 or $harpytf is 1>> + __Wings__<br> + <<link "Clear">><<clearwings>><<updatesidebarimg>><</link>><br> + <<if $angel gte 6 or $angeltf is 1>> + <<link "Angel">><<clearwings>><<set _angel.wings = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $demon gte 6 or $demontf is 1>> + <<link "Demon Default">><<clearwings>><<set _demon.wings = "default">><<gencolourselector "_demon.wings_colour">><<updatesidebarimg>><</link>><<gencolourselector "_demon.wings_colour">><br> + <</if>> + <<if $demon gte 6 or $demontf is 1>> + <<link "Demon Succubus">><<clearwings>><<set _demon.wings = "succubus">><<gencolourselector "_demon.wings_colour">><<updatesidebarimg>><</link>><<gencolourselector "_demon.wings_colour">><br> + <</if>> + <<if $fallenangel gte 2 or $fallenangeltf is 1>> + <<link "Fallen Angel">><<clearwings>><<set _fallen.wings = "default">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $fallenangel gte 4 or $fallenangelplustf is 1>> + <<link "Fallen Angel Plus">><<clearwings>><<set _fallen.wings = "fallenplus">><<updatesidebarimg>><</link>><br> + <</if>> + <<if $harpy gte 6 or $harpytf is 1>> + <<link "Harpy">><<clearwings>><<set _bird.wings = "default">><<set $birdFly to 1>><<updatesidebarimg>><</link>><br> + <</if>> + <br> + <</if>> + + <<if (($demon gte 2 or $demontf is 1) and ($cow gte 2 or $cowtf is 1)) or (($demon gte 4 or $demontf is 1) and ($cat gte 6 or $cattf is 1)) or (($demon gte 6 or $demontf is 1) and ($harpy gte 6 or $harpytf is 1))>> + __Chimera__<br> + <<if ($demon gte 6 or $demontf is 1) and ($cow gte 2 or $cowtf is 1)>> + Demon Cow Horns:<br> + <<link "Set">> + <<set _cow.horns = "default">> + <<set _demon.horns = "default">> + <<set $chimera.demoncow.horns = "default">> + <<updatesidebarimg>> + <</link>> / + <<link "Clear">> + <<clearhorns>> + <<set $chimera.demoncow.horns = null>> + <<updatesidebarimg>> + <</link>><br> + <</if>> + <<if ($demon gte 6 or $demontf is 1) and ($cat gte 6 or $cattf is 1)>> + Demon Cat Tail:<br> + <<link "Set">> + <<set _cat.tail = "default">> + <<set _demon.tail = "default">> + <<set $chimera.demoncat.tail = "default">> + <<set $hastail to "true">> + <<set $thintail to "true">> + <<updatesidebarimg>> + <</link>> / + <<link "Clear">> + <<cleartail>> + <<set $chimera.demoncat.tail = null>> + <<updatesidebarimg>> + <</link>><br> + <</if>> + <<if ($demon gte 6 or $demontf is 1) and ($harpy gte 6 or $harpytf is 1)>> + Demon Harpy Wings:<br> + <<link "Set">> + <<set _bird.wings = "default">> + <<set _demon.wings = "default">> + <<set $chimera.demonharpy.wings = "default">> + <<updatesidebarimg>> + <</link>> / + <<link "Clear">> + <<clearwings>> + <<set $chimera.demonharpy.wings = null>> + <<updatesidebarimg>> + <</link>><br> + <</if>> + <</if>> + + <<if ($traumatized isnot undefined)>> + __Trauma__<br> + <<link [[Set|$passage]]>><<set $traumatized to true>><<faceimg>><<updatesidebarimg>><</link>> / <<link [[Clear|$passage]]>><<set $traumatized to false>><<faceimg>><<updatesidebarimg>><</link>><br> + <br> + <</if>> + + <<if _isMenuEnabled>> + <div id="transformations-colour-selector" class='list sticky centre'> + <<set _options to ['ffffff', 'ff0000', '00ff00', '0000ff', '590099', '000000']>> + <<gencoloursquares _options>> + <<gencolourpicker>> + </div> + <</if>> + + <br> + <<link "Top of Page">> + <<script>> + document.body.scrollTop = 0; + document.documentElement.scrollTop = 0; + <</script>> + <</link>> + <br> + /* <<link [[Confirm|$passage]]>> <<set $mirrorMenu to "transformation">> - <<if $transformationParts.cat.heterochromia is "hidden">> + /* <<if _cat.heterochromia is "hidden">> <<catHeterochromiaTF "hide">> <<elseif $cat gte 7 and $cat lte 10>> <<catHeterochromiaTF `$cat - 7`>> - <</if>> + <</if>> <</link>> + */ <!-- Attach an event to every listbox item to update the PC on the sidebar. --> <<script>> jQuery('.passage').on('change', 'select.macro-listbox', function (e) { @@ -2708,3 +2524,32 @@ <<link "Skip day">><<pass 23 hours>><<effects>><<goto "Mirror">><</link>> <br> <</widget>> + +<<widget "genomedump">> + <br><br> + <span class="red">Warning: This will reset your manifestation and transformation points for the specified transformation. + <br><br> + <i>It is highly reccomended you only do this after completing the transformation in its entirety.</i></span> + <br><br> + <<if $angelbuild gte 1>> + Angel Transform: <<link [[Reset|$passage]]>><<angelTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> + <<if $demonbuild gte 1>> + Demon Transform: <<link [[Reset|$passage]]>><<demonTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> + <<if $wolfbuild gte 1>> + Wolf Transform: <<link [[Reset|$passage]]>><<wolfTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> + <<if $catbuild gte 1>> + Cat Transform: <<link [[Reset|$passage]]>><<catTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> + <<if $cowbuild gte 1>> + Cow Transform: <<link [[Reset|$passage]]>><<cowTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> + <<if $birdbuild gte 1>> + Bird Transform: <<link [[Reset|$passage]]>><<harpyTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> + <<if $foxbuild gte 1>> + Fox Transform: <<link [[Reset|$passage]]>><<foxTransform 99>><<updatesidebarimg>><</link>><br> + <</if>> +<</widget>> diff --git a/game/base-system/overlays/cheats.twee b/game/base-system/overlays/cheats.twee index ce02acc09d..daff3d9fca 100644 --- a/game/base-system/overlays/cheats.twee +++ b/game/base-system/overlays/cheats.twee @@ -1366,6 +1366,8 @@ <span class="description">Only one animal and one divine transformation at a time.</span> <br> Angel Transform: <<link "Set">><<angelTransform>><<updatesidebarimg>><</link>> / <<link "Clear">><<angelTransform 99>><<updatesidebarimg>><</link>><br> + Fallen Angel Transform: <<link "Set">><<fallenButNotOut 98>><<updatesidebarimg>><</link>> / <<link "Clear">><<fallenButNotOut 99>><<updatesidebarimg>><</link>><br> + Fallen Angel Plus Transform: <<link "Set">><<fallenButNotOut>><<updatesidebarimg>><</link>> / <<link "Clear">><<fallenButNotOut 99>><<updatesidebarimg>><</link>><br> Demon Transform: <<link "Set">><<demonTransform>><<updatesidebarimg>><</link>> / <<link "Clear">><<demonTransform 99>><<updatesidebarimg>><</link>><br> Wolf Transform: <<link "Set">><<wolfTransform>><<updatesidebarimg>><</link>> / <<link "Clear">><<wolfTransform 99>><<updatesidebarimg>><</link>><br> Cat Transform: <<link "Set">><<catTransform>><<updatesidebarimg>><</link>> / <<link "Clear">><<catTransform 99>><<updatesidebarimg>><</link>><br> diff --git a/game/base-system/transformations.twee b/game/base-system/transformations.twee index c446a94f13..8cfe62e7bc 100644 --- a/game/base-system/transformations.twee +++ b/game/base-system/transformations.twee @@ -305,6 +305,7 @@ <<set $fallenangel to 2>> <<set $transformationParts.fallenAngel.halo to ($transformationParts.angel.halo is "hidden" ? "default" : $transformationParts.angel.halo)>> <<set $transformationParts.fallenAngel.wings to "default">> + <<set $fallenangeltf to 1>> <<earnFeat "Fallen Angel">> <<elseif $angel gte 4>> <span class="red">Your halo shatters and fades.</span> @@ -328,18 +329,41 @@ <<case 3>> <<if $fallenbuild gte 30>> <<set $fallenangel to 4>> + <<set $fallenangelplustf to 1>> <span class="gold">The familiar feeling of soft feathers fills you with hope.</span> <<set $transformationParts.fallenAngel.wings to "fallenplus">> <<if $transformationParts.bird.wings is "default">> <<set $transformationParts.fallenAngel.wings to "hidden">> <</if>> <</if>> + <<case 98>> + <<clearDivineTransformations>> + <<set $specialTransform to 1>> + <<set $fallenangelplustf to 1>> + <<set $fallenangel to 2>> + <<set $angelbuild to 0>> + <<set $transformationParts.fallenAngel.halo to "default">> + <<set $transformationParts.fallenAngel.wings to "default">> + <<if $transformationParts.bird.wings is "default">> + <<set $transformationParts.fallenAngel.wings to "hidden">> + <</if>> <<case 99>> <<set $specialTransform to 0>> <<set $fallenangel to 0>> <<set $transformationParts.fallenAngel.halo to "disabled">> <<set $transformationParts.fallenAngel.wings to "disabled">> <</switch>> + <<else>> + <<clearDivineTransformations>> + <<set $specialTransform to 1>> + <<set $fallenangelplustf to 1>> + <<set $fallenangel to 4>> + <<set $angelbuild to 0>> + <<set $transformationParts.fallenAngel.halo to "default">> + <<set $transformationParts.fallenAngel.wings to "fallenplus">> + <<if $transformationParts.bird.wings is "default">> + <<set $transformationParts.fallenAngel.wings to "hidden">> + <</if>> <</if>> <</widget>> @@ -356,6 +380,7 @@ <<set $transformationParts.demon.horns to "default">> <<set $transformationParts.demon.tail to "default">> <<set $transformationParts.demon.wings to "default">> + <<set $demontf to 1>> <<earnFeat "Demon">> <<garousal>><<arousal 600>> <</widget>> @@ -422,6 +447,7 @@ <<if $transformationParts.bird.wings is "default">> <<set $transformationParts.angel.wings to "hidden">> <</if>> + <<set $angeltf to 1>> <<earnFeat "Angel">> <br><br> <<elseif $angelbuild lt 45>> @@ -446,6 +472,7 @@ <<else>> <<clearDivineTransformations>> <<set $specialTransform to 1>> + <<set $angeltf to 1>> <<set $angel to 6>> <<set $angelbuild to 50>> <<set $transformationParts.angel.halo to "default">> @@ -527,6 +554,7 @@ <<if $transformationParts.bird.wings is "default">> <<set $transformationParts.demon.wings to "hidden">> <</if>> + <<set $demontf to 1>> <<earnFeat "Demon">> <br><br> <<elseif $demonbuild lt 25>> @@ -555,6 +583,7 @@ <<else>> <<clearDivineTransformations>> <<set $specialTransform to 1>> + <<set $demontf to 1>> <<set $demon to 6>> <<set $demonbuild to 30>> <<set $transformationParts.demon.horns to "default">> @@ -635,6 +664,7 @@ <<set $wolfgirl to 6>> <span class="gold">Your bottom feels heavier than usual. You reach behind you and feel your new wolf tail.</span> <<set $transformationParts.wolf.tail to "default">> + <<set $wolftf to 1>> <<earnFeat "Wolf">> <br><br> <<elseif $wolfbuild lt 25>> @@ -663,6 +693,7 @@ <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> + <<set $wolftf to 1>> <<set $wolfgirl to 6>> <<set $wolfbuild to 100>> <<set $transformationParts.traits.fangs to "default">> @@ -736,6 +767,7 @@ <<set $cat to 6>> <span class="gold">Your bottom feels weighty, yet perfectly balanced. You reach behind and feel your new cat tail.</span> <<set $transformationParts.cat.tail to "default">> + <<set $cattf to 1>> <<earnFeat "Neko">> <br><br> <<elseif $catbuild lt 45>> @@ -811,6 +843,7 @@ <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> + <<set $cattf to 1>> <<set $cat to 6>> <<set $catbuild to 100>> <<set $transformationParts.traits.fangs to "default">> @@ -900,6 +933,7 @@ <<set $semen_max to 6000>> <<set $milk_max to 6000>> <<set $transformationParts.cow.tail to "default">> + <<set $cowtf to 1>> <<earnFeat "Cattle">> <span class="gold">Your bottom feels heavier than usual. You reach behind you and feel your new cow tail. You suppress the urge to moo.</span> <br><br> @@ -930,6 +964,7 @@ <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> + <<set $cowtf to 1>> <<set $cow to 6>> <<set $cowbuild to 100>> <<set $semen_max to 6000>> @@ -1021,6 +1056,7 @@ <<set $harpy to 6>> <span class="gold">You feel light as a feather. Wings caress your face. <<print ($pbdisable is "f" ? " You also notice that short, feathery hair has grown in your pubic area.":"")>></span> + <<set $harpytf to 1>> <<earnFeat "Harpy">> <<set $transformationParts.bird.wings to "default">> <<if $transformationParts.angel.wings is "default">> @@ -1083,6 +1119,7 @@ <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> + <<set $harpytf to 1>> <<set $harpy to 6>> <<set $birdbuild to 100>> <<set $transformationParts.bird.eyes to "default">> @@ -1185,6 +1222,7 @@ <<set $fox to 6>> <span class="gold">Your bottom feels heavier than usual. You give it a wiggle and feel your new fox tail. It's extremely comforting to touch.</span> <<set $transformationParts.fox.tail to "default">> + <<set $foxtf to 1>> <<earnFeat "Fox">> <br><br> <<elseif $foxbuild lt 25>> @@ -1214,6 +1252,7 @@ <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> + <<set $foxtf to 1>> <<set $fox to 6>> <<set $foxbuild to 100>> <<set $transformationParts.traits.fangs to "default">> diff --git a/game/base-system/widgets.twee b/game/base-system/widgets.twee index 055e6a8d33..a2262c9d04 100644 --- a/game/base-system/widgets.twee +++ b/game/base-system/widgets.twee @@ -5041,3 +5041,71 @@ <<set $animalsemenswallowedstat += $args[0]>> <</if>> <</widget>> + +<<widget "clearcheeks">> + <<set $transformationParts.wolf.cheeks = "disabled">> + <<set $transformationParts.fox.cheeks = "disabled">> +<</widget>> + +<<widget "clearhalo">> + <<set $transformationParts.angel.halo = "disabled">> + <<set $transformationParts.fallenAngel.halo = "disabled">> +<</widget>> + +<<widget "clearears">> + <<set $transformationParts.cat.ears = "disabled">> + <<set $transformationParts.cow.ears = "disabled">> + <<set $transformationParts.wolf.ears = "disabled">> + <<set $transformationParts.fox.ears = "disabled">> +<</widget>> + +<<widget "cleareyes">> + <<set $transformationParts.bird.eyes = "disabled">> +<</widget>> + +<<widget "clearhorns">> + <<if $transformationParts.demon.horns !== "disabled" and $transformationParts.cow.horns !== "disabled">> + <<set $transformationParts.demon.horns = "disabled">> + <<set $transformationParts.cow.horns = "disabled">> + <</if>> + <<if $transformationParts.cow.horns == "disabled">> + <<set $transformationParts.demon.horns = "disabled">> + <</if>> + <<if $transformationParts.demon.horns == "disabled">> + <<set $transformationParts.cow.horns = "disabled">> + <</if>> +<</widget>> + +<<widget "cleartail">> + <<if $transformationParts.demon.tail !== "disabled" and $transformationParts.cat.tail !== "disabled">> + <<set $transformationParts.demon.tail = "disabled">> + <<set $transformationParts.bird.tail = "disabled">> + <</if>> + <<if $transformationParts.cat.tail == "disabled">> + <<set $transformationParts.demon.tail = "disabled">> + <</if>> + <<if $transformationParts.demon.tail == "disabled">> + <<set $transformationParts.cat.tail = "disabled">> + <</if>> + <<set $transformationParts.cow.tail = "disabled">> + <<set $transformationParts.wolf.tail = "disabled">> + <<set $transformationParts.bird.tail = "disabled">> + <<set $transformationParts.fox.tail = "disabled">> +<</widget>> + +<<widget "clearwings">> + <<if $transformationParts.demon.wings !== "disabled" and $transformationParts.bird.wings !== "disabled">> + <<set $transformationParts.demon.wings = "disabled">> + <<set $transformationParts.bird.wings = "disabled">> + <<set $birdFly to 0>> + <</if>> + <<set $transformationParts.angel.wings = "disabled">> + <<if $transformationParts.bird.wings == "disabled">> + <<set $transformationParts.demon.wings = "disabled">> + <</if>> + <<set $transformationParts.fallenAngel.wings = "disabled">> + <<if $transformationParts.demon.wings == "disabled">> + <<set $transformationParts.bird.wings = "disabled">> + <<set $birdFly to 0>> + <</if>> +<</widget>> -- GitLab