From fa8539178fb1832d1213236811f83cb8da7282c8 Mon Sep 17 00:00:00 2001 From: Pregmodder <pregmodder@gmail.com> Date: Sat, 20 Mar 2021 18:49:35 -0400 Subject: [PATCH] add lewd crest --- src/cheats/mod_EditChildCheatNew.tw | 1 + src/cheats/mod_EditInfantCheatNew.tw | 1 + src/cheats/mod_editSlaveCheatNew.tw | 1 + src/events/story/rival/pRivalryActions.js | 5 ++++ .../bodyModification/bodyModification.js | 3 +++ src/js/modification.js | 23 +++++++++++++++++++ src/js/rulesAssistantOptions.js | 2 +- src/npc/children/longChildDescription.js | 3 +++ src/npc/descriptions/describeTattoos.js | 3 +++ src/npc/interaction/fButt.tw | 2 ++ src/npc/interaction/fPCImpreg.tw | 5 ++++ src/npc/interaction/fVagina.tw | 2 ++ src/npc/interaction/fondleDick.tw | 2 ++ src/npc/interaction/fondleVagina.tw | 2 ++ src/uncategorized/RESS.tw | 4 ++-- 15 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/cheats/mod_EditChildCheatNew.tw b/src/cheats/mod_EditChildCheatNew.tw index b256fe1590d..4ae66c67063 100644 --- a/src/cheats/mod_EditChildCheatNew.tw +++ b/src/cheats/mod_EditChildCheatNew.tw @@ -2715,6 +2715,7 @@ <<radiobutton "$tempSlave.vaginaTat" "counting">>Counting <<radiobutton "$tempSlave.vaginaTat" "advertisements">>Advertisements <<radiobutton "$tempSlave.vaginaTat" "rude words">>Rude Words + <<radiobutton "$tempSlave.vaginaTat" "lewd crest">>Lewd Crest <br>''Custom vagina tattoo '' <<textbox "$tempSlave.vaginaTat" $tempSlave.vaginaTat>> <br> ''__Anus Tattoo__ ( diff --git a/src/cheats/mod_EditInfantCheatNew.tw b/src/cheats/mod_EditInfantCheatNew.tw index 0adbc5461e7..b3b21515221 100644 --- a/src/cheats/mod_EditInfantCheatNew.tw +++ b/src/cheats/mod_EditInfantCheatNew.tw @@ -2717,6 +2717,7 @@ <<radiobutton "$tempSlave.vaginaTat" "counting">>Counting <<radiobutton "$tempSlave.vaginaTat" "advertisements">>Advertisements <<radiobutton "$tempSlave.vaginaTat" "rude words">>Rude Words + <<radiobutton "$tempSlave.vaginaTat" "lewd crest">>Lewd Crest <br>''Custom vagina tattoo '' <<textbox "$tempSlave.vaginaTat" $tempSlave.vaginaTat>> <br> ''__Anus Tattoo__ ( diff --git a/src/cheats/mod_editSlaveCheatNew.tw b/src/cheats/mod_editSlaveCheatNew.tw index 7d3ffea9230..2f69c9ed095 100644 --- a/src/cheats/mod_editSlaveCheatNew.tw +++ b/src/cheats/mod_editSlaveCheatNew.tw @@ -4647,6 +4647,7 @@ <<radiobutton "$tempSlave.vaginaTat" "counting">>Counting <<radiobutton "$tempSlave.vaginaTat" "advertisements">>Advertisements <<radiobutton "$tempSlave.vaginaTat" "rude words">>Rude Words + <<radiobutton "$tempSlave.vaginaTat" "lewd crest">>Lewd Crest <br>''Custom vagina tattoo '' <<textbox "$tempSlave.vaginaTat" $tempSlave.vaginaTat>> <br> ''__Anus Tattoo__ ( diff --git a/src/events/story/rival/pRivalryActions.js b/src/events/story/rival/pRivalryActions.js index baa07c72f8f..3f28b239a9b 100644 --- a/src/events/story/rival/pRivalryActions.js +++ b/src/events/story/rival/pRivalryActions.js @@ -781,6 +781,7 @@ App.Events.pRivalryActions = function() { V.hostage.counter.vaginal += 100; V.hostage.counter.anal += 100; V.hostage.counter.mammary += 100; + V.hostage.vaginaTat = "lewd crest"; V.hostage.behavioralFlaw = "none"; V.hostage.sexualFlaw = "none"; V.hostage.behavioralQuirk = "adores men"; @@ -804,6 +805,7 @@ App.Events.pRivalryActions = function() { V.hostage.counter.vaginal += 100; V.hostage.counter.anal += 100; V.hostage.counter.mammary += 100; + V.hostage.vaginaTat = "lewd crest"; V.hostage.behavioralFlaw = "none"; V.hostage.sexualFlaw = "none"; V.hostage.behavioralQuirk = "adores men"; @@ -831,6 +833,7 @@ App.Events.pRivalryActions = function() { if (V.seeDicks !== 0) { V.hostage.dick = 1; } + V.hostage.vaginaTat = "lewd crest"; V.hostage.behavioralFlaw = "none"; V.hostage.sexualFlaw = "none"; V.hostage.behavioralQuirk = "adores men"; @@ -994,6 +997,7 @@ App.Events.pRivalryActions = function() { V.hostage.sexualFlaw = "crude"; V.hostage.counter.vaginal += 35; V.hostage.vagina = 3; + V.hostage.vaginaTat = "lewd crest"; r.push(`giggling and flirting while ${his} body is measured and ${his} weight is taken; 280 tallies adorn ${his} soft belly. "108 kilos, getting there. Oh don't make that face, there's plenty of food left."`); switch (V.hostage.fetish) { case "cumslut": @@ -1102,6 +1106,7 @@ App.Events.pRivalryActions = function() { V.hostage.behavioralFlaw = "none"; V.hostage.behavioralQuirk = "confident"; V.hostage.sexualQuirk = "perverted"; + V.hostage.vaginaTat = "lewd crest"; r.push(`struggling to solve a puzzle to gain access to the extra large dildo cupboard.`); break; case "Petite Admiration": diff --git a/src/facilities/bodyModification/bodyModification.js b/src/facilities/bodyModification/bodyModification.js index e361e68c80d..864f568f81a 100644 --- a/src/facilities/bodyModification/bodyModification.js +++ b/src/facilities/bodyModification/bodyModification.js @@ -396,6 +396,9 @@ App.UI.bodyModification = function(slave, cheat = false) { "possessive", "paternalist", ]); + if (slave.vaginaTat === 0) { + tattooChoiceNames.add("lewd crest"); + } if (slave.anusTat === 0) { tattooChoiceNames.add("bleached"); } diff --git a/src/js/modification.js b/src/js/modification.js index cb297705c00..d203182adf2 100644 --- a/src/js/modification.js +++ b/src/js/modification.js @@ -330,6 +330,29 @@ App.Medicine.Modification.setTattoo = function(slave, location, design, cheat) { const {He, he, His, his, him} = getPronouns(slave); const {s, ss, x, c, say, title: Master} = getEnunciation(slave); let r = ` `; + if (location === "vagina" && design === "lewd crest") { + if (canSee(slave)) { + if (slave.fetish === "pregnancy") { + r += `${He} smiles, pleased at the attention ${his} womb is getting.`; + } else if (slave.fetish === "submissive") { + r += `${He} flushes, understanding that ${he} has been marked for debauchery.`; + } else if (slave.fetish === "humiliation") { + r += `${He} smiles, pleased that ${he}'s been marked erotic.`; + } else if (slave.devotion > 50) { + r += `${He} smiles, pleased at the mark of your attention to ${his} body. "Thank you, ${Master}," ${he} ${say}s devotedly. `); + r += Spoken(slave, `"I love you and I'll serve you with my body as best I can."`); + } else if (slave.devotion > 20) { + r += `${He} stares, torn between admiration at the intricate design and realization that ${his} abdomen has been permanently tattooed. `; + r += `"Thank you, ${Master}," ${he} ${say}s, taking refuge in propriety.`); + r += Spoken(slave, `"Um, d-does this mean I'm even more of a, um, s-slut now?" `); + r += `${he} asks hesitantly, not sounding very enthusiastic.`; + } else if (slave.trust < -20) { + r += `${He} stares, looking sad as the meaning of a permanent display of ${his} status as lewd slut sinks in. After a short pause ${he} remembers ${his} duties and stammers, "T-thank you, ${Master}." After a while longer ${he} turns ${his} head away, clearly not wanting to dwell on how ${his} body is being branded to attract sexual attention.`; + } else { + r += `${He} stares, horrified at the lewd crest that now adorns ${his} lower belly.`; + } + } + } if (location === "anus" && design !== 0) { if (canSee(slave) && canTalk(slave)) { const anus = (function(s) { diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index bfdb5062d2b..502f4113325 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -3781,7 +3781,7 @@ App.RA.options = (function() { class AbdomenTattooList extends ListSelector { constructor() { - super("Abdomen tattoos", commonTattoos()); + super("Abdomen tattoos", commonTattoos().concat([['lewd crest']])); this.setValue(current_rule.set.vaginaTat); this.onchange = (value) => current_rule.set.vaginaTat = value; } diff --git a/src/npc/children/longChildDescription.js b/src/npc/children/longChildDescription.js index 60638365e9d..7d55945a3e8 100644 --- a/src/npc/children/longChildDescription.js +++ b/src/npc/children/longChildDescription.js @@ -5151,6 +5151,9 @@ App.Facilities.Nursery.LongChildDescription = function(child, {market = 0, event case "paternalist": r += `${His} abdomen is tattooed with a downward-pointing arrow which reads 'Let's come together.' `; break; + case "lewd crest": + r += `${His} lower abdomen is tattooed with a stylized silhouette that evokes the shape of ${child.ovaries || child.mpreg ? `${his}` : `a`} womb. `; + break; default: r += `${child.vaginaTat}`; break; diff --git a/src/npc/descriptions/describeTattoos.js b/src/npc/descriptions/describeTattoos.js index 3a12d0be288..dc0b6712c17 100644 --- a/src/npc/descriptions/describeTattoos.js +++ b/src/npc/descriptions/describeTattoos.js @@ -725,6 +725,9 @@ App.Desc.tattoo = function(slave, surface) { case "paternalist": r.push(`${His} abdomen is tattooed with a downward-pointing arrow which reads 'Let's come together.'`); break; + case "lewd crest": + r.push(`${His} lower abdomen is tattooed with a stylized silhouette that evokes the shape of ${slave.ovaries || slave.mpreg ? `${his}` : `a`} womb.`); + break; default: r.push(pronounsForSlaveProp(slave, slave.vaginaTat)); break; diff --git a/src/npc/interaction/fButt.tw b/src/npc/interaction/fButt.tw index 158c85cb9b3..093304ad8ea 100644 --- a/src/npc/interaction/fButt.tw +++ b/src/npc/interaction/fButt.tw @@ -25,6 +25,8 @@ You call $him over so you can The tattoos on $his abdomen nicely illustrate what you mean to do to $him. <<elseif (getSlave($AS).vaginaTat == "degradation")>> The tattoos on $his abdomen are asking you to, after all. + <<elseif (getSlave($AS).vaginaTat == "lewd crest")>> + The crest on $his abdomen screams debauchery and implores you to use $him. <</if>> <</if>> diff --git a/src/npc/interaction/fPCImpreg.tw b/src/npc/interaction/fPCImpreg.tw index 8de438ffdef..96a8826dc25 100644 --- a/src/npc/interaction/fPCImpreg.tw +++ b/src/npc/interaction/fPCImpreg.tw @@ -30,6 +30,9 @@ You call $him over so you can <<else>> asshole. <</if>> + <<if (getSlave($AS).vaginaTat == "lewd crest")>> + The crest on $his abdomen eagerly awaits a womb stuffed with cum, and who are you to deny its request? + <</if>> <<else>> <<if (getSlave($AS).vagina > 2)>> fuck $his gaping, fertile cunt. @@ -50,6 +53,8 @@ You call $him over so you can The tattoos on $his abdomen nicely illustrate what you mean to do to $him. <<elseif (getSlave($AS).vaginaTat == "degradation")>> The tattoos on $his abdomen ask you to, after all. + <<elseif (getSlave($AS).vaginaTat == "lewd crest")>> + The crest on $his abdomen eagerly awaits a womb stuffed with cum. <</if>> <<if getSlave($AS).clit == 1>> diff --git a/src/npc/interaction/fVagina.tw b/src/npc/interaction/fVagina.tw index 2dc4f12c77e..ce7f8a76e85 100644 --- a/src/npc/interaction/fVagina.tw +++ b/src/npc/interaction/fVagina.tw @@ -24,6 +24,8 @@ You call $him over so you can The tattoos on $his abdomen nicely illustrate what you mean to do to $him. <<elseif (getSlave($AS).vaginaTat == "degradation")>> The tattoos on $his abdomen ask you to, after all. +<<elseif (getSlave($AS).vaginaTat == "lewd crest")>> + The crest on $his abdomen screams debauchery and implores you to use $him. <</if>> <<if getSlave($AS).devotion <= 20>> diff --git a/src/npc/interaction/fondleDick.tw b/src/npc/interaction/fondleDick.tw index 1a2bce20b08..1542b6e2950 100644 --- a/src/npc/interaction/fondleDick.tw +++ b/src/npc/interaction/fondleDick.tw @@ -49,6 +49,8 @@ and <<if (getSlave($AS).vaginaTat == "tribal patterns")>> The tattoos on $his abdomen certainly draw attention there. +<<elseif (getSlave($AS).vaginaTat == "lewd crest")>> + The crest on $his abdomen invokes lewd thoughts, after all. <</if>> <<if (getSlave($AS).vaginaPiercing > 1) && (getSlave($AS).dick != 0)>> diff --git a/src/npc/interaction/fondleVagina.tw b/src/npc/interaction/fondleVagina.tw index 212b808f98e..d543aa858e8 100644 --- a/src/npc/interaction/fondleVagina.tw +++ b/src/npc/interaction/fondleVagina.tw @@ -19,6 +19,8 @@ You call $him over so you can fondle $his <<if (getSlave($AS).vaginaTat == "tribal patterns")>> The tattoos on $his abdomen certainly draw attention there. +<<elseif (getSlave($AS).vaginaTat == "lewd crest")>> + The crest on $his abdomen invokes lewd thoughts, after all. <</if>> <<if (getSlave($AS).vagina != -1)>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 28ea635f285..fd8a248a6d6 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -11254,8 +11254,8 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look. <<else>> Once you finish $his new tattoo, you describe it to $him in detail. $He pauses for a moment, <</if>> - a curiously mixed expression on $his face. This is $his life now; it's permanently written on $him, and @@.hotpink;$he knows it.@@ - <<set $activeSlave.vaginaTat = "degradation">> + a curiously mixed expression on $his face. This is $his life now; it's permanently a part of $him, and @@.hotpink;$he knows it.@@ + <<set $activeSlave.vaginaTat = "lewd crest">> <</if>> <<elseif ($activeSlave.fetish == "dom") && ($activeSlave.fetishKnown == 1)>> activate the ink gun, its low buzzing drawing a moan of anticipation out of $activeSlave.slaveName. Working at a touchscreen, you exercise your artistic talents, making the side of $his face fierce with tribal patterns. Tattooing over such thin and sensitive skin is intensely painful, but $he tolerates it, permitting nothing but a low and continuing growl to escape. $He's obviously tired out by the pain when $he's finally allowed to rise, but $he <<if canSee($activeSlave)>>looks at $himself in the mirror<<elseif canHear($activeSlave)>>listens to your description<<else>>traces the design with $his fingertips<</if>> with @@.hotpink;obvious approval.@@ -- GitLab