diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index 197be99574c9e514f5d241d660d32ae9a5e02ece..dcb19c4c13ce8e3cca1789ff129a566ab1e50c63 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -158,6 +158,8 @@ App.Events.getNonindividualEvents = function() { new App.Events.recFSPhysicalIdealistTwo(), new App.Events.recFSRepopulationEfforts(), new App.Events.recFSRepopulationEffortsTwo(), + new App.Events.recFSRestart(), + new App.Events.recFSRestartTwo(), new App.Events.recFSSlaveProfessionalism(), new App.Events.recFSSlaveProfessionalismTwo(), new App.Events.recFSSlimnessEnthusiast(), diff --git a/src/events/recFS/recfsRestart.js b/src/events/recFS/recfsRestart.js new file mode 100644 index 0000000000000000000000000000000000000000..451b25fdebc8b84f3e113d935592a26b3a6c446a --- /dev/null +++ b/src/events/recFS/recfsRestart.js @@ -0,0 +1,73 @@ +App.Events.recFSRestart = class recFSRestart extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.FSAnnounced === 1, + ]; + } + + actorPrerequisites() { + return []; + } + + get weight() { + return V.arcologies[0].FSRestart > random(1, 100) ? 1 : 0; + } + + execute(node) { + let r = []; + const slave = GenerateNewSlave("XX", {minAge: 10, maxAge: 18, disableDisability: 1, race: "nonslave"}); + slave.origin = "$He thought $he was important; $he was not."; + slave.career = "a student from a private school"; + slave.intelligence = random(16,95); + slave.intelligenceImplant = 30; + setHealth(slave, jsRandom(20, 40), 0, 0, 0, 0); + slave.devotion = random(-100,-90); + slave.trust = random(-100,-90); + slave.vagina = 0; + slave.trueVirgin = 1; + slave.preg = 0; + slave.behavioralFlaw = "arrogant"; + + const { + He, + his, he, him + } = getPronouns(slave); + const {HeA} = getPronouns(assistant.pronouns().main).appendSuffix("A"); + const contractCost = 1000; + const cost = slaveCost(slave) - contractCost; + r.push(`You receive so many messages, as a noted titan of the new Free Cities world, that your personal assistant has to be quite draconian in culling them. ${HeA} lets only the most important through to you. One category of message that always gets through are potential applicants for the Societal Elite. As the new world takes shape, they've become more rare than they once were.`); + App.Events.addParagraph(node, r); + r = []; + r.push(`This one is most mundane, a student with top grades wanting to be part of the top of society. Upon arriving for ${his} evaluation, ${he} begins droning on about ${his} unimpressive achievements and pointless accomplishments. You review information on ${his} lineage and connections, while feigning interest in ${his} prattling. It would seem ${he} is worth far less than ${he} thinks ${he} is.`); + + App.Events.addParagraph(node, r); + + const choices = []; + + if (V.cash >= contractCost) { + choices.push(new App.Events.Result(`Enslave ${him}`, enslave, `This will cost in ${contractCost}`)); + choices.push(new App.Events.Result(`Sell ${him} immediately`, sell, `This will bring in ${cost}`)); + } else { + choices.push(new App.Events.Result(null, null, `You lack the necessary funds to enslave $${him}.`)); + } + App.Events.addResponses(node, choices); + + function enslave() { + const frag = new DocumentFragment(); + r = []; + r.push(`You interrupt ${his} rambling and bluntly inform ${him} that ${he} is useless to society. ${He} steps back, insulted, and attempts a rebuttal. You cut ${him} off again and tell ${him} ${he}'s much more useful as your personal toy. ${He} takes another step back and is promptly restrained before being dragged off to the autosurgery.`); + slave.preg = -2; + slave.ovaries = 0; + slave.balls = 0; + + r.push(App.UI.newSlaveIntro(slave)); + App.Events.addParagraph(frag, r); + return frag; + } + + function sell() { + cashX(cost, "slaveTransfer"); + return `You interrupt ${his} rambling and bluntly inform ${him} that ${he} is useless to society. ${He} steps back, insulted, and attempts a rebuttal. You cut ${him} off again and tell ${him} another of the Societal Elite has taken interest in making ${him} his pet. ${He} takes another step back and is promptly restrained before being dragged off to ${his} new owner.`; + } + } +}; diff --git a/src/events/recFS/recfsRestartTwo.js b/src/events/recFS/recfsRestartTwo.js new file mode 100644 index 0000000000000000000000000000000000000000..095026d010d0f85626e2f18dd6d6f2952a31f858 --- /dev/null +++ b/src/events/recFS/recfsRestartTwo.js @@ -0,0 +1,80 @@ +App.Events.recFSRestart = class recFSRestart extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.FSAnnounced === 1, + ]; + } + + actorPrerequisites() { + return []; + } + + get weight() { + return V.arcologies[0].FSRestart > random(1, 100) ? 1 : 0; + } + + execute(node) { + let r = []; + const slave = GenerateNewSlave(null, {maxAge: 42, disableDisability: 1}); + slave.origin = "$He considered $himself ugly and wished to stay out of your gene pool."; + setHealth(slave, jsRandom(0, 60), undefined, undefined, 0, 0); + slave.trust = random(25, 45); + slave.devotion = random(25, 45); + slave.anus = random(1, 2); + slave.face = random(-40, 0); + slave.boobShape = "perky"; + slave.boobs = random(2, 5)*100; + slave.weight = 5; + slave.waist = random(-60, 0); + if (slave.physicalAge >= 12) { + slave.teeth = "normal"; + } + + const { + His, He, + his, he, him + } = getPronouns(slave); + const {HeA} = getPronouns(assistant.pronouns().main).appendSuffix("A"); + const contractCost = 1000; + const cost = slaveCost(slave) - contractCost; + r.push(`You receive so many messages, as a noted titan of the new Free Cities world, that your personal assistant has to be quite draconian in culling them. ${HeA} lets only the most important through to you. One category of message that always gets through regardless of content, though, are requests for voluntary enslavement. As the new world takes shape, they've become less rare than they once were.`); + App.Events.addParagraph(node, r); + r = []; + r.push(`This call is coming from a public kiosk, which is usually an indication that the person on the other end is a transient individual who has decided to take slavery over homelessness. A rather homely face greets you, much to your displeasure.`); + r.push(`"I know I'm not much to look at, so I don't even want you to consider me more than just a slave. With the way things are going, I figured just getting it over with is the way to go."`); + + App.Events.addParagraph(node, r); + + const choices = []; + + if (V.cash >= contractCost) { + choices.push(new App.Events.Result(`Enslave ${him}`, enslave, `This will cost in ${contractCost}`)); + choices.push(new App.Events.Result(`Sell ${him} immediately`, sell, `This will bring in ${cost}`)); + } else { + choices.push(new App.Events.Result(null, null, `You lack the necessary funds to enslave $${him}.`)); + } + App.Events.addResponses(node, choices); + + function enslave() { + const frag = new DocumentFragment(); + r = []; + r.push(`When ${he} arrives, ${he} comes directly to your to your penthouse for enslavement. ${His} face may painful to look at, but ${his} body is not all bad; with a little work, ${he} can be quite the catch. When `); + if (canHear(slave)) { + r.push(`${he} hears`); + } else { + r.push(`${he}'s given`); + } + r.push(`the news, ${his} spirits are visibly lifted; ${he} never thought ${he}'d be so lucky.`); + + r.push(App.UI.newSlaveIntro(slave)); + App.Events.addParagraph(frag, r); + return frag; + } + + function sell() { + cashX(cost, "slaveTransfer"); + return `When ${he} arrives, ${he} comes directly to your to your penthouse for enslavement. ${His} face may painful to look at, but ${his} body is not all bad; with a little work, ${he} can be quite the catch. A purchaser's agent appears to take ${him} away, and ${he} quietly asks who's bought ${him}. A plastic surgeon, you tell ${him}, who sees a diamond in the rough. ${He}'s speechless.`; + } + } +}; + diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw index 8041433a3b245389db16f1b4a11e64faacaebf91..9e793fb6c13727f4ee65b60cdc9db813b462b219 100644 --- a/src/uncategorized/reFSAcquisition.tw +++ b/src/uncategorized/reFSAcquisition.tw @@ -20,40 +20,6 @@ <<switch $FSAcquisitionEvents>> -<<case "Eugenics">> - <<set _ContractCost = 1000>> - <<set _slave = GenerateNewSlave("XX", {minAge: 10, maxAge: 18, disableDisability: 1, race: "nonslave"})>> - <<set _slave.origin = "$He thought $he was important; $he was not.">> - <<set _slave.career = "a student from a private school">> - <<set _slave.intelligence = random(16,95)>> - <<set _slave.intelligenceImplant = 30>> - <<run setHealth(_slave, jsRandom(20, 40), 0, 0, 0, 0)>> - <<set _slave.devotion = random(-100,-90)>> - <<set _slave.trust = random(-100,-90)>> - <<set _slave.vagina = 0>> - <<set _slave.trueVirgin = 1>> - <<set _slave.preg = 0>> - <<set _slave.behavioralFlaw = "arrogant">> - <<set _slaveCost = slaveCost(_slave)>> - <<set _slaveCost -= 1000>> -<<case "Eugenics Two">> - <<set _ContractCost = 1000>> - <<set _slave = GenerateNewSlave(null, {maxAge: 42, disableDisability: 1})>> - <<set _slave.origin = "$He considered $himself ugly and wished to stay out of your gene pool.">> - <<run setHealth(_slave, jsRandom(0, 60), undefined, undefined, 0, 0)>> - <<set _slave.trust = random(25,45)>> - <<set _slave.devotion = random(25,45)>> - <<set _slave.anus = random(1,2)>> - <<set _slave.face = random(-40,0)>> - <<set _slave.boobShape = "perky">> - <<set _slave.boobs = random(2,5)*100>> - <<set _slave.weight = 5>> - <<set _slave.waist = random(-60,0)>> - <<if _slave.physicalAge >= 12>> - <<set _slave.teeth = "normal">> - <</if>> - <<set _slaveCost = slaveCost(_slave)>> - <<set _slaveCost -= 1000>> <<case "Roman Revivalist">> <<set _ContractCost = 1000>> <<set _slave = GenerateNewSlave("XX", {minAge: 22, maxAge: 28, disableDisability: 1})>> @@ -189,14 +155,6 @@ <<setAssistantPronouns>> <<switch $FSAcquisitionEvents>> -<<case "Eugenics">> - You receive so many messages, as a noted titan of the new Free Cities world, that your personal assistant has to be quite draconian in culling them. _HeA lets only the most important through to you. One category of message that always gets through are potential applicants for the Societal Elite. As the new world takes shape, they've become more rare than they once were. - <br><br> - This one is most mundane, a student with top grades wanting to be part of the top of society. Upon arriving for $his evaluation, $he begins droning on about $his unimpressive achievements and pointless accomplishments. You review information on $his lineage and connections, while feigning interest in $his prattling. It would seem $he is worth far less than $he thinks $he is. -<<case "Eugenics Two">> - You receive so many messages, as a noted titan of the new Free Cities world, that your personal assistant has to be quite draconian in culling them. _HeA lets only the most important through to you. One category of message that always gets through regardless of content, though, are requests for voluntary enslavement. As the new world takes shape, they've become less rare than they once were. - <br><br> - This call is coming from a public kiosk, which is usually an indication that the person on the other end is a transient individual who has decided to take slavery over homelessness. A rather homely face greets you, much to your displeasure. "I know I'm not much to look at, <<s>>o I don't even want you to con<<s>>ider me more than ju<<s>>t a <<s>>lave. With the way thing<<s>> are going, I figured ju<<s>>t getting it over with i<<s>> the way to go." <<case "Roman Revivalist">> You receive so many messages, as a noted titan of the new Free Cities world, that $assistant.name has to be quite draconian in culling them. _HeA lets only the most important through to you. One category of message that always gets through regardless of content, though, is requests for voluntary enslavement. As the new world takes shape, they've become less rare than they once were. <br><br> @@ -235,13 +193,6 @@ <<run cashX(forceNeg(_ContractCost), "slaveTransfer", _slave)>> <<replace "#result">> <<switch $FSAcquisitionEvents>> - <<case "Eugenics">> - You interrupt $his rambling and bluntly inform $him that $he is useless to society. $He steps back, insulted, and attempts a rebuttal. You cut $him off again and tell $him $he's much more useful as your personal toy. $He takes another step back and is promptly restrained before being dragged off to the autosurgery. - <<set _slave.preg = -2>> - <<set _slave.ovaries = 0>> - <<set _slave.balls = 0>> - <<case "Eugenics Two">> - When $he arrives, $he comes directly to your to your penthouse for enslavement. $His face may painful to look at, but $his body is not all bad; with a little work, $he can be quite the catch. When <<if canHear(_slave)>>$he hears<<else>>$he's given<</if>> the news, $his spirits are visibly lifted; $he never thought $he'd be so lucky. <<case "Roman Revivalist">> $He arrives wide-eyed and enthusiastic about the historical style $he <<if canSee(_slave)>>saw<<elseif canHear(_slave)>>heard<<else>>felt<</if>> on the way in. $He swallows nervously throughout the enslavement process and even cries a little at the end. $He's slow to undress, and when $he's finished, $he covers $his modest breasts with one arm and $his mons with the other. It seems that $he's about to have a rude awakening about the realities of being a house slave. <<case "Neo Imperialist">> @@ -262,10 +213,6 @@ <<run cashX(_slaveCost, "slaveTransfer")>> <<replace "#result">> <<switch $FSAcquisitionEvents>> - <<case "Eugenics">> - You interrupt $his rambling and bluntly inform $him that $he is useless to society. $He steps back, insulted, and attempts a rebuttal. You cut $him off again and tell $him another of the Societal Elite has taken interest in making $him his pet. $He takes another step back and is promptly restrained before being dragged off to $his new owner. - <<case "Eugenics Two">> - When $he arrives, $he comes directly to your to your penthouse for enslavement. $His face may painful to look at, but $his body is not all bad; with a little work, $he can be quite the catch. A purchaser's agent appears to take $him away, and $he quietly asks who's bought $him. A plastic surgeon, you tell $him, who sees a diamond in the rough. $He's speechless. <<case "Roman Revivalist">> $He arrives with doubt already clouding $his eyes. It seems $he got an introduction to the reality of Roman Revivalism on $his way up the arcology to your villa. The violence it did to $his vision of Rome is deeply ironic; $arcologies[0].name is a fair reproduction of the decadence and vigor of imperial Rome. If $he's shocked by the screams of a slave dying in gladiatorial combat or the spectacle of prisoners from the provinces being sold at auction, that's $his ignorance. When you cause a price placard to be affixed to $his chest so $he can be sold at auction, the reality of $his future finally comes home to $him. <<case "Neo Imperialist">>