From dd832905ea0095aee6c63f26c32b6830b371c770 Mon Sep 17 00:00:00 2001 From: DCoded <dcoded@live.com> Date: Mon, 31 Aug 2020 01:07:56 -0400 Subject: [PATCH] Added text for consummationDevoted(), added virginityCheck() and virginityEffects() --- src/npc/interaction/fAnimal.js | 140 ++++++++++++++++++++++++++++++++- 1 file changed, 136 insertions(+), 4 deletions(-) diff --git a/src/npc/interaction/fAnimal.js b/src/npc/interaction/fAnimal.js index 2370c78a16a..ec858e07095 100644 --- a/src/npc/interaction/fAnimal.js +++ b/src/npc/interaction/fAnimal.js @@ -6,7 +6,7 @@ App.Interact.fAnimal = function(slave, type) { frag = new DocumentFragment(), r = [], - {he, him, his} = getPronouns(slave), + {He, he, him, his, girl} = getPronouns(slave), acts = { VAGINAL: "vaginal", @@ -205,11 +205,45 @@ App.Interact.fAnimal = function(slave, type) { 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.`); } else { - r.push(`The slave visbly gags as the unfamiliar texture of ${a} ${animal}'s cock fills it.`); + r.push(`The slave visibly gags as the unfamiliar texture of ${a} ${animal}'s cock fills it.`); } } else { - r.push(`You have ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``} get on the floor, ass in the air, before calling in the ${animal}. 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. Another slave lines its cock up with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `ass`}, then with a thrust, the ${animal} begins to fuck ${him}.`); - // TODO: finish writing this + r.push(`You have ${slave.clothes !== "no clothing" ? `take off ${his} clothes and ` : ``} get on the floor, ass in the air, before calling in the ${animal}. 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) { + case V.activeCanine: + consummationDevotedCanine(); + break; + case V.activeHooved: + consummationDevotedHooved(); + break; + case V.activeFeline: + consummationDevotedFeline(); + break; + default: + throw new Error(`Unexpected animal type '${type}' in consummationDevoted()`); + } + + virginityCheck(act); + virginityEffects(act); + } + + function consummationDevotedCanine() { + 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.`); + } 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(`It takes a few tries, but the ${animal} 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() { + 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() { + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}.`); } } @@ -222,4 +256,102 @@ App.Interact.fAnimal = function(slave, type) { // TODO: finish writing this } } + + + + // MARK: Virginity Check Functions + + function virginityCheck(type) { + switch (type) { + case vaginal: + if (act === vaginal && slave.vagina === 0) { + r.push(`The slave gives a loud ${slave.devotion > 20 ? `moan` : `groan`} as ${his} virginity is taken from ${him}${slave.devotion < -20 ? ` by force` : ``}.`); + } + return; + case anal: + if (act === anal && slave.anus === 0) { + r.push(`The slave gives a loud ${slave.devotion > 20 ? `moan` : `groan`} as ${his} anal virginity is taken from ${him}${slave.devotion < -20 ? ` by force` : ``}.`); + } + return; + default: + throw new Error(`Unexpected type value '${type}' in virginityCheck()`); + } + } + + function virginityEffects(type) { + switch (type) { + case vaginal: + if (slave.devotion >= -20) { + if (slaveApproves) { + r.push(`Losing ${his} virginity in such a painful manner has increased ${his} devotion to you.`); + + slave.devotion += 10; + } else { + if (slave.devotion > 50) { + r.push(`Since ${he} is well broken, losing ${his} virginity in such a manner has increased ${his} submission to you.`); + + slave.devotion += 5; + } else if (slave.devotion >= -20) { + r.push(`Losing ${his} virginity in such a manner has increased ${his} submission to you, though ${he} is fearful that you'll decide to only use ${him} to sate your animals' lust.`); + + slave.devotion += 5; + slave.trust -= 5; + } else { + r.push(`${He} is clearly unhappy in the manner in which ${his} virginity has been taken, and ${he} fears you'll decide to only use ${him} to sate your animals' lust.`); + + slave.devotion -= 10; + slave.trust -= 10; + } + } + } else { + r.push(`Having ${his} pearl of great price taken by a mere beast has reinforced the hatred ${he} holds towards you, and ${he} is terrified you'll only use ${him} as a plaything for your animals.`); + + slave.devotion -= 10; + slave.trust -= 10; + } + + r.push(`Having ${his} cherry popped in such a manner was extremely painful and slightly damaged ${his} health.`); + + healthDamage(slave, 5); + + return; + case anal: + if (slave.devotion >= -20) { + if (slaveApproves) { + r.push(`Losing ${his} anal virginity in such a painful manner has increased ${his} devotion to you.`); + + slave.devotion += 10; + } else { + if (slave.devotion > 50) { + r.push(`Since ${he} is well broken, losing ${his} anal virginity in such a manner has increased ${his} submission to you.`); + + slave.devotion += 5; + } else if (slave.devotion >= -20) { + r.push(`Losing ${his} anal virginity in such a manner has increased ${his} submission to you, though ${he} is fearful that you'll decide to only use ${him} to sate your animals' lust.`); + + slave.devotion += 5; + slave.trust -= 5; + } else { + r.push(`${He} is clearly unhappy in the manner in which ${his} anal virginity has been taken, and ${he} fears you'll decide to only use ${him} to sate your animals' lust.`); + + slave.devotion -= 10; + slave.trust -= 10; + } + } + } else { + r.push(`Having ${his} pearl of great price taken by a mere beast has reinforced the hatred ${he} holds towards you, and ${he} is terrified you'll only use ${him} as a plaything for your animals.`); + + slave.devotion -= 10; + slave.trust -= 10; + } + + r.push(`Having ${his} rosebud broken in in such a manner was extremely painful and slightly damaged ${his} health.`); + + healthDamage(slave, 5); + + return; + default: + throw new Error(`Unexpected type value '${type}' in virginityEffects()`); + } + } }; -- GitLab