From 19ab5d4758544562b25c4ca939329da13afc3bba Mon Sep 17 00:00:00 2001 From: jgl <jgl6@protonmail.com> Date: Sat, 25 Feb 2023 23:09:13 +0100 Subject: [PATCH] Add condition to devotion loss in first DoL event --- .../nonRandom/daughters/pUndergroundRailroad.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/events/nonRandom/daughters/pUndergroundRailroad.js b/src/events/nonRandom/daughters/pUndergroundRailroad.js index 1636009b2dd..c6b524d636c 100644 --- a/src/events/nonRandom/daughters/pUndergroundRailroad.js +++ b/src/events/nonRandom/daughters/pUndergroundRailroad.js @@ -31,6 +31,15 @@ App.Events.PUndergroundRailroad = class PUndergroundRailroad extends App.Events. V.traitorType = "standard"; } + /** Determines whether slave actually cares about potential freedom + * @param {FC.SlaveState} slave + * @returns {boolean} + */ + function desiresFreedom(slave) { + return !isMindbroken(slave) && + (slave.devotion < jsRandom(50, 95) || slave.trust < 50); + } + r.push(`One fine day, as normal as any day surrounded by your slaves can be, you're sitting at your desk when`); if (V.traitorType === "agent") { // TODO: canMove canWalk variants. @@ -348,7 +357,7 @@ App.Events.PUndergroundRailroad = class PUndergroundRailroad extends App.Events. let r = []; unlock(); r.push(`${traitor.slaveName} nods ${his} head in acceptance. There is too much at stake to take such a risk. All attempts to use your monitoring systems to find the citizens who contacted ${him} fail; it seems their ability to corrupt your systems is considerable. ${He} keeps ${his} lips shut tight in an effort to prevent rumors from spreading, but <span class="devotion dec">whispers of freedom</span> still manage to run through your chattel.`); - V.slaves.forEach(function(s) { s.devotion -= 5; }); + V.slaves.filter(desiresFreedom).forEach(s => s.devotion -= 5); App.Events.addParagraph(frag, r); return frag; } @@ -379,7 +388,7 @@ App.Events.PUndergroundRailroad = class PUndergroundRailroad extends App.Events. r.push(`${traitor.slaveName} almost <span class="devotion dec">faints with relief</span> when it becomes apparent you aren't going to punish ${him} for speaking of freedom.`); } r.push(`All attempts to use your monitoring systems to find the citizens who contacted ${him} fail; it seems their ability to corrupt your systems is considerable. <span class="devotion dec">Whispers of freedom</span> run like wildfire amongst your slaves.`); - V.slaves.forEach(function(s) { s.devotion -= 10; }); + V.slaves.filter(desiresFreedom).forEach(s => s.devotion -= 10); traitor.devotion -= 15; App.Events.addParagraph(frag, r); return frag; -- GitLab