diff --git a/src/npc/interaction/fSuckDick.js b/src/npc/interaction/fSuckDick.js index 828bc7ba48b5a9ca7e865b3fb38511d367646064..8e00c687a1f053158090e1386fcd480e2fcf80fb 100644 --- a/src/npc/interaction/fSuckDick.js +++ b/src/npc/interaction/fSuckDick.js @@ -267,7 +267,6 @@ App.Interact.fSuckDick = function(slave) { liquid = "urine"; r.push(cleanup()) - App.Events.addParagraph(node, r); if (V.policies.sexualOpenness === 0) { r = []; @@ -277,6 +276,8 @@ App.Interact.fSuckDick = function(slave) { V.PC.degeneracy += 3; } + App.Events.addParagraph(node, r); + return node; } else { // Player fails to orally please the slave @@ -286,7 +287,33 @@ App.Interact.fSuckDick = function(slave) { r = []; r.push(cleanup()) + + if (V.policies.sexualOpenness === 0) { + r = []; + r.push(rumors()) + App.Events.addParagraph(node, r); + + V.PC.degeneracy += 2; + } + + App.Events.addParagraph(node, r); + + return node; + } + + if (isMindbroken(slave)) { + r.push(`Without any warning, ${his} ${dickAdj} flaccid dick begins to release cum into your mouth. At the moment, you move away.`); + r.push(`You should have known this would happen with a mindbroken slave. You turn your head away, releasing what you have in your mouth.`); + r.push(cumFinal()); + App.Events.addParagraph(node, r); + r = []; + + r.push(`It is not worth scolding ${him}, ${his} mental state won't allow ${him} to understand it.`) + + liquid = "cum"; + + r.push(cleanup()) if (V.policies.sexualOpenness === 0) { r = []; @@ -296,7 +323,34 @@ App.Interact.fSuckDick = function(slave) { V.PC.degeneracy += 2; } + App.Events.addParagraph(node, r); + return node; + + } else { + r.push(`You continue to suck ${hi} flaccid ${dickAdj} cock, determined to extract ${his} sperm. At one point you feel an almost imperceptible throb in ${his} member and ${he} lets you know that ${his} orgasm is imminent. You take one last firm suck before slowly letting the glans out of your mouth and taking the base of ${his} ${dickAdj} member ${slave.dick > 2 ? "with your hand" : "with your forefinger and thumb"}, toying the soft shaft with your ${lipsLong}, just in time.`); + r.push(cumFinal()); + r.push(`He didn't enjoy being forced to come.`); + + App.Events.addParagraph(node, r); + r = []; + + r.push(cleanup()); + + if (V.policies.sexualOpenness === 0) { + r = []; + r.push(rumors()); + App.Events.addParagraph(node, r); + + V.PC.degeneracy += 2; + } + + slave.trust -= 2; + slave.devotion -= 5; + + App.Events.addParagraph(node, r); + return node; + } } else { r.push(`You continue sucking on the ${dickAdj} slave's member for some time, using your tongue and lips, making sure to keep it well lubricated with your saliva. Soft moans escape ${his} lips. At one moment, the cock in your mouth becomes even more rigid, and you know that the excellent worship you are giving this cock is going to bring its owner a powerful orgasm.`); @@ -351,7 +405,6 @@ App.Interact.fSuckDick = function(slave) { liquid = "cum"; r.push(cleanup()) - App.Events.addParagraph(node, r); if (V.policies.sexualOpenness === 0) { r = []; @@ -361,6 +414,7 @@ App.Interact.fSuckDick = function(slave) { V.PC.degeneracy += 2; } + App.Events.addParagraph(node, r); return node; } else if ((disobedience(slave) > 0 || (slave.fetish === Fetish.DOM && slave.devotion < 40 && slave.trust > -30)) && hasAnyArms(slave)) { // Disobedient slaves try to force the player to swallow, dominant slaves have a plus @@ -413,7 +467,6 @@ App.Interact.fSuckDick = function(slave) { liquid = "cum"; r.push(cleanup()) - App.Events.addParagraph(node, r); if (V.policies.sexualOpenness === 0) { r = []; @@ -425,7 +478,9 @@ App.Interact.fSuckDick = function(slave) { slave.trust += 10; + App.Events.addParagraph(node, r); return node; + } else if (!hasAnyArms(slave)) { // Slaves with no arms r.push(`You continue sucking ${him} until ${he} warns you that ${his} orgasm is imminent. You pull your mouth away and take hold of the base of ${his} member ${slave.dick > 2 ? "with your hand" : "with your forefinger and thumb"}, just in time to feel the first contraction.`); @@ -435,7 +490,6 @@ App.Interact.fSuckDick = function(slave) { r = []; r.push(cleanup()) - App.Events.addParagraph(node, r); if (V.policies.sexualOpenness === 0) { r = []; @@ -448,6 +502,7 @@ App.Interact.fSuckDick = function(slave) { slave.trust += 2; slave.devotion += 2; + App.Events.addParagraph(node, r); return node; } else if (slave.skill.oral < 30 || (slave.skill.oral < 70 && jsRandom(1,100) > 70)) { //Player decides to give an oral lesson to the slave @@ -464,7 +519,6 @@ App.Interact.fSuckDick = function(slave) { r = []; r.push(cleanup()) - App.Events.addParagraph(node, r); if (V.policies.sexualOpenness === 0) { r = []; @@ -477,6 +531,7 @@ App.Interact.fSuckDick = function(slave) { slave.trust += 2; slave.devotion += 2; + App.Events.addParagraph(node, r); return node; } else if (isHorny(slave) && slave.devotion < 50 && slave.trust > 50 && jsRandom(1, 100) > 50) { // Slaves unable to warn with time enough @@ -575,7 +630,6 @@ App.Interact.fSuckDick = function(slave) { r = []; r.push(cleanup()); - App.Events.addParagraph(node, r); if (V.policies.sexualOpenness === 0) { r = []; @@ -587,6 +641,10 @@ App.Interact.fSuckDick = function(slave) { slave.trust += 2; slave.devotion += 5; + + App.Events.addParagraph(node, r); + return node; + } }