diff --git a/src/js/sexActsJS.js b/src/js/sexActsJS.js index 5342a4f4806319a91ac81dce73412f06e9c77bb7..0141ff1c5e34ca98cdfe291eef3502c094f84623 100644 --- a/src/js/sexActsJS.js +++ b/src/js/sexActsJS.js @@ -495,6 +495,9 @@ globalThis.actX = function(slave, act, count = 1) { case "vaginal": V.vaginalTotal += count; break; + case "abortions": + V.abortionsTotal += count; + break; default: // Act was likely entered incorrectly. return; diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index 0c618cf415c7c736798fc10a71a7cf0188021928..96267e23f3b796db859ca7f40ed4fac0dc83bbc3 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -844,8 +844,7 @@ App.UI.newSlaveIntro = function(slave) { if (slave.breedingMark === 1) { r.push(`${He} knows ${his} duty in life and playfully splays ${himself} across your desk with ${his} legs spread wide. Unfortunately, ${he} must first be unwrapped before any breeding can begin, so for the time being, ${he} rights ${himself} and makes ${his} way to your crotch to show you just how much ${he} was worth the ¤.`); - slave.counter.oral++; - V.oralTotal++; + actX(slave, "oral"); } else { if (V.rulesAssistantAuto === 0) { div = document.createElement("div"); @@ -904,8 +903,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`with almost desperate enthusiasm. You stroke ${his} hair comfortingly as ${he} does, and inject the healing dose into ${his} shoulder. ${He} murmurs ${his} <span class="hotpink">gratitude</span> into your dick, but <span class="gold">fears</span> for ${his} pregnancy.`); slave.devotion += 4; slave.trust -= 10; - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); return r.join(" "); }, }); @@ -928,8 +926,7 @@ App.UI.newSlaveIntro = function(slave) { slave.devotion += 4; slave.trust += 3; TerminatePregnancy(slave); - slave.counter.abortions++; - V.abortionsTotal++; + actX(slave, "abortions"); return r.join(" "); }, }); @@ -1146,8 +1143,7 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`eating you out. ${He}'s badly discomfited but does ${his} best; ${he}'s <span class="mediumaquamarine">hopeful</span> that ${he} can do this, and slave life won't be so bad.`); slave.trust += 4; - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); return r.join(" "); }, }); @@ -1449,11 +1445,9 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`Witnessing this display of servitude from ${his} big ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } else { - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); } slave.devotion += 4; slave.trust += 4; @@ -1522,11 +1516,9 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`Witnessing this display of servitude from ${his} little ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } else { - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); } slave.devotion += 4; slave.trust += 4; @@ -1592,11 +1584,9 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`Witnessing this display of servitude from ${his} twin ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } else { - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); } slave.devotion += 4; slave.trust += 4; @@ -1659,11 +1649,9 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`<span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } else { - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); } slave.devotion += 4; slave.trust += 4; @@ -1726,11 +1714,9 @@ App.UI.newSlaveIntro = function(slave) { } r.push(`Witnessing this display of servitude from ${his} ${daughter2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") { - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } else { - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); } slave.devotion += 4; slave.trust += 4; @@ -1751,15 +1737,12 @@ App.UI.newSlaveIntro = function(slave) { r.push(`fake`); } r.push(`cock down ${his} throat as far as it will go. Over the course of the next several hours, you ensure that ${he} understands the fine points of nonconsensual oral${slave.vagina > -1 ? `, vaginal,`: ``} and anal intercourse as intimately as possible. When you're finally too tired to continue,you unshackle ${his} <span class="red">bruised and bloody body</span> and ask ${him} what ${he} learned. ${His} voice hoarse from the same brutal fucking that has gaped ${his} <span class="lime">asshole</span> ${(slave.vagina > -1) ? `and <span class="lime">pussy</span>`: ``}, ${he} hesitantly replies that ${he} has <span class="hotpink">learned a great deal about true dominance,</span> before fainting on the spot from a mixture of total exhaustion and pure terror. You've taught your student well.`); - slave.counter.oral += 15; - V.oralTotal += 15; + actX(slave, "oral", 15); slave.anus = 2; - slave.counter.anal += 15; - V.analTotal += 15; + actX(slave, "anal", 15); if (slave.vagina > -1) { slave.vagina = 2; - slave.counter.vaginal += 15; - V.vaginalTotal += 15; + actX(slave, "vaginal", 15); } if (isFertile(slave) && V.PC.dick > 0) { knockMeUp(slave, 100, 0, -1, true); @@ -1782,8 +1765,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`${him} until ${his} arousal overwhelms ${his} wariness of you. Once ${he}'s finally relaxed, you climb on top of ${him}, and gently ease`); if (V.PC.vagina > 0 && canPenetrate(slave)) { r.push(`your pussy onto ${his} cock. ${He} shudders and moan softly as you slide yourself up and down ${his} shaft with steadily increasing speed. You keep your eyes locked on ${hers} all the while, as ${his} expression shifts from bewilderment to acceptance to ecstasy, as ${he} soon shoots ${his} seed up into you. Afterwards, you slip ${his} softening cock out of you, climb off of ${him}, and leave the exhausted and overwhelmed slave${girl} on your desk as you attend to business elsewhere. You think ${he}'s <span class="orangered">going to like it here.</span>`); - slave.counter.penetrative++; - V.penetrativeTotal++; + actX(slave, "penetrative"); if (canImpreg(V.PC, slave)) { knockMeUp(V.PC, 100, 0, slave.ID, 1); } @@ -1809,15 +1791,13 @@ App.UI.newSlaveIntro = function(slave) { r.push(`cock out of ${him}, climb off of ${him}, and leave the exhausted and overwhelmed slave${girl} on your desk as you attend to business elsewhere. You think ${he}'s <span class="orangered">going to like it here.</span>`); if (slave.vagina > -1) { VCheck.Vaginal(); - slave.counter.vaginal++; - V.vaginalTotal++; + actX(slave, "vaignal"); if (isFertile(slave) && V.PC.dick > 0) { knockMeUp(slave, 100, 0, -1, true); } } else { VCheck.Anal(); - slave.counter.anal++; - V.analTotal++; + actX(slave, "anal"); } } slave.trust += 100; @@ -2187,8 +2167,7 @@ App.UI.newSlaveIntro = function(slave) { TerminatePregnancy(slave); slave.preg = -3; slave.ovaries = 0; - slave.counter.abortions++; - V.abortionsTotal++; + actX(slave, "abortions"); surgeryDamage(slave, 10); return r.join(" "); }, @@ -2307,8 +2286,7 @@ App.UI.newSlaveIntro = function(slave) { slave.ovaries = 0; slave.preg = -2; TerminatePregnancy(slave); - slave.counter.abortions++; - V.abortionsTotal++; + actX(slave, "abortions"); slave.vagina = -1; slave.skill.vaginal = 0; surgeryDamage(slave, 10); @@ -2948,8 +2926,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`on a cushion next to your chair.${He} learns obedience, but also learns that you are < span class="mediumaquamarine" > fair</span > and < span class="hotpink" > reasonable.</span >`); slave.devotion += 4; slave.trust += 4; - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); return r.join(" "); }, @@ -3173,10 +3150,8 @@ App.UI.newSlaveIntro = function(slave) { slave.devotion += 5; slave.trust -= 15; } - slave.counter.penetrative += 5; - V.penetrativeTotal += 5; - slave.counter.oral++; - V.oralTotal++; + actX(slave, "penetrative", 5); + actX(slave, "oral"); return r.join(" "); }, @@ -3351,8 +3326,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`Only once ${he} has swallowed the last of your cum do you allow ${him} to clean ${himself} up and <span class="hotpink">reflect on what ${he} just did.</span>`); } slave.devotion += 5; - slave.counter.oral++; - V.oralTotal++; + actX(slave, "oral"); jQuery("#introResult2").empty().append(r.join(" ")); } )); @@ -3590,10 +3564,8 @@ App.UI.newSlaveIntro = function(slave) { r.push(`Any resistance to you is <span class="mediumorchid">worn down</span> and replaced with a germ of <span class="gold">fear.</span> <span class="lime">The slave's holes are nicely stretched.</span>`); slave.devotion -= 5; slave.trust -= 10; - slave.counter.vaginal += 1; - V.vaginalTotal += 1; - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "vaginal"); + actX(slave, "anal"); slave.anus += 1; slave.vagina += 1; @@ -3638,8 +3610,7 @@ App.UI.newSlaveIntro = function(slave) { // Written and coded by Boney M slave.devotion -= 5; slave.trust -= 10; - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); slave.anus += 1; return r.join(" "); @@ -3710,17 +3681,14 @@ App.UI.newSlaveIntro = function(slave) { result(slave) { const r = []; r.push(`You securely restrain your new slave${(V.dairyRestraintsSetting > 1)?`in a milking stall`:``}. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's mouth,`); - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); if (slave.vagina > 0) { r.push(`vagina,`); - slave.counter.vaginal += 1; - V.vaginalTotal += 1; + actX(slave, "vaginal"); } if (slave.anus > 0) { r.push(`and squeeze into ${his} ass,`); - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } r.push(`with no room to spare.`); r.push(`Your choices attach to long tubes, and with a fiendish smile you turn a valve. The lines run white with a mixture of fluids from your other slaves, and your newest slave begins to fill.`); @@ -3780,12 +3748,10 @@ App.UI.newSlaveIntro = function(slave) { r.push(`You put a shock collar on ${him}. Its function isn't immediately obvious, at least until you test it on the lowest power setting, making ${him} jump and look at you fearfully. This concern is compounded when you throw a big dildo at ${him} and tell ${him} to rape ${himself}. ${He} gapes at you incredulously until you give ${him} a stronger jolt and peremptorily tell ${him} to`); if (slave.vagina > 0) { r.push(`pick it up and pound ${his} own pussy. <span class="mediumorchid">Reluctantly,</span> ${he} reaches down shakily, seats ${himself}, and slowly pushes the uncomfortably big phallus inside ${his} womanhood. ${He} starts to fuck ${himself}. Harder, you command. Wincing, ${he} works ${his} cunt faster. Harder, you repeat, giving ${him} another shock. <span class="gold">${He} begins to cry,</span> but obeys, sawing the big fake cock in and out, really raping ${himself}.`); - slave.counter.vaginal += 1; - V.vaginalTotal += 1; + actX(slave, "vaginal"); } else if (slave.anus > 0) { r.push(`pick it up and pound ${his} own ass. <span class="mediumorchid">Reluctantly,</span> ${he} reaches down shakily, seats ${himself}, and gradually shoves the already-lubricated phallus into ${his} ass. It's uncomfortably big for ${his} butt, but ${he} can manage it, and slowly starts to sodomize ${himself}. Harder, you command. Wincing, ${he} fucks ${his} ass faster. Harder, you repeat, giving ${him} another shock. <span class="gold">${He} begins to cry,</span> but obeys, sawing the big fake cock in and out, really assraping ${himself}.`); - slave.counter.anal += 1; - V.analTotal += 1; + actX(slave, "anal"); } else { r.push(`pick it up and facefuck ${himself}. <span class="mediumorchid">Reluctantly,</span> ${he} reaches down shakily, seats ${himself}, and slowly swallows the uncomfortably big phallus. ${He} has to start over several times as ${his} gag reflex kicks in, but ${he} finally manages to hilt it. Harder, you command. Eyes rolling fearfully, ${he} withdraws it a few`); if (V.showInches === 2) { @@ -3794,8 +3760,7 @@ App.UI.newSlaveIntro = function(slave) { r.push(`centimeters`); } r.push(`and shoves it down ${his} throat again. Harder, you repeat, giving ${him} another shock. <span class="gold">${He} begins to weep and gag,</span> but obeys, sawing the big fake cock in and out, really molesting ${himself}.`); - slave.counter.oral += 1; - V.oralTotal += 1; + actX(slave, "oral"); } slave.trust -= 10; slave.devotion -= 5; @@ -3845,8 +3810,7 @@ App.UI.newSlaveIntro = function(slave) { if (slave.vagina > -1) { slave.vagina = Math.clamp(slave.vagina, 3, 4); } - slave.counter.anal += 10; - V.analTotal += 10; + actX(slave, "anal", 10); assignJob(slave, "dairy"); r.push(`You order`); @@ -3877,11 +3841,9 @@ App.UI.newSlaveIntro = function(slave) { slave.anus = Math.clamp(slave.anus, 3, 4); if (slave.vagina > -1) { slave.vagina = Math.clamp(slave.vagina, 3, 4); - slave.counter.vaginal += 10; - V.vaginalTotal += 10; + actX(slave, "vaginal", 10); } - slave.counter.anal += 10; - V.analTotal += 10; + actX(slave, "anal", 10); assignJob(slave, "dairy"); r.push(`Making use of`);