diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js index 40396a30a9910eb1306ad6a7d49992099d2e182a..1ffc93c6b7b543f5a0012efbce0e5f7df0013422 100644 --- a/src/endWeek/saWorkTheFarm.js +++ b/src/endWeek/saWorkTheFarm.js @@ -7,10 +7,17 @@ App.SlaveAssignment.workTheFarm = function(slave) { let frag = document.createDocumentFragment(); + let + sexualQuirks = ["perverted", "unflinching"], + behavorialQuirks = ["sinful"], + fetishes = ["humiliation", "masochist"]; + const { he, him, his, hers, He, His } = getPronouns(slave), incomeStats = getSlaveStatisticData(slave, V.facility.farmyard), - arcology = V.arcologies[0]; + arcology = V.arcologies[0], + + slaveApproves = () => sexualQuirks.includes(slave.sexualQuirk) || behavorialQuirks.includes(slave.behavioralQuirk) || fetishes.includes(slave.fetish); let food = Math.trunc(App.Facilities.Farmyard.foodAmount(slave)), @@ -111,8 +118,6 @@ App.SlaveAssignment.workTheFarm = function(slave) { return `${His} muscular form helps ${him} work better, increasing ${his} productivity.`; } else if (slave.muscles < -50) { return `${He} is so weak that ${he} is not able to work effectively.`; - } else { - return ``; // TODO: third case? } }; @@ -138,7 +143,7 @@ App.SlaveAssignment.workTheFarm = function(slave) { if (V.Farmer) { - // TODO: keep oral check? replace with something else? + // TODO: replace with something else t += `While there, ${he} benefits from ${V.Farmer.slaveName}'s ${V.Farmer.physicalAge < 21 ? `youthful energy` : `care`} ${V.Farmer.skill.oral ? ` and talented tongue` : ``}.`; if (slave.devotion < V.FarmerDevotionThreshold) { slave.devotion += V.FarmerDevotionBonus; @@ -183,13 +188,21 @@ App.SlaveAssignment.workTheFarm = function(slave) { if (arcology.FSSupremacist !== "unset") { if (isSuperiorRace(slave)) { - r.push(`Society <span class="reputation dec">disapproves</span> of your allowing a member of the elite race to be degraded in such a fashion, and thus ${he} didn't earn as much.`); + if (V.seeBestiality) { + r.push(`Since ${arcology.FSSupremacistRace} slaves are in fashion, ${he} attracts a little more attention than if ${he} wasn't ${arcology.FSSupremacistRace}.`); + } else { + r.push(`Society <span class="reputation dec">disapproves</span> of your allowing a member of the elite race to be degraded in such a fashion, and thus ${he} didn't earn as much.`); + } } } if (arcology.FSSubjugationist !== "unset") { if (isInferiorRace(slave)) { - r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`); + if (V.seeBestiality) { + r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`); + } else { + r.push(`Fewer people want to go see a ${arcology.FSSubjugationistRace} slave put on a show, and so ${he} doesn't earn as much as ${he} otherwise could.`); + } } else { r.push(`Society doesn't disapprove of ${him} not being ${arcology.FSSubjugationistRace}, but ${he} doesn't earn as much as ${he} would if ${he} was.`); } @@ -229,10 +242,6 @@ App.SlaveAssignment.workTheFarm = function(slave) { } else { r.push(`${His} viewers <span class="reputation dec">are disappointed</span> that ${he} isn't pregnant.`); } - - if (slave.dick > 0) { - // TODO: something here? - } } if (arcology.FSPaternalist !== "unset") { @@ -303,7 +312,7 @@ App.SlaveAssignment.workTheFarm = function(slave) { if (arcology.FSPhysicalIdealist !== "unset") { if (genderLawPass(slave)) { - // TODO: write this + r.push(`The fact that ${slave.slaveName} has what is considered the ideal form also helps ${him} attract attention, and so ${he} earns a bit more.`); } } @@ -403,7 +412,7 @@ App.SlaveAssignment.workTheFarm = function(slave) { if (slave.muscles > 30) { // TODO: write this - do we want something for muscles? } else if (slave.muscles < -30) { - // TODO: write this - maybe something about the slave's ability to handle the animal? + r.push(`${slave.slaveName} is so weak that ${he} cannot even properly handle the animals ${he}'s assigned to ${V.seeBestiality ? `fuck` : `work with`}, and isn't able to put on any sort of meaningful show.`); } if (!canSeePerfectly(slave)) { @@ -411,29 +420,17 @@ App.SlaveAssignment.workTheFarm = function(slave) { } if (slave.hears < 0) { - r.push(`${His} ${slave.hears < -1 ? `lack of` : `poor`} hearing makes it difficult for ${him} to do a good job of putting on a show.`); + r.push(`${His} ${slave.hears < -1 ? `lack of` : `poor`} hearing makes it difficult for ${him} to hear what ${his} audience wants from ${him}, which really affects ${his} earnings.`); } - if (slave.boobs > 800) { - // TODO: write this - } - - if (slave.butt > 4) { - // TODO: write this - } - - if (slave.preg > 10) { - // TODO: write this + if (isPreg(slave)) { + r.push(`${His}${slave.bellyPreg > 100000 ? ` advanced` : ``} pregnancy makes it more difficult for him to effectively put on a good show.`); } if (slave.health.tired > 60) { r.push(`${He} is so tired that the energy in ${his} shows is basically nonexistent, affecting ${his} profits.`); } - if (slave.chem > 10) { - // TODO: write this - would this make sense to include? - } - if (slave.intelligence > 50) { // TODO: write this - include something about .intelligenceImplant? } else if (slave.intelligence < -50) { @@ -461,13 +458,13 @@ App.SlaveAssignment.workTheFarm = function(slave) { if (slave.fetishKnown) { r.push(`${He} is so submissive that ${he} willingly accepts ${his} position as an animal's fucktoy and <span class="reputation inc">is able to put on a decent show</span>.`); } else { - // TODO: + r.push(`${V.Headgirl ? `${V.Headgirl.slaveName} notices` : `You notice`} that ${slave.slaveName} seems to have really taken to ${his} position as a fucktoy for animals. <span class="lightcoral">${He}'s a submissive!</span>`); } } else { if (slave.fetishKnown) { r.push(`Being a submissive, ${he} <span class="reputation dec">doesn't have the confidence required</span> to really put on a good show.`); } else { - // TODO: + r.push(`${slave.slaveName} doesn't seem to have the type of fortitude needed to put on a show, and after some probing, you discover why - it turns out <span class="lightcoral">${he}'s a submissive!</span>`); } } break; @@ -531,21 +528,19 @@ App.SlaveAssignment.workTheFarm = function(slave) { // Open Long-Term Effects - if (slave.fetishKnown && (slave.fetish === "submissive" || slave.fetish === "humiliation" || slave.fetish === "masochist") || slave.energy > 95) { + if (slave.fetishKnown && slaveApproves() || slave.energy > 95) { if (V.farmyardShows) { if (V.seeBestiality) { r.push(`Getting fucked by animals is the perfect job for ${him}, as far as ${he} can tell. <span class="devotion inc">${He} is happy</span> to spend ${his} days being utterly degraded.`); } else { - r.push(`${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. <span class="devotion inc">${He} is happy</span> to spend ${his} days doing something so degrading.`); // TODO: not sure how degrading putting on shows is + r.push(`${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. It isn't as degrading as ${he} would like, but <span class="devotion inc">${he} is happy nonetheless.</span>`); } } - slave.devotion += 1; - if (slave.need) { - slave.need = 0; - } + slave.need = 0; } + // TODO: keep this? if (slave.behavioralQuirk === "fitness") { r.push(`${slave.slaveName} <span class="devotion inc">privately enjoys</span> the exercise ${he} receives while working in ${V.farmyardName}.`); slave.devotion += 1; diff --git a/src/facilities/farmyard/farmyardShows.js b/src/facilities/farmyard/farmyardShows.js index bc673e40fcffd389005d6d2b63a695235de6bb77..092b9f6e5555cb96147a464a1632f02ba4ff4a7c 100644 --- a/src/facilities/farmyard/farmyardShows.js +++ b/src/facilities/farmyard/farmyardShows.js @@ -20,18 +20,26 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) { /* OPEN FS EFFECTS */ if (arcology.FSSupremacist !== "unset") { - if (slave.race === arcology.FSSupremacistRace) { // slave is of supreme race - cash *= 0.9; // TODO: should supreme race slaves receive a penalty? - repX(-10, "shows"); // TODO: should this cause a rep loss + if (isSuperiorRace(slave)) { + if (V.seeBestiality) { + cash *= 0.9; + } else { + cash *= 1.2; + } + repX(-10, "shows"); } } if (arcology.FSSubjugationist !== "unset") { - if (slave.race === arcology.FSSubjugationistRace) { // slave is of subjugated race - cash *= 1.1; + if (isInferiorRace(slave)) { + if (V.seeBestiality) { + cash *= 1.1; + } else { + cash *= 0.9; + } repX(10, "shows"); // TODO: should this cause a rep gain? } else { - cash *= 0.9; // TODO: should unsubjugated race slaves receive a penalty? + cash *= 0.9; } } @@ -240,17 +248,17 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) { } if (slave.muscles > 30) { // slave is muscular or more - cash *= 0.9; // TODO: tie in height eugenics policy + cash *= 0.9; } else if (slave.muscles < -30) { // slave is very weak or less - cash *= 0.9; // TODO: should this be on a scale? + cash *= 0.6; } if (!canSeePerfectly(slave)) { // slaves eyesight is nearsighted or worse - cash *= 0.9; // TODO: should nearsighted and blind slaves receive a penalty? + cash *= 0.8; } if (!canHear(slave)) { - cash *= 0.9; // TODO: should hard of hearing slaves receive a penalty? + cash *= 0.8; } if (isPreg(slave)) {