t.push(`on top of ${him}, impaled on ${canP?`${his} cock`:`a strap-on ${he}'s wearing`}. ${subSlave.slaveName} is bent almost double. ${eventSlave.slaveName} has ${his}${eventSlave.skin} hands up on the backs of ${subSlave.slaveName}'s ${subSlave.skin} knees, holding ${his2} legs`);
t.push(`on top of ${him}, impaled on`);
if (canP){
t.push(`${his} cock.`);
}elseif (clitP){
t.push(`${his} phallus-like clit.`);
}else{
t.push(`a strap-on ${he}'s wearing.`);
}
t.push(`${subSlave.slaveName} is bent`);
if (eventSlave.belly>=5000&&subSlave.belly>=5000){
t.push(`at an awkward angle.`);
}else{
t.push(`almost double.`);
}
t.push(`${eventSlave.slaveName} has ${his}${eventSlave.skin}`);
if (hasBothArms(eventSlave)){
t.push(`hands up on the backs of ${subSlave.slaveName}'s ${subSlave.skin} knees, holding ${his2} legs`);
}else{
t.push(`hand up on ${subSlave.slaveName}'s ${subSlave.skin} back, forcing ${him2} to keep ${his2} legs`);
}
if (eventSlave.belly>=5000){
t.push(`to either side of ${his2}`);
t.push(`to either side of ${his}`);
if (eventSlave.preg>eventSlave.pregData.normalBirth/8){
t.push(`pregnancy,`);
}else{
t.push(`belly,`);
}
if (!hasBothArms(eventSlave)){
t.push(`and`);
}
}
t.push(`up against ${his2}`);
if (subSlave.boobs>2000){
...
...
@@ -71,9 +103,16 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
t.push(`shoulders.`);
}
t.push(`${subSlave.slaveName} is completely helpless, and ${he2}'s being fucked hard:`);
if (canP){
if (eventSlave.dick-subSlave.anus>2){
t.push(`${eventSlave.slaveName}'s cock is very big,`);
if (canP||clitP){
letsizeRatio;
if (canP){
sizeRatio=eventSlave.dick-subSlave.anus;
}else{
sizeRatio=eventSlave.clit-subSlave.anus-2;
}
constcock=canP?"cock":"clit";
if (sizeRatio>2){
t.push(`${eventSlave.slaveName}'s ${cock} is very big,`);
if (subSlave.anus>2){
t.push(`even for ${subSlave.slaveName}'s loose anus,`);
}elseif (subSlave.anus>1){
...
...
@@ -82,8 +121,8 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
t.push(`especially for ${subSlave.slaveName}'s tight anus,`);
}
t.push(`so ${eventSlave.slaveName} is bouncing ${his} anal bottom up and down only a little way, allowing ${him} to do so fast.`);
}elseif (eventSlave.dick-subSlave.anus>0){
t.push(`${eventSlave.slaveName}'s cock is a good fit for ${subSlave.slaveName}'s`);
}elseif (sizeRatio>0){
t.push(`${eventSlave.slaveName}'s ${cock} is a good fit for ${subSlave.slaveName}'s`);
if (subSlave.anus>2){
t.push(`loose`);
}elseif (subSlave.anus>1){
...
...
@@ -93,7 +132,7 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
}
t.push(`anus, so ${eventSlave.slaveName} is bouncing ${his} anal bottom up and down fast.`);
t.push(`breathlessly, doing ${his2} best to greet you properly despite the bouncing.`);
t.push(`${he2}${say2}s breathlessly, doing ${his2} best to greet you properly despite the bouncing.`);
App.Events.addParagraph(node,t);
t=[];
...
...
@@ -184,7 +208,7 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
}else{
t.push(`homely`);
}
t.push(`face instantly appears, craning out from behind ${subSlave.slaveName}'s back to see. ${Spoken(eventSlave,`"Oh, hi, ${getWrittenTitle(eventSlave)}!"`)}${he} says with a cheerful smile,`);
t.push(`face instantly appears, craning out from behind ${subSlave.slaveName}'s back to see. ${Spoken(eventSlave,`"Oh, hi, ${getWrittenTitle(eventSlave)}!"`)}${he}${say}s with a cheerful smile,`);
if (eventSlave.muscles>30){
t.push(`not breathing hard at all despite bouncing a ${girl2} off ${his} crotch.`);
}elseif (eventSlave.muscles>5){
...
...
@@ -192,7 +216,7 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
}else{
t.push(`completely out of breath.`);
}
t.push(Spoken(eventSlave,`"I ${canSee(eventSlave)?"saw":canHear(eventSlave)?"heard":"noticed"}${him2} going by, and I thought ${he2}'d look cute with ${canP?"my dick":"a strap-on"} up ${his2} butthole, so I ${V.universalRulesConsent===0?`told ${him2} to get in here and take it.`:`asked ${him2} to get in here and ${he2} did!`}"`));
t.push(Spoken(eventSlave,`"I ${canSee(eventSlave)?"saw":"heard"}${him2} going by, and I thought ${he2}'d look cute with ${canP?"my dick":clitP?"my clit":"a strap-on"} up ${his2} butthole, so I ${V.universalRulesConsent===0?`told ${him2} to get in here and take it.`:`asked ${him2} to get in here and ${he2} did!`}"`));
t.push(`${He} shrugs.`);
if (eventSlave.fetish==="sadist"){
t.push(Spoken(eventSlave,`"I thought ${he2} was going to whine and struggle, but ${he2}'s kinda disappointing."`));
...
...
@@ -284,12 +308,16 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
}
if (canSee(eventSlave)){
t.push(`Seeing`);
}elseif (canHear(eventSlave)){
}else{
t.push(`Hearing`);
}
t.push(`this, ${eventSlave.slaveName} <span class="hotpink">giggles with anticipation,</span> and pulls`);
if (hasBothArms(eventSlave)){
t.push(`${subSlave.slaveName}'s knees back farther.`);
}else{
t.push(`Acknowledging`);
t.push(`${subSlave.slaveName} even closer.`);
}
t.push(`this, ${eventSlave.slaveName} <span class="hotpink">giggles with anticipation,</span> and pulls ${subSlave.slaveName}'s knees back farther. The slave whines at the stretch, and then gasps as the invading phallus pops free of ${his2} asshole. ${His2} anus`);
t.push(`The slave whines at the stretch, and then gasps as the invading phallus pops free of ${his2} asshole. ${His2} anus`);
if (subSlave.anus>2){
t.push(`gapes lewdly, its sphincter so well stretched that it stays invitingly open,`);
}elseif (subSlave.anus>1){
...
...
@@ -323,9 +351,23 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
}else{
t.push(`crotch.`);
}
t.push(`With you standing there, ${eventSlave.slaveName} can't really see much, and ${he} can't drop ${subSlave.slaveName}'s legs without throwing everything into confusion. So, ${he}'s reduced to blind jabs to get ${his}`);
t.push(`With you standing there, ${eventSlave.slaveName} can't really`);
if (canSee(eventSlave)){
t.push(`see much,`);
}else{
t.push(`feel around down there,`);
}
t.push(`and ${he} can't`);
if (hasBothArms(eventSlave)){
t.push(`drop ${subSlave.slaveName}'s legs`);
}else{
t.push(`relax ${his} grip on ${subSlave.slaveName}`);
}
t.push(`without throwing everything into confusion. So, ${he}'s reduced to blind jabs to get ${his}`);
if (canP){
t.push(`cock`);
}elseif (clitP){
t.push(`clit`);
}else{
t.push(`strap-on`);
}
...
...
@@ -337,9 +379,9 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
}
App.Events.addParagraph(frag,t);
t=[];
if (subSlave.vagina>0){
if (canDoVaginal(subSlave)&&subSlave.vagina>0){
t.push(`With ${eventSlave.slaveName} occupying ${subSlave.slaveName}'s rear hole, your next step is obvious to everyone involved, and ${he2} groans with fullness as ${he2} feels ${his2} cunt accommodate you. ${eventSlave.slaveName} matches ${his} rhythm to yours, and`);
if (canP){
if (canP||clitP){
t.push(`orgasms promptly, since ${he}'s less accustomed than you are to the delectable sensation of a ${girl2} tightened by a phallus in ${his2} other hole.`);
}else{
t.push(`climaxes quickly despite having no sensation in ${his} fake dick, since ${he} finds the situation so arousing.`);
...
...
@@ -350,10 +392,11 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
t.push(`${subSlave.slaveName}'s rear hole is such a loose slit that double anal shouldn't be too much trouble for ${him2}. It isn't, though ${his2} breath definitely quickens as ${he2} feels a second rod push its way past ${his2} stretched sphincter. ${eventSlave.slaveName}`);
if (canP){
t.push(`orgasms promptly, unable to prolong sex when ${he}'s feeling ${his} cock slide against you inside another slave's anus.`);
if (canP||clitP){
t.push(`orgasms promptly, unable to prolong sex when ${he}'s feeling ${his}${cock} slide against you inside another slave's anus.`);
}else{
t.push(`climaxes quickly despite having no sensation in ${his} fake dick, since ${he} finds the situation so arousing.`);
}
...
...
@@ -363,9 +406,10 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
t.push(`${subSlave.slaveName}'s rear hole is a bit tight for double anal, and ${he2}'s already quite dominated; you mean to use ${him2} thoroughly, not destroy ${him2}. So, you and ${eventSlave.slaveName} switch off: you use ${subSlave.slaveName}'s butt while ${eventSlave.slaveName} pins ${him2} for you, and then you go back to ${subSlave.slaveName}'s mouth for a while and let ${eventSlave.slaveName} take over sodomizing duties. ${He}`);
if (canP){
if (canP||clitP){
t.push(`orgasms promptly, since ${he} finds a hole warm from your use very hot.`);
}else{
t.push(`climaxes quickly despite having no sensation in ${his} fake dick, since ${he} finds the situation so arousing.`);
...
...
@@ -376,6 +420,7 @@ App.Events.RETSAnalCowgirl = class RETSAnalCowgirl extends App.Events.BaseEvent
t.push(`When ${subSlave.slaveName} has stumbled off to the shower, ${eventSlave.slaveName} presents ${himself} for inspection, smelling of sex and <span class="mediumaquamarine">smiling trustingly.</span>`);