From 93d09a0ed0329c3dea3156320b74127c98da9759 Mon Sep 17 00:00:00 2001 From: LewdAI <LewdAICode@protonmail.com> Date: Fri, 25 Nov 2022 17:56:04 +0800 Subject: [PATCH] Create new event: reCelebrityDebt.js --- src/events/RE/reCelebrityDebt.js | 210 +++++++++++++++++++++++++++++++ src/events/randomEvent.js | 1 + 2 files changed, 211 insertions(+) create mode 100644 src/events/RE/reCelebrityDebt.js diff --git a/src/events/RE/reCelebrityDebt.js b/src/events/RE/reCelebrityDebt.js new file mode 100644 index 00000000000..37e6a2aee74 --- /dev/null +++ b/src/events/RE/reCelebrityDebt.js @@ -0,0 +1,210 @@ +App.Events.RECelebrityAddictionDebt = class RECelebrityAddictionDebt extends App.Events.BaseEvent { + // This passage is cloned from https://gitgud.io/pregmodfan/fc-pregmod/-/merge_requests/7484 + eventPrerequisites() { + return []; //always return valid + } + + execute(node) { + + const [eventSlave] = this.actors.map(a => getSlave(a)); + + V.activeSlave = NewCelebrityAddict(); + const {He, him, his, he} = getPronouns(V.activeSlave); + let cost = slaveCost(V.activeSlave); + //Set slave background// + V.activeSlave.prestigeDesc = `${He} was a world renowned ${V.activeSlave.actualAge <= 16 ? `child` : ``}actress`; + V.activeSlave.origin = `${He} was a famous ${V.activeSlave.actualAge <= 16 ? "child " : ""}actress until ${his} drug habits pushed them so far into debt that their agent sold them to you at auction`; + //End set slave background// + + App.Events.drawEventArt(node, V.activeSlave, "no clothing"); + + let eventTextDiv = App.UI.DOM.makeElement("div", eventText()); + node.appendChild(eventTextDiv); + + + function eventText() { + let frag = document.createDocumentFragment(); //new document fragment// + + + let t = []; + + t.push(`A life of excess is dangerous, espescially if there's no-one around who can really tell you no. With all the money and power at your fingertips not a day goes by where you're not tempted into excess.`); + t.push(``); + t.push(`You're reminded of this fact when your personal assistant informs you of a high profile slave auction.`); + t.push(V.activeSlave.slaveName); + t.push(` used to be a famous movie`); + + if (V.allowMaleSlaveNames === true && his == `his`) { + t.push(` actor`); + } else { + t.push(` actress`); + } + t.push(`. That was until ${his} aphrodisiac habit got the better of ${him}. Hopelessly addicted and drowning in debt ${his} life is being offered up at auction to anyone who wants it. Your personal assistant estimates the auction to end somewhere between ¤30,000 and ¤50,000. Needless to say it would be very prestigious to own them.`); + App.Events.addParagraph(frag, t); + + + t = []; + + if (V.cash < 15000) { + t = []; + t.push(`Unfortunately you don't have the funds to remain compeditive in this particular auction.`); + App.Events.addParagraph(frag, t); + } else { + App.Events.addResponses(frag, [ new App.Events.Result(`Attend the Auction`, AttendAuction),]); + } + return frag; + } + + function NewCelebrityAddict() { + + + + const vars = V.pedo_mode ? {maxAge: 30, disableDisability: 1, minAge: 18} : {maxAge: 30, disableDisability: 1}; //Sets minimum age based on pedo mode// + let slave = jsRandom(0,100) > V.seeDicks ? GenerateNewSlave("XX", vars) : GenerateNewSlave("XY", vars); //Gererates a new slave + + + + slave.career = slave.actualAge <= 16 ? "a child actress" : "an actress"; + slave.prestige = 2; + + slave.devotion = jsRandom(-80, -60); + slave.trust = jsRandom(-60, -50); + slave.face = jsRandom(25,100); + + if (slave.actualAge < 13) { + slave.boobs = 100; + } else if (slave.actualAge == 13 || slave.actualAge == 14) { + slave.boobs = jsRandom(100, 200); + } else if (slave.actualAge == 14 || slave.actualAge == 15) { + slave.actualAge = jsRandom(100, 400); + } else if (slave.actualAge > 15) { + slave.actualAge = jsRandom(100, 2000); + } + + slave.health.health = jsRandom(-75, -40); + slave.health.longDamage = 20; + slave.face = jsRandom(25, 100); + slave.faceImplant = jsRandom(0, 35); + slave.weight = jsRandom(-20, 20); + + if (slave.visualAge < 15) { + slave.faceShape = "cute"; + } + + slave.lips = jsRandom(0, 70); + + if (slave.actualAge <= 12) { + slave.teeth = "baby"; + } else if (slave.actualAge > 12 && slave.actualAge <= 14) { + slave.teeth = "mixed"; + } else { + slave.teeth = "normal"; + } + + if (slave.vagina != -1 && slave.actualAge <= 14) { + slave.vagina = 3; + } else if (slave.vagina != -1 && slave.actualAge >= 14) { + slave.vagina = 0; + } + + + if (slave.pubertyXX > 0 && slave.vagina !== -1 && slave.vagina !== 0) { + var PregChance = jsRandom(0,100); + if (PregChance >= 20) { + slave.preg = jsRandom(1,35); + let RandPregSource = jsRandom(1,4); + if (RandPregSource == 1) { + slave.pregSource = 0; + } + else if (RandPregSource == 2) { + slave.pregSource = -2; + } + else if (RandPregSource == 3) { + slave.pregSource = -4; + } + else if (RandPregSource == 4) { + slave.pregSource = -6; + } + } + } + + + if (slave.actualAge > 14) { + slave.anus = 3; + } else { + slave.anus = 0; + } + + slave.nails = 0; + + if (slave.vagina !== 0 && slave.vagina !== -1) { + slave.skill.vaginal = jsRandom(31, 70); + } + slave.skill.oral = jsRandom(31, 70); + if (slave.anus !== 0) { + slave.skill.anal = jsRandom(31, 70); + } + slave.skill.entertainment = 75; + slave.skill.combat = 0; + slave.skill.entertainer = 175; + slave.addict = 20; + slave.intelligence = jsRandom(-50, 80); + slave.intelligenceImplant = jsRandom(-15, 30); + slave.energy = 100; + slave.prestigeDesc: = slave.actualAge <= 16 ? "They used to be a child actress, starring in several of the recent blockbuster films many millions loved to watch on whatever screens they can get their hands on." : "They used to be an actress, starring in several of the recent blockbuster films many millions loved to watch on whatever screens they can get their hands on."; + var RandBehaviour = jsRandom (1, 2); + if (RandBehaviour == 1) { + slave.behavioralFlaw = "arrogant"; + } + else { + slave.behavioralFlaw = "bitchy"; + } + slave.geneticQuirks.pFace = 2; + slave.slaveCost = jsRandom(-30000, -50000); + + + //Lowers actual cost of slave depending on how good the PC is at trading// + switch (true) { + case (V.PC.skill.trading <= -75): + slave.slaveCost = slave.slaveCost - 15000; + break; + case (V.PC.skill.trading > -75 && V.PC.skill.trading <= -50): + slave.slaveCost = slave.slaveCost - 10000; + break; + case (V.PC.skill.trading > -50 && V.PC.skill.trading <= -25): + slave.slaveCost = slave.slaveCost - 5000; + break; + case (V.PC.skill.trading > -25 && V.PC.skill.trading <= 25): + break; + case (V.PC.skill.trading > 25 && V.PC.skill.trading <= 50): + slave.slaveCost = slave.slaveCost + 5000; + break; + case (V.PC.skill.trading > 50 && V.PC.skill.trading <= 75): + slave.slaveCost = slave.slaveCost + 10000; + break; + case (V.PC.skill.trading >= 75): + slave.slaveCost = slave.slaveCost + 15000; + break; + } + return slave; + } + + function AttendAuction() { + let elements = []; + if ( V.cash < cost ) { + elements.push(`You work your cash as far as it will go but despite your best efforts you are outbid. The slave goes home with one of their many fans and you go home empty handed.`); + } else { + cashX(forceNeg(V.activeSlave.slaveCost), "slaveTransfer", V.activeSlave); //Dosh + + let elements = []; + elements.push(`It's a rough auction, a number of rabid fans stretch their wallets as thin as they will go but in the end yours stretches further. You return to your penthouse and eagerly await the delivery of your prize.`); + elements.push(`When ${he} arrives at your penthouse, ${he's} shoved stark naked into your office by a manager that's clearly got better things to do. It's obvious that their health is failing rapidly, up this close you can see the effects of addiction eating away at ${him}. Medical attention should be more than enough to keep them alive with a little effort though. Unsurprisingly, instead of asking you for help, ${he} demands the strongest aphrodisiac you have, not quite aware of how different their new situation is from their old one. It's going to take a lot of work to turn the addiction riddled mess infront of you into even a half way decent sex slave.`); + + V.eventSlave = eventSlave; + elements.push(App.UI.newSlaveIntro(V.activeSlave)); + + return elements; + } + } + } +}; \ No newline at end of file diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index dc3fffff62c..ae9ea408446 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -233,6 +233,7 @@ App.Events.getNonindividualEvents = function() { new App.Events.RERoyalBlood(), new App.Events.REArcologyInspection(), new App.Events.REShelterInspection(), + new App.Events.RECelebrityAddictionDebt(), new App.Events.REFIBoobslut(), new App.Events.REFIButtslut(), -- GitLab