From 0064d9aff44df5b74273b4e615a27eaf3088b707 Mon Sep 17 00:00:00 2001 From: DCoded <dcoded@live.com> Date: Sat, 5 Sep 2020 00:38:12 -0400 Subject: [PATCH] Text changes --- src/npc/interaction/fAnimal.js | 226 +++++++++++++++------------------ 1 file changed, 105 insertions(+), 121 deletions(-) diff --git a/src/npc/interaction/fAnimal.js b/src/npc/interaction/fAnimal.js index f27686b0547..b22a634f849 100644 --- a/src/npc/interaction/fAnimal.js +++ b/src/npc/interaction/fAnimal.js @@ -162,7 +162,7 @@ App.Interact.fAnimal = function(slave, type) { `get fucked in the ass by`} ${a} ${animal.name}. `); if (slave.fetish === "mindbroken") { - r.push(`${slave.slaveName} nods ${his} head dumbly, ${his} eyes vacant${!canSee(slave) ? ` as always` : ``}.`); + r.push(`${slave.slaveName} nods ${his} head dumbly, ${his} eyes vacant${!canSee(slave) ? ` as always` : ``}. `); } mainSpan.append(r.join(' ')); @@ -175,28 +175,26 @@ App.Interact.fAnimal = function(slave, type) { if (act === oral) { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName}'s face visibly brightens at the prospect of ${fetishDesc}, even if it's ${a} ${animal.name}'s cum.`); + mainSpan.append(`${slave.slaveName}'s face visibly brightens at the prospect of ${fetishDesc}, even if it's ${a} ${animal.name}'s cum. `); } else { - mainSpan.append(`${slave.slaveName} visibly blanches at the thought of having to suck down ${a} ${animal.name}'s cum, but ${he} is so devoted to you that ${he} reluctantly agrees.`); + mainSpan.append(`${slave.slaveName} visibly blanches at the thought of having to suck down ${a} ${animal.name}'s cum, but ${he} is so devoted to you that ${he} reluctantly agrees. `); } } else { if ((act === vaginal && slave.vagina > 0) || (act === anal && slave.anus > 0)) { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName}'s face visibly brightens at the thought of ${fetishDesc}, even if the dick is ${a} ${animal.name}'s.`); + mainSpan.append(`${slave.slaveName}'s face visibly brightens at the thought of ${fetishDesc}, even if the dick is ${a} ${animal.name}'s. `); } else { - mainSpan.append(`${slave.slaveName} looks visibly disturbed, but is so attentive to your will that ${he} agrees.`); + mainSpan.append(`${slave.slaveName} looks visibly disturbed, but is so attentive to your will that ${he} agrees. `); } } else { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName}'s face visibly brightens at the thought of ${fetishDesc}, although ${he} seems a bit hesitant at the thought of giving ${his} virginity to an animal.`); + mainSpan.append(`${slave.slaveName}'s face visibly brightens at the thought of ${fetishDesc}, although ${he} seems a bit hesitant at the thought of giving ${his} virginity to an animal. `); } else { - mainSpan.append(`${slave.slaveName} looks visibly shaken at the thought of having ${his} precious ${!canDoVaginal(slave) ? `anal ` : ``}virginity taken by an animal, but is so attentive to your will that ${he} ultimately agrees.`); + mainSpan.append(`${slave.slaveName} looks visibly shaken at the thought of having ${his} precious ${!canDoVaginal(slave) ? `anal ` : ``}virginity taken by an animal, but is so attentive to your will that ${he} ultimately agrees. `); } } } - mainSpan.append(` `); - return mainSpan; } @@ -205,28 +203,26 @@ App.Interact.fAnimal = function(slave, type) { if (act === oral) { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName} isn't too keen on the idea of sucking off ${a} ${animal.name}, but the idea of ${fetishDesc} is enough to get ${him} to comply.`); + mainSpan.append(`${slave.slaveName} isn't too keen on the idea of sucking off ${a} ${animal.name}, but the idea of ${fetishDesc} is enough to get ${him} to comply. `); } else { - mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of blowing ${a} ${animal.name}, but quickly regains ${his} composure.`); + mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of blowing ${a} ${animal.name}, but quickly regains ${his} composure. `); } } else { if ((act === vaginal && slave.vagina > 0) || (act === anal && slave.anus > 0)) { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName} doesn't seem terribly keen on the idea of fucking ${a} ${animal.name}, but the thought of ${fetishDesc} seems to be enough to win ${him} over.`); + mainSpan.append(`${slave.slaveName} doesn't seem terribly keen on the idea of fucking ${a} ${animal.name}, but the thought of ${fetishDesc} seems to be enough to win ${him} over. `); } else { - mainSpan.append(`${slave.slaveName} tries in vain to coneal ${his} horror at the thought of fucking ${a} ${animal.name}, but quickly regains ${his} composure.`); + mainSpan.append(`${slave.slaveName} tries in vain to coneal ${his} horror at the thought of fucking ${a} ${animal.name}, but quickly regains ${his} composure. `); } } else { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName} clearly has some reservations about having ${his} ${act === anal ? `anal ` : ``}virginity taken by ${a} ${fetishDesc}, but the thought of ${fetishDesc} is enough to make agree to comply.`); + mainSpan.append(`${slave.slaveName} clearly has some reservations about having ${his} ${act === anal ? `anal ` : ``}virginity taken by ${a} ${fetishDesc}, but the thought of ${fetishDesc} is enough to make agree to comply. `); } else { - mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of having ${his} precious ${act === anal ? `rosebud` : `pearl`} taken by a beast, but quickly regains ${his} composure.`); + mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of having ${his} precious ${act === anal ? `rosebud` : `pearl`} taken by a beast, but quickly regains ${his} composure. `); } } } - mainSpan.append(` `); - return mainSpan; } @@ -235,28 +231,26 @@ App.Interact.fAnimal = function(slave, type) { if (act === oral) { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName} looks disgusted at the thought of sucking off ${a} ${animal.name} at first, but the thought of the ${fetishDesc} that comes with it seems to spark a small flame of lust in ${him}.`); + mainSpan.append(`${slave.slaveName} looks disgusted at the thought of sucking off ${a} ${animal.name} at first, but the thought of the ${fetishDesc} that comes with it seems to spark a small flame of lust in ${him}. `); } else { - mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of blowing ${a} ${animal.name}${canWalk(slave) ? `, and only the threat of worse punishment keeps ${him} from running away as fast as ${he} can` : ``}.`); + mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of blowing ${a} ${animal.name}${canWalk(slave) ? `, and only the threat of worse punishment keeps ${him} from running away as fast as ${he} can` : ``}. `); } } else { if ((act === vaginal && slave.vagina > 0) || (act === anal && slave.anus > 0)) { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName} looks disgusted at the thought of fucking ${a} ${animal.name} at first, but the thought of the ${fetishDesc} that comes with it seems to spark a small flame of lust in ${him}.`); + mainSpan.append(`${slave.slaveName} looks disgusted at the thought of fucking ${a} ${animal.name} at first, but the thought of the ${fetishDesc} that comes with it seems to spark a small flame of lust in ${him}. `); } else { - mainSpan.append(`${slave.slaveName} tries in vain to coneal ${his} horror at the thought of fucking ${a} ${animal.name}${canWalk(slave) ? `, and only the threat of worse punishment keeps ${him} from running away as fast as ${he} can` : ``}.`); + mainSpan.append(`${slave.slaveName} tries in vain to coneal ${his} horror at the thought of fucking ${a} ${animal.name}${canWalk(slave) ? `, and only the threat of worse punishment keeps ${him} from running away as fast as ${he} can` : ``}. `); } } else { if (slaveApproves()) { - mainSpan.append(`${slave.slaveName} clearly has some reservations about having ${his} ${act === anal ? `anal ` : ``}virginity taken by ${a} ${fetishDesc}, but the thought of ${fetishDesc} is enough to make agree to comply.`); + mainSpan.append(`${slave.slaveName} clearly has some reservations about having ${his} ${act === anal ? `anal ` : ``}virginity taken by ${a} ${fetishDesc}, but the thought of ${fetishDesc} is enough to make agree to comply. `); } else { - mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of having ${his} precious ${act === anal ? `rosebud` : `pearl`} taken by a beast${canWalk(slave) ? `, and only the threat of worse punishment keeps ${him} from running away as fast as ${he} can` : ``}.`); + mainSpan.append(`${slave.slaveName} tries in vain to conceal ${his} horror at the thought of having ${his} precious ${act === anal ? `rosebud` : `pearl`} taken by a beast${canWalk(slave) ? `, and only the threat of worse punishment keeps ${him} from running away as fast as ${he} can` : ``}. `); } } } - mainSpan.append(` `); - return mainSpan; } @@ -280,9 +274,9 @@ App.Interact.fAnimal = function(slave, type) { r = []; if (act === oral) { - r.push(`You have ${him} kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} waits, showing little concern when the slave reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, ${slave.slaveName} takes its cock and begins to give it a few tentative licks before finally putting it in ${his} mouth.`); + r.push(`You have ${him} kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} waits, showing little concern when the slave reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, ${slave.slaveName} takes its cock and begins to give it a few tentative licks before finally putting it in ${his} mouth. `); } else { - r.push(`You have ${him} ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``}get on the floor, ass in the air, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few short moments for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed.`); + r.push(`You have ${him} ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``}get on the floor, ass in the air, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few short moments for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed. `); } switch (animal) { @@ -306,49 +300,47 @@ App.Interact.fAnimal = function(slave, type) { function consummationDevotedCanine(type) { if (type === oral) { if (slaveApproves()) { - r.push(`The slave seems to quickly get over the fact that the dick currently in ${his} mouth belongs to a canine as ${his} more carnal desires kick in.`); + r.push(`The slave seems to quickly get over the fact that the dick currently in ${his} mouth belongs to a canine as ${his} more carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, then gives a groan as the beast thrusts, filling ${his} throat.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, then gives a groan as the beast thrusts, filling ${his} throat. `); } } else { if (canWalk(slave)) { - r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh.`); + r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can.`); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); } } function consummationDevotedHooved(type) { if (type === oral) { if (slaveApproves()) { - r.push(`The slave seems to quickly get over the fact that dick currently in ${his} mouth is not a human one as ${his} more carnal desires kick in.`); + r.push(`The slave seems to quickly get over the fact that dick currently in ${his} mouth is not a human one as ${his} more carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, then gives a groan as the beast thrusts, stretching ${his} poor throat to the limit.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, then gives a groan as the beast thrusts, stretching ${his} poor throat to the limit. `); } } else { - r.push(`${slave.slaveName} gives a long, drawn-out moan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point.`); + r.push(`${slave.slaveName} gives a long, drawn-out moan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); } } function consummationDevotedFeline(type) { if (type === oral) { if (slaveApproves()) { - r.push(`The slave seems to quickly get over the fact that dick currently in ${his} mouth belongs to ${a} ${animal.name} as ${his} more carnal desires kick in.`); + r.push(`The slave seems to quickly get over the fact that dick currently in ${his} mouth belongs to ${a} ${animal.name} as ${his} more carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, then gives a groan as the beast thrusts, the barbs on its cock rubbing the inside of ${his} mouth raw.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, then gives a groan as the beast thrusts, the barbs on its cock rubbing the inside of ${his} mouth raw. `); } } else { - r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); } } mainSpan.append(r.join(' ')); - mainSpan.append(` `); - return mainSpan; } @@ -358,9 +350,9 @@ App.Interact.fAnimal = function(slave, type) { r = []; if (act === oral) { - r.push(`You tell ${him} to kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} waits, showing little concern when the slave hesitantly reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, ${slave.slaveName} takes its cock, and, after taking a moment to steel ${his} resolve, begins to give it a few reluctant licks before putting it in ${his} mouth.`); + r.push(`You tell ${him} to kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} waits, showing little concern when the slave hesitantly reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, ${slave.slaveName} takes its cock, and, after taking a moment to steel ${his} resolve, begins to give it a few reluctant licks before putting it in ${his} mouth. `); } else { - r.push(`You tell ${him} to ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``}get on the floor, ass in the air, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few seconds for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed.`); + r.push(`You tell ${him} to ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``}get on the floor, ass in the air, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few seconds for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed. `); } switch (animal) { @@ -384,49 +376,47 @@ App.Interact.fAnimal = function(slave, type) { function consummationNondevotedCanine(type) { if (type === oral) { if (slaveApproves()) { - r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to ${a} ${animal.name} soon enough, once ${his} carnal desires kick in.`); + r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to ${a} ${animal.name} soon enough, once ${his} carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { if (canWalk(slave)) { - r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh.`); + r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can.`); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); } } function consummationNondevotedHooved(type) { if (type === oral) { if (slaveApproves()) { - r.push(`Though the slave still seems to have some reservations about sucking off ${a} ${animal.name}, ${he} seems to forget that the cock in ${his} mouth isn't human soon enough, once ${his} carnal desires kick in.`); + r.push(`Though the slave still seems to have some reservations about sucking off ${a} ${animal.name}, ${he} seems to forget that the cock in ${his} mouth isn't human soon enough, once ${his} carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point.`); + r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); } } function consummationNondevotedFeline(type) { if (type === oral) { if (slaveApproves()) { - r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to a feline soon enough, once ${his} carnal desires kick in.`); + r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to a feline soon enough, once ${his} carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s barbed dick fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s barbed dick fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); } } mainSpan.append(r.join(' ')); - mainSpan.append(` `); - return mainSpan; } @@ -436,9 +426,9 @@ App.Interact.fAnimal = function(slave, type) { r = []; if (act === oral) { - r.push(`You force ${him} to kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} waits, showing little concern when the slave reluctantly reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, ${slave.slaveName} takes its cock and begins to give it a few tentative licks before finally putting it in ${his} mouth.`); + r.push(`You force ${him} to kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} waits, showing little concern when the slave reluctantly reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, ${slave.slaveName} takes its cock and begins to give it a few tentative licks before finally putting it in ${his} mouth. `); } else { - r.push(`You force ${him} to ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``}get on the floor, ass in the air, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few short moments for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed.`); + r.push(`You force ${him} to ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``}get on the floor, ass in the air, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few short moments for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed. `); } switch (animal) { @@ -462,49 +452,47 @@ App.Interact.fAnimal = function(slave, type) { function consummationNonresistantCanine(type) { if (type === oral) { if (slaveApproves()) { - r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to ${a} ${animal.name} soon enough, once ${his} carnal desires kick in.`); + r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to ${a} ${animal.name} soon enough, once ${his} carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { if (canWalk(slave)) { - r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh.`); + r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can.`); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); } } function consummationNonresistantHooved(type) { if (type === oral) { if (slaveApproves()) { - r.push(`Though the slave still seems to have some reservations about sucking off ${a} ${animal.name}, ${he} seems to forget that the cock in ${his} mouth isn't human soon enough, once ${his} carnal desires kick in.`); + r.push(`Though the slave still seems to have some reservations about sucking off ${a} ${animal.name}, ${he} seems to forget that the cock in ${his} mouth isn't human soon enough, once ${his} carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point.`); + r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); } } function consummationNonresistantFeline(type) { if (type === oral) { if (slaveApproves()) { - r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to a feline soon enough, once ${his} carnal desires kick in.`); + r.push(`Though the slave still seems to have some reservations about sucking off an animal, ${he} seems to forget that the cock in ${his} mouth belongs to a feline soon enough, once ${his} carnal desires kick in. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s barbed dick fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s barbed dick fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); } } mainSpan.append(r.join(' ')); - mainSpan.append(` `); - return mainSpan; } @@ -514,9 +502,9 @@ App.Interact.fAnimal = function(slave, type) { r = []; if (act === oral) { - r.push(`You have to physically force ${him} to kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} is restrained, showing little concern when another slave reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, the slave takes its cock and lines it up with ${slave.slaveName}'s mouth. The animal needs no prompting, and thrusts itself into ${his} ring-gagged mouth.`); + r.push(`You have to physically force ${him} to kneel on the floor before calling in the ${animal.name}. The beast slowly saunters up to the slave where ${he} is restrained, showing little concern when another slave reaches out and begins masturbating it to begin the process of getting the animal hard. Once the ${animal.name} is hard enough, the slave takes its cock and lines it up with ${slave.slaveName}'s mouth. The animal needs no prompting, and thrusts itself into ${his} ring-gagged mouth. `); } else { - r.push(`You have to physically force ${him} to ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``} get on the floor, ass in the air and restraints around ${his} wrists and ankles, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few short moments for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed.`); + r.push(`You have to physically force ${him} to ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``} get on the floor, ass in the air and restraints around ${his} wrists and ankles, before calling in the ${animal.name}. The beast slowly saunters up to the slave, where it takes only a few short moments for its animal brain to realize that what it is standing behind is a warm hole that needs to be filled with seed. `); } switch (animal) { @@ -547,18 +535,18 @@ App.Interact.fAnimal = function(slave, type) { slave.vagina > -1 ? `a slight sheen on ${his} pussylips` : `a slight blush to ${his} cheeks`} - tells you that ${he}'s enjoying this, at least a little.`); + tells you that ${he}'s enjoying this, at least a little. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'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.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'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 { if (canWalk(slave)) { - r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh.`); + r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can.`); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); } } @@ -572,12 +560,12 @@ App.Interact.fAnimal = function(slave, type) { slave.vagina > -1 ? `a slight sheen on ${his} pussylips` : `a slight blush to ${his} cheeks`} - tells you that ${he}'s enjoying this, at least a little.`); + tells you that ${he}'s enjoying this, at least a little. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'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.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'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 { - r.push(`${slave.slaveName} lets out a blood-curdling scream as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point.`); + r.push(`${slave.slaveName} lets out a blood-curdling scream as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); } } @@ -591,19 +579,17 @@ App.Interact.fAnimal = function(slave, type) { slave.vagina > -1 ? `a slight sheen on ${his} pussylips` : `a slight blush to ${his} cheeks`} - tells you that ${he}'s enjoying this, at least a little.`); + tells you that ${he}'s enjoying this, at least a little. `); } else { - r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s barbed dick 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.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal.name}'s barbed dick 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 { - r.push(`${slave.slaveName} lets out a blood-curdling scream as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}.`); + r.push(`${slave.slaveName} lets out a blood-curdling scream as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); } } mainSpan.append(r.join(' ')); - mainSpan.append(` `); - return mainSpan; } @@ -636,11 +622,11 @@ App.Interact.fAnimal = function(slave, type) { function completionCanine() { if (act === oral) { - r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice[0]}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice[1]}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz down ${his} abused throat. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s mouth, causing ${him} to immediately begin coughing and retching uncontrollably. Having finished its business, the ${animal.name} runs off, presumably in search of food.`); + r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice[0]}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice[1]}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz down ${his} abused throat. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s mouth, causing ${him} to immediately begin coughing and retching uncontrollably. Having finished its business, the ${animal.name} runs off, presumably in search of food. `); } else { r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice[0]}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice[1]}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz into ${his} ${orifice[0]}. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s ${act === vaginal && slave.vagina < 3 || act === anal && slave.anus < 2 ? `now-gaping ${orifice[0]}` : - orifice[0]}, causing a thick stream of cum to slide out of it. Having finished its business, the ${animal.name} runs off, presumably in search of food.`); + orifice[0]}, causing a thick stream of cum to slide out of it. Having finished its business, the ${animal.name} runs off, presumably in search of food. `); } switch (act) { @@ -662,9 +648,9 @@ App.Interact.fAnimal = function(slave, type) { function completionHooved() { if (act === oral) { - r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan past the huge ${animal.species} cock stretching ${his} poor throat to its limits. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and pour its thick semen down ${his} throat and into ${his} stomach, filling it to the brim. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, causing ${slave.slaveName} to begin coughing and retching uncontrollably. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance.`); + r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan past the huge ${animal.species} cock stretching ${his} poor throat to its limits. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and pour its thick semen down ${his} throat and into ${his} stomach, filling it to the brim. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, causing ${slave.slaveName} to begin coughing and retching uncontrollably. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance. `); } else { - r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan as the huge ${animal.species} cock ${act === vaginal ? `batters ${his} cervix` : `fills ${him} completely`}. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and fill ${his} ${orifice[1]} with its thick baby batter. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, leaving ${slave.slaveName} panting and covered in sweat. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance.`); + r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan as the huge ${animal.species} cock ${act === vaginal ? `batters ${his} cervix` : `fills ${him} completely`}. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and fill ${his} ${orifice[1]} with its thick baby batter. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, leaving ${slave.slaveName} panting and covered in sweat. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance. `); } switch (act) { @@ -686,9 +672,9 @@ App.Interact.fAnimal = function(slave, type) { function completionFeline() { if (act === oral) { - r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} mouth and throat raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts down ${slave.slaveName}'s throat. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off.`); + r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} mouth and throat raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts down ${slave.slaveName}'s throat. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off. `); } else { - r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} ${orifice[0]} raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts, filling ${slave.slaveName} with its sperm. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off.`); + r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} ${orifice[0]} raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts, filling ${slave.slaveName} with its sperm. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off. `); } healthDamage(slave, 1); @@ -726,21 +712,21 @@ App.Interact.fAnimal = function(slave, type) { switch (act) { case oral: if (slave.energy < 95 && slave.sexualFlaw !== "hates oral") { - mainSpan.append(`Having ${a} ${animal.name} fuck ${his} throat by force has given ${him} a hatred of oral sex.`); + mainSpan.append(`Having ${a} ${animal.name} fuck ${his} throat by force has given ${him} a hatred of oral sex. `); } slave.sexualFlaw = "hates oral"; break; case vaginal: if (slave.energy < 95 && slave.sexualFlaw !== "hates penetration") { - mainSpan.append(`Having ${a} ${animal.name} fuck ${him} by force has given ${him} a hatred of penetration.`); + mainSpan.append(`Having ${a} ${animal.name} fuck ${him} by force has given ${him} a hatred of penetration. `); } slave.sexualFlaw = "hates penetration"; break; case anal: if (slave.energy < 95 && slave.sexualFlaw !== "hates anal") { - mainSpan.append(`Having ${a} ${animal.name} fuck ${his} asshole by force has given ${him} a hatred of anal penetration.`); + mainSpan.append(`Having ${a} ${animal.name} fuck ${his} asshole by force has given ${him} a hatred of anal penetration. `); } slave.sexualFlaw = "hates anal"; @@ -750,8 +736,6 @@ App.Interact.fAnimal = function(slave, type) { } } - mainSpan.append(` `); - return mainSpan; } @@ -763,21 +747,21 @@ App.Interact.fAnimal = function(slave, type) { if (act !== oral) { if (act === vaginal) { if (slave.vagina === 3) { - r.push(`${capFirstChar(animal.name)} cum drips out out of ${his} fucked-out hole.`); + r.push(`${capFirstChar(animal.name)} cum drips out out of ${his} fucked-out hole. `); } else if (slave.vagina === 2) { - r.push(`${capFirstChar(animal.name)} cum drips out out of ${his} stretched vagina.`); + r.push(`${capFirstChar(animal.name)} cum drips out out of ${his} stretched vagina. `); } else if (slave.vagina === 1) { - r.push(`${His} still-tight pussy keeps the ${animal.name}'s cum inside ${him}.`); + r.push(`${His} still-tight pussy keeps the ${animal.name}'s cum inside ${him}. `); } else { - r.push(`${capFirstChar(animal.name)} cum slides right out of ${his} gaping hole.`); + r.push(`${capFirstChar(animal.name)} cum slides right out of ${his} gaping hole. `); } } else { if (slave.anus === 1) { - r.push(`${His} still-tight asshole keeps the ${animal.name}'s cum inside ${him}.`); + r.push(`${His} still-tight asshole keeps the ${animal.name}'s cum inside ${him}. `); } else if (slave.anus === 2) { - r.push(`${capFirstChar(animal.name)} cum drips out of ${his} loosened anus.`); + r.push(`${capFirstChar(animal.name)} cum drips out of ${his} loosened anus. `); } else { - r.push(`${capFirstChar(animal.name)} cum slides right out of ${his} fucked-out asshole.`); + r.push(`${capFirstChar(animal.name)} cum slides right out of ${his} fucked-out asshole. `); } } } @@ -791,52 +775,52 @@ App.Interact.fAnimal = function(slave, type) { switch (slave.assignment) { case Job.BROTHEL: - r.push(`just like ${he} does between each customer.`); + r.push(`just like ${he} does between each customer. `); break; case Job.CLUB: - r.push(`just like ${he} does in the club.`); + r.push(`just like ${he} does in the club. `); break; case Job.DAIRY: - r.push(`to avoid besmirching the nice clean dairy.`); + r.push(`to avoid besmirching the nice clean dairy. `); break; case Job.FARMYARD: - r.push(`to avoid tainting the food in ${V.farmyardName}.`); + r.push(`to avoid tainting the food in ${V.farmyardName}. `); break; case Job.QUARTER: - r.push(`mostly to keep everything ${he} has to clean from getting any dirtier.`); + r.push(`mostly to keep everything ${he} has to clean from getting any dirtier. `); break; case Job.WHORE: - r.push(`before returning to offering it for sale.`); + r.push(`before returning to offering it for sale. `); break; case Job.PUBLIC: - r.push(`before returning to offering it for free.`); + r.push(`before returning to offering it for free. `); break; case Job.REST: - r.push(`before crawling back into bed.`); + r.push(`before crawling back into bed. `); break; case Job.MILKED: - r.push(`${slave.lactation > 0 ? `before going to get ${his} uncomfortably milk-filled tits drained` : `and then rests until ${his} balls are ready to be drained again`}.`); + r.push(`${slave.lactation > 0 ? `before going to get ${his} uncomfortably milk-filled tits drained` : `and then rests until ${his} balls are ready to be drained again`}. `); break; case Job.HOUSE: - r.push(`since ${his} chores didn't perform themselves while you used ${his} fuckhole.`); + r.push(`since ${his} chores didn't perform themselves while you used ${his} fuckhole. `); break; case Job.FUCKTOY: - r.push(`before returning to await your next use of ${his} fuckhole, as though nothing had happened.`); + r.push(`before returning to await your next use of ${his} fuckhole, as though nothing had happened. `); break; case Job.SUBORDINATE: - r.push(`though it's only a matter of time before another slave decides to play with ${his} fuckhole.`); + r.push(`though it's only a matter of time before another slave decides to play with ${his} fuckhole. `); break; case Job.HEADGIRL: - r.push(`worried that ${his} charges got up to trouble while ${he} enjoyed ${his} ${WrittenMaster(slave)}'s use.`); + r.push(`worried that ${his} charges got up to trouble while ${he} enjoyed ${his} ${WrittenMaster(slave)}'s use. `); break; case Job.BODYGUARD: - r.push(`so ${he} can be fresh and ready for more sexual use even as ${he} guards your person.`); + r.push(`so ${he} can be fresh and ready for more sexual use even as ${he} guards your person. `); break; case Job.TEACHER: - r.push(`before ${he} returns to teaching ${his} classes.`); + r.push(`before ${he} returns to teaching ${his} classes. `); break; default: - r.push(`before ${he} returns to ${slave.assignment}.`); + r.push(`before ${he} returns to ${slave.assignment}. `); break; } } @@ -858,7 +842,7 @@ App.Interact.fAnimal = function(slave, type) { switch (type) { case vaginal: if (act === vaginal && slave.vagina === 0) { - virginityLossSpan.append(`${his} virginity is taken from ${him}${slave.devotion < -20 ? ` by force` : ``}.`); + virginityLossSpan.append(`${his} virginity is taken from ${him}${slave.devotion < -20 ? ` by force` : ``}. `); mainSpan.append(`The slave gives a loud ${slave.devotion > 20 ? `moan` : `groan`} as `, virginityLossSpan, ` `); @@ -868,7 +852,7 @@ App.Interact.fAnimal = function(slave, type) { return mainSpan; case anal: if (act === anal && slave.anus === 0) { - mainSpan.append(`The slave gives a loud ${slave.devotion > 20 ? `moan` : `groan`} as ${his} anal virginity is taken from ${him}${slave.devotion < -20 ? ` by force` : ``}.`); + mainSpan.append(`The slave gives a loud ${slave.devotion > 20 ? `moan` : `groan`} as ${his} anal virginity is taken from ${him}${slave.devotion < -20 ? ` by force` : ``}. `); mainSpan.append(virginityEffects(type)); } -- GitLab