diff --git a/src/npc/interaction/fDick.js b/src/npc/interaction/fDick.js index 1c2f2b7d510235d5595bf002454e0335b6e12ee9..9778f3f5fcf814a5a4d7dd8791bebdda860780f8 100644 --- a/src/npc/interaction/fDick.js +++ b/src/npc/interaction/fDick.js @@ -12,9 +12,10 @@ App.Interact.fDick = function(slave) { // TODO: .pregMood and more amp variants - seX(slave, "penetrative", V.PC, V.PC.vagina !== -1 ? "vaginal" : "anal"); + const anusFirst = (getPCPreferredHole() || V.PC.vagina === -1) === "anus"; + seX(slave, "penetrative", V.PC, !anusFirst ? "vaginal" : "anal"); - const cunt = V.PC.vagina !== -1 ? "cunt" : "rectal"; // TODO: probably ought to be able to *choose* vaginal or anal sex if they're both valid + const cunt = !anusFirst ? "cunt" : "rectal"; // TODO: probably ought to be able to *choose* vaginal or anal sex if they're both valid const belly = bellyAdjective(slave); const amount = cumAmount(slave); @@ -97,10 +98,10 @@ App.Interact.fDick = function(slave) { if (canImpreg(V.PC, slave)) { if (slave.diet === "cum production") { const pregChance = (slave.balls * 5 * 1.2); - text.push(knockMeUp(V.PC, pregChance, 0, slave.ID)); + text.push(knockMeUp(V.PC, pregChance, anusFirst ? 1 : 0, slave.ID)); } else { const pregChance = (slave.balls * 5); - text.push(knockMeUp(V.PC, pregChance, 0, slave.ID)); + text.push(knockMeUp(V.PC, pregChance, anusFirst ? 1 : 0, slave.ID)); } } @@ -113,16 +114,16 @@ App.Interact.fDick = function(slave) { function consummation() { const text = []; - if (V.PC.vagina === 0) { + if (V.PC.vagina === 0 && !anusFirst) { text.push(`You've decided that this is the day to finally <span class="virginity loss">lose your virginity,</span> and ${slave.slaveName} is going to help you do it.`); - } else if (V.PC.vagina === -1 && V.PC.anus === 0) { + } else if (anusFirst && V.PC.anus === 0) { text.push(`You've decided that this is the day to finally <span class="virginity loss">lose your anal virginity,</span> and ${slave.slaveName} is going to help you do it.`); } if (!isAmputee(slave)) { text.push(`You direct ${slave.slaveName} to lie down and ready ${himself} as you step over to ${him} and align your`); - if (V.PC.vagina !== -1 && getPCPreferredHole() === "vagina") { + if (!anusFirst) { if (V.PC.vagina === 0) { text.push(`untouched`); V.PC.vagina = 1; @@ -195,7 +196,7 @@ App.Interact.fDick = function(slave) { if (slave.fetish === Fetish.MINDBROKEN) { text.push(`Like a doll, ${he} dumbly remains still, completely indifferent that ${he}'s deep in ${his} ${getWrittenTitle(slave)}'s`); - if (V.PC.vagina !== -1) { + if (!anusFirst) { text.push(`pussy.`); } else { text.push(`butt.`); @@ -203,7 +204,7 @@ App.Interact.fDick = function(slave) { text.push(`You start moving up and on ${his} shaft, continuing until you climax and lift yourself off of ${him}. A strand of cum slips from your`); - if (V.PC.vagina !== -1) { + if (!anusFirst) { text.push(`slit;`); } else { text.push(`anus;`); @@ -299,7 +300,7 @@ App.Interact.fDick = function(slave) { } text.push(`Such audacity takes you entirely by surprise and gives ${him} the edge ${he} needs to pull it off. ${He} vigorously pistons in and out of you with little regard for you${(V.PC.pregKnown === 1) ? ` or your pregnancy` : ``}, fucking you senseless until ${he} has had enough and cums deep inside your`); - if (V.PC.vagina !== -1) { + if (!anusFirst) { text.push(`pussy.`); } else { text.push(`ass.`); @@ -312,7 +313,21 @@ App.Interact.fDick = function(slave) { text.push(`Grinding against`); } - text.push(`your firm belly, ${he} decides ${his} job is not yet done and begins reaming you once more, dead set on taking this opportunity to <span class="orangered">show you your place by knocking you up with ${his} child.</span> ${He} manages to empty ${his} balls in your ${V.PC.mpreg ? "anal " : ""}womb several more times before exhaustion kicks in, forcing ${him} to leave you twitching and drooling cum.`); + text.push(`your firm belly, ${he} decides ${his} job is not yet done`); + if (anusFirst && V.PC.mpreg !== 1) { + text.push(`so ${he} withdraws his dick from your backhole, shoves it in your ${V.PC.vagina < 2 ? "pussy" : "cunt"},`); + if (V.PC.vagina === 0) { + text.push(`<span class="virginity loss">taking your virginity in the way</span>,`); + V.PC.vagina++; + } + } else if (!anusFirst && V.PC.mpreg === 1) { + text.push(`so ${he} withdraws his dick from your useless cunt, shoves it in your ${V.PC.anus < 2 ? "anus" : "backhole"},`); + if (V.PC.anus === 0) { + text.push(`<span class="virginity loss">taking your anal virginity in the way</span>,`); + V.PC.anus++; + } + } + text.push(` and begins reaming you once more, dead set on taking this opportunity to <span class="orangered">show you your place by knocking you up with ${his} child.</span> ${He} manages to empty ${his} balls in your ${V.PC.mpreg ? "anal " : ""}womb several more times before exhaustion kicks in, forcing ${him} to leave you twitching and drooling cum.`) text.push(knockMeUp(V.PC, 100, 2, slave.ID)); if (V.PC.mpreg) { seX(V.PC, "anal", slave, "penetrative", 5); @@ -348,7 +363,7 @@ App.Interact.fDick = function(slave) { } else { text.push(`You step over to pick up ${slave.slaveName}, lie ${him} down and get ${him} ready. Then you align your`); - if (V.PC.vagina !== -1) { + if (!anusFirst) { if (V.PC.vagina === 0) { text.push(`untouched`); }