diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js index f97424d4254c388c4910804d557fc56249588c10..27c64f2b01b7c690a6cac322614aade78f78e3a8 100644 --- a/src/npc/generate/generateMarketSlave.js +++ b/src/npc/generate/generateMarketSlave.js @@ -1121,9 +1121,33 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 eyeSurgery(slave, "both", "blur"); } slave.hears = jsEither([-2, -1, -1, -1, -1, 0, 0, 0]); - if (V.seeExtreme === 1 && jsRandom(0, 2) === 2) { - // TODO: maybe only partly amputee? - removeLimbs(slave, "all"); + if (V.seeExtreme === 1) { + /** @type {FC.LimbArgument[]} */ + const limbs = ["left arm", "left leg", "right arm", "right leg"]; + switch (jsRandom(0, 16)) { + case 1: + case 2: + // 1/8 chance quad amputee + removeLimbs(slave, "all"); + break; + case 3: + // 1/16 chance no arms + removeLimbs(slave, "left arm"); + removeLimbs(slave, "right arm"); + break; + case 4: + // 1/16 chance no legs + removeLimbs(slave, "left leg"); + removeLimbs(slave, "right leg"); + break; + case 5: + case 6: + // 1/8 chance missing one random limb + removeLimbs(slave, limbs.random()); + break; + default: + // 5/8 chance all limbs intact + } } if (hasAnyLegs(slave)) { slave.heels = jsEither([0, 0, 0, 0, 0, 1, 1]);