diff --git a/src/events/nonRandom/mercs/pSnatchAndGrab.js b/src/events/nonRandom/mercs/pSnatchAndGrab.js index dce4165fcad246c2cd2ef243a6c3378273820153..8a894641db1b38edda9fcdc96a9acf4e9ac99999 100644 --- a/src/events/nonRandom/mercs/pSnatchAndGrab.js +++ b/src/events/nonRandom/mercs/pSnatchAndGrab.js @@ -1,74 +1,100 @@ - :: P snatch and grab [nobr] +App.Events.PSnatchAndGrab = class PSnatchAndGrab extends App.Events.BaseEvent { + eventPrerequisites() { + return [ + () => V.mercenaries > 0 + ]; + } + execute(node) { + let r = []; V.nextButton = "Continue"; - V.eventResults.snatch = 0; - <<setAssistantPronouns>> - V.capFirstChar(V.assistant.name) - r.push(`forwards a discreet message from the leader of your mercenaries.`); - <br><br> - "V.properTitle() - r.push(`, I've just become aware of a... business opportunity through some old friends. There's an unregistered lab doing illegal gene therapy work. At least two agencies are onto them, which is how I heard of it. Word is, they're packing up and moving out. I believe me and my people can appropriate that shipment. Catch is, to make this work I need to pay some serious bribes, and I need to pay them today. We'll cut you in as an equal partner for`); - V.cashFormat(10000) - r.push(`cash, right now. One share should come to one of the lab rats, more or less. Are you in or out?"`); + App.Events.addParagraph(node, [`${capFirstChar(V.assistant.name)} forwards a discreet message from the leader of your mercenaries.`]); + + r.push(`"${properTitle()}, I've just become aware of a... business opportunity through some old friends. There's an unregistered lab doing illegal gene therapy work. At least two agencies are onto them, which is how I heard of it. Word is, they're packing up and moving out. I believe me and my people can appropriate that shipment. Catch is, to make this work I need to pay some serious bribes, and I need to pay them today. We'll cut you in as an equal partner for ${cashFormat(10000)} cash, right now. One share should come to one of the lab rats, more or less. Are you in or out?"`); if (V.assistant.personality === 1) { - <br><br> - r.push(`${V.capFirstChar(V.assistant.name)}'s V.assistant.appearance avatar appears on your desk next to the message.`); + const { + HeA, + heA, hisA, himselfA + } = getPronouns(assistant.pronouns().main).appendSuffix("A"); + App.Events.addParagraph(node, r); + r = []; + r.push(`${capFirstChar(V.assistant.name)}'s ${V.assistant.appearance} avatar appears on your desk next to the message.`); switch (V.assistant.appearance) { - case "monstergirl": - "I vote yes. Even though whatever that lab is producing can't possibly be as interesting as me," _heA says haughtily, and twirls a strand of tentacle hair. - case "shemale": - "I vote yes," _heA says sweetly. "Whatever they're doing, it's probably interesting. I'd love to fuck something interesting." - case "amazon": - "I vote yes!" _heA shouts. "Whatever they're doing, their girls are probably valuable. And everything's more fun if you loot it instead of buying it." - case "businesswoman": - "I vote yes," _heA says. "The likelihood that the lab is producing something valuable is overwhelming. The potential profits are," and _heA pauses to fan _himselfA, "exciting." - case "fairy" "pregnant fairy": - "I vote yes," _heA says. "They could be up to something really cool!" - case "goddess": - "I vote yes," _heA says. "Whatever is in that lab deserves some loving attention and... more variety is always appreciated." - case "hypergoddess": - "I vote yes," _heA says. "Whatever is in that lab deserves some loving attention and... more variety is always appreciated." - case "loli": - "I vote yeah," _heA says. "I wanna see what's inside!" - case "preggololi": - "I vote yeah," _heA says. "I wanna see what's inside!" - case "schoolgirl": - "I vote yeah," _heA says. "I just wanna see what that lab is doing. Could be cool!" - case "angel": - "I vote yes," _heA says. "Whatever is in that lab deserves a better life under your care." - case "cherub": - "I vote yeah," _heA says. "I'm really curious what could be inside." - case "incubus": - "I vote yes," _heA says. "I can't wait to get my dick in it!" - case "succubus": - "I vote no," _heA says. "You're all mine!" - case "imp": - "I vote yeah," _heA says. "I can't wait to tease and torment whatever's inside!" - case "witch": - "I vote yes," _heA says. "It can't be worse than some of my fuckups." - case "ERROR_1606_APPEARANCE_FILE_CORRUPT": - _HeA doesn't comment, though a large, toothy grin spreads across the entirety of _hisA head revealing _hisA thoughts on the subject. - default: - "I would suggest agreement," _heA says. "Even if the prize does not appeal to you personally, it's likely to be quite valuable. Selling it could net you quite a profit." + case "monstergirl": + r.push(`"I vote yes. Even though whatever that lab is producing can't possibly be as interesting as me," ${heA} says haughtily, and twirls a strand of tentacle hair.`); + break; + case "shemale": + r.push(`"I vote yes," ${heA} says sweetly. "Whatever they're doing, it's probably interesting. I'd love to fuck something interesting."`); + break; + case "amazon": + r.push(`"I vote yes!" ${heA} shouts. "Whatever they're doing, their girls are probably valuable. And everything's more fun if you loot it instead of buying it."`); + break; + case "businesswoman": + r.push(`"I vote yes," ${heA} says. "The likelihood that the lab is producing something valuable is overwhelming. The potential profits are," and ${heA} pauses to fan ${himselfA}, "exciting."`); + break; + case "fairy": + case "pregnant fairy": + r.push(`"I vote yes," ${heA} says. "They could be up to something really cool!"`); + break; + case "goddess": + r.push(`"I vote yes," ${heA} says. "Whatever is in that lab deserves some loving attention and... more variety is always appreciated."`); + break; + case "hypergoddess": + r.push(`"I vote yes," ${heA} says. "Whatever is in that lab deserves some loving attention and... more variety is always appreciated."`); + break; + case "loli": + r.push(`"I vote yeah," ${heA} says. "I wanna see what's inside!"`); + break; + case "preggololi": + r.push(`"I vote yeah," ${heA} says. "I wanna see what's inside!"`); + break; + case "schoolgirl": + r.push(`"I vote yeah," ${heA} says. "I just wanna see what that lab is doing. Could be cool!"`); + break; + case "angel": + r.push(`"I vote yes," ${heA} says. "Whatever is in that lab deserves a better life under your care."`); + break; + case "cherub": + r.push(`"I vote yeah," ${heA} says. "I'm really curious what could be inside."`); + break; + case "incubus": + r.push(`"I vote yes," ${heA} says. "I can't wait to get my dick in it!"`); + break; + case "succubus": + r.push(`"I vote no," ${heA} says. "You're all mine!"`); + break; + case "imp": + r.push(`"I vote yeah," ${heA} says. "I can't wait to tease and torment whatever's inside!"`); + break; + case "witch": + r.push(`"I vote yes," ${heA} says. "It can't be worse than some of my fuckups."`); + break; + case "ERROR_1606_APPEARANCE_FILE_CORRUPT": + r.push(`${HeA} doesn't comment, though a large, toothy grin spreads across the entirety of ${hisA} head revealing ${hisA} thoughts on the subject.`); + break; + default: + r.push(`"I would suggest agreement," ${heA} says. "Even if the prize does not appeal to you personally, it's likely to be quite valuable. Selling it could net you quite a profit."`); } } - <br><br> + App.Events.addParagraph(node, r); + + const choices = [ + new App.Events.Result(`Bankroll the snatch and grab`, bankroll), + new App.Events.Result(`Politely decline`, decline) + ]; + App.Events.addResponses(node, choices); - <span id="result"> - <<link "Bankroll the snatch and grab">> - <<replace "#result">> - r.push(`You receive no response whatsoever. Twenty minutes later, however, a liaison VTOL aircraft that the mercenaries sometimes hire arrives, loads a party of armed men and women, and leaves.`); + function bankroll() { cashX(-10000, "slaveTransfer"); V.eventResults.snatch = 1; - <</replace>> - <</link>> - <br> - <<link "Politely decline">> - <<replace "#result">> - r.push(`You receive no response whatsoever. That's how it is with professionals: the offer was never made, you never declined, and no further discussion is necessary or desired.`); - <</replace>> - <</link>> - </span> + return `You receive no response whatsoever. Twenty minutes later, however, a liaison VTOL aircraft that the mercenaries sometimes hire arrives, loads a party of armed men and women, and leaves.`; + } + + function decline() { + return `You receive no response whatsoever. That's how it is with professionals: the offer was never made, you never declined, and no further discussion is necessary or desired.`; + } + } +}; diff --git a/src/events/timeGatedPlotEvent.js b/src/events/timeGatedPlotEvent.js index 9d29c023ad8ce1103edcc9b57195126e413578d5..6a6719fd72e9e1a7117acc378816a1526cc7626c 100644 --- a/src/events/timeGatedPlotEvent.js +++ b/src/events/timeGatedPlotEvent.js @@ -14,9 +14,7 @@ App.Events.TimeGatedPlotEvent = class TimeGatedPlotEvent extends App.Events.Base this.events[20] = new App.Events.PSlaveFood(); this.events[24] = new App.Events.PMilitia(); this.events[31] = new App.Events.PMercenaries(); - this.events[35] = new App.Events.TwineEvent().wrapPassage([ - () => V.mercenaries > 0 - ], "P snatch and grab"); + this.events[35] = new App.Events.PSnatchAndGrab(); this.events[43] = new App.Events.TwineEvent().wrapPassage([], "P invasion"); this.events[46] = new App.Events.PRaidInvitation(); this.events[56] = new App.Events.PUndergroundRailroad();