From 22ffcc35e50bd7cd5d8ba7f5f37f081bf43cbe24 Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Fri, 4 Dec 2020 15:47:22 -0500 Subject: [PATCH] bein adding cheats to surgery screen --- src/js/health.js | 9 ++++++--- src/npc/surgery/surgery.js | 36 +++++++++++++++++++++--------------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/js/health.js b/src/js/health.js index 4e7d09d9896..20613e8d670 100644 --- a/src/js/health.js +++ b/src/js/health.js @@ -69,11 +69,14 @@ globalThis.healthCure = function(slave, cure) { * Surgical procedures also depend on the PC's medicine skill * @param {App.Entity.SlaveState} slave * @param {number} damage + * @param {boolean} [cheat] * @returns {void} */ -globalThis.surgeryDamage = function(slave, damage) { - const playerSkillFactor = 1 + Math.clamp(Math.pow(V.PC.skill.medicine / 100, 2), 0, 1); - healthDamage(slave, Math.trunc(damage / playerSkillFactor)); +globalThis.surgeryDamage = function(slave, damage, cheat = false) { + if (!cheat) { + const playerSkillFactor = 1 + Math.clamp(Math.pow(V.PC.skill.medicine / 100, 2), 0, 1); + healthDamage(slave, Math.trunc(damage / playerSkillFactor)); + } }; /** diff --git a/src/npc/surgery/surgery.js b/src/npc/surgery/surgery.js index 1a51b33059b..44a2459bd07 100644 --- a/src/npc/surgery/surgery.js +++ b/src/npc/surgery/surgery.js @@ -10,16 +10,17 @@ * @param {number} [costs] money costs * @param {number} [hCosts] health costs * @param {string} [surgeryType] + * @param {boolean} [cheat] * @returns {FC.Medicine.Surgery.Procedure} */ -App.Medicine.Surgery.makeOption = function(typeId, label, effect, desc, action, costs, hCosts, surgeryType) { +App.Medicine.Surgery.makeOption = function(typeId, label, effect, desc, action, costs, hCosts, surgeryType, cheat = false) { return { typeId: typeId, label: label, targetEffect: effect, description: desc, - costs: costs, - healthCosts: hCosts, + costs: (cheat) ? 0 : costs, + healthCosts: (cheat) ? 0 : hCosts, action: action, surgeryType: surgeryType }; @@ -72,12 +73,15 @@ App.Medicine.Keys = { * Commit procedure, executing its action and subtracting its costs * @param {FC.Medicine.Surgery.Procedure} surgery * @param {App.Entity.SlaveState} slave + * @param {boolean} [cheat] */ -App.Medicine.Surgery.commit = function(surgery, slave) { +App.Medicine.Surgery.commit = function(surgery, slave, cheat) { V.surgeryType = surgery.surgeryType; surgery.action(slave); - cashX(forceNeg(surgery.costs), "slaveSurgery", slave); - surgeryDamage(slave, surgery.healthCosts); + if (!cheat) { + cashX(forceNeg(surgery.costs), "slaveSurgery", slave); + surgeryDamage(slave, surgery.healthCosts, cheat); + } }; /** @@ -85,9 +89,10 @@ App.Medicine.Surgery.commit = function(surgery, slave) { * @param {string} passage Passage to go after the surgery * @param {FC.Medicine.Surgery.Procedure} surgery * @param {App.Entity.SlaveState} slave + * @param {boolean} [cheat] * @returns {string} */ -App.Medicine.Surgery.makeLink = function(passage, surgery, slave) { +App.Medicine.Surgery.makeLink = function(passage, surgery, slave, cheat = false) { if (surgery.action === undefined) { return App.UI.disabledLink(surgery.label, [surgery.description]); } @@ -107,7 +112,7 @@ App.Medicine.Surgery.makeLink = function(passage, surgery, slave) { } return App.UI.link(surgery.label, App.Medicine.Surgery.commit, [surgery, slave], passage, - `${capFirstChar(surgery.description)}.\nSurgery costs: ${cashFormat(surgery.costs)}.\nProjected health damage: ${healthCosts()}.`); + `${capFirstChar(surgery.description)}.${cheat ? `` : `\nSurgery costs: ${cashFormat(surgery.costs)}.\nProjected health damage: ${healthCosts()}.`}`); }; /** @@ -574,22 +579,23 @@ App.Medicine.Surgery.sizingProcedures = function() { * For limbs use removeLimbs() * @param {App.Entity.SlaveState} slave * @param {string} part + * @param {boolean} [cheat] */ -globalThis.surgeryAmp = function(slave, part) { +globalThis.surgeryAmp = function(slave, part, cheat = false) { switch (part) { case "left ear": delete slave.brand["left ear"]; slave.earShape = "none"; slave.earT = "none"; slave.earPiercing = 0; - surgeryDamage(slave, 10); + surgeryDamage(slave, 10, cheat); break; case "right ear": delete slave.brand["right ear"]; slave.earShape = "none"; slave.earT = "none"; slave.earPiercing = 0; - surgeryDamage(slave, 10); + surgeryDamage(slave, 10, cheat); break; case "dick": slave.dick = 0; @@ -599,7 +605,7 @@ globalThis.surgeryAmp = function(slave, part) { slave.dickTat = 0; slave.dickAccessory = "none"; slave.chastityPenis = 0; - surgeryDamage(slave, 20); + surgeryDamage(slave, 20, cheat); break; case "vagina": slave.vagina = -1; @@ -611,17 +617,17 @@ globalThis.surgeryAmp = function(slave, part) { slave.vaginalAccessory = "none"; slave.vaginalAttachment = "none"; slave.chastityVagina = 0; - surgeryDamage(slave, 20); + surgeryDamage(slave, 20, cheat); break; case "horn": slave.horn = "none"; slave.hornColor = "none"; - surgeryDamage(slave, 10); + surgeryDamage(slave, 10, cheat); break; case "voicebox": slave.voice = 0; slave.voiceImplant = 0; - surgeryDamage(slave, 10); + surgeryDamage(slave, 10, cheat); break; case "lips": slave.lips -= slave.lipsImplant; -- GitLab