diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw index 8a68dbe21a99b923a830f662d4882e026c8c74ad..dc84c4ea06d63de195ca06c57a653ff27a52fd64 100644 --- a/src/interaction/prostheticConfig.tw +++ b/src/interaction/prostheticConfig.tw @@ -1,7 +1,5 @@ :: Prosthetics Configuration [nobr] -<<set $AS = $activeSlave.ID>> - <<switch $prostheticsConfig>> <<case "main">> diff --git a/src/npc/children/childInteract.tw b/src/npc/children/childInteract.tw index 644d87be929ac274d419e75c4d656b3a4dca80bf..f0fdb48c4aa603549207ce3b861bee927f69c753 100644 --- a/src/npc/children/childInteract.tw +++ b/src/npc/children/childInteract.tw @@ -63,7 +63,7 @@ FIXME: | [[Auto salon|Salon][$degradation = 0, $tattooChoice = "", $piercingLevel = ""]] | [[Body mod studio|Body Modification][$degradation = 0, $tattooChoice = undefined]] | [[Remote surgery|Remote Surgery][$degradation = 0]] -| [[Configure cybernetics|Prosthetics Configuration][$prostheticsConfig = "main"]] +| [[Configure cybernetics|Prosthetics Configuration][$AS = $.ID>>$prostheticsConfig = "main"]] */ /*TODO: These will most likely need to be reworked*/ diff --git a/src/npc/descriptions/limbs.js b/src/npc/descriptions/limbs.js index fc556744b0eca312249feb0ffd5aabec7b22598d..1d18a1c071bab589ad77869a311de0591ab3552e 100644 --- a/src/npc/descriptions/limbs.js +++ b/src/npc/descriptions/limbs.js @@ -183,6 +183,7 @@ App.Desc.limbChange = function() { function apply() { let s; + V.AS = slave.ID; if (!returnTo) { s = `<<set $prostheticsConfig = "limbs", $oldLimbs = ${JSON.stringify(oldLimbs)}>>` + '<<goto "Prosthetics Configuration">>'; diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index ea15a666959f5fd837b354e61a9a818dffade905..019d2157436ec4e0f592c60c7e6e2923d5e69b9f 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -116,7 +116,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <<if (_reservedIncubator + _reservedNursery < _WL) && ($reservedChildren < _freeTanks)>> <br> <<if $pregnancyMonitoringUpgrade == 1>> - <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">> <</if>> <<print "[[Keep another child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> <<if _reservedIncubator > 0>> @@ -131,7 +131,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <<elseif (_reservedIncubator == _WL) || ($reservedChildren == _freeTanks) || (_reservedIncubator + _reservedNursery == _WL)>> <br> <<if $pregnancyMonitoringUpgrade == 1>> - <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">> <</if>> <<print "[[Keep one less child|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> <<if _reservedIncubator > 1>> @@ -143,14 +143,14 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ //$His children are already reserved for $nurseryName// <br> <<if $pregnancyMonitoringUpgrade == 1>> - <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">> <</if>> <<print "[[Keep " + $his + " " + ((_WL > 1) ? "children" : "child") + " here instead|Incubator][WombChangeReserveType($slaves[" + _u + "], 'nursery', 'incubator')]]">> <<else>> You have <<if _freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if _freeTanks > 1>>s<</if>>.@@ <br> <<if $pregnancyMonitoringUpgrade == 1>> - <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">> <</if>> <<print "[[Keep "+ ((_WL > 1) ? "a" : "the") +" child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">> <<if (_WL > 1) && ($reservedChildren + _WL - _reservedIncubator) <= _freeTanks>> @@ -160,7 +160,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $ <<elseif $reservedChildren == _freeTanks>> <br> <<if $pregnancyMonitoringUpgrade == 1>> - <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">> + <<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">> <</if>> You have @@.red;no room for $his offspring.@@ <</if>> diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw index 09e661aec1177c6ea24c58aa7994f95c0258f07a..adb5c7250e14f6ad6cd5ac5f78904289b7684565 100644 --- a/src/uncategorized/multiImplant.tw +++ b/src/uncategorized/multiImplant.tw @@ -17,12 +17,12 @@ that are ready be sent down. <h1>Implant Organs</h1> <<set _F = App.Medicine.OrganFarm>> -<<for _i = 0; _i < $slaves.length; _i++>> - <<set $activeSlave = $slaves[_i]>> - <<set _sortedOrgans = _F.getSortedOrgans($activeSlave)>> +<<for _i = 0; _i < $slaves.length; _i++>> + <<set $AS = $slaves[_i].ID>> + <<set _sortedOrgans = _F.getSortedOrgans(getSlave($AS))>> <<if _sortedOrgans.length === 0>><<continue>><</if>> - <h2>$activeSlave.slaveName</h2> + <h2>getSlave($AS).slaveName</h2> <<for _k = 0; _k < _sortedOrgans.length; _k++>> <h3><<print _F.Organs[_sortedOrgans[_k]].name>></h3> @@ -30,22 +30,22 @@ that are ready be sent down. <<set _manual = false, _success = false, _break = false>> <<for _l = 0; _l < _actions.length; _l++>> <<if !_actions[_l].autoImplant>> - <<if _actions[_l].canImplant($activeSlave)>> + <<if _actions[_l].canImplant(getSlave($AS))>> <<set _manual = true>> <</if>> <<continue>> <</if>> - <<if !_actions[_l].canImplant($activeSlave)>> - <<set _error = _actions[_l].implantError($activeSlave)>> + <<if !_actions[_l].canImplant(getSlave($AS))>> + <<set _error = _actions[_l].implantError(getSlave($AS))>> <<if _error !== "">> @@.red;ERROR: <<print _error>>@@<br> <</if>> - <<elseif $activeSlave.health.health - _actions[_l].healthImpact < -75>> + <<elseif getSlave($AS).health.health - _actions[_l].healthImpact < -75>> Estimated health impact too high, skipping further surgeries. <<set _break = true>> <<break>> <<else>> - <<run App.Medicine.OrganFarm.implant($activeSlave, _sortedOrgans[_k], _l)>> + <<run App.Medicine.OrganFarm.implant(getSlave($AS), _sortedOrgans[_k], _l)>> <<include "Surgery Degradation">><br><br> <<set _success = true>> <</if>> @@ -55,8 +55,6 @@ that are ready be sent down. //Cannot implant <<print _F.Organs[_sortedOrgans[_k]].name.toLowerCase()>> automatically, try implanting manually in the remote surgery.// <</if>> <</for>> - - <<set $slaves[_i] = $activeSlave>> <</for>> @@ -64,10 +62,10 @@ that are ready be sent down. /* prosthetics */ <<for _i = 0; _i < $slaves.length; _i++>> - <<set $activeSlave = $slaves[_i]>> + <<set $AS = $slaves[_i].ID>> /* count for estimating health impact */ - <<set _prostheticCount = $adjustProsthetics.filter(p => p.slaveID == $activeSlave.ID && p.workLeft <= 0).length>> + <<set _prostheticCount = $adjustProsthetics.filter(p => p.slaveID == getSlave($AS).ID && p.workLeft <= 0).length>> /* since we already have count, skip slaves that don't need work */ <<if _prostheticCount < 1>> @@ -77,102 +75,102 @@ that are ready be sent down. Ensures that a slave can never die during the execution of this passage. Calculation based on worst case, so when changing worst case change it here too. */ - <<if $activeSlave.health.health - (_prostheticCount * 20) < -75>> + <<if getSlave($AS).health.health - (_prostheticCount * 20) < -75>> <br><hr> - @@.red;Estimated health impact too great; $activeSlave.slaveName skipped.@@ + @@.red;Estimated health impact too great; getSlave($AS).slaveName skipped.@@ <<continue>> <</if>> <<for _k = 0; _k < $adjustProsthetics.length; _k++>> <<set _p = $adjustProsthetics[_k]>> - <<if _p.slaveID == $activeSlave.ID && _p.workLeft <= 0>> + <<if _p.slaveID == getSlave($AS).ID && _p.workLeft <= 0>> <<set $adjustProsthetics.splice(_k, 1), _k-->> <<set $adjustProstheticsCompleted-->> - <<set addProsthetic($activeSlave, _p.id)>> + <<set addProsthetic(getSlave($AS), _p.id)>> <br><hr> <<switch _p.id>> <<case "ocular">> - <<if getBestVision($activeSlave) === 0>> - <<run eyeSurgery($activeSlave, "both", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>> - <<set surgeryDamage($activeSlave, 20), $surgeryType = "ocular implant">> + <<if getBestVision(getSlave($AS)) === 0>> + <<run eyeSurgery(getSlave($AS), "both", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))>> + <<set surgeryDamage(getSlave($AS), 20), $surgeryType = "ocular implant">> <<include "Surgery Degradation">> <<else>> //Since $he has working eyes the <<= setup.prosthetics.ocular.name>> will be put into storage.// <</if>> <<case "cochlear">> - <<if $activeSlave.hears != 0>> - <<set $activeSlave.earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "cochlear implant">> + <<if getSlave($AS).hears != 0>> + <<set getSlave($AS).earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "cochlear implant">> <<include "Surgery Degradation">> <<else>> //Since $he has working ears the <<= setup.prosthetics.cochlear.name>> will be put into storage.// <</if>> <<case "electrolarynx">> - <<if $activeSlave.voice <= 0>> - <<set $activeSlave.electrolarynx = 1, $activeSlave.voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "electrolarynx">> + <<if getSlave($AS).voice <= 0>> + <<set getSlave($AS).electrolarynx = 1, getSlave($AS).voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "electrolarynx">> <<include "Surgery Degradation">> <<else>> //Since $he has a voice the <<= setup.prosthetics.electrolarynx.name>> will be put into storage.// <</if>> <<case "interfaceP1">> - <<if hasAnyNaturalLimbs($activeSlave)>> + <<if hasAnyNaturalLimbs(getSlave($AS))>> //Since $he has at least one healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.// - <<elseif $activeSlave.PLimb == 2>> + <<elseif getSlave($AS).PLimb == 2>> //Since $he already has <<= addA(setup.prosthetics.interfaceP2.name)>> installed the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.// <<else>> - <<set $activeSlave.PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "PLimb interface1">> + <<set getSlave($AS).PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "PLimb interface1">> <<include "Surgery Degradation">> <</if>> <<case "interfaceP2">> - <<if hasAllNaturalLimbs($activeSlave)>> + <<if hasAllNaturalLimbs(getSlave($AS))>> //Since $he has no amputated limbs the <<= setup.prosthetics.interfaceP2.name>> will be put into storage.// - <<elseif $activeSlave.PLimb == 1>> - <<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 5), $surgeryType = "PLimb interface3">> + <<elseif getSlave($AS).PLimb == 1>> + <<set getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 5), $surgeryType = "PLimb interface3">> <<include "Surgery Degradation">> <<else>> - <<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "PLimb interface2">> + <<set getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "PLimb interface2">> <<include "Surgery Degradation">> <</if>> <<case "basicL" "sexL" "beautyL" "combatL" "cyberneticL">> - <<if $activeSlave.fuckdoll != 0>> + <<if getSlave($AS).fuckdoll != 0>> //Since a Fuckdoll can't use prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.// - <<elseif hasAllNaturalLimbs($activeSlave)>> + <<elseif hasAllNaturalLimbs(getSlave($AS))>> //Since $he needs an amputated limb to attach prosthetics the <<= setup.prosthetics[_p.id].name>> will be put into storage.// - <<elseif $activeSlave.PLimb == 0>> + <<elseif getSlave($AS).PLimb == 0>> //Since $he must have a prosthetic interface installed to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.// <<else>> <<if _p.id == "basicL">> - <<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 2)>> + <<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 2)>> <<if _change>> - <<= App.Desc.limbChange().reaction($activeSlave, _state)>> + <<= App.Desc.limbChange().reaction(getSlave($AS), _state)>> <<else>> //Since $he already has more advanced prosthetic limbs attached the <<= setup.prosthetics.basicL.name>> will be put into storage.// <</if>> <<elseif _p.id == "sexL">> - <<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 3)>> + <<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 3)>> <<if _change>> - <<= App.Desc.limbChange().reaction($activeSlave, _state)>> + <<= App.Desc.limbChange().reaction(getSlave($AS), _state)>> <<else>> //Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.sexL.name>> will be put into storage.// <</if>> <<elseif _p.id == "beautyL">> - <<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 4)>> + <<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 4)>> <<if _change>> - <<= App.Desc.limbChange().reaction($activeSlave, _state)>> + <<= App.Desc.limbChange().reaction(getSlave($AS), _state)>> <<else>> //Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.beautyL.name>> will be put into storage.// <</if>> <<elseif _p.id == "combatL">> - <<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 5)>> + <<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 5)>> <<if _change>> - <<= App.Desc.limbChange().reaction($activeSlave, _state)>> + <<= App.Desc.limbChange().reaction(getSlave($AS), _state)>> <<else>> //Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.combatL.name>> will be put into storage.// <</if>> <<else>> - <<if $activeSlave.PLimb == 2>> - <<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 2)>> + <<if getSlave($AS).PLimb == 2>> + <<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 2)>> <<if _change>> - <<= App.Desc.limbChange().reaction($activeSlave, _state)>> + <<= App.Desc.limbChange().reaction(getSlave($AS), _state)>> <</if>> <<else>> //Since $he must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs the <<= setup.prosthetics.cyberneticL.name>> will be put into storage.// @@ -180,21 +178,21 @@ that are ready be sent down. <</if>> <</if>> <<case "interfaceTail">> - <<set $activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 10), $surgeryType = "tailInterface">> + <<set getSlave($AS).PTail = 1, getSlave($AS).tail = "none", getSlave($AS).tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 10), $surgeryType = "tailInterface">> <<include "Surgery Degradation">> <<case "modT" "sexT" "combatT">> - <<if $activeSlave.PTail == 0>> + <<if getSlave($AS).PTail == 0>> //Since $he must have <<= addA(setup.prosthetics.interfaceTail.name)>> installed to attach tails the <<= setup.prosthetics[_p.id].name>> will be put into storage.// - <<elseif $activeSlave.tail != "none">> + <<elseif getSlave($AS).tail != "none">> //Since $he currently has a tail attached the <<= setup.prosthetics[_p.id].name>> will be put into storage.// <<elseif _p.id == "modT">> //Since installing <<= addA(setup.prosthetics.modT.name)>> is complicated it can't be automated.// /*Reason: there are different designs player can choose from.*/ <<elseif _p.id == "combatT">> - <<set $prostheticsConfig = "attachTail", $activeSlave.tail = "combat", $activeSlave.tailColor = "jet black">> + <<set $prostheticsConfig = "attachTail", getSlave($AS).tail = "combat", getSlave($AS).tailColor = "jet black">> <<include "Prosthetics Configuration">> <<elseif _p.id == "sexT">> - <<set $prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink">> + <<set $prostheticsConfig = "attachTail", getSlave($AS).tail = "sex", getSlave($AS).tailColor = "pink">> <<include "Prosthetics Configuration">> <</if>> <<default>> @@ -203,8 +201,6 @@ that are ready be sent down. <br> <</if>> <</for>> - /* updates the interrogated slave */ - <<set $slaves[_i] = $activeSlave>> <</for>> /* end of the $slaves loop */ /* This needs to be down here to over-ride any Surgery Degradation calls */