diff --git a/src/descriptions/arcologyDescription.js b/src/descriptions/arcologyDescription.js index 6968128138b633def33c33f4436b1db06560c437..9f64c8d5bc49513052e3386ce895c5e11b2aafaa 100644 --- a/src/descriptions/arcologyDescription.js +++ b/src/descriptions/arcologyDescription.js @@ -203,6 +203,9 @@ App.Desc.playerArcology = function(lastElement) { if (A.FSRepopulationFocusDecoration === 100) { /* Can this be made one line? */ if (V.PC.vagina !== -1) { buffer.push(`The slaves are heavily pregnant, as is the central ${V.PC.dick !== 0 ? "futanari" : "female"} figure.`); + if (V.PC.counter.birthsTotal >= 0) { + buffer.push(`Right next to the central figure are ${V.PC.counter.birthsTotal} small marble statues of little infants, declaring the arcology's dedication to repopulating the emerging world all the way up to the highest member.`); + } } else { buffer.push(`The slaves are heavily pregnant.`); } @@ -225,6 +228,9 @@ App.Desc.playerArcology = function(lastElement) { } if (A.FSPastoralistDecoration === 100) { buffer.push(`The statuary is located in the middle of a fountain; the slaves' nipples pour water into the pool beneath.`); + if (V.PC.rules.lactation === "sell") { + buffer.push(`The central ${statue} sculpture is also spraying water from its nipples, drenching the lesser elements of the display and announcing the availability of highest tear breast milk.`); + } } if (A.FSPhysicalIdealistDecoration === 100) { buffer.push(`Both the central ${statue} figure and the slaves are ${A.FSPhysicalIdealistLaw === 1 ? "quite fit" : "very muscular"}.`); diff --git a/src/interaction/useSlave/useSlaveOptions.js b/src/interaction/useSlave/useSlaveOptions.js index 41bef21513844cad979298bf3cc6f1c56a58fabf..b6358772d460495cb024d924facc1207eec34c65 100644 --- a/src/interaction/useSlave/useSlaveOptions.js +++ b/src/interaction/useSlave/useSlaveOptions.js @@ -421,6 +421,22 @@ App.UI.SlaveInteract.useSlave.options = function(player, clone, slave, playerSta }, reaction: this.reactionText.bite(clone), }, + { + link: `Make ${him} suck your nipples`, + desc: chestText.slaveSucksTits(clone), + tooltip: `Relax while they orally service your breasts.`, + prereq: () => playerState.clothing.top.isOff && !playerState.clothing.bra && + playerState.sexAct !== SexAct.ORAL && + slaveState.sexAct !== SexAct.ORAL, + effect: () => { + playerState.lust += 2; + slaveState.lust += 5; + + playerState.action = Action.RECEIVING; + slaveState.action = Action.KISSING; + }, + reaction: this.reactionText.slaveSucksTits(clone), + }, ]; const crotchText = App.UI.SlaveInteract.useSlave.crotchText; diff --git a/src/interaction/useSlave/useSlaveText.js b/src/interaction/useSlave/useSlaveText.js index 2de5c25d2009bd0f66f3edfb4c78d872a7f07632..f7465afa8366ce5cd2179155062624d6f5bd2a4d 100644 --- a/src/interaction/useSlave/useSlaveText.js +++ b/src/interaction/useSlave/useSlaveText.js @@ -320,6 +320,21 @@ App.UI.SlaveInteract.useSlave.chestText = { return `Chest test bite 4`; } }, + /** @param {FC.SlaveState} slave */ + slaveSucksTits(slave) { + const {he, his} = getPronouns(slave); + + if (slave.devotion > 50) { + return `You order ${slave.slaveName} to suck on your breasts and ${he} starts doing so with gusto, wrapping ${his} lips around one of your nipples at the time. You relax and enjoy ${his} ministrations.`; + } else if (slave.devotion > 20) { + return `Chest test bite 2`; + } else if (slave.devotion > -20) { + return `Chest test bite 3`; + } else { + return `Chest test bite 4`; + } + }, + }; App.UI.SlaveInteract.useSlave.crotchText = { @@ -1251,6 +1266,20 @@ App.UI.SlaveInteract.useSlave.reactionText = { } }, /** @param {FC.SlaveState} slave */ + slaveSucksTits(slave) { + // const {him, his} = getPronouns(slave); + + if (slave.devotion > 50) { + return `${slave.slaveName} hums and moans in audible enjoyment.`; + } else if (slave.devotion > 20) { + return `bite reaction test 2`; + } else if (slave.devotion > -20) { + return `bite reaction test 3`; + } else { + return `bite reaction test 4`; + } + }, + /** @param {FC.SlaveState} slave */ gropePussy(slave) { // const {him, his} = getPronouns(slave); diff --git a/src/npc/interaction/fDick.js b/src/npc/interaction/fDick.js index 0ced69215e42411137ea40e08d0ff6df2d011d40..75b2ddc0746113799bfea872c1bdb15aa7523730 100644 --- a/src/npc/interaction/fDick.js +++ b/src/npc/interaction/fDick.js @@ -142,7 +142,7 @@ App.Interact.fDick = function(slave) { if (slave.devotion > 20) { text.push(`${He} thought ${he} would be fucking another slave, not ${his} ${getWrittenTitle(slave)}, so to say ${he}'s pleasantly surprised would be an understatement.`); } else if (slave.devotion >= -20) { - text.push(`${He} thought ${he} would fucking another slave, not ${his} ${getWrittenTitle(slave)} ${he} has mixed feelings about this, but ${his} body can't wait to plunge your depths.`); + text.push(`${He} thought ${he} would be fucking another slave, not ${his} ${getWrittenTitle(slave)} ${he} has mixed feelings about this, but ${his} body can't wait to plunge your depths.`); } else { if (slave.trust < -20) { text.push(`${He} was already horrified at the thought of being ordered to lie down and let another slave rape ${his} dick, but when ${he} realized it would be you instead, that horror turned to a mix of confusion and sheer terror.`); diff --git a/src/npc/interaction/fVagina.js b/src/npc/interaction/fVagina.js index c3d49fc66b32c6333add01cc1f7988866a119a63..76cb94fed392ecb08610c6f23c464c69db49edfc 100644 --- a/src/npc/interaction/fVagina.js +++ b/src/npc/interaction/fVagina.js @@ -169,13 +169,13 @@ App.Interact.fVagina = function(slave) { } else if (fPosition <= 80) { r.push(`in the reverse cowgirl position`); if (slave.bellyPreg >= 600000) { - r.push(r.pop() + `, a position that will much more comfortable for ${his} immense pregnancy and won't crush you under its mass.`); + r.push(r.pop() + `, a position that will be much more comfortable for ${his} immense pregnancy and won't crush you under its mass.`); } else if (slave.belly >= 600000) { - r.push(r.pop() + `, a position that will much more comfortable for ${his} immense belly and won't crush you under its mass.`); + r.push(r.pop() + `, a position that will be much more comfortable for ${his} immense belly and won't crush you under its mass.`); } else if (slave.bellyPreg >= 300000) { - r.push(r.pop() + `, a position that will much more comfortable for ${his} massive pregnancy.`); + r.push(r.pop() + `, a position that will be much more comfortable for ${his} massive pregnancy.`); } else if (slave.belly >= 300000) { - r.push(r.pop() + `, a position that will much more comfortable for ${his} massive belly.`); + r.push(r.pop() + `, a position that will be much more comfortable for ${his} massive belly.`); } else { r.push(r.pop() + `.`); }