diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index b1f2e1887b05c950e6a98e50a6208f783395dffd..5f11b45370b0ec796f4801a526156153424a359e 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -23157,4 +23157,120 @@ window.getHighestPorn = function(slave) { } return max; -} \ No newline at end of file +} + +/*:: Art JS [script]*/ + +/* +Displays assistant images. Currently passage-based. +sizePlacement: Image size/center. + 3: Large, right. Example: description. + 2: Medium, right. Example: random events. +*/ +window.AssistantArtRendered = function AssistantArtRendered(sizePlacement) { + const V = State.variables; + let fileName = ""; + + if (V.imageChoice === 0) { + switch (V.assistantAppearance) { + case "monstergirl": + fileName = "'resources/renders/assistant monstergirl.png'";; + break; + case "shemale": + fileName = "'resources/renders/assistant shemale.png'"; + break; + case "amazon": + fileName = "'resources/renders/assistant amazon.png'"; + break; + case "businesswoman": + fileName = "'resources/renders/assistant businesswoman.png'"; + break; + case "goddess": + fileName = "'resources/renders/assistant goddess.png'"; + break; + case "schoolgirl": + fileName = "'resources/renders/assistant schoolgirl.png'"; + break; + default: + fileName = "'resources/renders/assistant default.png'"; + } + if (sizePlacement === 3) { + fileName = `<img src=${fileName} style='float:right; border:3px hidden'/>`; + } else { + fileName = `<img src=${fileName} style='float:right; border:3px hidden' width='300' height='300'/>`; + } + } + return fileName; +}; + +window.ArtControlRendered = function ArtControlRendered(slave, sizePlacement) { + const V = State.variables; + let fileName = ""; + let r = ""; + + if (slave.vagina > -1) { + if (slave.dick > 0) { + if (slave.balls > 0) { + fileName = "futanari"; + } else { + fileName = "herm"; + } + } else { + fileName = "female"; + } + } else { + if (slave.balls > 0) { + fileName = "shemale"; + } else { + fileName = "gelding"; + } + } + if (slave.belly > 1500) { + fileName = `preg ${fileName}`; + } + if (slave.boobs < 400) { + fileName = `${fileName} small`; + } else if (slave.boobs < 800) { + fileName = `${fileName} big`; + } else if (slave.boobs < 6000) { + fileName = `${fileName} huge`; + } else { + fileName = `${fileName} hyper`; + } + if (slave.muscles > 30) { + fileName = `${fileName} muscle`; + } else { + fileName = `${fileName} soft`; + } + if (slave.fuckdoll > 0) { + fileName = `${fileName} rebellious`; + } else if (slave.devotion <= 20) { + if (slave.trust < -20) { + fileName = `${fileName} reluctant`; + } else { + fileName = `${fileName} rebellious`; + } + } else if (slave.fetish === "mindbroken") { + fileName = `${fileName} reluctant`; + } else if (slave.devotion <= 50 || slave.fetishKnown !== 1 || V.seeMainFetishes === 0 && sizePlacement < 2) { + fileName = `${fileName} obedient`; + } else { + if (slave.fetish === "none") { + fileName = `${fileName} obedient`; + } else { + fileName = `${fileName} ${slave.fetish}`; + } + } + + fileName = `'resources/renders/${fileName}.png'`; + if (sizePlacement === 3) { + r = `<img src=${fileName} style='float:right; border:3px hidden'>`; + } else if (sizePlacement === 2) { + r = `<img src=${fileName} style='float:right; border:3px hidden' width='300' height='300'>`; + } else if (sizePlacement === 1) { + r = `<img src=${fileName} style='float:left; border:3px hidden' width='150' height='150'>`; + } else { + r = `<img src=${fileName} style='float:left; border:3px hidden' width='120' height='120'>`; + } + return r; +}; diff --git a/src/art/artWidgets.tw b/src/art/artWidgets.tw index 27a152a7f6aef4cd2ca6ddfbef4c65e095b09971..acddbd12af62f046ebb8b61ad0df99dd4d1f37c2 100644 --- a/src/art/artWidgets.tw +++ b/src/art/artWidgets.tw @@ -1,42 +1,5 @@ :: art widgets [nobr widget] -/% -Call as <<AssistantArt>> -Displays assistant images. Currently passage-based. -$args[0]: Image size/center. - 3: Large, right. Example: description. - 2: Medium, right. Example: random events. -%/ -<<widget "AssistantArt">> - -<<if $imageChoice == 0>> /* RENDERED IMAGES BY SHOKUSHU */ - -<<switch $assistantAppearance>> -<<case "monstergirl">> - <<set _fileName = "'resources/renders/assistant monstergirl.png' ">> -<<case "shemale">> - <<set _fileName = "'resources/renders/assistant shemale.png' ">> -<<case "amazon">> - <<set _fileName = "'resources/renders/assistant amazon.png' ">> -<<case "businesswoman">> - <<set _fileName = "'resources/renders/assistant businesswoman.png' ">> -<<case "goddess">> - <<set _fileName = "'resources/renders/assistant goddess.png' ">> -<<case "schoolgirl">> - <<set _fileName = "'resources/renders/assistant schoolgirl.png' ">> -<<default>> - <<set _fileName = "'resources/renders/assistant default.png' ">> -<</switch>> -<<if $args[1] == 3>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> -<<else>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> -<</if>> - -<</if>> /* CLOSES IMAGE CHOICE */ - -<</widget>> - /% Call as <<SlaveArt>> Displays slave images. Currently passage-based. @@ -598,70 +561,7 @@ vector art added later is drawn over previously added art <<include Art_Vector_Revamped_Control_>> <<else>> /* RENDERED IMAGES BY SHOKUSHU */ -<<if $args[0].vagina > -1>> - <<if $args[0].dick > 0>> - <<if $args[0].balls > 0>> - <<set _fileName = "futanari">> - <<else>> - <<set _fileName = "herm">> - <</if>> - <<else>> - <<set _fileName = "female">> - <</if>> -<<else>> - <<if $args[0].balls > 0>> - <<set _fileName = "shemale">> - <<else>> - <<set _fileName = "gelding">> - <</if>> -<</if>> -<<if $args[0].belly > 1500>> - <<set _fileName = "preg " + _fileName>> -<</if>> -<<if $args[0].boobs < 400>> - <<set _fileName = _fileName + " small">> -<<elseif $args[0].boobs < 800>> - <<set _fileName = _fileName + " big">> -<<elseif $args[0].boobs < 6000>> - <<set _fileName = _fileName + " huge">> -<<else>> - <<set _fileName = _fileName + " hyper">> -<</if>> -<<if $args[0].muscles > 30>> - <<set _fileName = _fileName + " muscle">> -<<else>> - <<set _fileName = _fileName + " soft">> -<</if>> -<<if $args[0].fuckdoll > 0>> - <<set _fileName = _fileName + " rebellious">> -<<elseif $args[0].devotion <= 20>> - <<if $args[0].trust < -20>> - <<set _fileName = _fileName + " reluctant">> - <<else>> - <<set _fileName = _fileName + " rebellious">> - <</if>> -<<elseif $args[0].fetish == "mindbroken">> - <<set _fileName = _fileName + " reluctant">> -<<elseif $args[0].devotion <= 50 || $args[0].fetishKnown != 1 || ($seeMainFetishes == 0 && $args[1] < 2)>> - <<set _fileName = _fileName + " obedient">> -<<else>> - <<if $args[0].fetish == "none">> - <<set _fileName = _fileName + " obedient">> - <<else>> - <<set _fileName = _fileName + " " + $args[0].fetish>> - <</if>> -<</if>> - -<<set _fileName = "'resources/renders/" + _fileName + ".png' ">> -<<if $args[1] == 3>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden'/>">> -<<elseif $args[1] == 2>> - <<print "<img src=" + _fileName + "style='float:right; border:3px hidden' width='300' height='300'/>">> -<<elseif $args[1] == 1>> - <<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='150' height='150'/>">> -<<else>> - <<print "<img src=" + _fileName + "style='float:left; border:3px hidden' width='120' height='120'/>">> -<</if>> + <<= ArtControlRendered($args[0], $args[1])>> <</if>> /* CLOSES IMAGE CHOICE */ diff --git a/src/js/artJS.tw b/src/js/artJS.tw new file mode 100644 index 0000000000000000000000000000000000000000..3405c98d0c18b2451b836d861e590780b38c988a --- /dev/null +++ b/src/js/artJS.tw @@ -0,0 +1,115 @@ +:: Art JS [script] + +/* +Displays assistant images. Currently passage-based. +sizePlacement: Image size/center. + 3: Large, right. Example: description. + 2: Medium, right. Example: random events. +*/ +window.AssistantArtRendered = function AssistantArtRendered(sizePlacement) { + const V = State.variables; + let fileName = ""; + + if (V.imageChoice === 0) { + switch (V.assistantAppearance) { + case "monstergirl": + fileName = "'resources/renders/assistant monstergirl.png'";; + break; + case "shemale": + fileName = "'resources/renders/assistant shemale.png'"; + break; + case "amazon": + fileName = "'resources/renders/assistant amazon.png'"; + break; + case "businesswoman": + fileName = "'resources/renders/assistant businesswoman.png'"; + break; + case "goddess": + fileName = "'resources/renders/assistant goddess.png'"; + break; + case "schoolgirl": + fileName = "'resources/renders/assistant schoolgirl.png'"; + break; + default: + fileName = "'resources/renders/assistant default.png'"; + } + if (sizePlacement === 3) { + fileName = `<img src=${fileName} style='float:right; border:3px hidden'/>`; + } else { + fileName = `<img src=${fileName} style='float:right; border:3px hidden' width='300' height='300'/>`; + } + } + return fileName; +}; + +window.ArtControlRendered = function ArtControlRendered(slave, sizePlacement) { + const V = State.variables; + let fileName = ""; + let r = ""; + + if (slave.vagina > -1) { + if (slave.dick > 0) { + if (slave.balls > 0) { + fileName = "futanari"; + } else { + fileName = "herm"; + } + } else { + fileName = "female"; + } + } else { + if (slave.balls > 0) { + fileName = "shemale"; + } else { + fileName = "gelding"; + } + } + if (slave.belly > 1500) { + fileName = `preg ${fileName}`; + } + if (slave.boobs < 400) { + fileName = `${fileName} small`; + } else if (slave.boobs < 800) { + fileName = `${fileName} big`; + } else if (slave.boobs < 6000) { + fileName = `${fileName} huge`; + } else { + fileName = `${fileName} hyper`; + } + if (slave.muscles > 30) { + fileName = `${fileName} muscle`; + } else { + fileName = `${fileName} soft`; + } + if (slave.fuckdoll > 0) { + fileName = `${fileName} rebellious`; + } else if (slave.devotion <= 20) { + if (slave.trust < -20) { + fileName = `${fileName} reluctant`; + } else { + fileName = `${fileName} rebellious`; + } + } else if (slave.fetish === "mindbroken") { + fileName = `${fileName} reluctant`; + } else if (slave.devotion <= 50 || slave.fetishKnown !== 1 || V.seeMainFetishes === 0 && sizePlacement < 2) { + fileName = `${fileName} obedient`; + } else { + if (slave.fetish === "none") { + fileName = `${fileName} obedient`; + } else { + fileName = `${fileName} ${slave.fetish}`; + } + } + + fileName = `'resources/renders/${fileName}.png'`; + if (sizePlacement === 3) { + r = `<img src=${fileName} style='float:right; border:3px hidden'>`; + } else if (sizePlacement === 2) { + r = `<img src=${fileName} style='float:right; border:3px hidden' width='300' height='300'>`; + } else if (sizePlacement === 1) { + r = `<img src=${fileName} style='float:left; border:3px hidden' width='150' height='150'>`; + } else { + r = `<img src=${fileName} style='float:left; border:3px hidden' width='120' height='120'>`; + } + return r; +}; diff --git a/src/pregmod/assistantAppearancePackTwo.tw b/src/pregmod/assistantAppearancePackTwo.tw index a8cb264ecbdf988cae91c9849f151673e55cf16e..7be9a3cb85ad394aa2f420006bc2072d2d44ef93 100644 --- a/src/pregmod/assistantAppearancePackTwo.tw +++ b/src/pregmod/assistantAppearancePackTwo.tw @@ -1,6 +1,6 @@ :: Assistant Appearance Pack Two [nobr] -<<if $seeImages == 1>><<AssistantArt 3>><</if>> +<<if $seeImages == 1>><<= AssistantArtRendered(3)>><</if>> "Cool! New appearances to play around with!" Your assistant happily chimes. "Let's see what's inside! This looks heavenly..." She hunches forward as a large pair of white feathered wings extend from her upper back. She takes several experimental flaps before taking to the sky. "I feel positively radiant! Maybe a smaller version will be more to your liking?" She loses both height and wingspan until she stands roughly equivalent to <<= heightToEitherUnit(120)>>. She flutters around cutely. "This is neat, I'm like cupid. Want me to hook you up with anyone?" She winks as her wings become bat-like and a pair of cute little nubs appears on her head. "Or maybe you'd just like to play with me instead." The impish figure flirts, before landing and blossoming into a stunning woman. "You know a succubus can take her lover's ideal form." She runs her hands down her sides and to her crotch. <<if $seeDicks != 0>>She begins rubbing her clit as it steadily grows into a meaty cock. "Or an incubus, for the ladies." She returns to her previous form. <</if>>"Says here it comes with 'bonus novice witch' too. Neat. What's this though? It looks like an appeara" diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 883921dd3a77cd2ca564f066914aec58acd23b07..53383d3a98827193becba08f9e6d1dc7c8af2c2f 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -2526,7 +2526,7 @@ running her tongue over her<<if $activeSlave.lips > 40>> whorish<<elseif $active <<case "PA flirting">> -<<if $seeImages == 1>><<AssistantArt 2>><</if>> +<<if $seeImages == 1>><<= AssistantArtRendered(2)>><</if>> Partway through <<EventNameLink $activeSlave>>'s weekly inspection, you have to leave for a moment to deal with a minor matter. Inspecting such a devoted slave is a pleasure, but you tear yourself away. Such sacrifices must be made. <br><br> diff --git a/src/uncategorized/assistantEvents.tw b/src/uncategorized/assistantEvents.tw index 4440b557e226b63493eb0515e90ebe5c7e180b41..4b6873329a55c26975e291aa37a2523c9d05cabd 100644 --- a/src/uncategorized/assistantEvents.tw +++ b/src/uncategorized/assistantEvents.tw @@ -4,7 +4,7 @@ <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> -<<if $seeImages == 1>><<AssistantArt 3>><</if>> +<<if $seeImages == 1>><<= AssistantArtRendered(3)>><</if>> <<switch $Event>> <<case "assistant">> diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw index 51d1502d6b984a3e31536c5716b1a62e58637aa6..6c64aecee43f062b2ed125f48027ba0ef7ce2268 100644 --- a/src/uncategorized/personalAssistantOptions.tw +++ b/src/uncategorized/personalAssistantOptions.tw @@ -5,7 +5,7 @@ <<if $marketAssistantLimit>><<set $marketAssistantLimit to Math.clamp($marketAssistantLimit, 10000, 10000000)>><</if>> -<<if $seeImages == 1>><<AssistantArt 3>><</if>> +<<if $seeImages == 1>><<= AssistantArtRendered(3)>><</if>> Seated at your desk, you glance at the visual representation of $assistantName, down in one corner of your desk's glass top.