diff --git a/src/npc/interaction/fAnimal.js b/src/npc/interaction/fAnimal.js index 16083f4b7f1d055ca02928867c5371887bc439c5..79b563ca34086592dd2dcbf392b55528d74e0fb8 100644 --- a/src/npc/interaction/fAnimal.js +++ b/src/npc/interaction/fAnimal.js @@ -26,8 +26,9 @@ App.Interact.fAnimal = function(slave, type) { /** @type {App.Entity.Animal} */ const animal = V.active[type]; - let fetishDesc; + /** @type {0|1|2} */ let hole; + let fetishDesc; let orifice; const anAnimal = `${animal.articleAn} ${animal.name}`; @@ -98,9 +99,7 @@ App.Interact.fAnimal = function(slave, type) { fetishDesc = `committing such a sinful act`; } - const div = App.UI.DOM.appendNewElement("div", frag); - - let text = []; + const text = new SpacedTextAccumulator(frag); if (canWalk(slave)) { text.push(`You call ${him} over and`); @@ -127,10 +126,8 @@ App.Interact.fAnimal = function(slave, type) { text.push(`${slave.slaveName} visibly blanches at the thought of having to suck down an animal's cum, but ${he} is so devoted to you that ${he} reluctantly agrees.`); } } else { - if ( - (act === Acts.VAGINAL && slave.vagina > 0) || - (act === Acts.ANAL && slave.anus > 0) - ) { + if ((act === Acts.VAGINAL && slave.vagina > 0) + || (act === Acts.ANAL && slave.anus > 0)) { if (slaveApproves()) { text.push(`${slave.slaveName}'s face visibly brightens at the thought of ${fetishDesc}, even if the dick is an animal's.`); } else { @@ -198,9 +195,7 @@ App.Interact.fAnimal = function(slave, type) { } } - App.Events.addParagraph(div, text); - text = []; - + text.toParagraph(); if (slave.devotion > 50) { if (act === Acts.ORAL) { @@ -235,7 +230,7 @@ App.Interact.fAnimal = function(slave, type) { text.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, then gives a groan as the beast thrusts, stretching ${his} poor throat to the limit.`); } } else { - text.push(`${slave.slaveName} gives a long, drawn-out moan as the huge phallus `, slave.vagina < 4 ? `<span class="lime">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); + text.push(`${slave.slaveName} gives a long, drawn-out moan as the huge phallus `, slave.vagina < 4 ? `<span class="change positive">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); } break; case V.active.feline: @@ -253,8 +248,7 @@ App.Interact.fAnimal = function(slave, type) { throw new Error(`Unexpected animal type '${animal}' in fAnimal()`); } - App.Events.addParagraph(div, text); - text = []; + text.toParagraph(); if (act !== Acts.ORAL) { text.push(virginityCheck(act)); @@ -292,7 +286,7 @@ App.Interact.fAnimal = function(slave, type) { text.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); } } else { - text.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus `, slave.vagina < 4 ? `<span class="lime">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); + text.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus `, slave.vagina < 4 ? `<span class="change positive">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); } break; case V.active.feline: @@ -310,8 +304,7 @@ App.Interact.fAnimal = function(slave, type) { throw new Error(`Unexpected animal type '${animal}' in fAnimal()`); } - App.Events.addParagraph(div, text); - text = []; + text.toParagraph(); if (act !== Acts.ORAL) { text.push(virginityCheck(act)); @@ -349,7 +342,7 @@ App.Interact.fAnimal = function(slave, type) { text.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); } } else { - text.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus `, slave.vagina < 4 ? `<span class="lime">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); + text.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus `, slave.vagina < 4 ? `<span class="change positive">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); } break; case V.active.feline: @@ -367,8 +360,7 @@ App.Interact.fAnimal = function(slave, type) { throw new Error(`Unexpected animal type '${animal}' in fAnimal()`); } - App.Events.addParagraph(div, text); - text = []; + text.toParagraph(); if (act !== Acts.ORAL) { text.push(virginityCheck(act)); @@ -420,7 +412,7 @@ App.Interact.fAnimal = function(slave, type) { text.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, and you get the feeling ${he} would have run away a long time ago if ${he} wasn't a little tied up at the moment.`); } } else { - text.push(`${slave.slaveName} lets out a blood-curdling scream as the huge phallus `, slave.vagina < 4 ? `<span class="lime">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); + text.push(`${slave.slaveName} lets out a blood-curdling scream as the huge phallus `, slave.vagina < 4 ? `<span class="change positive">stretches</span>` : `fills`, ` ${his} ${orifice()} nearly to its breaking point.`); } break; case V.active.feline: @@ -450,8 +442,7 @@ App.Interact.fAnimal = function(slave, type) { } } - App.Events.addParagraph(div, text); - text = []; + text.toParagraph(); switch (animal) { case V.active.canine: @@ -484,9 +475,9 @@ App.Interact.fAnimal = function(slave, type) { throw new Error(`Unexpected animal type '${animal}' in fAnimal()`); } - if (act === Acts.ANAL) { + if (act === Acts.VAGINAL) { slave.vagina = slave.vagina < animal.dick.size ? animal.dick.size : slave.vagina; - } else if (act === Acts.VAGINAL) { + } else if (act === Acts.ANAL) { slave.anus = slave.anus < animal.dick.size ? animal.dick.size : slave.anus; } @@ -494,8 +485,7 @@ App.Interact.fAnimal = function(slave, type) { knockMeUp(slave, 5, hole, -8); } - App.Events.addParagraph(div, text); - text = []; + text.toParagraph(); if (random(1, 100) > 100 + slave.devotion) { switch (act) { @@ -607,8 +597,7 @@ App.Interact.fAnimal = function(slave, type) { } } - App.Events.addParagraph(div, text); - text = []; + text.toParagraph(); } return frag;