From 6aba7bd22b5bd5f55ff33b292bd0d6c384b56a7f Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Sat, 15 May 2021 18:16:08 -0700 Subject: [PATCH] More markets choose not to ginger their slaves --- src/markets/gingering.js | 16 ++++++++++++---- src/npc/generate/generateMarketSlave.js | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/markets/gingering.js b/src/markets/gingering.js index c8308dcbda2..cb83e9d00ea 100644 --- a/src/markets/gingering.js +++ b/src/markets/gingering.js @@ -2,8 +2,9 @@ App.Entity.GingeringParameters = class { /** Get gingering parameters for a particular slave and market. * @param {App.Entity.SlaveState} slave * @param {FC.Zeroable<FC.SlaveMarketName>} market + * @param {number} [arcIndex] - arcology index if market is "neighbor" */ - constructor(slave, market) { + constructor(slave, market, arcIndex) { /** @type {FC.Gingering} */ this.type = 0; /** @type {FC.GingeringDetection} */ @@ -13,7 +14,13 @@ App.Entity.GingeringParameters = class { // figure out what type of gingering applies, if any if (applyLawCheck(market) === 1 && V.policies.SMR.honestySMR === 1) { - /* SMR prohibits gingering and is enforced for this slave - do nothing */ + /* SMR prohibits gingering and is enforced for this seller - do nothing */ + } else if (App.Data.misc.schools.keys().includes(market)) { + /* slave schools have a reputation to maintain, and will never ginger their slaves */ + } else if (["wetware", "heap", "gangs and smugglers", "low tier criminals", "military prison", "white collar", "corporate"].includes(market)) { + /* these sellers see no reason to ginger their slaves */ + } else if (market === "neighbor" && App.Neighbor.opinion(V.arcologies[0], V.arcologies[arcIndex]) >= 50) { + /* socially-aligned neighbors will not try to cheat you */ } else if (slave.indenture > 0) { /* indentured servants cannot be gingered */ } else if (isShelterSlave(slave)) { @@ -89,10 +96,11 @@ globalThis._makeGingeredSlaveHandler = function(gParams, gKeys) { /** Get a gingered proxy for a slave. * @param {App.Entity.SlaveState} slave * @param {FC.Zeroable<FC.SlaveMarketName>} market + * @param {number} arcIndex - arcology number if market is "neighbor" * @returns {FC.GingeredSlave} * */ -globalThis.getGingeredSlave = function(slave, market) { - const gingering = new App.Entity.GingeringParameters(slave, market); +globalThis.getGingeredSlave = function(slave, market, arcIndex) { + const gingering = new App.Entity.GingeringParameters(slave, market, arcIndex); /** @type {Map<string, string|number>} */ const gingeredKeys = new Map(); diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js index 8b86473926a..e17dfc3eb61 100644 --- a/src/npc/generate/generateMarketSlave.js +++ b/src/npc/generate/generateMarketSlave.js @@ -3200,5 +3200,5 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1 break; } } - return {text: r, slave: getGingeredSlave(slave, market)}; + return {text: r, slave: getGingeredSlave(slave, market, numArcology)}; }; -- GitLab