diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index e3af388240ce6444a0d3d0a70209a249d5fc7319..7649e30d72937758021f1820c2e4857fcf4da3e1 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -774,7 +774,7 @@ App.Data.resetOnNGPlus = { lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0 }, arcadePrice: 2, - /** @type {App.Entity.SlaveState|number} */ + /** @type {FC.Zeroable<App.Entity.SlaveState>} */ shelterSlave: 0, shelterSlaveBought: 0, shelterAbuse: 0, diff --git a/src/Mods/SecExp/js/secExp.js b/src/Mods/SecExp/js/secExp.js index e182e2c3baf52ccc203661a5473efe4b00e55de5..c4bb950ff9986a4714652fb7e69e30da525fa1ca 100644 --- a/src/Mods/SecExp/js/secExp.js +++ b/src/Mods/SecExp/js/secExp.js @@ -662,7 +662,7 @@ App.SecExp.inflictBattleWound = (function() { effects: (s) => { clampedDamage(s, 30); eyeSurgery(s, "both", "blind"); - App.Medicine.Modification.addScar(s, "damaged eyes", "While leading your army a splinter hit the eyes causing major damage."); + App.Medicine.Modification.addScar(s, "damaged eyes", "a scar from shrapnel obtained while leading your army"); } }, voice: { @@ -671,7 +671,7 @@ App.SecExp.inflictBattleWound = (function() { effects: (s) => { clampedDamage(s, 60); s.voice = 0; - App.Medicine.Modification.addScar(s, "damaged throat", "While leading your army a splinter hit and destroyed vocal cords"); + App.Medicine.Modification.addScar(s, "damaged throat", "a scar from shrapnel obtained while leading your army"); } }, legs: { @@ -681,7 +681,8 @@ App.SecExp.inflictBattleWound = (function() { clampedDamage(s, 80); removeLimbs(s, "left leg"); removeLimbs(s, "right leg"); - App.Medicine.Modification.addScar(s, "arm blown off", "While leading your army a nearby explosion mangled both legs to the point of amputation."); + App.Medicine.Modification.addScar(s, "left buttock", "a scar from a battle wound leading to amputation"); + App.Medicine.Modification.addScar(s, "right buttock", "a scar from a battle wound leading to amputation"); } }, arm: { @@ -689,8 +690,9 @@ App.SecExp.inflictBattleWound = (function() { allowed: (s) => hasAnyNaturalArms(s), effects: (s) => { clampedDamage(s, 60); - removeLimbs(s, jsEither(["left arm", "right arm"])); - App.Medicine.Modification.addScar(s, "arm blown off", "While leading your army a nearby explosion mangled an arm to the point of amputation."); + const side = jsEither(["left", "right"]); + removeLimbs(s, side === "left" ? "left arm" : "right arm"); + App.Medicine.Modification.addScar(s, `${side} shoulder`, "a scar from a battle wound leading to amputation"); } }, flesh: { @@ -698,7 +700,7 @@ App.SecExp.inflictBattleWound = (function() { allowed: () => true, effects: (s) => { clampedDamage(s, 30); - App.Medicine.Modification.addScar(s, "flesh wound", "A stray shot during leading your army grazed the skin and destroyed nerve endings"); + App.Medicine.Modification.addScar(s, either("left shoulder", "right shoulder", "back", "lower back", "belly", "left buttock", "right buttock"), "a scar from a stray shot while leading your army"); } } // TODO: add more wound types? destroy prosthetics? diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 13da8b7c798eac59bc7fd106d1c0962cc2098661..9a2f45e3835525c0af27c204c4b6e90093199daf 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -388,7 +388,6 @@ App.Entity.scarState = class { * chain/manacles scar, focused on wrists ankles or neck * * 0: no scar * * 1+: increasing intensity of scar - * 1+: increasing intensity of scar */ this.chain = 0; /** diff --git a/src/js/modification.js b/src/js/modification.js index 5dff40616f2fe8e4a5884bbf54c70463c8e51d0e..d2d01bc64f42ee5ec6a85c751628e3ac4f4bce57 100644 --- a/src/js/modification.js +++ b/src/js/modification.js @@ -2,7 +2,7 @@ * Basic application of scar * @param {App.Entity.SlaveState} slave * @param {string} scar - * @param {keyof App.Entity.scarState} design + * @param {keyof App.Entity.scarState|string} design * @param {number} [weight] */ App.Medicine.Modification.addScar = function(slave, scar, design, weight) { @@ -27,7 +27,7 @@ App.Medicine.Modification.addScar = function(slave, scar, design, weight) { * Basic application of scar * @param {App.Entity.SlaveState} slave * @param {string} scar - * @param {keyof App.Entity.scarState} design + * @param {keyof App.Entity.scarState|string} design */ App.Medicine.Modification.removeScar = function(slave, scar, design) { /* diff --git a/src/markets/specificMarkets/slaveShelter.js b/src/markets/specificMarkets/slaveShelter.js index 792da858761877d8a1c1abcc5119399b3cbba3c9..3aaee6e3bcd3f83db72c29c9561f6f09d99145a9 100644 --- a/src/markets/specificMarkets/slaveShelter.js +++ b/src/markets/specificMarkets/slaveShelter.js @@ -69,7 +69,7 @@ App.Markets["Slave Shelter"] = function() { V.shelterSlave.career = "a slave"; eyeSurgery(V.shelterSlave, "both", "blind"); setEyeColor(V.shelterSlave, "milky white"); - V.shelterSlave.custom.desc = "$He has an obvious burn across $his eyes."; + App.Medicine.Modification.addScar(V.shelterSlave, "face", "burn", 2); V.shelterSlave.devotion = jsRandom(-100, -90); V.shelterSlave.trust = jsRandom(-100, -90); setHealth(V.shelterSlave, jsRandom(-60, -40), normalRandInt(10, 3), normalRandInt(20, 3)); @@ -121,7 +121,7 @@ App.Markets["Slave Shelter"] = function() { V.shelterSlave.behavioralFlaw = either("anorexic", "anorexic", "anorexic", "odd"); V.shelterSlave.sexualFlaw = either("apathetic", "neglectful", "self hating"); V.shelterSlave.fetish = either("masochist", "none", "none"); - V.shelterSlave.custom.desc = "The scars from $his crudely performed self-castration are still visible on $his lower groin."; + App.Medicine.Modification.addScar(V.shelterSlave, "pubic mound", "scars from $his crudely performed self-castration"); break; case "cannibal victim female": if (V.pedo_mode === 1) { @@ -144,7 +144,8 @@ App.Markets["Slave Shelter"] = function() { V.shelterSlave.behavioralFlaw = either("anorexic", "anorexic", "anorexic", "odd"); V.shelterSlave.sexualFlaw = either("apathetic", "neglectful", "self hating"); V.shelterSlave.fetish = either("masochist", "none", "none"); - V.shelterSlave.custom.desc = "$His chest is covered by an ugly mess of scar tissue."; + App.Medicine.Modification.addScar(V.shelterSlave, "left breast", "an ugly mess of scar tissue"); + App.Medicine.Modification.addScar(V.shelterSlave, "right breast", "an ugly mess of scar tissue"); break; case "degraded DoL": V.shelterSlave = GenerateNewSlave(null, {minAge: 14, disableDisability: 1, ageOverridesPedoMode: 1});