diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index fb7ec632d812145ed6ab7c6a0053518c70bf711e..0b58e40ef60bcda4760ab88caa5fa7f137e7ead9 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -1438,8 +1438,8 @@ PLimb: What level of prosthetic interface she has installed 0 - no interface -1 - basic interface (used both in and out of cyberMod) -2 - advanced interface (used only in cyberMod) +1 - basic interface +2 - advanced interface heels: diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index 91623ebf7e6091670f8fe31c62333e4902e733d8..75bc6bb9f663419509fb87246992e45f45b245cb 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -1301,17 +1301,6 @@ __''Mods''__ <br> -<<options $cyberMod>> - Cybernetics mod is - <<option 0 "Disable">> - ''disabled''. - <<option 1 "Enable">> - ''enabled''. - <<comment>> - This mod alters how prosthetics system works and adds some content. -<</options>> -<br> - <<options $secExp>> The Security Expansion Mod is <<option 0 "Disable">> diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw index f205b17a7cdab1e9c48502c1d3c73cec6763fe78..5cc4cffba7eb01ab3ab888a275f1b5bb62aff231 100644 --- a/src/facilities/nursery/childInteract.tw +++ b/src/facilities/nursery/childInteract.tw @@ -28,7 +28,7 @@ | [[Auto salon|Salon][$degradation = 0,$primaryHairColor = "",$secondaryHairColor = "",$artificialEyeColor = "",$artificialEyeShape = "",$artificialEyeFill = "",$tattooChoice = "",$piercingLevel = ""]] | [[Body mod studio|Body Modification][$degradation = 0, $tattooChoice = undefined]] | [[Remote surgery|Remote Surgery][$degradation = 0]] -<<if $cyberMod == 1>>| [[Configure cybernetics|cyberConfig][$temp = 0]]<</if>> +| [[Configure cybernetics|Prosthetics Config][$prostheticsConfig = "main"]] */ /*TODO: These will most likely need to be reworked*/ <<if $extremeUnderage == 1>> diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index 4941b5649be6f4d55d4fc611fa843f2496bdf90f..9d401ec8d6a2a3e482447e1c8790b5a965da4a93 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -4,6 +4,29 @@ * This passage is tagged as widget, so it will be loaded whenever any passage is loaded. The global setup object seems to reset itself to {} (empty object): until we figure out why, this is where we set properties for it. */ +/* prosthetic stuff */ +<<set setup.prostheticIDs = ["interfaceP1", "interfaceP2", "basicL", "sexL", "beautyL", "combatL", "cyberneticL", "ocular", "cochlear", "electrolarynx", "interfaceTail", "modT", "combatT", "sexT", "erectile"]>> + +/* .name is expected to be singular and uncapitalized; 10 = 1 week without upgrades */ +<<set setup.prosthetics = { + interfaceP1: {name: "basic prosthetic interface", adjust: 40, craft: 50, research: 100, level: 1, costs: 5000}, + interfaceP2: {name: "advanced prosthetic interface", adjust: 80, craft: 80, research: 160, level: 2, costs: 10000}, + basicL: {name: "set of basic prosthetic limbs", adjust: 40, craft: 40, research: 80, level: 1, costs: 7000}, + sexL: {name: "set of advanced sex limbs", adjust: 60, craft: 70, research: 140, level: 2, costs: 15000}, + beautyL: {name: "set of advanced beauty limbs", adjust: 60, craft: 70, research: 140, level: 2, costs: 15000}, + combatL: {name: "set of advanced combat limbs", adjust: 60, craft: 70, research: 140, level: 2, costs: 15000}, + cyberneticL: {name: "set of cybernetic limbs", adjust: 80, craft: 150, research: 250, level: 3, costs: 25000}, + ocular: {name: "ocular implant", adjust: 60, craft: 80, research: 150, level: 2, costs: 20000}, + cochlear: {name: "cochlear implant", adjust: 40, craft: 40, research: 80, level: 1, costs: 5000}, + electrolarynx: {name: "electrolarynx", adjust: 40, craft: 40, research: 40, level: 1, costs: 5000}, + interfaceTail: {name: "prosthetic tail interface", adjust: 50, craft: 60, research: 120, level: 1, costs: 5000}, + modT: {name: "modular tail", adjust: 40, craft: 40, research: 80, level: 1, costs: 5000}, + combatT: {name: "combat tail", adjust: 70, craft: 70, research: 140, level: 2, costs: 15000}, + sexT: {name: "pleasure tail", adjust: 60, craft: 60, research: 120, level: 2, costs: 10000}, + erectile: {name: "erectile implant", adjust: 40, craft: 50, research: 100, level: 1, costs: 7000} +}>> +/* prosthetic stuff end */ + /*** pregmod exclusive start ***/ @@ -2116,7 +2139,8 @@ Then pick _namePool.random(), or display those names as possible choices, or do {name: "No default setting", value: "no default setting"}, {name: "None", value: "none"}, {name: "Tail", value: "tail", rs: "buyTails"}, - {name: "Fox tail", value: "fox tail", rs: "buyTails"}, {name: "Cat tail", value: "cat tail", rs: "buyTails"}]>> + {name: "Fox tail", value: "fox tail", rs: "buyTails"}, + {name: "Cat tail", value: "cat tail", rs: "buyTails"}]>> <<set setup.facilityCareers = ["be confined in the arcade", "be confined in the cellblock", "be the Attendant", "be the DJ", "be the Farmer", "be the Madam", "be the Matron", "be the Milkmaid", "be the Nurse", "be the Schoolteacher", "be the Stewardess", "be the Wardeness", "be your Concubine", "get treatment in the clinic", "learn in the schoolroom", "live with your Head Girl", "rest in the spa", "serve in the club", "serve in the master suite", "work as a farmhand", "work as a nanny", "work as a servant", "work in the brothel", "work in the dairy"]>> diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 93eb67cc5afc74d5865b58033a7bf2b831f448ec..8a786260645e53536d191a0d6faa11f79a1a2b3f 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -1053,8 +1053,6 @@ You should have received a copy of the GNU General Public License along with thi <<set $dispensaryUpgrade = 0>> <<set $organFarmUpgrade = 0>> <<set $completedOrgans = []>> -<<set $limbsCompleted = 0>> -<<set $limbs = []>> <<set $ImplantProductionUpgrade = 0>> <<set $permaPregImplant = 0>> <<set $injectionUpgrade = 0>> @@ -1084,7 +1082,6 @@ You should have received a copy of the GNU General Public License along with thi <<set $animalOvaries = 0>> /*{pigOvaries: 0, canineOvaries: 0, horseOvaries: 0, cowOvaries: 0} currently unused*/ <<set $animalTesticles = 0>> /*{pigTestes: 0, dogTestes: 0, horseTestes: 0, cowTestes: 0} currently unused*/ <<set $animalMpreg = 0>> /*{pigMpreg: 0, dogMpreg: 0, horseMpreg: 0, cowMpreg: 0} currently unused*/ -<<set $prostheticsUpgrade = 0>> <<set $geneticMappingUpgrade = 0>> <<set $pregnancyMonitoringUpgrade = 0>> <<set $cloningSystem = 0>> @@ -1437,24 +1434,6 @@ You should have received a copy of the GNU General Public License along with thi /* Misc mod variables */ <<set $recruiterEugenics = 0>> -<<set $cyberMod = 0>> -<<set $stockpile = { -basicPLimbInterface: 0, -advPLimbInterface: 0, -basicPLimb: 0, -advSexPLimb: 0, -advGracePLimb: 0, -advCombatPLimb: 0, -cyberneticPLimb: 0, -ocularImplant: 0, -cochlearImplant: 0, -electrolarynx: 0, -interfacePTail: 0, -modPTail: 0, -warPTail: 0, -sexPTail: 0, -erectileImplant: 0 -} >> <<if ndef $AgeEffectOnTrainerPricingPC>> <<set $AgeEffectOnTrainerPricingPC = 1>> @@ -1475,27 +1454,23 @@ erectileImplant: 0 <<set $IsPastPrimePC = 5000>> <</if>> +<<set $prostheticsUpgrade = 0>> +<<set $adjustProstheticsCompleted = 0>> +<<set $adjustProsthetics = []>> /*format: {id: string, workleft: int, slaveID: int}*/ +/*task: {type: "research"/"craft/craftFit", id: string, workLeft: int, [if constructFit] slaveID: int}*/ <<set $researchLab = { -built: "false", -aiModule: 1, -productionTime: 0, -research: "none", -manufacture: "none", -maxSpace: 0, -hired: 0, -menials: 0, -basicPLimbInterface: 0, -advPLimbInterface: 0, -basicPLimb: 0, -advSexPLimb: 0, -advGracePLimb: 0, -advCombatPLimb: 0, -cyberneticPLimb: 0, -ocularImplant: 0, -cochlearImplant: 0, -electrolarynx: 0, -erectileImplant: 0 -} >> + level: 0, + aiModule: 1, + tasks: [], + maxSpace: 0, + hired: 0, + menials: 0, +}>> +<<set $prosthetics = {}>> +<<run setup.prostheticIDs.forEach(function (id) { + $prosthetics[id] = {amount: 0, research: 0}; +})>> + <<set $merchantFSWares = ["AssetExpansionistResearch", "GenderRadicalistResearch", "HedonisticDecadenceResearch", "SlimnessEnthusiastResearch", "TransformationFetishistResearch", "YouthPreferentialistResearch"]>> <<set $merchantIllegalWares = ["asexualReproduction", "childhoodFertilityInducedNCS", "PGHack", "RapidCellGrowthFormula", "sympatheticOvaries", "UterineRestraintMesh"]>> /* "AnimalOrgans" for future use */ diff --git a/src/interaction/cyberConfig.tw b/src/interaction/cyberConfig.tw deleted file mode 100644 index c7adf2f9b97d2bc696e34c06e3fcf4fa2678ef8e..0000000000000000000000000000000000000000 --- a/src/interaction/cyberConfig.tw +++ /dev/null @@ -1,266 +0,0 @@ -:: cyberConfig [nobr] - -<<switch $temp>> - -<<case 0>> - This room is lined with shelves and cabinets, it could be easily mistaken for a storage room if it were not for examination table in its center.<br> - <<set $nextButton = "Back", $nextLink = "Slave Interact">> - <<if $activeSlave.amp != 1>> - Your slave $activeSlave.slaveName is obediently waiting for your instructions. - <<else>> - Your slave $activeSlave.slaveName is lying on the table, waiting for your instructions. - <</if>> - - <<if $activeSlave.eyesImplant == 1>><br><br> - $He has an ocular implant installed. - <<if $activeSlave.eyes == 1>> - They are operating normally. - <<elseif $activeSlave.eyes == -1>> - They are set to blur $his vision. - <<else>> - They are turned off. - <</if>> - <br><br> - <<if $activeSlave.eyes != 1>>[[Restore vision|cyberConfig][$activeSlave.eyes = 1,$temp = 3]] | <</if>> - <<if $activeSlave.eyes != -1>>[[Blur|cyberConfig][$activeSlave.eyes = -1,$temp = 3]] | <</if>> - <<if $activeSlave.eyes != -2>>[[Disable|cyberConfig][$activeSlave.eyes = -2,$temp = 3]]<</if>> - - $He currently has $activeSlave.eyeColor lenses equipped. - - <br> - - Swap out $his lenses: - <br> - Iris Color: - [[Blue|cyberConfig][$activeSlave.eyeColor = "blue",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Black|cyberConfig][$activeSlave.eyeColor = "black",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Brown|cyberConfig][$activeSlave.eyeColor = "brown",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Green|cyberConfig][$activeSlave.eyeColor = "green",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Turquoise|cyberConfig][$activeSlave.eyeColor = "turquoise",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Sky-Blue|cyberConfig][$activeSlave.eyeColor = "sky-blue",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Hazel|cyberConfig][$activeSlave.eyeColor = "hazel",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pale-Grey|cyberConfig][$activeSlave.eyeColor = "pale-grey",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[White|cyberConfig][$activeSlave.eyeColor = "white",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pink|cyberConfig][$activeSlave.eyeColor = "pink",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Amber|cyberConfig][$activeSlave.eyeColor = "amber",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Red|cyberConfig][$activeSlave.eyeColor = "red",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Yellow|cyberConfig][$activeSlave.eyeColor = "yellow",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Orange|cyberConfig][$activeSlave.eyeColor = "orange",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <br> - Pupil Shape: - <br>[[Circular|cyberConfig][$activeSlave.pupil = "circular",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Catlike|cyberConfig][$activeSlave.pupil = "catlike",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Serpent-Like|cyberConfig][$activeSlave.pupil = "serpent-like",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Devilish|cyberConfig][$activeSlave.pupil = "devilish",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Demonic|cyberConfig][$activeSlave.pupil = "demonic",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Hypnotic|cyberConfig][$activeSlave.pupil = "hypnotic",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Heart-Shaped|cyberConfig][$activeSlave.pupil = "heart-shaped",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Wide-Eyed|cyberConfig][$activeSlave.pupil = "wide-eyed",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Almond-Shaped|cyberConfig][$activeSlave.pupil = "almond-shaped",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Bright|cyberConfig][$activeSlave.pupil = "bright",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Teary|cyberConfig][$activeSlave.pupil = "teary",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Vacant|cyberConfig][$activeSlave.pupil = "vacant",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Star-Shaped|cyberConfig][$activeSlave.pupil = "star-shaped",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Goat-Like|cyberConfig][$activeSlave.pupil = "goat-like",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <br> - Sclera Colors: - [[White|cyberConfig][$activeSlave.sclerae = "white",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Blue|cyberConfig][$activeSlave.sclerae = "blue",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Black|cyberConfig][$activeSlave.sclerae = "black",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Brown|cyberConfig][$activeSlave.sclerae = "brown",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Green|cyberConfig][$activeSlave.sclerae = "green",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Turquoise|cyberConfig][$activeSlave.sclerae = "turquoise",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Sky-Blue|cyberConfig][$activeSlave.sclerae = "sky-blue",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Hazel|cyberConfig][$activeSlave.sclerae = "hazel",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pale-Grey|cyberConfig][$activeSlave.sclerae = "pale-grey",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Pink|cyberConfig][$activeSlave.sclerae = "pink",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Amber|cyberConfig][$activeSlave.sclerae = "amber",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Red|cyberConfig][$activeSlave.sclerae = "red",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Yellow|cyberConfig][$activeSlave.sclerae = "yellow",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Orange|cyberConfig][$activeSlave.sclerae = "orange",$temp = 2,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <</if>> - - <<if $activeSlave.earImplant == 1>><br><br> - $He has a cochlear implant installed. - <<if $activeSlave.hears == 0>> - They are operating normally. - <<elseif $activeSlave.hears == -1>> - They are set to muffle $his hearing. - <<else>> - They are turned off. - <</if>> - <br><br> - <<if $activeSlave.hears != 0>>[[Restore hearing|cyberConfig][$activeSlave.hears = 0,$temp = 5]] | <</if>> - <<if $activeSlave.hears != -1>>[[Muffle|cyberConfig][$activeSlave.hears = -1,$temp = 5]] | <</if>> - <<if $activeSlave.hears != -2>>[[Disable|cyberConfig][$activeSlave.hears = -2,$temp = 5]]<</if>> - <</if>> - - <<if $activeSlave.electrolarynx == 1>><br><br> - $He has an electrolarynx installed. - <<if $activeSlave.voice == 0>> - It is turned off. - <<elseif $activeSlave.voice == 1>> - It is set to its "deep voice" setting. - <<elseif $activeSlave.voice == 2>> - It is set to its "normal voice" setting. - <<elseif $activeSlave.voice == 3>> - It is set to its "high voice" setting. - <</if>> - <br><br> - <<if $activeSlave.voice != 0>>[[Disable|cyberConfig][$activeSlave.voice = 0,$temp = 6]] | <</if>> - <<if $activeSlave.voice != 1>>[[Deep voice setting|cyberConfig][$activeSlave.voice = 1,$temp = 6]] | <</if>> - <<if $activeSlave.voice != 2>>[[Standard voice setting|cyberConfig][$activeSlave.voice = 2,$temp = 6]] | <</if>> - <<if $activeSlave.voice != 3>>[[High voice setting|cyberConfig][$activeSlave.voice = 3,$temp = 6]]<</if>> - <</if>> - - <<if $activeSlave.PLimb > 0>><br><br> - $He has PLimb interface installed. You can assign and adjust $his prosthetics here. - <<if $activeSlave.amp <= -1>><br> - $His prosthetics are currently attached, if you wish to change them you will first need to detach them.<br> - [[Detach|cyberConfig][$temp = 1,$nextButton = "Continue", $nextLink = "cyberConfig"]] - <<else>><br> - <<if $stockpile.basicPLimb > 0>>[[Attach basic limbs|cyberConfig][$temp = 4, $activeSlave.amp = -1, $stockpile.basicPLimb -= 1]]<</if>> - <<if $stockpile.advSexPLimb > 0>>[[Attach sex limbs|cyberConfig][$temp = 4, $activeSlave.amp = -2, $stockpile.advSexPLimb -= 1]]<</if>> - <<if $stockpile.advGracePLimb > 0>>[[Attach beauty limbs|cyberConfig][$temp = 4, $activeSlave.amp = -3, $stockpile.advGracePLimb -= 1]]<</if>> - <<if $stockpile.advCombatPLimb > 0>>[[Attach combat limbs|cyberConfig][$temp = 4, $activeSlave.amp = -4, $stockpile.advCombatPLimb -= 1]]<</if>> - <<if $activeSlave.PLimb == 2>> - <<if $stockpile.cyberneticPLimb > 0>>[[Attach cybernetic limbs|cyberConfig][$temp = 4, $activeSlave.amp = -5, $stockpile.cyberneticPLimb -= 1]]<</if>> - <<else>> - //To equip more advanced prosthetics you will need to upgrade your slaves' PLimb interface.// - <</if>> - <</if>> - - <<else>> - <<if $activeSlave.amp == 0>><br> - $He has healthy limbs so there is no need for prosthetics. - <<elseif $activeSlave.amp < 0>> - Unidentified PLimb interface detected. [[Please reboot system.|cyberConfig][$activeSlave.PLimb = 2]] - <<else>><br> - $He does not have a PLimb interface installed so you can't give $him any prosthetics. - <</if>> - <</if>> - - <<if $activeSlave.PTail == 1>><br><br> - $He has a neural tail interface installed. You can assign and adjust $his tail here. - <<if $activeSlave.tail != "none">><br> - $He currently has a tail attached, if you wish to change it you will first need to detach it.<br> - [[Detach|cyberConfig][$temp = 7,$nextButton = "Continue", $nextLink = "cyberConfig"]] - <<else>><br> - <<if $stockpile.modPTail > 0>>Attach a modular tail designed to look like a:<br> - [[Cat's Tail|cyberConfig][$temp = 8, $activeSlave.tail = "mod", $activeSlave.tailShape = "neko", $activeSlave.tailColor = $activeSlave.hColor, $stockpile.modPTail -= 1]] - | [[Dog's Tail|cyberConfig][$temp = 8, $activeSlave.tail = "mod", $activeSlave.tailShape = "inu", $activeSlave.tailColor = $activeSlave.hColor, $stockpile.modPTail -= 1]] - | [[Fox's Tail|cyberConfig][$temp = 8, $activeSlave.tail = "mod", $activeSlave.tailShape = "kit", $activeSlave.tailColor = $activeSlave.hColor, $stockpile.modPTail -= 1]] - | [[Kitsune's Tail|cyberConfig][$temp = 8, $activeSlave.tail = "mod", $activeSlave.tailShape = "kitsune", $activeSlave.tailColor = $activeSlave.hColor, $stockpile.modPTail -= 1]] - | [[Tanuki's Tail|cyberConfig][$temp = 8, $activeSlave.tail = "mod", $activeSlave.tailShape = "tanuki", $activeSlave.tailColor = $activeSlave.hColor, $stockpile.modPTail -= 1]] - | [[Cow's Tail|cyberConfig][$temp = 8, $activeSlave.tail = "mod", $activeSlave.tailColor = "ushi", $activeSlave.tailColor = $activeSlave.hColor, $stockpile.modPTail -= 1]]<br><</if>> - <<if $stockpile.warPTail > 0>>[[Attach Combat Tail|cyberConfig][$temp = 8, $activeSlave.tail = "combat", $activeSlave.tailColor = "jet black", $stockpile.warPTail -= 1]]<</if>> - <<if $stockpile.sexPTail > 0>>| [[Attach Pleasure Tail|cyberConfig][$temp = 8, $activeSlave.tail = "sex", $activeSlave.tailColor = "pink", $stockpile.sexPTail -= 1]]<</if>> - <</if>> - <<else>> - $He does not have a neural tail interface installed so you cannot attach a tail. - <</if>> - <<if $activeSlave.tail == "mod">><br> - $He currently has a modular tail, styled to look like - <<if $activeSlave.tailShape == "neko">> - a long, slender cat tail. - <<elseif $activeSlave.tailShape == "inu">> - a bushy dog tail. - <<elseif $activeSlave.tailShape == "kit">> - a soft, fluffy fox tail. - <<elseif $activeSlave.tailShape == "kitsune">> - three incredibly soft, fluffy fox tails. - <<elseif $activeSlave.tailShape == "tanuki">> - a long, fluffy tanuki tail. - <<elseif $activeSlave.tailShape == "ushi">> - a long cow tail. - <</if>> - <br> - - Modify $his tail's appearance:<br> - [[Cat|cyberConfig][$activeSlave.tailShape = "neko",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Dog|cyberConfig][$activeSlave.tailShape = "inu",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Fox|cyberConfig][$activeSlave.tailShape = "kit",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Kitsune|cyberConfig][$activeSlave.tailShape = "kitsune",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Tanuki|cyberConfig][$activeSlave.tailShape = "tanuki",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - | [[Bovine|cyberConfig][$activeSlave.tailShape = "ushi",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] - <</if>> -<<case 1>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - <<if $activeSlave.amp == -1>><<set $stockpile.basicPLimb += 1>> - <<elseif $activeSlave.amp == -2>><<set $stockpile.advSexPLimb += 1>> - <<elseif $activeSlave.amp == -3>><<set $stockpile.advGracePLimb += 1>> - <<elseif $activeSlave.amp == -4>><<set $stockpile.advCombatPLimb += 1>> - <<elseif $activeSlave.amp == -5>><<set $stockpile.cyberneticPLimb += 1>> - <</if>> - <<set $activeSlave.amp = 1>> - Due to built-in safeties it is necessary to remove each limb separately, first releasing the lock and then waiting for automated seal release.<br> - <<if ($activeSlave.devotion > 20)>> - You instruct $him to lie down on the table and proceed to remove $his limbs. $He <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>> with interest as you work.<<if ($activeSlave.devotion > 50)>> As you remove the last limb $he playfully wiggles $his stumps at you.<</if>> - <<else>> - You order $him to lie down on the table and proceed to remove $his limbs. $He <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>> with a bitter expression as you work. - <</if>> - -<<case 2>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - <<if $activeSlave.amp != 1>>You have $him lie down and<<else>>You<</if>> use a speculum to keep $his eyes open while you disengage $his lenses remotely and swap them out with $his new $activeSlave.eyeColor lenses<<if $activeSlave.pupil != "circular" || $activeSlave.sclerae != "white">> with <<if $activeSlave.pupil != "circular" >>$activeSlave.pupil pupils<</if>><<if $activeSlave.pupil != "circular" && $activeSlave.sclerae != "white">> and <</if>><<if $activeSlave.sclerae != "white" >>$activeSlave.sclerae sclerae<</if>><</if>>. -<<case 3>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - <<if $activeSlave.eyes == 1>> - $He blinks as $his vision returns. - <<elseif $activeSlave.eyes == -1>> - $He squints at you as $his vision becomes a blur. - <<else>> - $He has a panicked expression when $his vision suddenly goes out. - <</if>> -<<case 4>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - Attaching $his limbs is a simple procedure, you simply push a connector on each limb into the socket in $his implants until the lock engages.<<if $activeSlave.PLimb == 2>> $He jumps a bit as limbs connect to $his nerves.<</if>> When you are done, $he sits up and - <<if $activeSlave.amp == -2>>experimentally engages the vibe function in $his fingers. - <<elseif $activeSlave.amp == -3>>runs a hand over the smooth skin of $his new legs. - <<elseif $activeSlave.amp == -4>>engages and disengages the blade in $his forearm. - <<elseif $activeSlave.amp == -5>>experimentally flexes the muscles in $his artificial arm. - <<else>>catches $his balance. - <</if>> -<<case 5>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - <<if $activeSlave.hears == 0>> - $He tilts $his head as $his hearing returns. - <<elseif $activeSlave.hears == -1>> - $He shakes $his head as $his hearing becomes muffled. - <<else>> - $He has a panicked expression when $his hearing is suddenly silenced. - <</if>> -<<case 6>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - <<if $activeSlave.voice == 0>> - $He tries testing out $his new voice, only to discover $he's been made mute. - <<elseif $activeSlave.voice == 1>> - $He tests out the <<if canHear($activeSlave)>>sound<<else>>feeling<</if>> of $his new, deep voice. - <<elseif $activeSlave.voice == 2>> - $He tests out the <<if canHear($activeSlave)>>sound<<else>>feeling<</if>> of $his new, normal voice. - <<elseif $activeSlave.voice == 3>> - $He tests out the <<if canHear($activeSlave)>>sound<<else>>feeling<</if>> of $his new, high voice. - <</if>><br> -<<case 7>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - <<if $activeSlave.tail == "mod">><<set $stockpile.modPTail += 1>> - <<elseif $activeSlave.tail == "combat">><<set $stockpile.warPTail += 1>> - <<elseif $activeSlave.tail == "sex">><<set $stockpile.sexPTail += 1>> - <</if>> - <<set $activeSlave.tail = "none">><<set $activeSlave.tailShape = "none">><<set $activeSlave.tailColor = "none">> - You send the release signal and the mechanical lock disengages allowing the artificial tail to pop right off.<br> -<<case 8>> - <<set $temp = 0, $nextButton = "Continue", $nextLink = "cyberConfig">> - Attaching $his tail is a simple procedure, you simply push the connector into a socket, right where $his tailbone ends, until the lock engages.<br> - When you are done, $he looks back and - <<if $activeSlave.tailShape == "neko">>sways $his tail side to side enigmatically. - <<elseif $activeSlave.tailShape == "inu">>wags $his tail side to side energetically. - <<elseif $activeSlave.tailShape == "kit">>slowly sways $his tail feeling the soft fur brush against $his skin. - <<elseif $activeSlave.tailShape == "kitsune">>slowly sways $his tails luxuriating in the incredibly soft, fluffy fur brushing against $his skin. - <<elseif $activeSlave.tailShape == "tanuki">>admires $his long, thick fluffy tail. - <<elseif $activeSlave.tailShape == "ushi">>swats $himself playfully. - <<elseif $activeSlave.tail == "combat">>experimentally whips the long tail side to side then takes aim at a prepared fruit, lashes out with blinding speed and smiles as it explodes into chunks. - <<elseif $activeSlave.tail == "sex">>accidentally engages the vibrating and lube functions, startling $him and making quite a mess. - <<else>>admires $his new tail. - <</if>> -<</switch>> diff --git a/src/interaction/main/mainLinks.js b/src/interaction/main/mainLinks.js index 66e3e58e782ce4b7cb842a220e30b37afd834a77..ea1ba21aa32cc7a1d7238e4ae03d936e2e5a9e95 100644 --- a/src/interaction/main/mainLinks.js +++ b/src/interaction/main/mainLinks.js @@ -154,26 +154,26 @@ App.UI.View.MainLinks = function () { } } - if (V.limbsCompleted > 0) { - for (let j = 0; j < V.limbs.length; j++) { - if (typeof V.limbs[j] === 'object' || getSlave(V.limbs[j].ID) !== undefined) { - let i = V.slaveIndices[V.limbs[j].ID]; - if (V.limbs[j].weeksToCompletion <= 0) { - r += `<br><span class=yellow>The facility has completed a set of limbs for</span> <span id="name"><<print "[[SlaveFullName($slaves[${i}])|Slave Interact][$activeSlave = $slaves[${i}]]]">>,</span> <span class=yellow> which is ready to be attached.</span>`; + if (V.adjustProstheticsCompleted > 0) { + for (let j = 0; j < V.adjustProsthetics.length; j++) { + if (getSlave(V.adjustProsthetics[j].slaveID) !== undefined) { + let i = V.slaveIndices[V.adjustProsthetics[j].slaveID]; + if (V.adjustProsthetics[j].workLeft <= 0) { + r += `<br><span class=yellow>The lab has completed <<= addA(setup.prosthetics[$adjustProsthetics[${j}].id].name)>> for</span> <span id="name"><<= "[[SlaveFullName($slaves[${i}])|Slave Interact][$activeSlave = $slaves[${i}]]]">>,</span> <span class=yellow> which is ready to be attached.</span>`; } } else { - V.limbs.splice(j, 1); + V.adjustProsthetics.splice(j, 1); j--; } } } - if (V.completedOrgans.length > 0 && V.limbsCompleted > 0) { - r += `<br>[[Implant and Attach|Multiple Organ Implant]] <span class=yellow>all organs and limbs that are ready.</span>`; + if (V.completedOrgans.length > 0 && V.adjustProstheticsCompleted > 0) { + r += `<br>[[Implant and Attach|Multiple Organ Implant]] <span class=yellow>all organs and prosthetics that are ready.</span>`; } else if (V.completedOrgans.length > 0) { r += `<br>[[Implant|Multiple Organ Implant]] <span class=yellow>all organs that are ready for implantation.</span>`; - } else if (V.limbsCompleted > 0) { - r += `<br>[[Attach|Multiple Organ Implant]] <span class=yellow>all sets of limbs that are ready to be attached.</span>`; + } else if (V.adjustProstheticsCompleted > 0) { + r += `<br>[[Attach|Multiple Organ Implant]] <span class=yellow>all prosthetics that are ready to be attached.</span>`; } if (V.slaveCostFactor > 1.05) { diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw new file mode 100644 index 0000000000000000000000000000000000000000..4ecb8e9b0e8f6c8aded1d7d8812f4c32cfb8c8d5 --- /dev/null +++ b/src/interaction/prostheticConfig.tw @@ -0,0 +1,445 @@ +:: Prosthetics Config [nobr] + +<<switch $prostheticsConfig>> + +<<case "main">> + <<set $nextButton = "Back", $nextLink = "Slave Interact">> + /* get all prosthetics that are ready for this slave */ + <<if $adjustProstheticsCompleted > 0>> + <<set $adjustProsthetics = $adjustProsthetics.filter(function(p) { + if (p.workLeft <= 0 && p.slaveID == $activeSlave.ID) { + $activeSlave.readyProsthetics.push({id: p.id}); + $adjustProstheticsCompleted--; + return false; + } + return true; + })>> + <</if>> + +/* base screen START */ +This room is lined with shelves and cabinets, it could be easily mistaken for a storage room if it were not for the examination table in its center.<br> +<<if $activeSlave.amp != 1>> + Your slave $activeSlave.slaveName is obediently waiting for your instructions. +<<else>> + Your slave $activeSlave.slaveName is lying on the table, waiting for your instructions. +<</if>> + +<<if $activeSlave.eyesImplant == 1>><br><br> + $He has an ocular implant installed. + <<if $activeSlave.eyes == 1>> + They are operating normally. + <<elseif $activeSlave.eyes == -1>> + They are set to blur $his vision. + <<else>> + They are turned off. + <</if>> + <br><br> + <<if $activeSlave.eyes != 1>> + [[Restore vision|Prosthetics Config][$activeSlave.eyes = 1, $prostheticsConfig = "eyes"]] | + <</if>> + <<if $activeSlave.eyes != -1>> + [[Blur|Prosthetics Config][$activeSlave.eyes = -1, $prostheticsConfig = "eyes"]] | + <</if>> + <<if $activeSlave.eyes != -2>> + [[Disable|Prosthetics Config][$activeSlave.eyes = -2, $prostheticsConfig = "eyes"]] + <</if>> + + $He currently has $activeSlave.eyeColor lenses equipped. + + <br> + + Swap out $his lenses: + <br> + Iris Color: + [[Blue|Prosthetics Config][$activeSlave.eyeColor = "blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Black|Prosthetics Config][$activeSlave.eyeColor = "black", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Brown|Prosthetics Config][$activeSlave.eyeColor = "brown", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Green|Prosthetics Config][$activeSlave.eyeColor = "green", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Turquoise|Prosthetics Config][$activeSlave.eyeColor = "turquoise", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Sky-Blue|Prosthetics Config][$activeSlave.eyeColor = "sky-blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Hazel|Prosthetics Config][$activeSlave.eyeColor = "hazel", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Pale-Grey|Prosthetics Config][$activeSlave.eyeColor = "pale-grey", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[White|Prosthetics Config][$activeSlave.eyeColor = "white", $prostheticsConfig = "eyeColor" ,cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Pink|Prosthetics Config][$activeSlave.eyeColor = "pink", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Amber|Prosthetics Config][$activeSlave.eyeColor = "amber", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Red|Prosthetics Config][$activeSlave.eyeColor = "red", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Yellow|Prosthetics Config][$activeSlave.eyeColor = "yellow", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Orange|Prosthetics Config][$activeSlave.eyeColor = "orange", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + <br> + Pupil Shape: + <br>[[Circular|Prosthetics Config][$activeSlave.pupil = "circular", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Catlike|Prosthetics Config][$activeSlave.pupil = "catlike", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Serpent-Like|Prosthetics Config][$activeSlave.pupil = "serpent-like", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Devilish|Prosthetics Config][$activeSlave.pupil = "devilish", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Demonic|Prosthetics Config][$activeSlave.pupil = "demonic", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Hypnotic|Prosthetics Config][$activeSlave.pupil = "hypnotic", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Heart-Shaped|Prosthetics Config][$activeSlave.pupil = "heart-shaped", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Wide-Eyed|Prosthetics Config][$activeSlave.pupil = "wide-eyed", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Almond-Shaped|Prosthetics Config][$activeSlave.pupil = "almond-shaped", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Bright|Prosthetics Config][$activeSlave.pupil = "bright", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Teary|Prosthetics Config][$activeSlave.pupil = "teary", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Vacant|Prosthetics Config][$activeSlave.pupil = "vacant", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Star-Shaped|Prosthetics Config][$activeSlave.pupil = "star-shaped", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Goat-Like|Prosthetics Config][$activeSlave.pupil = "goat-like", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + <br> + Sclera Colors: + [[White|Prosthetics Config][$activeSlave.sclerae = "white", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Blue|Prosthetics Config][$activeSlave.sclerae = "blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Black|Prosthetics Config][$activeSlave.sclerae = "black", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Brown|Prosthetics Config][$activeSlave.sclerae = "brown", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Green|Prosthetics Config][$activeSlave.sclerae = "green", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Turquoise|Prosthetics Config][$activeSlave.sclerae = "turquoise", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Sky-Blue|Prosthetics Config][$activeSlave.sclerae = "sky-blue", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Hazel|Prosthetics Config][$activeSlave.sclerae = "hazel", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Pale-Grey|Prosthetics Config][$activeSlave.sclerae = "pale-grey", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Pink|Prosthetics Config][$activeSlave.sclerae = "pink", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Amber|Prosthetics Config][$activeSlave.sclerae = "amber", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Red|Prosthetics Config][$activeSlave.sclerae = "red", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Yellow|Prosthetics Config][$activeSlave.sclerae = "yellow", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Orange|Prosthetics Config][$activeSlave.sclerae = "orange", $prostheticsConfig = "eyeColor", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] +<</if>> + +<<if $activeSlave.earImplant == 1>><br><br> + $He has a cochlear implant installed. + <<if $activeSlave.hears == 0>> + They are operating normally. + <<elseif $activeSlave.hears == -1>> + They are set to muffle $his hearing. + <<else>> + They are turned off. + <</if>> + <br><br> + <<if $activeSlave.hears != 0>> + [[Restore hearing|Prosthetics Config][$activeSlave.hears = 0, $prostheticsConfig = "hearing"]] | + <</if>> + <<if $activeSlave.hears != -1>> + [[Muffle|Prosthetics Config][$activeSlave.hears = -1, $prostheticsConfig = "hearing"]] | + <</if>> + <<if $activeSlave.hears != -2>> + [[Disable|Prosthetics Config][$activeSlave.hears = -2, $prostheticsConfig = "hearing"]] + <</if>> +<</if>> + +<<if $activeSlave.electrolarynx == 1>><br><br> + $He has an electrolarynx installed. + <<if $activeSlave.voice == 0>> + It is turned off. + <<elseif $activeSlave.voice == 1>> + It is set to its "deep voice" setting. + <<elseif $activeSlave.voice == 2>> + It is set to its "normal voice" setting. + <<elseif $activeSlave.voice == 3>> + It is set to its "high voice" setting. + <</if>> + <br><br> + <<if $activeSlave.voice != 0>> + [[Disable|Prosthetics Config][$activeSlave.voice = 0, $prostheticsConfig = "voice"]] | + <</if>> + <<if $activeSlave.voice != 1>> + [[Deep voice setting|Prosthetics Config][$activeSlave.voice = 1, $prostheticsConfig = "voice"]] | + <</if>> + <<if $activeSlave.voice != 2>> + [[Standard voice setting|Prosthetics Config][$activeSlave.voice = 2, $prostheticsConfig = "voice"]] | + <</if>> + <<if $activeSlave.voice != 3>> + [[High voice setting|Prosthetics Config][$activeSlave.voice = 3, $prostheticsConfig = "voice"]] + <</if>> +<</if>> + +<<if $activeSlave.readyProsthetics.length > 0>> + <br><br> + <<if $activeSlave.fuckdoll != 0>> + // A fuckdoll can't use prosthetic limbs. // + <<elseif $activeSlave.amp == 0>> + // $He must be an amputee to attach prosthetic limbs. // + <<elseif $activeSlave.PLimb == 0>> + // $He must have a prosthetic interface installed to attach prosthetic limbs. // + <<else>> + <<if $activeSlave.amp < 0>> + //$He currently has + <<switch $activeSlave.amp>> + <<case -1>> <<= addA(setup.prosthetics.basicL.name)>> + <<case -2>> <<= addA(setup.prosthetics.sexL.name)>> + <<case -3>> <<= addA(setup.prosthetics.beautyL.name)>> + <<case -4>> <<= addA(setup.prosthetics.combatL.name)>> + <<case -5>> <<= addA(setup.prosthetics.cyberneticL.name)>> + <</switch>> + installed.//<br> + <<link "Detach <<= $his>> limbs" "Prosthetics Config">> + <<set $activeSlave.amp = 0, $prostheticsConfig = "removeLimbs">> + <</link>> + <br><br> + <</if>> + /*TODO save .legsTat and .armsTat / link them to prosthetic*/ + <<if $activeSlave.amp != -1 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "basicL"}) != -1>> + <<link "Attach <<= addA(setup.prosthetics.basicL.name)>>" "Prosthetics Config">> + <<set $activeSlave.amp = -1, $prostheticsConfig = "basicPLimbs">> + <</link>> + <br> + <</if>> + <<if $activeSlave.amp != -2 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "sexL"}) != -1>> + <<link "Attach <<= addA(setup.prosthetics.sexL.name)>>" "Prosthetics Config">> + <<set $activeSlave.amp = -2, $prostheticsConfig = "sexPLimbs">> + <</link>> + <br> + <</if>> + <<if $activeSlave.amp != -3 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "beauty"}) != -1>> + <<link "Attach <<= addA(setup.prosthetics.beautyL.name)>>" "Prosthetics Config">> + <<set $activeSlave.amp = -3, $prostheticsConfig = "beautyPLimbs">> + <</link>> + <br> + <</if>> + <<if $activeSlave.amp != -4 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "combatL"}) != -1>> + <<link "Attach <<= addA(setup.prosthetics.combatL.name)>>" "Prosthetics Config">> + <<set $activeSlave.amp = -4, $prostheticsConfig = "combatPLimbs">> + <</link>> + <br> + <</if>> + <<if $activeSlave.amp != -5 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "cyberneticL"}) != -1>> + <<if $activeSlave.amp == 2>> + <<link "Attach <<= addA(setup.prosthetics.basicL.name)>>" "Prosthetics Config">> + <<set $activeSlave.amp = -5, $prostheticsConfig = "cyberPLimbs">> + <</link>> + <<else>> + // $He must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs. // + <</if>> + <</if>> + <</if>> +<</if>> + +<<if $activeSlave.PTail == 1>><br><br> + $He has a neural tail interface installed. You can assign and adjust $his tail here. + <<if $activeSlave.tail != "none">><br> + $He currently has a tail attached, if you wish to change it you will first need to detach it.<br> + [[Detach|Prosthetics Config][$prostheticsConfig = "detachTail",$nextButton = "Continue", $nextLink = "Prosthetics Config"]] + <<else>><br> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "modT"})>> + Attach a modular tail designed to look like a:<br> + [[Cat's Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "mod", $activeSlave.tailShape = "neko", $activeSlave.tailColor = $activeSlave.hColor]] + | [[Dog's Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "mod", $activeSlave.tailShape = "inu", $activeSlave.tailColor = $activeSlave.hColor]] + | [[Fox's Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "mod", $activeSlave.tailShape = "kit", $activeSlave.tailColor = $activeSlave.hColor]] + | [[Kitsune's Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "mod", $activeSlave.tailShape = "kitsune", $activeSlave.tailColor = $activeSlave.hColor]] + | [[Tanuki's Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "mod", $activeSlave.tailShape = "tanuki", $activeSlave.tailColor = $activeSlave.hColor]] + | [[Cow's Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "mod", $activeSlave.tailColor = "ushi", $activeSlave.tailColor = $activeSlave.hColor]] + <br> + <</if>> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "combatT"})>> + [[Attach Combat Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "combat", $activeSlave.tailColor = "jet black"]] + <</if>> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "sexT"})>> + | [[Attach Pleasure Tail|Prosthetics Config][$prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink"]] + <</if>> + <</if>> +<<else>><br><br> + $He does not have a neural tail interface installed so you cannot attach a tail. +<</if>> +<<if $activeSlave.tail == "mod">><br> + $He currently has a modular tail, styled to look like + <<if $activeSlave.tailShape == "neko">> + a long, slender cat tail. + <<elseif $activeSlave.tailShape == "inu">> + a bushy dog tail. + <<elseif $activeSlave.tailShape == "kit">> + a soft, fluffy fox tail. + <<elseif $activeSlave.tailShape == "kitsune">> + three incredibly soft, fluffy fox tails. + <<elseif $activeSlave.tailShape == "tanuki">> + a long, fluffy tanuki tail. + <<elseif $activeSlave.tailShape == "ushi">> + a long cow tail. + <</if>> + <br> + + Modify $his tail's appearance:<br> + [[Cat|Prosthetics Config][$activeSlave.tailShape = "neko", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Dog|Prosthetics Config][$activeSlave.tailShape = "inu", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Fox|Prosthetics Config][$activeSlave.tailShape = "kit", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Kitsune|Prosthetics Config][$activeSlave.tailShape = "kitsune", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Tanuki|Prosthetics Config][$activeSlave.tailShape = "tanuki", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] + | [[Bovine|Prosthetics Config][$activeSlave.tailShape = "ushi", cashX(forceNeg($modCost), "slaveMod", $activeSlave)]] +<</if>> + +<<if $activeSlave.readyProsthetics.length > 0>> + <br><br> + These prosthetics are in storage or already equipped by $him:<br> + <<for _p range $activeSlave.readyProsthetics>> + <<= capitalizeFirstLetter(setup.prosthetics[_p.id].name)>> <br> + <</for>> +<</if>> + +<br><br> +Fit prosthetics to $him: +<<for _p range setup.prostheticIDs>> + <<if _p != "erectile">> /* exclude erectile implant */ + <<if $adjustProsthetics.findIndex(function(p) {return p.id == _p && p.slaveID == $activeSlave.ID}) != -1 || $researchLab.tasks.findIndex(function(p) {return p.type == "craftFit" && p.id == _p && p.slaveID == $activeSlave.ID}) != -1>><br> + //<<= capitalizeFirstLetter(addA(setup.prosthetics[_p].name))>> is already being fitted to this $him.// + <<elseif setup.prosthetics[_p].level > $prostheticsUpgrade>><br> + //You need better contracts to buy <<= addA(setup.prosthetics[_p].name)>>.// + <<elseif $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == _p}) == -1>> + <br> + <<capture _p>> + <<if $prosthetics[_p].amount > 0>> + <<link "Fit <<= addA(setup.prosthetics[_p].name)>> from storage to <<= $him>>" "Prosthetics Config">> + <<set $adjustProsthetics.push({id: _p, workLeft: setup.prosthetics[_p].adjust, slaveID: $activeSlave.ID}), $prosthetics[_p].amount -= 1>> + <</link>> + <<else>> + <<link "Buy and fit <<= addA(setup.prosthetics[_p].name)>> to <<= $him>>" "Prosthetics Config">> + <<set $adjustProsthetics.push({id: _p, workLeft: setup.prosthetics[_p].adjust, slaveID: $activeSlave.ID}), cashX(forceNeg(setup.prosthetics[_p].costs), "slaveMod", $activeSlave)>> + <</link>> + //Costs <<= cashFormat(setup.prosthetics[_p].costs)>>.// + <</if>> + <<if $researchLab.level > 0 & $prosthetics[_p].research > 0>> + <br> + <<link "Construct <<= addA(setup.prosthetics[_p].name)>> for <<= $him>>" "Prosthetics Config">> + <<set $researchLab.tasks.push({ + type: "craftFit", + id: _p, + workLeft: (setup.prosthetics[_p].adjust + setup.prosthetics[_p].craft) / 1.5, + slaveID: $activeSlave.ID})>> + /* 1.5: longer than adjust, but faster than adjust+craft. */ + <</link>> + //Will take longer than fitting an existing prosthetic but faster than first building it and than fitting it to $him.// + <</if>> + <</capture>> + <</if>> + <</if>> +<</for>> + +/* base screen END */ + +<<case "eyeColor">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + <<if $activeSlave.amp != 1>>You have $him lie down and<<else>>You<</if>> use a speculum to keep $his eyes open while you disengage $his lenses remotely and swap them out with $his new $activeSlave.eyeColor lenses<<if $activeSlave.pupil != "circular" || $activeSlave.sclerae != "white">> with <<if $activeSlave.pupil != "circular" >>$activeSlave.pupil pupils<</if>><<if $activeSlave.pupil != "circular" && $activeSlave.sclerae != "white">> and <</if>><<if $activeSlave.sclerae != "white" >>$activeSlave.sclerae sclerae<</if>><</if>>. + +<<case "eyes">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + <<if $activeSlave.eyes == 1>> + $He blinks as $his vision returns. + <<elseif $activeSlave.eyes == -1>> + $He squints at you as $his vision becomes a blur. + <<else>> + $He has a panicked expression when $his vision suddenly goes out. + <</if>> + +<<case "basicPLimbs">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + Attaching $his limbs is a simple procedure, you simply push a connector on each limb into the socket in $his implants until the lock engages.<<if $activeSlave.PLimb == 2>> $He jumps a bit as limbs connect to $his nerves.<</if>> + <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> + <<if $activeSlave.devotion > 20>> + $He's overwhelmed with gratitude and thanks you profusely the first chance $he gets. $He follows the acclimation program diligently, doing $his best to learn how to be a good slave despite, or sometimes even because of, $his artificial arms and legs. + <<elseif $activeSlave.devotion >= -20>> + $He's overwhelmed with gratitude in part because $he didn't think you'd do something like this for $him. $He thanks you profusely the first chance $he gets, and follows the acclimation program diligently, trying to deserve the expense you went to. + <<else>> + Despite $his hatred of you, $he can't help but notice that you clearly have a plan for her that involves putting a good deal of value into $him. Your goals might not be $hers, but at least $he has an indication that you're not toying with $him. + <</if>> + <</if>> + +<<case "sexPLimbs">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + Attaching $his limbs is a simple procedure, you simply push a connector on each limb into the socket in $his implants until the lock engages.<<if $activeSlave.PLimb == 2>> $He jumps a bit as limbs connect to $his nerves.<</if>> + While exiting the prosthetics lab $he is experimenting with $his new arms and legs. + <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> + <<if $activeSlave.devotion <= 20>> + $He rapidly discovers that $his fingertips are now vibrators, and then makes a mess when $he figures out that $his hands can dispense lube without figuring out how to make them stop dispensing lube. $He's frustrated and frightened, realizing that even $his prosthetics are now customized to suit $his purpose as a human sex toy. $He knew $he was a toy before, but somehow, being a literal vibrator is a bit much for $him. + <<elseif $activeSlave.energy > 95>> + Since $he's a nympho, $he discovers $his new sexual functions in a hurry. They trigger in part is based on arousal, and $he's never not aroused, so they activate one by one as $he leaves the surgery. The vibration, lube, and other dirty functions surprise $him, and it takes $him a moment to realize what's going on, but $he begins to breathe hard when $he understands. + <<else>> + $He discovers $his sexy new functions one by one. The vibration, lube, and other dirty functions surprise $him, and it takes $him a moment to realize what's going on, but $he begins to shake with amusement when $he understands. $He heads off to try them out. + <</if>> + <</if>> + +<<case "beautyPLimbs">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + Attaching $his limbs is a simple procedure, you simply push a connector on each limb into the socket in $his implants until the lock engages.<<if $activeSlave.PLimb == 2>> $He jumps a bit as limbs connect to $his nerves.<</if>> $He exits the prosthetic lab <<if canSee($activeSlave)>>marveling at the beautiful, natural appearance of $his new arms and legs<<else>>thanking you for $his new arms and legs, unaware of how natural they look<</if>>. + <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> + <<if $activeSlave.devotion <= 20>> + If $he doubts that you have some sort of long term plan for $him, all $he has to do is <<if canSee($activeSlave)>>look down and examine<<else>>feel<</if>> $his elegant, natural prosthetics, which are often mistaken for the genuine article. Even $he makes the mistake at times as $he gets used to them. + <<elseif $activeSlave.skill.entertainment >= 100>> + Since $he's a masterful entertainer, $he knows multiple styles of dance, though $his straightforward modern prosthetics never allowed $him to be anything more than a mechanically competent dancer. $He finds that $he has far better balance now, in addition to looking more natural. Before long, $he goes //en pointe// and holds the position, before collapsing in a heap. It soon becomes apparent that this wasn't due to clumsiness: $he's sobbing so hard $he can barely breathe. $He thanks you profusely the next time $he sees you, eyes still puffy with tears of joy. + <<else>> + When $he first <<if canSee($activeSlave)>>catches sight of $himself in a mirror<<else>>runs a new finger over $his natural feeling skin<</if>>, $he begins to cry. Terribly complex emotions war across $his face: gratitude, joy, regret, and something undefinable. Blinking, $he uses newly elegant fingertips to trace the scarcely visible seams where $his artificial and natural skin meet. $He thanks you profusely the next time $he sees you, eyes still puffy with tears. + <</if>> + <</if>> + +<<case "combatPLimbs">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + Attaching $his limbs is a simple procedure, you simply push a connector on each limb into the socket in $his implants until the lock engages.<<if $activeSlave.PLimb == 2>> $He jumps a bit as limbs connect to $his nerves.<</if>> While exiting the prosthetic lab $he is wondering over the bulky <<if canSee($activeSlave)>>appearance<<else>>weight<</if>> of $his reinforced arms and legs. + <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> + <<if $activeSlave.devotion <= 20>> + $He's frightened, once $he discovers what $he can do, and what $he is. $His integral weapons are locked out by the arcology systems, for now, but $he quickly realizes what they are. $He is not, to say the least, thrilled by the revelation that $he is now a living weapon, and is kept awake by thoughts of what you might be planning for $him. + <<elseif ($activeSlave.skill.combat == 1) && ($activeSlave.devotion > 75)>> + $He leaves the prosthetic lab with a purpose, $his footsteps a bit heavier than before. $He heads down to the armory's range, still naked, and when $he gets there, $he places $his dominant hand over $his thigh on that side. It folds open, revealing a handgun, which $he draws and empties into a <<if canSee($activeSlave)>>target<<else>>beeping target<</if>>; as $he fires the last rounds, $he uses $his off hand to reach down to that thigh, which folds open and reveals spare magazines. $He knows that $his prosthetics are a wash, at best, in terms of actual combat effectiveness; they'll never match the reliability and dexterity of the genuine article. But $he thinks they are //cool.// + <<else>> + $He has mixed feelings about what $he soon discovers. $He's a living weapon now, and has to live with the constant knowledge that $he can incapacitate or kill with nothing more than what's contained within $his arms and legs. $He's touched, though, by the tremendous trust this shows. $He knows that the arcology would instantly lock out $his weapons if $he were to misbehave, but $he's still affected. + <</if>> + <</if>> + +<<case "cyberPLimbs">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + Attaching $his limbs is a simple procedure, you simply push a connector on each limb into the socket in $his implants until the lock engages.<<if $activeSlave.PLimb == 2>> $He jumps a bit as limbs connect to $his nerves.<</if>> $He exits the prosthetic lab marveling <<if canSee($activeSlave)>>at the shiny artificial skin of $his new arms and legs<<else>>at the feel of the artificial skin of $his new arms and legs under $his new fingers<</if>>. + <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> + <<if $activeSlave.devotion <= 20>> + $He's frightened, once $he discovers what $he can do, and what $he is. $His cybernetic limbs are restricted by the arcology systems, for now, but $he quickly realizes what they are. $He is not, to say the least, thrilled by the revelation that $he is now a living weapon, and is kept awake by thoughts of what you might be planning for $him. + <<elseif ($activeSlave.skill.combat == 1) && ($activeSlave.devotion > 75)>> + $He leaves the surgery with a purpose, $his footsteps a bit heavier than before. $He heads down to the armory's range, still naked, and when $he gets there, $he places $his dominant hand over $his thigh on that side. It folds open, revealing a handgun, which $he draws and empties into a <<if canSee($activeSlave)>>target<<else>>beeping target<</if>>; as $he fires the last rounds, $he uses $his off hand to reach down to that thigh, which folds open and reveals spare magazines. $He knows that $his prosthetics will enhance $his combat effectiveness and $he thinks they are //cool.// + <<else>> + $He has mixed feelings about what $he soon discovers. $He's a living weapon now, and has to live with the constant knowledge that $he can incapacitate or kill with nothing more than $his arms and legs themselves. $He's touched, though, by the tremendous trust this shows. $He knows that the arcology would instantly lock out $his limbs if $he were to misbehave, but $he's still affected. + <</if>> + <</if>> + +<<case "removeLimbs">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + <<set $activeSlave.amp = 1>> + Due to built-in safeties it is necessary to remove each limb separately, first releasing the lock and then waiting for automated seal release.<br> + <<if ($activeSlave.devotion > 20)>> + You instruct $him to lie down on the table and proceed to remove $his limbs. $He <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>> with interest as you work.<<if ($activeSlave.devotion > 50)>> As you remove the last limb $he playfully wiggles $his stumps at you.<</if>> + <<else>> + You order $him to lie down on the table and proceed to remove $his limbs. $He <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>> with a bitter expression as you work. + <</if>> + +<<case "hearing">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + <<if $activeSlave.hears == 0>> + $He tilts $his head as $his hearing returns. + <<elseif $activeSlave.hears == -1>> + $He shakes $his head as $his hearing becomes muffled. + <<else>> + $He has a panicked expression when $his hearing is suddenly silenced. + <</if>> + +<<case "voice">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + <<if $activeSlave.voice == 0>> + $He tries testing out $his new voice, only to discover $he's been made mute. + <<elseif $activeSlave.voice == 1>> + $He tests out the <<if canHear($activeSlave)>>sound<<else>>feeling<</if>> of $his new, deep voice. + <<elseif $activeSlave.voice == 2>> + $He tests out the <<if canHear($activeSlave)>>sound<<else>>feeling<</if>> of $his new, normal voice. + <<elseif $activeSlave.voice == 3>> + $He tests out the <<if canHear($activeSlave)>>sound<<else>>feeling<</if>> of $his new, high voice. + <</if>> + +<<case "detachTail">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + <<if $activeSlave.tail == "mod">><<set $stockpile.modPTail += 1>> + <<elseif $activeSlave.tail == "combat">><<set $stockpile.warPTail += 1>> + <<elseif $activeSlave.tail == "sex">><<set $stockpile.sexPTail += 1>> + <</if>> + <<set $activeSlave.tail = "none">><<set $activeSlave.tailShape = "none">><<set $activeSlave.tailColor = "none">> + You send the release signal and the mechanical lock disengages allowing the artificial tail to pop right off. + +<<case "attachTail">> + <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> + Attaching $his tail is a simple procedure, you simply push the connector into a socket, right where $his tailbone ends, until the lock engages.<br> + When you are done, $he looks back and + <<if $activeSlave.tailShape == "neko">>sways $his tail side to side enigmatically. + <<elseif $activeSlave.tailShape == "inu">>wags $his tail side to side energetically. + <<elseif $activeSlave.tailShape == "kit">>slowly sways $his tail feeling the soft fur brush against $his skin. + <<elseif $activeSlave.tailShape == "kitsune">>slowly sways $his tails luxuriating in the incredibly soft, fluffy fur brushing against $his skin. + <<elseif $activeSlave.tailShape == "tanuki">>admires $his long, thick fluffy tail. + <<elseif $activeSlave.tailShape == "ushi">>swats $himself playfully. + <<elseif $activeSlave.tail == "combat">>experimentally whips the long tail side to side then takes aim at a prepared fruit, lashes out with blinding speed and smiles as it explodes into chunks. + <<elseif $activeSlave.tail == "sex">>accidentally engages the vibrating and lube functions, startling $him and making quite a mess. + <<else>>admires $his new tail. + <</if>> +<</switch>> diff --git a/src/interaction/prothesticLab.tw b/src/interaction/prothesticLab.tw new file mode 100644 index 0000000000000000000000000000000000000000..67bd40629ca0e51478d08124fc6d28543eba640a --- /dev/null +++ b/src/interaction/prothesticLab.tw @@ -0,0 +1,221 @@ +:: Prosthetic Lab [nobr] + +<<set $nextButton = "Back", $nextLink = "Main">> + +<<set $researchLab.speed = (($researchLab.hired * 3) + $researchLab.menials) * $researchLab.aiModule>> + +Prosthetic Lab +<hr><br> + +<<if $adjustProsthetics.length > 0>> + Currently adjusting these prosthetics:<br> + <<for _p range $adjustProsthetics>> + <<= capitalizeFirstLetter(setup.prosthetics[_p.id].name)>> for <<= SlaveFullName($slaves[$slaveIndices[_p.slaveID]])>><br> + <</for>> +<<else>> + //Currently there are no prosthetics being fit to a slave.// +<</if>> + +<<if $researchLab.level > 0>> + <br><br>Research Department + <hr> + //You switch one of the screens in your office to the feed from your research facility.// + + <br><br> + __Personnel__ + <br><br> + + <<if $researchLab.aiModule == 1>> + [[Buy and install research module|Prosthetic Lab][cashX(-35000, "capEx"), $researchLab.aiModule = 2]] //This module enables your personal assistant to assist staff and direct menials assigned to your research facility, increasing efficiency. It costs <<= cashFormat(35000)>>//<br> + <</if>> + <<if ($researchLab.hired + $researchLab.menials) == 0>> + //Facility is currently unstaffed.// + <<else>> + //You have + <<if $researchLab.hired == 1>> + one scientist + <<elseif $researchLab.hired > 1>> + $researchLab.hired scientists + <</if>> + <<if $researchLab.hired > 0 && $researchLab.menials > 0 >> and<</if>> + <<if $researchLab.menials == 1>> + one menial slave + <<elseif $researchLab.menials > 1>> + $researchLab.menials menials + <</if>> + working in your lab. + <<setAssistantPronouns>> + <<if $researchLab.aiModule > 1>>Occasionally you hear the voice of your assistant as _heA helps direct and organize work.<</if>>// + <</if>> + <br> + + Currently, this facility can employ $researchLab.maxSpace people. + <<if $researchLab.maxSpace == 5>> + [[Expand facility|Prosthetic Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 10]] + //Costs <<= cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>// + <<elseif $researchLab.maxSpace == 10>> + [[Expand facility|Prosthetic Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 20]] + //Costs <<= cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>// + <<elseif $researchLab.maxSpace == 20>> + [[Expand facility|Prosthetic Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 30]] + //Costs <<= cashFormat(Math.trunc(15000*$upgradeMultiplierArcology))>>// + <<elseif $researchLab.maxSpace == 30>> + [[Expand facility|Prosthetic Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 40]] + //Costs <<= cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>>// + <<elseif $researchLab.maxSpace == 40>> + [[Expand facility|Prosthetic Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 50]] + //Costs <<= cashFormat(Math.trunc(25000*$upgradeMultiplierArcology))>>// + <<elseif $researchLab.maxSpace == 50>> + //Facility is fully expanded.// + <</if>> + <br><br> + + <<if ($researchLab.hired + $researchLab.menials) < $researchLab.maxSpace>> + Hire [[x1|Prosthetic Lab][$researchLab.hired += 1,cashX(-2000, "lab")]] + <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 5>> + | [[x5|Prosthetic Lab][$researchLab.hired += 5,cashX(-10000, "lab")]] + <</if>> + <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 10>> + | [[x10|Prosthetic Lab][$researchLab.hired += 10,cashX(-10000, "lab")]] + <</if>> + scientists.<br> + //Each scientist will require an initial fee of <<= cashFormat(2000)>> and incur <<= cashFormat(300)>> weekly.// + <br> + <<if $menials > 0>> + Assign [[x1|Prosthetic Lab][$researchLab.menials += 1,$menials -= 1]] + <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 5 && $menials >= 5>> + | [[x5|Prosthetic Lab][$researchLab.menials += 5,$menials -= 5]] + <</if>> + <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 10 && $menials >= 10>> + | [[x10|Prosthetic Lab][$researchLab.menials += 10,$menials -= 10]] + <</if>> + menial slaves to lab.<br> + <<else>>You do not own any <<if $researchLab.menials != 0>>unassigned <</if>>menial slaves.<br> + <</if>> + //Using menial slaves is much cheaper than hiring scientists, but they are less effective. <<= cashFormat(100)>> per slave each week.//<br> + <<else>> + //Facility is fully staffed.// + <</if>> + <br> + <<if $researchLab.hired > 0>> + Fire [[x1|Prosthetic Lab][$researchLab.hired -= 1]] + <<if $researchLab.hired >= 5>> + | [[x5|Prosthetic Lab][$researchLab.hired -= 5]] + <</if>> + <<if $researchLab.hired >= 10>> + | [[x10|Prosthetic Lab][$researchLab.hired -= 10]] + <</if>> + | [[All|Prosthetic Lab][$researchLab.hired = 0]] + scientists. + <</if>> + <<if $researchLab.menials > 0>><br> + Dismiss [[x1|Prosthetic Lab][$researchLab.menials -= 1,$menials += 1]] + <<if $researchLab.menials >= 5>> + | [[x5|Prosthetic Lab][$researchLab.menials -= 5,$menials += 5]] + <</if>> + <<if $researchLab.menials >= 10>> + | [[x10|Prosthetic Lab][$researchLab.menials -= 10,$menials += 10]] + <</if>> + | [[All|Prosthetic Lab][$menials += $researchLab.menials, $researchLab.menials = 0]] + menial slaves. + <</if>> + + <br><br> + + __Tasks__ + + <br><br> + + <<if $researchLab.tasks.length > 0>> + <<set _j = 0>> + <<if $researchLab.speed > 0>> + The following tasks are queued: + <<else>> + You have projects planned but without researchers you won't be able to work on them: + <</if>> + <br> + <<for _i = 0; _i < $researchLab.tasks.length; _i++>> + + <<switch $researchLab.tasks[_i].type>> + <<case "research">> + You <<if _i == 0>>are researching<<else>> plan to research<</if>> + <<case "craft">> + You <<if _i == 0>>are constructing<<else>> plan to construct<</if>> + <<case "craftFit">> + For @@.yellow;<<= SlaveFullName($slaves[$slaveIndices[$researchLab.tasks[_i].slaveID]])>>@@ you <<if _i == 0>>are constructing<<else>> plan to construct<</if>> + <<default>> + @@.red;Error: Unkown $$researchLab.tasks[].type: $researchLab.tasks[_i].type@@ + <</switch>> + <<set _j += $researchLab.tasks[_i].workLeft>> + @@.yellow;<<= capitalizeFirstLetter(setup.prosthetics[$researchLab.tasks[_i].id].name)>>@@. + <<if $researchLab.speed > 0>> + Finished in approximately <<= (Math.floor(_j / $researchLab.speed) + 1)>> week(s). + <</if>> + + <<if $researchLab.tasks[_i].type == "research">> + <<set _link = "Cancel: Will not return investments.">> + <<else>> + <<set _link = "Cancel">> + <</if>> + <<capture _i>> + <<link _link "Prosthetic Lab">> + <<if $researchLab.tasks[_i].type == "research">> + <<set $prosthetics[$researchLab.tasks[_i].id].research = 0>> + <</if>> + <<set $researchLab.tasks.deleteAt(_i)>> + <</link>> + <</capture>> + + <br> + <</for>> + <<else>> + //Currently the research lab has no tasks planned.// + <</if>> + + <br><br> + + __Research__ + <br><br> + + Available research projects:<br> + <<for _p range setup.prostheticIDs>> + <<if $prosthetics[_p].research == 0>> + <<if _p != "erectile">> /*excludes erectile*/ + + <<if setup.prosthetics[_p].level <= $prostheticsUpgrade>> + <<capture _p>> + <<link "Reverse engineer <<= capitalizeFirstLetter(setup.prosthetics[_p].name)>>" "Prosthetic Lab">> + <<set cashX(forceNeg(setup.prosthetics[_p].costs), "lab"), $prosthetics[_p].research = -1, $researchLab.tasks.push({type: "research", id: _p, workLeft: setup.prosthetics[_p].research})>> + <</link>> + <</capture>> + //Costs <<= cashFormat(setup.prosthetics[_p].costs)>> of initial investment.// + <<else>> + //You need better contracts to get the needed research material for researching <<= capitalizeFirstLetter(setup.prosthetics[_p].name)>>.// + <</if>> + <br> + <</if>> + <</if>> + <</for>> + + <br><br> + __Manufacture__ + <br><br> + + Available building projects:<br> + <<for _p range setup.prostheticIDs>> + <<if $prosthetics[_p].research == 1>> + <<if _p != setup.prostheticIDs.erectile>> /*excludes erectile*/ + + <<capture _p>> + <<link "Build <<= addA(setup.prosthetics[_p].name)>>" "Prosthetic Lab">> + <<set $researchLab.tasks.push({type: "craft", id: _p, workLeft: setup.prosthetics[_p].craft})>> + <</link>> + <</capture>> + <br> + <</if>> + <</if>> + <</for>> + + <br><br> + <<= ResearchLabStockPile()>> +<</if>> diff --git a/src/interaction/researchLab.tw b/src/interaction/researchLab.tw deleted file mode 100644 index 025372716e16d4b1719c6e58f42d0cb8f9455eab..0000000000000000000000000000000000000000 --- a/src/interaction/researchLab.tw +++ /dev/null @@ -1,268 +0,0 @@ -:: Research Lab [nobr] - -<<switch $temp>> - -<<case 0>> - - <<set $nextButton = "Back", $nextLink = "Manage Arcology">> - - //You switch one of the screens in your office to the feed from research facility.//<br><br> - - <br>[[Decommission facility|Manage Arcology][$researchLab.built = "false",$researchLab.hired = 0,$menials += $researchLab.menials,$researchLab.menials = 0,$researchLab.research = "none",$researchLab.manufacture = "none",$researchLab.productionTime = 0]] //Warning! This will cancel all projects, remove all staff and shut down this facility.// - - <br><br>[[Purchase cybernetics|Research Lab][$temp = 1]] -<br><br> - __Personnel__<br><br> - -<br> - <<if $researchLab.aiModule == 1>> - [[Buy and install research module|Research Lab][cashX(-35000, "capEx"), $researchLab.aiModule = 2]] //This module enables your personal assistant to assist staff and direct menials assigned to your research facility, increasing efficiency. It costs <<print cashFormat(35000)>>//<br> - <</if>> - <<if ($researchLab.hired + $researchLab.menials) == 0>> - //Facility is currently unstaffed.// - <<else>> - //You have - <<if $researchLab.hired == 1>> - one scientist - <<elseif $researchLab.hired > 1>> - $researchLab.hired scientists - <</if>> - <<if $researchLab.menials != 0>> and<</if>> - <<if $researchLab.menials == 0>> - <<elseif $researchLab.menials == 1>> - one menial slave - <<elseif $researchLab.menials > 1>> - $researchLab.menials menials - <</if>> - working in your lab. - <<setAssistantPronouns>> - <<if $researchLab.aiModule != 0>>Occasionally you hear the voice of your assistant as _heA helps direct and organize work.<</if>>// - <</if>> - <br> - - Currently, this facility can employ $researchLab.maxSpace people. - <<if $researchLab.maxSpace == 5>> - [[Expand facility|Research Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 10]] - //Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>>// - <<elseif $researchLab.maxSpace == 10>> - [[Expand facility|Research Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 20]] - //Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>>// - <<elseif $researchLab.maxSpace == 20>> - [[Expand facility|Research Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 30]] - //Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology))>>// - <<elseif $researchLab.maxSpace == 30>> - [[Expand facility|Research Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 40]] - //Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>>// - <<elseif $researchLab.maxSpace == 40>> - [[Expand facility|Research Lab][cashX(forceNeg(Math.trunc(5000*$upgradeMultiplierArcology)), "capEx"), $researchLab.maxSpace = 50]] - //Costs <<print cashFormat(Math.trunc(25000*$upgradeMultiplierArcology))>>// - <<elseif $researchLab.maxSpace == 50>> - //Facility is fully expanded.// - <</if>> - <br><br> - - <<if ($researchLab.hired + $researchLab.menials) < $researchLab.maxSpace>> - Hire [[x1|Research Lab][$researchLab.hired += 1,cashX(-5000, "lab")]] - <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 5>> - | [[x5|Research Lab][$researchLab.hired += 5,cashX(-25000, "lab")]] - <</if>> - <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 10>> - | [[x10|Research Lab][$researchLab.hired += 10,cashX(-50000, "lab")]] - <</if>> - scientists.<br> - //Each scientist will require an initial fee of <<print cashFormat(5000)>> and incur <<print cashFormat(300)>> weekly.// - <br> - <<if $menials > 0>> - Assign [[x1|Research Lab][$researchLab.menials += 1,$menials -= 1]] - <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 5 && $menials >= 5>> - | [[x5|Research Lab][$researchLab.menials += 5,$menials -= 5]] - <</if>> - <<if ($researchLab.maxSpace - ($researchLab.hired + $researchLab.menials)) >= 10 && $menials >= 10>> - | [[x10|Research Lab][$researchLab.menials += 10,$menials -= 10]] - <</if>> - menial slaves to lab.<br> - <<else>>You do not own any <<if $researchLab.menials != 0>>unassigned <</if>>menial slaves.<br> - <</if>> - //Using menial slaves is much cheaper than hiring scientists, but they are less effective. <<print cashFormat(100)>> per slave each week.//<br> - <<else>> - //Facility is fully staffed.// - <</if>> - <br> - <<if $researchLab.hired > 0>> - Fire [[x1|Research Lab][$researchLab.hired -= 1]] - <<if $researchLab.hired >= 5>> - | [[x5|Research Lab][$researchLab.hired -= 5]] - <</if>> - <<if $researchLab.hired >= 10>> - | [[x10|Research Lab][$researchLab.hired -= 10]] - <</if>> - | [[All|Research Lab][$researchLab.hired = 0]] - scientists. - <</if>> - <<if $researchLab.menials > 0>><br> - Dismiss [[x1|Research Lab][$researchLab.menials -= 1,$menials += 1]] - <<if $researchLab.menials >= 5>> - | [[x5|Research Lab][$researchLab.menials -= 5,$menials += 5]] - <</if>> - <<if $researchLab.menials >= 10>> - | [[x10|Research Lab][$researchLab.menials -= 10,$menials += 10]] - <</if>> - | [[All|Research Lab][$menials += $researchLab.menials,$researchLab.menials = 0]] - menial slaves. - <</if>> - - <br><br> - __Research__ - <br><br> - <<if $researchLab.research != "none">> - //Your lab staff is currently researching @@.yellow;$researchLab.research@@.//<br> - [[Cancel Research|Research Lab][$researchLab.productionTime = 0,$researchLab.research = "none"]] - <<elseif $researchLab.manufacture != "none">> - //Your lab staff is currently busy with other projects.// - <<else>> - //No research active.//<br> - <<if $researchLab.basicPLimbInterface == 0 && $stockpile.basicPLimbInterface > 0>><br> - [[Reverse engineer basic prosthetics interface|Research Lab][$researchLab.productionTime = 80,$researchLab.research = "Basic prosthetics interface"]] - <</if>> - <<if $researchLab.basicPLimbInterface != 0 && $researchLab.advPLimbInterface == 0 && $stockpile.advPLimbInterface > 0>><br> - [[Reverse engineer advanced prosthetics interface|Research Lab][$researchLab.productionTime = 120,$researchLab.research = "Advanced prosthetics interface"]] - <</if>> - <<if $researchLab.basicPLimb == 0 && $stockpile.basicPLimb > 0>><br> - [[Reverse engineer basic prosthetic limbs|Research Lab][$researchLab.productionTime = 80,$researchLab.research = "Basic prosthetic limbs"]] - <</if>> - <<if $researchLab.advSexPLimb == 0 && $stockpile.advSexPLimb > 0>><br> - [[Reverse engineer advanced sex limbs|Research Lab][$stockpile.advSexPLimb -= 1,$researchLab.productionTime = 100,$researchLab.research = "Advanced sex limbs"]] - <</if>> - <<if $researchLab.advGracePLimb == 0 && $stockpile.advGracePLimb > 0>><br> - [[Reverse engineer advanced beauty limbs|Research Lab][$stockpile.advGracePLimb -= 1,$researchLab.productionTime = 100,$researchLab.research = "Advanced beauty limbs"]] - <</if>> - <<if $researchLab.advCombatPLimb == 0 && $stockpile.advCombatPLimb > 0>><br> - [[Reverse engineer advanced combat limbs|Research Lab][$stockpile.advCombatPLimb -= 1,$researchLab.productionTime = 100,$researchLab.research = "Advanced combat limbs"]] - <</if>> - <<if $researchLab.cyberneticPLimb == 0 && $researchLab.advPLimbInterface == 1 && ($researchLab.advSexPLimb + $researchLab.advGracePLimb + $researchLab.advCombatPLimb) >= 1>><br> - [[Develop cybernetic limbs|Research Lab][$researchLab.productionTime = 300,$researchLab.research = "Cybernetic limbs"]] - <</if>> - <<if $researchLab.ocularImplant == 0 && $stockpile.ocularImplant > 0>><br> - [[Reverse engineer ocular implants|Research Lab][$stockpile.ocularImplant -= 1,$researchLab.productionTime = 100,$researchLab.research = "Ocular implants"]] - <</if>> - <<if $researchLab.cochlearImplant == 0 && $stockpile.cochlearImplant > 0>><br> - [[Reverse engineer cochlear implants|Research Lab][$stockpile.cochlearImplant -= 1,$researchLab.productionTime = 80,$researchLab.research = "Cochlear implants"]] - <</if>> - <<if $researchLab.electrolarynx == 0 && $stockpile.electrolarynx > 0>><br> - [[Reverse engineer electrolarynx|Research Lab][$stockpile.electrolarynx -= 1,$researchLab.productionTime = 80,$researchLab.research = "Electrolarynx"]] - <</if>> - /*<<if $researchLab.erectileImplant == 0 && $stockpile.erectileImplant > 0>><br> - [[Reverse engineer erectile implant|Research Lab][$stockpile.erectileImplant -= 1,$researchLab.productionTime = 100,$researchLab.research = "Erectile implant"]] - <</if>>*/ - <</if>> - - <br><br> - __Manufacture__ - <br><br> - <<if $researchLab.research != "none">> - //Your lab staff is currently busy with research.// - <<elseif $researchLab.manufacture != "none">> - //Your lab staff is currently building @@.yellow;$researchLab.manufacture@@.// - [[Cancel Project|Research Lab][$researchLab.productionTime = 0,$researchLab.manufacture = "none"]] - <<else>> - //No projects currently active.//<br> - <<if $researchLab.basicPLimbInterface == 1>><br> - [[Build basic prosthetics interface|Research Lab][$researchLab.productionTime = 50,$researchLab.manufacture = "Basic prosthetics interface"]] // Currently have: $stockpile.basicPLimbInterface// - <</if>> - <<if $researchLab.advPLimbInterface == 1>><br> - [[Build advanced prosthetics interface|Research Lab][$researchLab.productionTime = 80,$researchLab.manufacture = "Advanced prosthetics interface"]] // Currently have: $stockpile.advPLimbInterface// - <</if>> - <<if $researchLab.basicPLimb == 1>><br> - [[Build basic prosthetic limbs|Research Lab][$researchLab.productionTime = 20,$researchLab.manufacture = "Basic prosthetic limbs"]] // Currently have: $stockpile.basicPLimb// - <</if>> - <<if $researchLab.advSexPLimb == 1>><br> - [[Build advanced sex limbs|Research Lab][$researchLab.productionTime = 100,$researchLab.manufacture = "Advanced sex limbs"]] // Currently have: $stockpile.advSexPLimb// - <</if>> - <<if $researchLab.advGracePLimb == 1>><br> - [[Build advanced beauty limbs|Research Lab][$researchLab.productionTime = 100,$researchLab.manufacture = "Advanced beauty limbs"]] // Currently have: $stockpile.advGracePLimb// - <</if>> - <<if $researchLab.advCombatPLimb == 1>><br> - [[Build advanced combat limbs|Research Lab][$researchLab.productionTime = 100,$researchLab.manufacture = "Advanced combat limbs"]] // Currently have: $stockpile.advCombatPLimb// - <</if>> - <<if $researchLab.cyberneticPLimb == 1>><br> - [[Build cybernetic limbs|Research Lab][$researchLab.productionTime = 150,$researchLab.manufacture = "Cybernetic limbs"]] // Currently have: $stockpile.cyberneticPLimb// - <</if>> - <<if $researchLab.ocularImplant == 1>><br> - [[Build ocular implants|Research Lab][$researchLab.productionTime = 80,$researchLab.manufacture = "Ocular implants"]] // Currently have: $stockpile.ocularImplant// - <</if>> - <<if $researchLab.cochlearImplant == 1>><br> - [[Build cochlear implants|Research Lab][$researchLab.productionTime = 60,$researchLab.manufacture = "Cochlear implants"]] // Currently have: $stockpile.cochlearImplant// - <</if>> - <<if $researchLab.electrolarynx == 1>><br> - [[Build electrolarynx|Research Lab][$researchLab.productionTime = 60,$researchLab.manufacture = "Electrolarynx"]] // Currently have: $stockpile.electrolarynx// - <</if>> - /*<<if $researchLab.erectileImplant == 1>><br> - [[Build erectile implant|Research Lab][$researchLab.productionTime = 50,$researchLab.manufacture = "Erectile implant"]] // Costs <<print cashFormat(25000)>>. Currently have: $stockpile.erectileImplant// - <</if>>*/ - <</if>> - -<<if $researchLab.manufacture != "none"||$researchLab.research != "none">> - <br><br> <<= ResearchLabStockPile()>> -<</if>> - -<<case 1>> - <<set $temp = 0>> - <<set $nextLink = "Research Lab">> - //You contact a representative of one of the larger cybernetics companies and inquire about their products.<br> This is what they have to offer://<br><br> - - __Hardware__<br> - [[Basic prosthetics interface|Research Lab][$temp = 1, cashX(-25000, "lab"), $stockpile.basicPLimbInterface += 1]] //Costs <<print cashFormat(25000)>>. Currently have: $stockpile.basicPLimbInterface//<br> - [[Advanced prosthetics interface|Research Lab][$temp = 1, cashX(-60000, "lab"), $stockpile.advPLimbInterface += 1]] //Costs <<print cashFormat(60000)>>. Currently have: $stockpile.advPLimbInterface//<br> - [[Basic prosthetic limbs|Research Lab][$temp = 1, cashX(-15000, "lab"), $stockpile.basicPLimb += 1]] //Costs <<print cashFormat(15000)>>. Currently have: $stockpile.basicPLimb//<br> - [[Advanced sex limbs|Research Lab][$temp = 1, cashX(-30000, "lab"), $stockpile.advSexPLimb += 1]] //Costs <<print cashFormat(30000)>>. Currently have: $stockpile.advSexPLimb//<br> - [[Advanced beauty limbs|Research Lab][$temp = 1, cashX(-30000, "lab"), $stockpile.advGracePLimb += 1]] //Costs <<print cashFormat(30000)>>. Currently have: $stockpile.advGracePLimb//<br> - [[Advanced combat limbs|Research Lab][$temp = 1, cashX(-30000, "lab"), $stockpile.advCombatPLimb += 1]] //Costs <<print cashFormat(30000)>>. Currently have: $stockpile.advCombatPLimb//<br> - [[Ocular implants|Research Lab][$temp = 1, cashX(-35000, "lab"), $stockpile.ocularImplant += 1]] //Costs <<print cashFormat(35000)>>. Currently have: $stockpile.ocularImplant//<br> - [[Cochlear implants|Research Lab][$temp = 1, cashX(-15000, "lab"), $stockpile.cochlearImplant += 1]] //Costs <<print cashFormat(15000)>>. Currently have: $stockpile.cochlearImplant//<br> - [[Electrolarynx|Research Lab][$temp = 1, cashX(-50000, "lab"), $stockpile.electrolarynx += 1]] //Costs <<print cashFormat(50000)>>. Currently have: $stockpile.electrolarynx//<br> - /*[[Erectile implant|Research Lab][$temp = 1, cashX(-25000, "lab"), $stockpile.erectileImplant += 1]] //Costs <<print cashFormat(25000)>>. Currently have: $stockpile.erectileImplant//*/ - - <br><br>__Schematics__<br> - <<if $researchLab.basicPLimbInterface != 1 && $researchLab.research != "Basic prosthetics interface">> - [[Basic prosthetics interface|Research Lab][$temp = 1, cashX(-85000, "lab"), $researchLab.basicPLimbInterface = 1]] //Costs <<print cashFormat(85000)>>.//<br> - <</if>> - <<if $researchLab.advPLimbInterface != 1 && $researchLab.research != "Advanced prosthetics interface">> - [[Advanced prosthetics interface|Research Lab][$temp = 1, cashX(-260000, "lab"), $researchLab.advPLimbInterface = 1]] //Costs <<print cashFormat(260000)>>.//<br> - <</if>> - <<if $researchLab.basicPLimb != 1 && $researchLab.research != "Basic prosthetic limbs">> - [[Basic prosthetic limbs|Research Lab][$temp = 1, cashX(-60000, "lab"), $researchLab.basicPLimb = 1]] //Costs <<print cashFormat(60000)>>.//<br> - <</if>> - <<if $researchLab.advSexPLimb != 1 && $researchLab.research != "Advanced sex limbs">> - [[Advanced sex limbs|Research Lab][$temp = 1, cashX(-120000, "lab"), $researchLab.advSexPLimb = 1]] //Costs <<print cashFormat(120000)>>.//<br> - <</if>> - <<if $researchLab.advGracePLimb != 1 && $researchLab.research != "Advanced beauty limbs">> - [[Advanced beauty limbs|Research Lab][$temp = 1, cashX(-120000, "lab"), $researchLab.advGracePLimb = 1]] //Costs <<print cashFormat(120000)>>.//<br> - <</if>> - <<if $researchLab.advCombatPLimb != 1 && $researchLab.research != "Advanced combat limbs">> - [[Advanced combat limbs|Research Lab][$temp = 1, cashX(-120000, "lab"), $researchLab.advCombatPLimb = 1]] //Costs <<print cashFormat(120000)>>.//<br> - <</if>> - <<if $researchLab.ocularImplant != 1 && $researchLab.research != "Ocular implants">> - [[Ocular implants|Research Lab][$temp = 1, cashX(-160000, "lab"), $researchLab.ocularImplant = 1]] //Costs <<print cashFormat(160000)>>.//<br> - <</if>> - <<if $researchLab.cochlearImplant != 1 && $researchLab.research != "Cochlear implants">> - [[Cochlear implants|Research Lab][$temp = 1, cashX(-125000, "lab"), $researchLab.cochlearImplant = 1]] //Costs <<print cashFormat(125000)>>.//<br> - <</if>> - <<if $researchLab.electrolarynx != 1 && $researchLab.research != "Electrolarynx">> - [[Electrolarynx|Research Lab][$temp = 1, cashX(-125000, "lab"), $researchLab.electrolarynx = 1]] //Costs <<print cashFormat(200000)>>.//<br> - <</if>> - /*<<if $researchLab.erectileImplant != 1 && $researchLab.research != "Erectile implant">> - [[Erectile implant|Research Lab][$temp = 1, cashX(-95000, "lab"), $researchLab.erectileImplant = 1]] //Costs <<print cashFormat(95000)>>.// - <</if>>*/ - -<br><br> - //You contact a representative of one of the most popular Japanese cybernetics companies and inquire about their products.<br> This is what they have to offer://<br><br> - - __Hardware__<br> - [[Neural Tail Interface|Research Lab][$temp = 1, cashX(-10000, "lab"), $stockpile.interfacePTail += 1]] //Costs <<print cashFormat(10000)>>. Currently have: $stockpile.interfacePTail//<br> - [[Modular Tail|Research Lab][$temp = 1, cashX(-3000, "lab"), $stockpile.modPTail += 1]] //Costs <<print cashFormat(5000)>>. Currently have: $stockpile.modPTail//<br> - [[Combat Tail|Research Lab][$temp = 1, cashX(-15000, "lab"), $stockpile.warPTail += 1]] //Costs <<print cashFormat(15000)>>. Currently have: $stockpile.warPTail//<br> - [[Pleasure Tail|Research Lab][$temp = 1, cashX(-10000, "lab"), $stockpile.sexPTail += 1]] //Costs <<print cashFormat(10000)>>. Currently have: $stockpile.sexPTail//<br> - - <br><br>__Schematics__<br> - They do not currently offer schematics for sale. -<</switch>> \ No newline at end of file diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 17f928eb2aed368f386559caf3ecca06bc75284a..6d394763825936825abdd10aaf368f48d18386ab 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -640,8 +640,8 @@ App.Entity.SlaveState = class SlaveState { /** * What level of prosthetic interface she has installed * * 0: no interface - * * 1: basic interface (used both in and out of cyberMod) - * * 2: advanced interface (used only in cyberMod) + * * 1: basic interface + * * 2: advanced interface */ this.PLimb = 0; /** @@ -2219,14 +2219,12 @@ App.Entity.SlaveState = class SlaveState { */ this.pregControl = "none"; /** - * Array that holds an amputee 's constructed limbs for anon's hotswap mod. + * Array that holds a slaves fitted prosthetics. Opjects are used to ensure easier expansion later (tatoos for limbs and similar). * * Elements of the array should be objects. - * * .type: type of prosthetic limb, ranges from -1 to -5, see.amp for more information - * * .armsTat: any string, see.armsTat for standard strings - * * .legsTat: any string, see.legsTat for standard strings - * @type {Array.<{type:number, armsTat:string, legsTat:string}>} */ - this.readyLimbs = []; + * * .id: ID of the prosthetic, see setup.prostheticIDs + * @type {Array.<{id:string}>} */ + this.readyProsthetics = []; /** */ this.ageAdjust = 0; /** Slave has undergone hair removal surgery diff --git a/src/js/economyJS.js b/src/js/economyJS.js index 33aa4a624cfaac310cf04f04179ed2a6109c07c1..e3a9f4722f35d59efdf5b86cf0db228a135a9696 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -34,7 +34,7 @@ window.predictCost = function(array) { getRecruiterCosts() + getSchoolCosts() + getPolicyCosts() + - getCyberModCosts() + + getProstheticsCosts() + getPCTrainingCosts() + getPCCosts() + predictTotalSlaveCosts(array2) @@ -86,7 +86,7 @@ window.getCost = function(array) { cashX(forceNeg(getRecruiterCosts()), "recruiter"); cashX(forceNeg(getSchoolCosts()), "schoolBacking"); cashX(forceNeg(getPolicyCosts()), "policies"); - cashX(forceNeg(getCyberModCosts()), "lab"); + cashX(forceNeg(getProstheticsCosts()), "lab"); cashX(forceNeg(getPCTrainingCosts()), "PCtraining"); cashX(forceNeg(getPCCosts()), "PCmedical"); getTotalSlaveCosts(array2); @@ -443,12 +443,8 @@ window.getPolicyCosts = function() { return costs; }; -window.getCyberModCosts = function() { - let costs = 0; - if (State.variables.cyberMod !== 0 && State.variables.researchLab.built === 'true') { - costs += ((100 * State.variables.researchLab.maxSpace) + (300 * State.variables.researchLab.hired) + (100 * State.variables.researchLab.hired)); - } - return costs; +window.getProstheticsCosts = function() { + return ((100 * State.variables.researchLab.maxSpace) + (300 * State.variables.researchLab.hired) + (100 * State.variables.researchLab.hired)); }; diff --git a/src/js/removeActiveSlave.js b/src/js/removeActiveSlave.js index ac53c3d5b3285b9899c115f468f5e596572bd65a..e5c5fc2060a1f9fd1f38cb31c435fda3704fcb4f 100644 --- a/src/js/removeActiveSlave.js +++ b/src/js/removeActiveSlave.js @@ -187,10 +187,10 @@ window.removeActiveSlave = function removeActiveSlave() { _o--; } } - for (_o = 0; _o < V.limbs.length; _o++) { - if (V.limbs[_o].ID === AS_ID) { - V.limbs.deleteAt(_o); - V.limbsCompleted--; + for (_o = 0; _o < V.adjustProsthetics.length; _o++) { + if (V.adjustProsthetics[_o].ID === AS_ID) { + V.adjustProsthetics.deleteAt(_o); + V.adjustProstheticsCompleted--; _o--; } } diff --git a/src/js/utilJS.js b/src/js/utilJS.js index 12f34267dc21154913cb0e01c79744625fcc95f3..b06620b5ecb8ae9e53cbef2f18073fcd31badcb1 100644 --- a/src/js/utilJS.js +++ b/src/js/utilJS.js @@ -1036,21 +1036,26 @@ window.induceLactation = /** @param {App.Entity.SlaveState} slave */ function in window.ResearchLabStockPile = function() { const V = State.variables; - return `__Stockpile__ - Prosthetics interfaces: ${num(V.stockpile.basicPLimbInterface + V.stockpile.advPLimbInterface)} - Basic : $stockpile.basicPLimbInterface - Advanced: $stockpile.advPLimbInterface - Limbs: ${num(V.stockpile.basicPLimb + V.stockpile.advSexPLimb + V.stockpile.advGracePLimb + V.stockpile.advCombatPLimb + V.stockpile.cyberneticPLimb)} - Basic: $stockpile.basicPLimb - Sex: $stockpile.advSexPLimb - Beauty: $stockpile.advGracePLimb - Combat: $stockpile.advCombatPLimb - Cybernetic: $stockpile.cyberneticPLimb - Implants: ${num(V.stockpile.ocularImplant + V.stockpile.cochlearImplant + V.stockpile.erectileImplant)} - Ocular: $stockpile.ocularImplant - Cochlear: $stockpile.cochlearImplant - // Erectile: $stockpile.erectileImplant// - Electrolarynx: $stockpile.electrolarynx`; + return `__Prosthetics__ + Prosthetics interfaces: ${num(V.prosthetics.interfaceP1.amount + V.prosthetics.interfaceP2.amount)} + Basic: $prosthetics.interfaceP1.amount + Advanced: $prosthetics.interfaceP2.amount + Limbs: ${num(V.prosthetics.basicL.amount + V.prosthetics.sexL.amount + V.prosthetics.beautyL.amount + V.prosthetics.combatL.amount + V.prosthetics.cyberneticL.amount)} + Basic: $prosthetics.basicL.amount + Sex: $prosthetics.sexL.amount + Beauty: $prosthetics.beautyL.amount + Combat: $prosthetics.combatL.amount + Cybernetic: $prosthetics.cyberneticL.amount + Implants: ${num(V.prosthetics.ocular.amount + V.prosthetics.cochlear.amount + V.prosthetics.electrolarynx.amount)} + Ocular: $prosthetics.ocular.amount + Cochlear: $prosthetics.cochlear.amount + // Erectile: $prosthetics.erectile.amount// + Electrolarynx: $prosthetics.electrolarynx.amount + Tail interface: $prosthetics.interfaceTail.amount + Tails: ${num(V.prosthetics.modT.amount + V.prosthetics.sexT.amount + V.prosthetics.combatT.amount)} + Modular: $prosthetics.modT.amount + Pleasure: $prosthetics.sexT.amount + Combat: $prosthetics.combatT.amount`; }; window.originPronounReplace = /** @param {App.Entity.SlaveState} slave */ function(slave) { @@ -1727,3 +1732,16 @@ App.Utils.slaveRefString = function(i) { App.Utils.slaveByIndex = function(i) { return i === -1 ? State.variables.activeSlave : State.variables.slaves[i]; }; + + +window.addA = function(word) { + let vocal = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']; + if (vocal.includes(word.charAt(0))) { + return "an " + word; + } + return "a " + word; +} + +window.capitalizeFirstLetter = function(string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} diff --git a/src/pregmod/hotswapprosthetics.tw b/src/pregmod/hotswapprosthetics.tw deleted file mode 100644 index 638b62ea01229c4b69f54f1847089f67e183cc25..0000000000000000000000000000000000000000 --- a/src/pregmod/hotswapprosthetics.tw +++ /dev/null @@ -1,130 +0,0 @@ -:: Hotswap Prosthetics [nobr] - -<<set $activeLimbs = $limbs.find(function(s) { return s.ID == $activeSlave.ID; })>> -<<if $activeSlave.amp < 0>> - <<set _oldLimbs = {type: 0, armsTat: 0, legsTat: 0}>> - <<set _oldLimbs.type = $activeSlave.amp, _oldLimbs.armsTat = $activeSlave.armsTat, _oldLimbs.legsTat = $activeSlave.legsTat>> -<<else>> - <<unset _oldLimbs>> -<</if>> -<<set _readyLimbs = []>> -<<for _hsp = 0; _hsp < $activeSlave.readyLimbs.length; _hsp++>> - <<set _readyLimbs.push($activeSlave.readyLimbs[_hsp].type)>> -<</for>> - - __Swap out $his prosthetics__: - <<if $activeSlave.amp < 0>> - <<link "Remove current prostheses">> - <<set $activeSlave.amp = 1, $activeSlave.armsTat = 0, $activeSlave.legsTat = 0>> - <<set $activeSlave.readyLimbs.splice(_hsp, 1, _oldLimbs)>> - <<replace "#LimbOptions">> - <<include "Hotswap Prosthetics">> - <</replace>> - <</link>> | - <</if>> - - <<if $activeSlave.amp == -1>> - <strong>Basic P-limbs equipped</strong> - <<elseif _readyLimbs.includes(-1)>> - <<link "A basic set">> - <<set _hsp = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -1; })>> - <<set _newLimbs = $activeSlave.readyLimbs[_hsp]>> - <<set $activeSlave.amp = -1, $activeSlave.armsTat = _newLimbs.armsTat, $activeSlave.legsTat = _newLimbs.legsTat>> - <<set $activeSlave.readyLimbs.splice(_hsp, 1)>> - <<if def _oldLimbs>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - <<replace "#LimbOptions">> - <<include "Hotswap Prosthetics">> - <</replace>> - <</link>> - <<elseif (def $activeLimbs) && $activeLimbs.type == "simple" && $activeSlave.ID == $activeLimbs.ID>> - //Basic P-limbs being built - <<else>> - //Basic prostheses unavailable - <</if>>| - - <<if $activeSlave.amp == -2>> - <strong>Sex focused P-limbs equipped</strong> - <<elseif _readyLimbs.includes(-2)>> - <<link "A sex focused set">> - <<set _hsp = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -2; })>> - <<set _newLimbs = $activeSlave.readyLimbs[_hsp]>> - <<set $activeSlave.amp = -2, $activeSlave.armsTat = _newLimbs.armsTat, $activeSlave.legsTat = _newLimbs.legsTat>> - <<set $activeSlave.readyLimbs.splice(_hsp, 1)>> - <<if def _oldLimbs>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - <<replace "#LimbOptions">> - <<include "Hotswap Prosthetics">> - <</replace>> - <</link>> - <<elseif (def $activeLimbs) && $activeLimbs.type == "sex" && $activeSlave.ID == $activeLimbs.ID>> - //Sex focused P-limbs being built - <<else>> - //Sex focused prostheses unavailable - <</if>>| - - <<if $activeSlave.amp == -3>> - <strong>Natural looking P-limbs equipped</strong> - <<elseif _readyLimbs.includes(-3)>> - <<link "A natural looking set">> - <<set _hsp = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -3; })>> - <<set _newLimbs = $activeSlave.readyLimbs[_hsp]>> - <<set $activeSlave.amp = -3, $activeSlave.armsTat = _newLimbs.armsTat, $activeSlave.legsTat = _newLimbs.legsTat>> - <<set $activeSlave.readyLimbs.splice(_hsp, 1)>> - <<if def _oldLimbs>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - <<replace "#LimbOptions">> - <<include "Hotswap Prosthetics">> - <</replace>> - <</link>> - <<elseif (def $activeLimbs) && $activeLimbs.type == "beauty" && $activeSlave.ID == $activeLimbs.ID>> - //Natural looking P-limbs being built - <<else>> - //Natural looking prostheses unavailable - <</if>>| - - <<if $activeSlave.amp == -4>> - <strong>Combat P-limbs equipped</strong> - <<elseif _readyLimbs.includes(-4)>> - <<link "Military grade arms">> - <<set _hsp = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -4; })>> - <<set _newLimbs = $activeSlave.readyLimbs[_hsp]>> - <<set $activeSlave.amp = -4, $activeSlave.armsTat = _newLimbs.armsTat, $activeSlave.legsTat = _newLimbs.legsTat>> - <<set $activeSlave.readyLimbs.splice(_hsp, 1)>> - <<if def _oldLimbs>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - <<replace "#LimbOptions">> - <<include "Hotswap Prosthetics">> - <</replace>> - <</link>> - <<elseif (def $activeLimbs) && $activeLimbs.type == "combat" && $activeSlave.ID == $activeLimbs.ID>> - //Combat P-limbs being built - <<else>> - //Combat prostheses unavailable - <</if>>| - - <<if $activeSlave.amp == -5>> - <strong>Cybernetic P-limbs equipped</strong> - <<elseif _readyLimbs.includes(-5)>> - <<link "Advanced cybernetics">> - <<set _hsp = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -5; })>> - <<set _newLimbs = $activeSlave.readyLimbs[_hsp]>> - <<set $activeSlave.amp = -5, $activeSlave.armsTat = _newLimbs.armsTat, $activeSlave.legsTat = _newLimbs.legsTat>> - <<set $activeSlave.readyLimbs.splice(_hsp, 1)>> - <<if def _oldLimbs>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - <<replace "#LimbOptions">> - <<include "Hotswap Prosthetics">> - <</replace>> - <</link>> - <<elseif (def $activeLimbs) && $activeLimbs.type == "cyber" && $activeSlave.ID == $activeLimbs.ID>> - //Cybernetic P-limbs being built - <<else>> - //Cybernetic prostheses unavailable - <</if>> -<br> diff --git a/src/pregmod/huskSlaveSwapWorkaround.tw b/src/pregmod/huskSlaveSwapWorkaround.tw index d6aa1f3198d38d72e9f0465d39189155605bc4fe..7bbecbd60d6ac127159ee5cd1a2dfeb64569b56c 100644 --- a/src/pregmod/huskSlaveSwapWorkaround.tw +++ b/src/pregmod/huskSlaveSwapWorkaround.tw @@ -4,7 +4,7 @@ "This operation is neither simple nor is it perfected. There are extreme health risks involved and no guarantee of success. Strap a slave into your remote surgery to consent to the operation. Indentured servants<<if ($incubator > 0) || ($nurseryBabies)>> and slaves with reserved children<</if>> are not eligible." <br> -//Select the slave whose mind will be transferred into the waiting husk.<<if $cyberMod == 1>> Amputated slaves must not be wearing prosthetics.<</if>> This operation will cost <<print cashFormat(10000)>>.// +//Select the slave whose mind will be transferred into the waiting husk. Amputated slaves must not be wearing prosthetics. This operation will cost <<print cashFormat(10000)>>.// <br><br> __Select an eligible slave:__ diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index f2453d238f18f6e37675c76b2c88248992f87f1e..55d4558b09661546fd6dc7a1f6ed0d9fc3530afc 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -1944,12 +1944,6 @@ Setting missing global variables: <<if ndef $prostheticsUpgrade>> <<set $prostheticsUpgrade = 0>> <</if>> -<<if ndef $limbs>> - <<set $limbs = []>> -<</if>> -<<if ndef $limbsCompleted>> - <<set $limbsCompleted = 0>> -<</if>> <<if ndef $dispensaryUpgrade>> <<set $dispensaryUpgrade = 0>> <</if>> @@ -2065,48 +2059,6 @@ Setting missing global variables: <<set $Role = "">> <</if>> -/* Cybermod*/ -<<if ndef $cyberMod>> - <<set $cyberMod = 0>> -<<elseif $cyberMod == 1>> - <<if ndef $stockpile>> - <<set $stockpile = { - basicPLimbInterface: 0, - advPLimbInterface: 0, - basicPLimb: 0, - advSexPLimb: 0, - advGracePLimb: 0, - advCombatPLimb: 0, - cyberneticPLimb: 0, - ocularImplant: 0, - cochlearImplant: 0, - electrolarynx: 0, - erectileImplant: 0 - } >> - <<else>> - <<if ndef $stockpile.cochlearImplant>> - <<set $stockpile.cochlearImplant = 0>> - <</if>> - <<if ndef $stockpile.electrolarynx>> - <<set $stockpile.electrolarynx = 0>> - <</if>> - <</if>> -<</if>> - -/* Neko*/ - <<if ndef $stockpile.interfacePTail>> - <<set $stockpile.interfacePTail = 0>> - <</if>> - <<if ndef $stockpile.modPTail>> - <<set $stockpile.modPTail = 0>> - <</if>> - <<if ndef $stockpile.warPTail>> - <<set $stockpile.warPTail = 0>> - <</if>> - <<if ndef $stockpile.sexPTail>> - <<set $stockpile.sexPTail = 0>> - <</if>> - <<if ndef $trinkets>> <<set $trinkets = []>> @@ -2137,11 +2089,6 @@ Setting missing global variables: <</if>> <</if>> -<<if ndef $researchLab>> - <<set $researchLab = {}>> - <<set $researchLab.built = "false">> -<</if>> - <<if ndef $TSS>> <<set $TSS = {schoolUpgrade: 0, schoolPresent: 0, schoolProsperity: 0, subsidize: 0, schoolAnnexed: 0, studentsBought: 0, schoolSale: 0}>> <</if>> @@ -3351,17 +3298,12 @@ Setting missing slave variables: <<set _Slave.faceImplant = 65>> <</if>> -<<if $cyberMod == 0 && (_Slave.amp < 0 || _Slave.PLimb == 2)>> +<<if _Slave.amp < 0>> <<set _Slave.PLimb = 1>> -<</if>> - -<<for _bci2 = 0; _bci2 < _Slave.readyLimbs.length; _bci2++>> - <<if typeof _Slave.readyLimbs[_bci2] != "object">> - <<set _storedLimbs = {type: 0, armsTat: 0, legsTat: 0}>> - <<set _storedLimbs.type = _Slave.readyLimbs[_bci2]>> - <<set _Slave.readyLimbs[_bci2] = _storedLimbs>> + <<if _Slave.amp == -5>> + <<set _Slave.PLimb = 2>> <</if>> -<</for>> +<</if>> <<if def _Slave.areoleaPiercing>> <<run delete _Slave.areoleaPiercing>> @@ -3400,6 +3342,26 @@ Setting missing slave variables: <</if>> <</if>> +<<if ndef _Slave.readyProsthetics>> + <<set _Slave.readyProsthetics = []>> +<</if>> +<<if def _Slave.readyLimbs>> + <<for _k = 0; _k < _Slave.readyLimbs.length; _k++>> + <<switch _Slave.readyLimbs[_k].type>> + <<case -1>> + <<set _Slave.readyProsthetics.push({id: "basicL"})>> + <<case -2>> + <<set _Slave.readyProsthetics.push({id: "sexL"})>> + <<case -3>> + <<set _Slave.readyProsthetics.push({id: "beautyL"})>> + <<case -4>> + <<set _Slave.readyProsthetics.push({id: "combatL"})>> + <<case -5>> + <<set _Slave.readyProsthetics.push({id: "cyberneticL"})>> + <</switch>> + <</for>> +<</if>> + <<set $slaves[_bci] = _Slave>> <</for>> @@ -3539,7 +3501,7 @@ Updating gene pool records: <<set _Slave.eyeColor = _Slave.origEye>> <<set _Slave.eyes = -4>> <</if>> - + <<if ndef _Slave.custom>> <<set _Slave.custom = {tattoo: _Slave.customTat}>> /* should be the only thing needed */ <</if>> @@ -3716,5 +3678,181 @@ Done! <<set $JobIDArray = resetJobIDArray()>> +/* unifify cybermod & vanilla */ +/* limbs */ +<<if def $limbs>> + <<set $adjustProsthetics = []>> + <<for _l range $limbs>> + <<switch _l.type>> + <<case "simple">> + <<set $adjustProsthetics.push({id: "basicL", workLeft: _l.weeksToCompletion * 10, slaveID: _l.ID})>> + <<case "sex">> + <<set $adjustProsthetics.push({id: "sexL", workLeft: _l.weeksToCompletion * 10, slaveID: _l.ID})>> + <<case "beauty">> + <<set $adjustProsthetics.push({id: "beautyL", workLeft: _l.weeksToCompletion * 10, slaveID: _l.ID})>> + <<case "combat">> + <<set $adjustProsthetics.push({id: "combatL", workLeft: _l.weeksToCompletion * 10, slaveID: _l.ID})>> + <<case "cyber">> + <<set $adjustProsthetics.push({id: "cyberneticL", workLeft: _l.weeksToCompletion * 10, slaveID: _l.ID})>> + <</switch>> + <</for>> + <<unset $limbs>> +<</if>> +<<if def $limbsCompleted>> + <<set $adjustProstheticsCompleted = $limbsCompleted>> + <<unset $limbsCompleted>> +<</if>> + +/* lab */ +<<if ndef $researchLab>> + <<set $researchLab = { + aiModule: 1, + tasks: [], + maxSpace: 0, + hired: 0, + menials: 0, + }>> +<</if>> +<<if ndef $researchLab.level>> + <<set $researchLab.level = 0>> + <<if def $researchLab.built>> + <<if $researchLab.built == "true">> + <<set $researchLab.level = 1>> + <<if $prostheticsUpgrade == 0>> + <<set $prostheticsUpgrade = 1>> + <</if>> + <</if>> + <<run delete $researchLab.built>> + <</if>> +<</if>> +<<if ndef $researchLab.speed>> + <<set $researchLab.speed = (($researchLab.hired * 3) + $researchLab.menials) * $researchLab.aiModule>> +<</if>> +<<if ndef $researchLab.tasks>> + <<set $researchLab.tasks = []>> +<</if>> +<<if def $researchLab.research>> + <<if $researchLab.research != "none">> + <<switch $researchLab.research>> + <<case "Basic prosthetics interface">> + <<set _id = "interfaceP1">> + <<case "Advanced prosthetics interface">> + <<set _id = "interfaceP2">> + <<case "Basic prosthetic limbs">> + <<set _id = "basicL">> + <<case "Advanced sex limbs">> + <<set _id = "sexL">> + <<case "Advanced beauty limbs">> + <<set _id = "beautyL">> + <<case "Advanced combat limbs">> + <<set _id = "combatL">> + <<case "Cybernetic limbs">> + <<set _id = "cyberneticL">> + <<case "Ocular implants">> + <<set _id = "ocular">> + <<case "Cochlear implants">> + <<set _id = "cochlear">> + <<case "Electrolarynx">> + <<set _id = "electrolarynx">> + <</switch>> + <<set $researchLab.tasks.push({type: "research", id: _id, workLeft: $researchLab.productionTime})>> + <</if>> + <<run delete $researchLab.research>> +<</if>> +<<if def $researchLab.manufacture>> + <<if $researchLab.manufacture != "none">> + <<switch $researchLab.manufacture>> + <<case "Basic prosthetics interface">> + <<set _id = "interfaceP1">> + <<case "Advanced prosthetics interface">> + <<set _id = "interfaceP2">> + <<case "Basic prosthetic limbs">> + <<set _id = "basicL">> + <<case "Advanced sex limbs">> + <<set _id = "sexL">> + <<case "Advanced beauty limbs">> + <<set _id = "beautyL">> + <<case "Advanced combat limbs">> + <<set _id = "combatL">> + <<case "Cybernetic limbs">> + <<set _id = "cyberneticL">> + <<case "Ocular implants">> + <<set _id = "ocular">> + <<case "Cochlear implants">> + <<set _id = "cochlear">> + <<case "Electrolarynx">> + <<set _id = "electrolarynx">> + <</switch>> + <<set $researchLab.tasks.push({type: "craft", id: _id, workLeft: $researchLab.productionTime})>> + <</if>> + <<run delete $researchLab.manufacture>> +<</if>> +<<if def $researchLab.productionTime>> + <<run delete $researchLab.productionTime>> +<</if>> + +/* stockpile */ +<<if ndef $prosthetics>> + <<if ndef $stockpile>> + <<set $prosthetics = {}>> + <<run setup.prostheticIDs.forEach(function (id) { + $prosthetics[id] = {amount: 0, research: 0}; + })>> + <<else>> + <<if ndef $stockpile.cochlearImplant>> + <<set $stockpile.cochlearImplant = 0>> + <</if>> + <<if ndef $stockpile.electrolarynx>> + <<set $stockpile.electrolarynx = 0>> + <</if>> + <<if ndef $stockpile.interfacePTail>> + <<set $stockpile.interfacePTail = 0>> + <</if>> + <<if ndef $stockpile.modPTail>> + <<set $stockpile.modPTail = 0>> + <</if>> + <<if ndef $stockpile.warPTail>> + <<set $stockpile.warPTail = 0>> + <</if>> + <<if ndef $stockpile.sexPTail>> + <<set $stockpile.sexPTail = 0>> + <</if>> + <<set $prosthetics = { + interfaceP1: {amount: $stockpile.basicPLimbInterface, research: $researchLab.basicPLimbInterface}, + interfaceP2: {amount: $stockpile.advPLimbInterface, research: $researchLab.advPLimbInterface}, + basicL: {amount: $stockpile.basicPLimb, research: $researchLab.basicPLimb}, + sexL: {amount: $stockpile.advSexPLimb, research: $researchLab.advSexPLimb}, + beautyL: {amount: $stockpile.advGracePLimb, research: $researchLab.advGracePLimb}, + combatL: {amount: $stockpile.advCombatPLimb, research: $researchLab.advCombatPLimb}, + cyberneticL: {amount: $stockpile.cyberneticPLimb, research: $researchLab.cyberneticPLimb}, + ocular: {amount: $stockpile.ocularImplant, research: $researchLab.ocularImplant}, + cochlear: {amount: $stockpile.cochlearImplant, research: $researchLab.cochlearImplant}, + electrolarynx: {amount: $stockpile.electrolarynx, research: $researchLab.electrolarynx}, + interfaceTail: {amount: $stockpile.interfacePTail, research: 0}, + modT: {amount: $stockpile.modPTail, research: 0}, + combatT: {amount: $stockpile.warPTail, research: 0}, + sexT: {amount: $stockpile.sexPTail, research: 0}, + erectile: {amount: $stockpile.erectileImplant, research: $researchLab.erectileImplant} + }>> + <<run delete $stockpile>> + <<run delete $researchLab.basicPLimbInterface>> + <<run delete $researchLab.advPLimbInterface>> + <<run delete $researchLab.basicPLimb>> + <<run delete $researchLab.advSexPLimb>> + <<run delete $researchLab.advGracePLimb>> + <<run delete $researchLab.advCombatPLimb>> + <<run delete $researchLab.cyberneticPLimb>> + <<run delete $researchLab.ocularImplant>> + <<run delete $researchLab.cochlearImplant>> + <<run delete $researchLab.electrolarynx>> + <<run delete $researchLab.erectileImplant>> + <</if>> +<</if>> +<<if def $cyberMod>> + <<unset $cyberMod>> +<</if>> +/* unifify cybermod & vanilla finished*/ + + /* reset NaNArray after BC is run */ <<set $NaNArray = findNaN()>> diff --git a/src/uncategorized/buildingWidgets.tw b/src/uncategorized/buildingWidgets.tw index ecb0befa454d505274d8be20c30e3b8fcc2dc41b..384355f5569d1a8aab4cce98ae075818dc59326d 100644 --- a/src/uncategorized/buildingWidgets.tw +++ b/src/uncategorized/buildingWidgets.tw @@ -137,7 +137,7 @@ if(!Macro.has('sectorblock')) { <td colspan="3"></td> <td id="Penthouse" colspan="4"> <<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>> @@.cyan;[P]@@ - <<if $masterSuite||$HGSuite||$dojo||$servantsQuarters||$spa||$nursery||$clinic||$schoolroom||$cellblock||$incubator||$researchLab.built=="true">> + <<if $masterSuite||$HGSuite||$dojo||$servantsQuarters||$spa||$nursery||$clinic||$schoolroom||$cellblock||$incubator||$researchLab.level > 0>> <br> <<if $masterSuite>> <<print MasterSuiteUIName()>> ($masterSuiteSlaves/$masterSuite<<if $Concubine>>, C<</if>>)<</if>> <<if $HGSuite>> <<print HeadGirlSuiteUIName()>> <<if $HeadGirl != 0>>(HG<<if $HGSuiteSlaves > 0>>, 1)<<else>>)<</if>><</if>><</if>> @@ -149,7 +149,7 @@ if(!Macro.has('sectorblock')) { <<if $schoolroom>> <<print SchoolRoomUIName()>> ($schoolroomSlaves/$schoolroom<<if $Schoolteacher>>, L<</if>>)<</if>> <<if $cellblock>> <<print CellblockUIName()>> ($cellblockSlaves/$cellblock<<if $Wardeness>>, L<</if>>)<</if>> <<if $incubator>> <<print IncubatorUIName()>> (<<if $incubator-$incubatorSlaves == 0>>No empty tanks<<elseif $incubator-$incubatorSlaves == 1>>1 empty tank<<else>><<print $incubator-$incubatorSlaves>> empty tanks<</if>>)<</if>> - <<if $researchLab.built == "true">>[[Research Lab][$temp = 0]]<</if>> + <<if $researchLab.level > 0>>[[Prosthetic Lab]]<</if>> <</if>> </td> <td colspan="3"></td> diff --git a/src/uncategorized/costsBudget.tw b/src/uncategorized/costsBudget.tw index 8d3bd616b3405180f6624643cf3f0b118ce6eeda..107b728f9f873af7d979d42d5aa12fb8e0afb02a 100644 --- a/src/uncategorized/costsBudget.tw +++ b/src/uncategorized/costsBudget.tw @@ -162,7 +162,7 @@ for (var i = 0; i < State.variables.lastWeeksCashIncome.length; i++){ <<print budgetLine("cellblock", "[[$cellblockNameCaps|Cellblock][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]] ($cellblockSlaves slaves)")>> - <<print budgetLine("lab", "[[Research Lab][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]] maintenance")>> + <<print budgetLine("lab", "[[Prosthetic Lab][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]] maintenance")>> <<print budgetLine("incubator", "[[$incubatorNameCaps|Incubator][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]] ($incubatorSlaves slaves)")>> diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw index 0b0bcf35d947bb169a10557cafe173418c0e29a4..1e64c24c10066258524043c2707bf2c210879ddb 100644 --- a/src/uncategorized/costsReport.tw +++ b/src/uncategorized/costsReport.tw @@ -157,7 +157,7 @@ your personal living expenses are @@.yellowgreen;<<print cashFormat(Math.trunc($ <<if ($servantsQuarters > 0 && $servantsQuartersUpgradeMonitoring > 0) || $nursery > 0 || $masterSuiteUpgradePregnancy > 0 || $incubator > 0 || -($cyberMod != 0 && $researchLab.built == "true")>> +$researchLab.level > 0>> <br>__Penthouse Facility Maintenance__: <<if ($servantsQuarters > 0) && ($servantsQuartersUpgradeMonitoring > 0)>> <br> @@ -183,9 +183,9 @@ $nursery > 0 || $masterSuiteUpgradePregnancy > 0 || $incubator > 0 || <<set _arcologyCosts += (($incubatorWeightSetting+$incubatorMusclesSetting+$incubatorReproductionSetting+$incubatorGrowthStimsSetting)*500)>> <</if>> <</if>> - <<if $cyberMod != 0 && $researchLab.built == "true">> + <<if $researchLab.level > 0>> <br> - Research Lab: @@.yellowgreen;<<print cashFormat((100*$researchLab.maxSpace))>>@@ + Prosthetic Lab: @@.yellowgreen;<<print cashFormat((100*$researchLab.maxSpace))>>@@ <<set _arcologyCosts += 100*$researchLab.maxSpace>> <<if $researchLab.hired != 0>><br> Scientists: @@.yellowgreen;<<print cashFormat((300*$researchLab.hired))>>@@ <<set _arcologyCosts += 300*$researchLab.hired>> <</if>> diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index e866a913895d8536ca7251529a810a56c3ed457f..c3135d0d343b3d85265d7ef3a72242df8a789a58 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -94,15 +94,21 @@ <</if>> */ -<<if $limbs.length > 0>> -<<run $limbs.forEach(function(l) { - if (l.weeksToCompletion > 0) { - l.weeksToCompletion--; - } - if (l.weeksToCompletion == 0) { - $limbsCompleted++; - } -})>> +<<if $adjustProsthetics.length > 0>> + <<run $adjustProsthetics.forEach(function(p) { + if (p.workLeft > 0) { + if ($prostheticsUpgrade == 3) { + p.workLeft -= 40; + } else if ($prostheticsUpgrade == 2) { + p.workLeft -= 20; + } else { + p.workLeft -= 10; + } + if (p.workLeft <= 0){ + $adjustProstheticsCompleted++; + } + } + })>> <</if>> /% Begin section: ensure minimum age is set (game may have been loaded from a non-modded version). %/ diff --git a/src/uncategorized/labReport.tw b/src/uncategorized/labReport.tw index 712f2635332c7054598c9745e233ae7deb0ec58d..0763ea7577f6558b381a51c54c806404658ce0c3 100644 --- a/src/uncategorized/labReport.tw +++ b/src/uncategorized/labReport.tw @@ -2,85 +2,42 @@ ''Lab Report''<hr style="margin:0"> <br> -<<if ($researchLab.hired + $researchLab.menials) != 0>> - <<if $researchLab.research == "none" && $researchLab.manufacture == "none">> - Since the lab is currently not working on any projects it takes contract work and earns you @@.yellowgreen;<<print cashFormat((($researchLab.hired * 3 + $researchLab.menials) * $researchLab.aiModule * 20))>>.@@ - <<set _cashX = (($researchLab.hired * 3 + $researchLab.menials) * $researchLab.aiModule * 20)>> +<<if ($researchLab.hired + $researchLab.menials) > 0>> + <<if $researchLab.tasks.length == 0>> + Since the lab is currently not working on any projects it takes contract work and earns you @@.yellowgreen;<<= cashFormat($researchLab.speed * 20)>>.@@ + <<set _cashX = ($researchLab.speed * 90)>> <<run cashX(_cashX, "lab")>> - <<elseif $researchLab.research != "none">> - <<set $researchLab.productionTime -= (($researchLab.hired * 3) + ($researchLab.menials) * ($researchLab.aiModule))>> - <<if $researchLab.productionTime <= 0>> - Your lab staff have @@.green;completed@@ their $researchLab.research research project, and - <<switch $researchLab.research>> - <<case "Basic prosthetics interface">> - <<set $researchLab.basicPLimbInterface = 1>> - <<case "Advanced prosthetics interface">> - <<set $researchLab.advPLimbInterface = 1>> - <<case "Basic prosthetic limbs">> - <<set $researchLab.basicPLimb = 1>> - <<case "Advanced sex limbs">> - <<set $researchLab.advSexPLimb = 1>> - <<case "Advanced beauty limbs">> - <<set $researchLab.advGracePLimb = 1>> - <<case "Advanced combat limbs">> - <<set $researchLab.advCombatPLimb = 1>> - <<case "Cybernetic limbs">> - <<set $researchLab.cyberneticPLimb = 1>> - <<case "Ocular implants">> - <<set $researchLab.ocularImplant = 1>> - <<case "Cochlear implants">> - <<set $researchLab.cochlearImplant = 1>> - <<case "Electrolarynx">> - <<set $researchLab.electrolarynx = 1>> - /*<<case "Erectile implant">> - <<set $researchLab.erectileImplant = 1>>*/ - <</switch>> - they are awaiting your next instruction. - <<set $researchLab.productionTime = 0, $researchLab.research = "none">> - <<else>> - Your lab staff are currently researching @@.yellow;$researchLab.research.@@ - <</if>> - <br><br> <<= ResearchLabStockPile()>> - <<elseif $researchLab.manufacture != "none">> - <<set $researchLab.productionTime -= (($researchLab.hired * 3) + ($researchLab.menials) * ($researchLab.aiModule))>> - <<if $researchLab.productionTime <= 0>> - Your lab staff have @@.green;completed@@ their $researchLab.manufacture project, and - <<switch $researchLab.manufacture>> - <<case "Basic prosthetics interface">> - <<set $stockpile.basicPLimbInterface += 1, $researchLab.productionTime = 50>> - <<case "Advanced prosthetics interface">> - <<set $stockpile.advPLimbInterface += 1, $researchLab.productionTime = 80>> - <<case "Basic prosthetic limbs">> - <<set $stockpile.basicPLimb += 1, $researchLab.productionTime = 20>> - <<case "Advanced sex limbs">> - <<set $stockpile.advSexPLimb += 1, $researchLab.productionTime = 100>> - <<case "Advanced beauty limbs">> - <<set $stockpile.advGracePLimb += 1, $researchLab.productionTime = 100>> - <<case "Advanced combat limbs">> - <<set $stockpile.advCombatPLimb += 1, $researchLab.productionTime = 100>> - <<case "Cybernetic limbs">> - <<set $stockpile.cyberneticPLimb += 1, $researchLab.productionTime = 150>> - <<case "Ocular implants">> - <<set $stockpile.ocularImplant += 1, $researchLab.productionTime = 80>> - <<case "Cochlear implants">> - <<set $stockpile.cochlearImplant += 1, $researchLab.productionTime = 60>> - <<case "Electrolarynx">> - <<set $stockpile.electrolarynx += 1, $researchLab.productionTime = 100>> - /*<<case "Erectile implant">> - <<set $stockpile.erectileImplant += 1, $researchLab.productionTime = 50>>*/ - <</switch>> - <span id="haltproduction"> - they are starting work on another unit. - <<link "Halt production">> - <<set $researchLab.productionTime = 0, $researchLab.manufacture = "none">> - <<replace "#haltproduction">> - they are awaiting your next instruction. - <</replace>> - <</link>> - </span> - <<else>> - Your lab staff are currently working on @@.yellow;$researchLab.manufacture.@@ - <</if>> - <br><br> <<= ResearchLabStockPile()>> + <<else>> + <<set _work = $researchLab.speed, _task = $researchLab.tasks[0]>> + /*<<for _i = 0; _i < $researchLab.tasks.length && _work > 0; _i++>>*/ + <<for _work > 0>> + <<if _work < _task.workLeft>> + <<set _task.workLeft -= _work, _work = 0>> + The lab continues <<if _task.type == "research">>research<<else>>work<</if>> on @@.yellow;<<= addA(setup.prosthetics[_task.id].name)>>.@@ It will take approximately <<= (Math.floor(_task.workLeft / $researchLab.speed) + 1)>> week(s) to complete. + <<else>> + <<set _work -= _task.workLeft>> + Your lab staff have @@.green;completed@@ their + <<switch _task.type>> + <<case "research">> + <<= setup.prosthetics[_task.id].name>> research project. + <<set $prosthetics[_task.id].research = 1>> + <<case "craft">> + <<= setup.prosthetics[_task.id].name>> construction project. + <<set $prosthetics[_task.id].amount += 1>> + <<case "craftFit">> + <<set _i = $slaves.findIndex(function(s) {return s.ID == _task.slaveID}), $slaves[_i].readyProsthetics.push({id: _task.id})>> + project to contruct <<= addA(setup.prosthetics[_task.id].name)>> for <<= SlaveFullName($slaves[_i])>>. + <</switch>> + <<set $researchLab.tasks.shift(), _task = $researchLab.tasks[0]>> + <<if ndef _task>> + <<set _cashX = (_work * 90), _work = 0>> + <br>Your lab has @@.green;finished all projects.@@ The remaining time is used for contract work earning you @@.yellowgreen;<<= cashFormat(_cashX)>>.@@ + <<run cashX(_cashX, "lab")>> + <</if>> + <</if>> + <br> + <</for>> <</if>> +<<elseif $researchLab.tasks.length > 0>> + //Without researchers your tasks will never be finished.// <</if>> diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw index 5bf7437470c1b40c0fb97ba99b9032fdbdf2bdb7..897242f560b7303a8d4b35f53d514a6aa3e3d9ec 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -132,16 +132,6 @@ __Penthouse Facilities__ There is a small but handsome suite next to yours reserved for the Head Girl. <</if>> -<<if $cyberMod == 1>> - <br> - <<if $researchLab.built == "true">> - Your penthouse is now equipped with a research lab. - <<else>> - [[Clear out one of the floors and install research equipment|Manage Penthouse][cashX(forceNeg(Math.trunc(15000*$upgradeMultiplierArcology)), "capEx"), $researchLab.built = "true", $researchLab.maxSpace = 5, $PC.engineering += 1]] - //Costs <<print cashFormat(Math.trunc(15000*$upgradeMultiplierArcology))>>// - <</if>> -<</if>> - <br><br> __Penthouse Upgrades__ @@ -349,37 +339,45 @@ __Penthouse Upgrades__ <br> -<<if $cyberMod == 0>> - <<switch $prostheticsUpgrade>> - <<case 1>> - There is a facility to construct mechanical prosthetic limbs for amputated slaves. +<<switch $prostheticsUpgrade>> +<<case 0>> + <<if ($rep > 8000)>> + [[Install basic equipment for attaching and maintaince of prosthetics|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $prostheticsUpgrade = 1, $PC.engineering += 1]] + //Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology))>>// + <<else>> + //You lack the reputation to buy basic equipment for attaching and maintaince of prosthetics.// + <</if>> +<<case 1>> + You have basic equipment for attaching and maintaince of prosthetics. <<if ($rep > 12000)>> - [[Research advanced prototype prosthetics|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $prostheticsUpgrade = 2]] + [[Buy a contract for advanced prosthetics|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $prostheticsUpgrade = 2]] //Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology))>>// <<else>> - //You lack the reputation to research and produce prototype prosthetics.// + //You lack the reputation to get a contract for advanced prosthetics.// <</if>> - <<case 2>> - There is a prosthetics facility upgraded to use advanced materials and designs. +<<case 2>> + You have basic equipment for attaching and maintaince of prosthetics and a contract to guarantee the availability of advanced prosthetics. <<if ($rep > 16000)>> - [[Research high-tech cybernetic limbs|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $prostheticsUpgrade = 3]] + [[Buy a contract for high-tech prosthetics|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $prostheticsUpgrade = 3]] //Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology))>>// <<else>> - //You lack the reputation to research and produce prototype cybernetic limbs.// + //You lack the reputation to get a contract for high-tech prosthetics.// <</if>> - <<case 3>> - There is a high-tech facility to build prosthetics and state-of-the-art cybernetic replacement limbs. - <<default>> - <<if ($rep > 8000)>> - [[Construct a mechanical prosthetics facility|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $prostheticsUpgrade = 1, $PC.engineering += 1]] - //Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology))>>// +<<case 3>> + You have basic equipment for attaching and maintaince of prosthetics and a contract to guarantee the availability of high-tech prosthetics. +<</switch>> +<br> +<<if $prostheticsUpgrade > 0>> + <<if $researchLab.level > 0>> + Your penthouse is equipped with an advanced prosthetic lab. <<else>> - //You lack the reputation to construct a prosthetics facility.// + [[Clear out one of the floors and install equipment to construct prosthetics yourself|Manage Penthouse][cashX(forceNeg(Math.trunc(150000*$upgradeMultiplierArcology)), "capEx"), $researchLab.level = 1, $researchLab.maxSpace = 5, $PC.engineering += 1]] + //Costs <<print cashFormat(Math.trunc(150000*$upgradeMultiplierArcology))>>//<br> + //Buying the equipment to construct prosthetics yourself is expensive but if you want to construct a lot prosthetics it will pay out in the long run.// <</if>> - <</switch>> <</if>> -<br> +<br><br> <<if $surgeryUpgrade == 0>> <<if $rep > 10000>> diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw index 555f4b67c64ca30683cf76c4d801f6d3e8666a73..afc16c704e4d3228ce8143a2fb8c33fa9d75b1e5 100644 --- a/src/uncategorized/multiImplant.tw +++ b/src/uncategorized/multiImplant.tw @@ -1,6 +1,6 @@ :: Multiple Organ Implant [nobr] -You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized remote surgery<<else>>remote surgery<</if>> and start having the slaves with <<if ($completedOrgans.length > 0) && ($limbsCompleted > 0)>>organs or limbs <<elseif ($completedOrgans.length > 1)>>organs <<elseif ($limbsCompleted > 1)>>sets of limbs <</if>>that are ready be sent down. +You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized remote surgery<<else>>remote surgery<</if>> and start having the slaves with <<if ($completedOrgans.length > 0) && ($adjustProstheticsCompleted > 0)>>organs or prosthetics <<elseif ($completedOrgans.length > 1)>>organs <<elseif ($adjustProstheticsCompleted > 1)>>prosthetics <</if>>that are ready be sent down. /* builds a list for each slave and adds the appropriate organs to it */ <<for _i = 0; _i < $slaves.length; _i++>> @@ -982,73 +982,136 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized <</if>> <</if>> /* finished checking _slaveOrgans */ - /* limbs */ - <<if $activeSlave.amp != 0>> - <<for _l = 0; _l < $limbs.length; _l++>> - <<if ($limbs[_l].ID == $activeSlave.ID) && ($limbs[_l].weeksToCompletion <= 0)>> - <<if $activeSlave.PLimb != 0>> - <<if $activeSlave.amp < 0>> - <<set _oldLimbs = {type: 0, armsTat: 0, legsTat: 0}>> - <<set _oldLimbs.type = $activeSlave.amp, _oldLimbs.armsTat = $activeSlave.armsTat, _oldLimbs.legsTat = $activeSlave.legsTat>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - <<switch $limbs[_l].type>> - <<case "simple">> - <<set $activeSlave.amp = -1>> - <<set $surgeryType = "basicPLimbs">> - <<case "sex">> - <<set $activeSlave.amp = -2>> - <<set $surgeryType = "sexPLimbs">> - <<case "beauty">> - <<set $activeSlave.amp = -3>> - <<set $surgeryType = "beautyPLimbs">> - <<case "combat">> - <<set $activeSlave.amp = -4>> - <<set $surgeryType = "combatPLimbs">> - <<case "cyber">> - <<set $activeSlave.amp = -5>> - <<set $surgeryType = "cyberPLimbs">> - <</switch>> - <br><hr> - <<include "Surgery Degradation">> - <<set $limbs.deleteAt(_l)>> - <<set $activeSlave.armsTat = 0, $activeSlave.legsTat = 0>> + /* start prosthetics */ + <<if $adjustProstheticsCompleted > 0>> + <<for _k = 0; _k < $adjustProsthetics.length; _k++>> + <<set _p = $adjustProsthetics[_k]>> + <<if _p.slaveID == $activeSlave.ID && _p.workLeft <= 0>> + <<set $adjustProsthetics.splice(_k, 1), _k-->> + <<set $activeSlave.readyProsthetics.push({id: _p.id})>> + <br><hr> + <<if $activeSlave.health < 40>> + @@.red;Slave unhealthy: Skipping Slave@@ + <<continue>>/* no break so that all prosthetics get moved to storage */ + <</if>> + <<switch _p.id>> + <<case "ocular">> + <<if $activeSlave.eyes < -1>> + <<set $activeSlave.eyesImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 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), $activeSlave.health -= 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), $activeSlave.health -= 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 $activeSlave.amp == 0>> + //Since $he has healthy limbs the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.// + <<elseif $activeSlave.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), $activeSlave.health -= 20, $surgeryType = "PLimb interface1">> + <<include "Surgery Degradation">> + <</if>> + <<case "interfaceP2">> + <<if $activeSlave.amp == 0>> + //Since $he has healthy limbs the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.// + <<elseif $activeSlave.PLimb == 1>> + <<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "PLimb interface3">> + <<include "Surgery Degradation">> + <<else>> + <<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface2">> + <<include "Surgery Degradation">> + <</if>> + <<case "basicL" "sexL" "beautyL" "combatL" "cyberneticL">> + <<if $activeSlave.fuckdoll != 0>> + //Since a fuckdoll can't use prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.// + <<elseif $activeSlave.amp == 0>> + //Since $he must be an amputee to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.// + <<elseif $activeSlave.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">> + <<if $activeSlave.amp > 0>> + <<set $activeSlave.amp = -1, $prostheticsConfig = "basicPLimbs">> + <<include "Prosthetics Config">> + <<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">> + <<if $activeSlave.amp >= -1>> + <<set $activeSlave.amp = -2, $prostheticsConfig = "sexPLimbs">> + <<include "Prosthetics Config">> + <<else>> + //Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.sexL.name>> will be put into storage.// + <</if>> + <<elseif _p.id == "beautyL">> + <<if $activeSlave.amp >= -1>> + <<set $activeSlave.amp = -3, $prostheticsConfig = "beautyPLimbs">> + <<include "Prosthetics Config">> + <<else>> + //Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.beautyL.name>> will be put into storage.// + <</if>> + <<elseif _p.id == "combatL">> + <<if $activeSlave.amp >= -1>> + <<set $activeSlave.amp = -4, $prostheticsConfig = "combatPLimbs">> + <<include "Prosthetics Config">> + <<else>> + //Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.combatL.name>> will be put into storage.// + <</if>> <<else>> - <br><hr> - @@.red;Could not install prosthetic limbs on $activeSlave.slaveName: $he lacks a prosthetic interface.@@ They have been moved into storage for later installation. - <<set _oldLimbs = {type: 0, armsTat: 0, legsTat: 0}>> - <<switch $limbs[_l].type>> - <<case "simple">> - <<set _oldLimbs.type = -1>> - <<case "sex">> - <<set _oldLimbs.type = -2>> - <<case "beauty">> - <<set _oldLimbs.type = -3>> - <<case "combat">> - <<set _oldLimbs.type = -4>> - <<case "cyber">> - <<set _oldLimbs.type = -5>> - <</switch>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <<set $limbs.deleteAt(_l)>> + <<if $activeSlave.amp == 2>> + <<set $activeSlave.amp = -5, $prostheticsConfig = "cyberPLimbs">> + <<include "Prosthetics Config">> + <<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.// + <</if>> <</if>> - <<break>> <</if>> - <</for>> + <<case "interfaceTail">> + <<set $activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "tailInterface">> + <<include "Surgery Degradation">> + <<case "modT" "sexT" "combatT">> + <<if $activeSlave.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">> + //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">> + <<include "Prosthetics Config">> + <<elseif _p.id == "sexT">> + <<set $prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink">> + <<include "Prosthetics Config">> + <</if>> + <<default>> + //Since there is no automated procedure to implant/attach <<= setup.prosthetics[_p.id].name>> it will be put into storage.// + <</switch>> + <br> + <</if>> + <</for>> <</if>> + /* end prosthetics */ /* updates the interrogated slave */ <<set $slaves[_i] = $activeSlave>> <</for>> /* end of the $slaves loop */ +<<set $adjustProstheticsCompleted = 0>> /* This needs to be down here to over-ride any Surgery Degradation calls */ <<set $nextButton = "Continue">> <<set $nextLink = "Main">> - -/* Clean-up */ -<<set $limbsCompleted = 0>> -<<for _i = 0; _i < $limbs.length; _i++>> - <<if $limbs[_i].weeksToCompletion <= 0>> - <<set $limbsCompleted++>> - <</if>> -<</for>> diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw index 246adc0f87e96a3f2dc60b02dbce0fbfb01b8773..826dfcdf6972bc1b028972e32ec8569123c53fb4 100644 --- a/src/uncategorized/options.tw +++ b/src/uncategorized/options.tw @@ -501,14 +501,6 @@ Assignment performance vignettes on the end week report are <br> -<<if ($cyberMod == 0)>> - Cybernetics Mod is currently @@.red;DISABLED.@@ [[Enable|Options][$cyberMod = 1]] -<<else>> - Cybernetics Mod is currently @@.cyan;ENABLED.@@ [[Disable|Options][$cyberMod = 0]] -<</if>> - -<br> - <<if $secExp == 0>> The Security Expansion mod is @@.red;DISABLED.@@ <<link "Enable">> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index c646e97cd25ce0c59930e7b36625d435118adbe5..4a7746e2d63af3bd605ec055e02c76c491099a56 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -4,6 +4,18 @@ <<set $surgeryType = 0, $showEncyclopedia = 1, $encyclopedia = "The Remote Surgery">> <<set _belly = bellyAdjective($activeSlave)>> +/* get all prosthetics that are ready for this slave */ +<<if $adjustProstheticsCompleted > 0>> + <<set $adjustProsthetics = $adjustProsthetics.filter(function(p) { + if (p.workLeft <= 0 && p.slaveID == $activeSlave.ID) { + $activeSlave.readyProsthetics.push({id: p.id}); + $adjustProstheticsCompleted--; + return false; + } + return true; + })>> +<</if>> + <h1>The Remote Surgery</h1> @@ -144,8 +156,8 @@ $His $activeSlave.faceShape face is | [[Remove eyes|Surgery Degradation][$activeSlave.eyes = -4, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "remove eyes"]] <<if ($activeSlave.eyes > -2)>>//This will greatly restrict $him//<</if>> <</if>> - <<if ($cyberMod == 1) && ($stockpile.ocularImplant > 0)>> - | [["Give " + $him + " ocular implants"|Surgery Degradation][$activeSlave.eyesImplant = 1, $stockpile.ocularImplant--,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "ocular implant"]] + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "ocular"}) != -1>> + | [["Give " + $him + " ocular implants"|Surgery Degradation][$activeSlave.eyesImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "ocular implant"]] <</if>> <</if>> <</if>> @@ -277,12 +289,12 @@ $He has <</if>> <<if ($seeExtreme == 1) && $activeSlave.indentureRestrictions < 1>> - <<if $activeSlave.earImplant != 1>> + <<if $activeSlave.earImplant == 0>> <<if ($activeSlave.hears > -2)>> | [[Deafen|Surgery Degradation][$activeSlave.hears = -2,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10,$surgeryType = "deafen"]] <</if>> - <<if ($cyberMod == 1) && ($stockpile.cochlearImplant > 0)>> - | [["Give " + $him + " cochlear implants"|Surgery Degradation][$activeSlave.earImplant = 1, $stockpile.cochlearImplant--,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "cochlear implant"]] + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "cochlear"}) != -1>> + | [["Give " + $him + " cochlear implants"|Surgery Degradation][$activeSlave.earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "cochlear implant"]] <</if>> <</if>> <</if>> @@ -451,8 +463,8 @@ $He has <<if $seeExtreme == 1>> | [[Remove vocal cords|Surgery Degradation][$activeSlave.voice = 0, $activeSlave.voiceImplant = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "mute"]] <</if>> - <<elseif $activeSlave.voice == 0 && $cyberMod == 1 && $stockpile.electrolarynx > 0>> - [["Give " + $him + " an electrolarynx"|Surgery Degradation][$activeSlave.electrolarynx = 1, $activeSlave.voice = 2, $stockpile.electrolarynx--, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "electrolarynx"]] + <<elseif $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "electrolarynx"}) != -1>> + [["Give " + $him + " an electrolarynx"|Surgery Degradation][$activeSlave.electrolarynx = 1, $activeSlave.voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "electrolarynx"]] <</if>> <</if>> @@ -1671,13 +1683,13 @@ Work on $him structurally: <br> <</if>> - +/* PROSTHETICS */ <<if ($activeSlave.amp == 0)>> $He has healthy limbs. <<else>> $He is a quadruple amputee <<if $activeSlave.PLimb == 1 && $activeSlave.amp == 1>> - and has been implanted with a <<if $cyberMod>>basic<</if>> PLimb interface. + and has been implanted with a basic PLimb interface. <<elseif $activeSlave.PLimb == 2 && $activeSlave.amp == 1>> and has been implanted with an advanced PLimb interface. <<elseif $activeSlave.amp == -1>> @@ -1695,44 +1707,35 @@ Work on $him structurally: <</if>> <</if>> -<<if $cyberMod == 0>> - <<if $activeSlave.amp == 0>> - <<if ($activeSlave.indentureRestrictions < 1) && ($seeExtreme == 1)>> - [[Remove arms and legs|Surgery Degradation][$activeSlave.amp = 1,$activeSlave.heels = 0,$activeSlave.shoes = "none",$activeSlave.legAccessory = "none",$activeSlave.heightImplant = 0,$activeSlave.legsTat = 0,$activeSlave.armsTat = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$activeSlave.health -= 40,$activeSlave.nails = 0,$activeSlave.PLimb = 0,$surgeryType = "amp1"]] //This will greatly restrict $him// - <</if>> - <<elseif $activeSlave.PLimb != 1 && $activeSlave.amp == 1>> - <<if ($activeSlave.indentureRestrictions < 1) && ($seeExtreme == 1)>> - [[Implant prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave),$activeSlave.health -= 20,$surgeryType = "prostheticInterface"]] //This will allow $him to use prosthetic limbs// - <</if>> +<<if $activeSlave.amp == 0>> + <<if $activeSlave.indentureRestrictions < 1 && $seeExtreme == 1>> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP1"}) == -1 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP2"}) == -1>> + [[Remove arms and legs|Surgery Degradation][$activeSlave.amp = 1,$activeSlave.heels = 0,$activeSlave.shoes = "none", $activeSlave.legAccessory = "none", $activeSlave.heightImplant = 0, $activeSlave.legsTat = 0, $activeSlave.armsTat = 0, $activeSlave.releaseRules = "restrictive", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 40, $activeSlave.nails = 0, $surgeryType = "amp"]] //This will greatly restrict $him// + <<else>> + [[Remove arms and legs|Surgery Degradation][$activeSlave.amp = 1, $activeSlave.heels = 0, $activeSlave.shoes = "none", $activeSlave.legAccessory = "none", $activeSlave.heightImplant = 0, $activeSlave.legsTat = 0, $activeSlave.armsTat = 0, $activeSlave.releaseRules = "restrictive", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 40, $activeSlave.nails = 0, $surgeryType = "amp1"]] //This will greatly restrict $him// <</if>> -<<else>> - <<if $activeSlave.amp == 0>> - <<if ($activeSlave.indentureRestrictions < 1) && ($seeExtreme == 1) && (($stockpile.basicPLimbInterface + $stockpile.advPLimbInterface) == 0)>> - [[Remove arms and legs|Surgery Degradation][$activeSlave.amp = 1,$activeSlave.heels = 0,$activeSlave.shoes = "none",$activeSlave.legAccessory = "none",$activeSlave.heightImplant = 0,$activeSlave.legsTat = 0,$activeSlave.armsTat = 0,$activeSlave.releaseRules = "restrictive",cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 40,$activeSlave.nails = 0,$surgeryType = "amp"]] //This will greatly restrict $him// - <<elseif ($activeSlave.indentureRestrictions < 1) && ($seeExtreme == 1)>> - [[Remove arms and legs|Surgery Degradation][$activeSlave.amp = 1,$activeSlave.heels = 0,$activeSlave.shoes = "none",$activeSlave.legAccessory = "none",$activeSlave.heightImplant = 0,$activeSlave.legsTat = 0,$activeSlave.armsTat = 0,$activeSlave.releaseRules = "restrictive",cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 40,$activeSlave.nails = 0,$surgeryType = "amp1"]] //This will greatly restrict $him// - <</if>> - <<elseif ($activeSlave.amp == 1) && ($activeSlave.PLimb == 0)>> - <<if ($stockpile.basicPLimbInterface > 0)>> | - [[Install basic prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1,$stockpile.basicPLimbInterface -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "PLimb interface1"]] - <</if>> - <<if $stockpile.advPLimbInterface > 0>> | - [[Install advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2,$stockpile.advPLimbInterface -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "PLimb interface2"]] - <</if>> - <<elseif $activeSlave.amp == 1 && $activeSlave.PLimb == 1 && $stockpile.advPLimbInterface > 0>> | - [[Upgrade advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2,$stockpile.advPLimbInterface -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5,$surgeryType = "PLimb interface3"]] <</if>> +<<elseif ($activeSlave.amp == 1) && ($activeSlave.PLimb == 0)>> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP1"}) != -1>> | + [[Install basic prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface1"]] + <</if>> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP2"}) != -1>> | + [[Install advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface2"]] + <</if>> +<<elseif $activeSlave.amp == 1 && $activeSlave.PLimb == 1 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP2"}) != -1>> | + [[Upgrade advanced prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "PLimb interface3"]] <</if>> <br> - <<if $activeSlave.PTail == 1>> - $He has a neural interface allowing attachment of tails. - <<elseif $stockpile.interfacePTail > 0>> - $He lacks a neural interface allowing attachment of tails. - [[Implant interface|Surgery Degradation][$activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $stockpile.interfacePTail -= 1, $surgeryType = "tailInterface"]] - <<else>> - $He lacks a neural interface allowing attachment of tails and you have none in stock. - <</if>> +<<if $activeSlave.PTail == 1>> + $He has a neural interface allowing attachment of tails. +<<elseif $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceTail"}) != -1>> + $He lacks a neural interface allowing attachment of tails. + [[Implant interface|Surgery Degradation][$activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "tailInterface"]] +<<else>> + $He lacks a neural interface allowing attachment of tails and you have none ready for $him. +<</if>> + <<if $organFarmUpgrade >= 1>> /* ORGAN FARM */ <<if $activeSlave.indentureRestrictions < 2>> @@ -1741,215 +1744,16 @@ Work on $him structurally: <</if>> <</if>> /* CLOSES ORGAN FARM */ -<<if ndef $limbs>> - <<set $limbs = []>> -<</if>> - -<<if $cyberMod == 0>> /* CyberMod Toggle */ -<<if $prostheticsUpgrade > 0>> /* PROSTHESIS FACTORY */ -<<if $activeSlave.indentureRestrictions < 2>> - -<br><br> - -<<set $activeLimbs = 0>> -<<set _i = $limbs.findIndex(function(s) { return s.ID == $activeSlave.ID; })>> -<<if _i != -1>> - <<set $activeLimbs = $limbs[_i]>> -<</if>> - -<<if $activeLimbs == 0>> - <<if ($activeSlave.readyLimbs.length < 5 && $activeSlave.amp >= 0) || ($activeSlave.readyLimbs.length < 4 && $activeSlave.amp < 0)>> /* missing at least one type of limb */ - The prosthesis facility is not currently building a set of artificial limbs for $him. - <br> - Construct prosthetics: - - <<if $activeSlave.amp != -1>> - <<set _rems = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -1; })>> - <<if _rems == -1>> - <<link "Basic prosthetic limbs">> - <<run cashX(-10000, "slaveSurgery", $activeSlave)>> - <<set $activeLimbs = {weeksToCompletion: 4, ID: 0, type: "simple"}>> - <<set $activeLimbs.ID = $activeSlave.ID>> - <<set $limbs.push($activeLimbs)>> - <<goto "Remote Surgery">> - <</link>> //Costs <<print cashFormat(10000)>> and will take 4 weeks// - <</if>> - <</if>> - - <<if $prostheticsUpgrade > 1>> - <<if $activeSlave.amp != -2>> - <<set _rems = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -2; })>> - <<if _rems == -1>> - | - <<link "Sexual functions">> - <<run cashX(-15000, "slaveSurgery", $activeSlave)>> - <<set $activeLimbs = {weeksToCompletion: 6, ID: 0, type: "sex"}>> - <<set $activeLimbs.ID = $activeSlave.ID>> - <<if $activeSlave.amp == 1>> - <<set $activeLimbs.weeksToCompletion += 3>> - <</if>> - <<set $limbs.push($activeLimbs)>> - <<goto "Remote Surgery">> - <</link>> //Costs <<print cashFormat(15000)>> and will take 6 weeks// - <</if>> - <</if>> - - <<if $activeSlave.amp != -3>> - <<set _rems = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -3; })>> - <<if _rems == -1>> - | - <<link "Beauty and grace">> - <<run cashX(-15000, "slaveSurgery", $activeSlave)>> - <<set $activeLimbs = {weeksToCompletion: 6, ID: 0, type: "beauty"}>> - <<set $activeLimbs.ID = $activeSlave.ID>> - <<if $activeSlave.amp == 1>> - <<set $activeLimbs.weeksToCompletion += 3>> - <</if>> - <<set $limbs.push($activeLimbs)>> - <<goto "Remote Surgery">> - <</link>> //Costs <<print cashFormat(15000)>> and will take 6 weeks// - <</if>> - <</if>> - - <<if $activeSlave.amp != -4>> - <<set _rems = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -4; })>> - <<if _rems == -1>> - | - <<link "Combat effectiveness">> - <<run cashX(-15000, "slaveSurgery", $activeSlave)>> - <<set $activeLimbs = {weeksToCompletion: 6, ID: 0, type: "combat"}>> - <<set $activeLimbs.ID = $activeSlave.ID>> - <<if $activeSlave.amp == 1>> - <<set $activeLimbs.weeksToCompletion += 3>> - <</if>> - <<set $limbs.push($activeLimbs)>> - <<goto "Remote Surgery">> - <</link>> //Costs <<print cashFormat(15000)>> and will take 6 weeks// - <</if>> - <</if>> - <</if>> - <<if $prostheticsUpgrade > 2>> - <<if $activeSlave.amp != -5>> - <<set _rems = $activeSlave.readyLimbs.findIndex(function(s) { return s.type == -5; })>> - <<if _rems == -1>> - | - <<link "Highly advanced cybernetics">> - <<run cashX(-25000, "slaveSurgery", $activeSlave)>> - <<set $activeLimbs = {weeksToCompletion: 8, ID: 0, type: "cyber"}>> - <<set $activeLimbs.ID = $activeSlave.ID>> - <<if $activeSlave.amp == 1>> - <<set $activeLimbs.weeksToCompletion += 6>> - <</if>> - <<set $limbs.push($activeLimbs)>> - <<goto "Remote Surgery">> - <</link>> //Costs <<print cashFormat(25000)>> and will take 8 weeks// - <</if>> - <</if>> - <</if>> - <<else>> - The prosthesis facility has already built a complete set of artificial limbs of every type for $him. - <</if>> -<<elseif $activeLimbs.weeksToCompletion > 0>> - The prosthesis facility is currently building a set of - <<switch $activeLimbs.type>> - <<case "cyber">> - highly advanced cybernetic - <<case "sex">> - advanced sex-focus artificial - <<case "beauty">> - advanced beauty-focus artificial - <<case "combat">> - advanced combat-focus artificial - <<default>> - standard artificial - <</switch>> - limbs for $him, which is projected to be ready for attachment in $activeLimbs.weeksToCompletion <<if $activeLimbs.weeksToCompletion == 1>>week<<else>>weeks<</if>>. - <<link "Discard">> - <<set _i = $limbs.findIndex(function(s) { return s.ID == $activeSlave.ID; })>> - <<set $limbs.deleteAt(_i)>> - <<goto "Remote Surgery">> - <</link>> -<<else>> - The prosthesis facility has constructed $his prosthetic limbs. - <br> - <<if $activeSlave.amp == 0>> - // $He must be an amputee to attach prosthetic limbs. // - <<elseif $activeSlave.PLimb == 0>> - // $He must have a prosthetic interface installed to attach prosthetic limbs. // - <<else>> - <<link "Attach">> - <<if $activeSlave.amp < 0>> - <<set _oldLimbs = {type: 0, armsTat: 0, legsTat: 0}>> - <<set _oldLimbs.type = $activeSlave.amp, _oldLimbs.armsTat = $activeSlave.armsTat, _oldLimbs.legsTat = $activeSlave.legsTat>> - <<set $activeSlave.readyLimbs.push(_oldLimbs)>> - <</if>> - - <<set _i = $limbs.findIndex(function(s) { return s.ID == $activeSlave.ID; })>> - - <<switch $limbs[_i].type>> - <<case "simple">> - <<set $activeSlave.amp = -1>> - <<set $surgeryType = "basicPLimbs">> - <<case "sex">> - <<set $activeSlave.amp = -2>> - <<set $surgeryType = "sexPLimbs">> - <<case "beauty">> - <<set $activeSlave.amp = -3>> - <<set $surgeryType = "beautyPLimbs">> - <<case "combat">> - <<set $activeSlave.amp = -4>> - <<set $surgeryType = "combatPLimbs">> - <<case "cyber">> - <<set $activeSlave.amp = -5>> - <<set $surgeryType = "cyberPLimbs">> - <</switch>> - <<set $limbs.deleteAt(_i), $limbsCompleted-->> - <<set $activeSlave.armsTat = 0, $activeSlave.legsTat = 0>> - <<goto "Surgery Degradation">> - <</link>> - <</if>> - | - <<link "Discard">> - <<set $limbs.deleteAt(_i), $limbsCompleted-->> - <<goto "Remote Surgery">> - <</link>> - | - <<link "Put into storage">> - <<set _i = $limbs.findIndex(function(s) { return s.ID == $activeSlave.ID; })>> - <<set _newLimbs = {type: 0, armsTat: 0, legsTat: 0}>> - - <<switch $limbs[_i].type>> - <<case "simple">> - <<set _newLimbs.type = -1>> - <<case "sex">> - <<set _newLimbs.type = -2>> - <<case "beauty">> - <<set _newLimbs.type = -3>> - <<case "combat">> - <<set _newLimbs.type = -4>> - <<case "cyber">> - <<set _newLimbs.type = -5>> - <</switch>> - - <<set $activeSlave.readyLimbs.push(_newLimbs)>> - <<set $limbs.deleteAt(_i), $limbsCompleted-->> - <<goto "Remote Surgery">> - <</link>><<if $activeSlave.PLimb == 1>>// These can be accessed at any time during slave inspection //<</if>> -<</if>> - -<</if>> -<</if>> /* CLOSES PROSTHESIS FACTORY */ -<</if>> /* CyberMod Toggle */ <br> <<if $seeExtreme == 1>> <<if $activeSlave.fuckdoll == 0>> <br>$He is a normal sex slave, not a living sex toy. <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> - [[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget=0, $activeSlave.sentence=0, $activeSlave.training=0, $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels",$activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.vaginalAttachment="none", $activeSlave.dickAccessory="none", $activeSlave.chastityAnus=0, $activeSlave.chastityPenis=0, $activeSlave.chastityVagina=0, $activeSlave.buttplug="none", $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1, $activeSlave.inflation=0, $activeSlave.inflationType="none", $activeSlave.inflationMethod=0, $activeSlave.milkSource=0, $activeSlave.cumSource=0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him// + [[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget = 0, $activeSlave.sentence = 0, $activeSlave.training = 0, $activeSlave.toyHole = "all her holes", $activeSlave.pubicHStyle = "waxed", $activeSlave.livingRules = "spare", $activeSlave.speechRules = "restrictive", $activeSlave.releaseRules = "restrictive", $activeSlave.relationshipRules = "restrictive", $activeSlave.fuckdoll = 1, $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "a Fuckdoll suit", $activeSlave.collar = "none", $activeSlave.shoes = "heels",$activeSlave.legAccessory = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.dickAccessory = "none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.buttplug = "none", $activeSlave.attrKnown = 1, $activeSlave.fetishKnown = 1, $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0, $activeSlave.milkSource = 0, $activeSlave.cumSource = 0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him// <</if>> <<else>> - <br>$He is encased in a Fuckdoll suit. [["Extract " + $him|Surgery Degradation][$activeSlave.fuckdoll=0, $activeSlave.clothes="no clothing", $activeSlave.shoes="none", $surgeryType = "fuckdollExtraction"]] + <br>$He is encased in a Fuckdoll suit. [["Extract " + $him|Surgery Degradation][$activeSlave.fuckdoll = 0, $activeSlave.clothes = "no clothing", $activeSlave.shoes = "none", $surgeryType = "fuckdollExtraction"]] <</if>> <</if>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index 37d26f4d3fdd06d76ba46737325bd30a806162d3..011c497aba204aab5f4f28b7c3a80f7685c093da 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -738,7 +738,6 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl ["Schoolroom Report", $schoolroomNameCaps, $schoolroom, $schoolroomSlaves, $Schoolteacher, "Schoolteacher"], ["Spa Report", $spaNameCaps, $spa, $spaSlaves, $Attendant, "Attendant"], ["Nursery Report", $nurseryNameCaps, $nurseryNannies, $nurserySlaves, $Matron, "Matron"], -/** ["Lab Report"], "Research Lab", $researchLab.built, $researchLab.hired + $researchLab.menials, -1, -1], **/ ["Servants' Quarters Report", $servantsQuartersNameCaps, $servantsQuarters, $servantsQuartersSlaves, $Stewardess, "Stewardess"], ["Incubator Report", $incubatorNameCaps, $incubator, $incubatorSlaves, -1, -1], ["Master Suite Report", $masterSuiteNameCaps, $masterSuite, $masterSuiteSlaves, $Concubine, "Concubine"], @@ -781,6 +780,6 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl <<unset _ii>> /** /Accordion */ -<<if ($researchLab.built == "true")>> +<<if ($researchLab.level > 0)>> <<include "Lab Report">><br><br> <</if>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index c0aa029f59dd53df7cd270dff250f157bec445ad..129701343b035ef638bd9598f5708e31809085f3 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -61,7 +61,7 @@ | [[Auto salon|Salon][$degradation = 0,$primaryHairColor = "",$secondaryHairColor = "",$primaryEarColor = "",$secondaryEarColor = "",$primaryTailColor = "",$secondaryTailColor = "",$artificialEyeColor = "",$artificialEyeShape = "",$artificialEyeFill = "",$tattooChoice = "",$piercingLevel = ""]] | [[Body mod studio|Body Modification][$degradation = 0, $tattooChoice = undefined]] | [[Remote surgery|Remote Surgery][$degradation = 0]] -<<if $cyberMod == 1>>| [[Configure cybernetics|cyberConfig][$temp = 0]]<</if>> +<<if $prostheticsUpgrade > 0>>| [[Configure cybernetics|Prosthetics Config][$prostheticsConfig = "main"]]<</if>> <br> @@ -435,16 +435,6 @@ | <<link "Exempt $him" "Slave Interact">><<set $activeSlave.useRulesAssistant = 0>><</link>> <</if>> -<<if $cyberMod == 0>>/* CyberMod Toggle */ -/* START hotswap prosthetics */ -<<if ndef $activeSlave.readyLimbs>> - <<set $activeSlave.readyLimbs = []>> -<</if>> -<<if ($activeSlave.readyLimbs.length > 0 || $activeSlave.amp < 0) && $activeSlave.PLimb == 1>> - <br><br><span id = "LimbOptions"><<include "Hotswap Prosthetics">></span> -<</if>> -/* END hotswap prosthetics */ -<</if>>/* CyberMod Toggle */ <br> <span id="fucktoypref"> diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 5368b096152b4320bc0f3684b007a6acc89d002e..acf98626f3455dbdcd4d2c90d884a26c6570768b 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -613,9 +613,6 @@ <br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@ <</if>> <</if>> - <<if $cyberMod != 0 && $researchLab.built == "true">> - <br>[[Manage Research Lab|Research Lab][$temp = 0]] - <</if>> <<if $SF.Toggle && $SF.Active >= 1>> <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> @@ -655,9 +652,6 @@ <br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@ <</if>> <</if>> - <<if $cyberMod != 0 && $researchLab.built == "true">> - <br>[[Manage Research Lab|Research Lab][$temp = 0]] - <</if>> <<if $SF.Toggle && $SF.Active >= 1>> <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> @@ -683,6 +677,7 @@ <br><<link [[Wardrobe]]>><</link>> <br><<if $dispensary>>[[Pharmaceutical Fabricator|Dispensary]]<</if>> <br><<if $ImplantProductionUpgrade>>[[Implant Manufactory|Implant Manufactory]]<</if>> + <br><<if $prostheticsUpgrade > 0>>[[Prosthetic Lab|Prosthetic Lab]]<</if>> <br><<if $organFarmUpgrade>>[[Organ Farm|Organ Farm]]<</if>> <br><<if $geneticMappingUpgrade>>[[Gene Lab|Gene Lab]]<</if>> <br><<if $rep >= 10000>>[[Black Market|The Black Market]]<</if>> @@ -707,9 +702,6 @@ <br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@ <</if>> <</if>> - <<if $cyberMod != 0 && $researchLab.built == "true">> - <br>[[Manage Research Lab|Research Lab][$temp = 0]] - <</if>> <<if $SF.Toggle && $SF.Active >= 1>> <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index 1ba4f1c94f0cd6c2d562e531bb76671fa058cd4e..4b0c0fc2b4a1306a3f392be39f4a31208c884660 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -27,11 +27,8 @@ <<set _slaveDevotion = $activeSlave.devotion>> -<<if ($activeSlave.health < random(-100,-80)) && !["basicPLimbs", "beautyPLimbs", "body hair removal", "braces", "chem castrate", "combatPLimbs", "cyberPLimbs", "eyebrow removal", "hair removal", "insemination", "removeBraces", "sexPLimbs"].includes($surgeryType)>> +<<if ($activeSlave.health < random(-100,-80)) && !["body hair removal", "braces", "chem castrate", "eyebrow removal", "hair removal", "insemination", "removeBraces"].includes($surgeryType)>> $activeSlave.slaveName @@.red;has died from complications of surgery.@@ - <<if $surgeryType == "ocular implant">>At least the ocular implants are still good.<<set $stockpile.ocularImplant++>><</if>> - <<if $surgeryType == "cochlear implant">>At least the cochlear implants are still good.<<set $stockpile.cochlearImplant++>><</if>> - <<if $surgeryType == "electrolarynx">>At least the electrolarynx is still good.<<set $stockpile.electrolarynx++>><</if>> <<= removeActiveSlave() >> <<set $nextLink = "Main">> <<elseif $surgeryType == "breastShapePreservation" && (($activeSlave.health-($activeSlave.boobs/1000)) < random(-100,-80))>> @@ -242,7 +239,10 @@ As the remote surgery's long recovery cycle completes, <<if $activeSlave.amp == 0>> It's rocking back and forth slightly on its heeled boots, which are designed for stability. <<else>> - <<if $activeSlave.amp < 0>>Its P-Limbs have been removed, since they aren't compatible with Fuckdoll suits.<</if>> + <<if $activeSlave.amp < 0>> + Its P-Limbs have been removed, since they aren't compatible with Fuckdoll suits. + <<set $activeSlave.amp = 1>> + <</if>> The Fuckdoll's limbless torso rocks back and forth slightly. <</if>> The heart rate reading is so high that the Fuckdoll is receiving drugs to calm it down and prevent damage; the suit can deliver these and any other necessary pharmaceuticals by intravenous shunt. Farther down, on the Fuckdoll's side over its ribcage, there are a pair of metal ports. These allow it to be fed. @@ -1875,20 +1875,13 @@ As the remote surgery's long recovery cycle completes, <<case "amp1">> <<set $nextLink = "Surgery Degradation", $surgeryType = "amp">> - <<if $cyberMod == 0>> - During the procedure you may install a prosthetic interface so that $he may use prosthetic limbs immediately afterwards.<br> - This will cost extra and put further strain on $activeSlave.slaveName's health, but choosing to do this now will be cheaper and be less damaging to $his health than if you were to perform the procedures separately.<br> - [[Install prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1, $activeSlave.health -= 10, $surgeryType = "ampInterface", cashX(forceNeg(Math.trunc($surgeryCost/2)), "slaveSurgery", $activeSlave)]]<br> - [[Only perform amputation|Surgery Degradation][$surgeryType = "amp"]] - <<else>> - Since you invested in cybernetic technology you can install PLimb interface into $his body during the operation.<br> - Procedure will put additional strain on $his health but less so than if you were to perform the procedures separately.<br> - <<if $stockpile.basicPLimbInterface > 0>> - [[Install basic interface|Surgery Degradation][$activeSlave.PLimb = 1, $activeSlave.health -= 10, $stockpile.basicPLimbInterface -= 1, $surgeryType = "amp2", $nextLink = "Remote Surgery"]] - <br><</if>> - <<if $stockpile.advPLimbInterface > 0>> - [[Install advanced interface|Surgery Degradation][$activeSlave.PLimb = 2, $activeSlave.health -= 10, $stockpile.advPLimbInterface -= 1, $surgeryType = "amp2", $nextLink = "Remote Surgery"]] - <</if>> + Since you have already have a prosthetic interface prepared for this slave you can install it during the operation.<br> + The procedure will put additional strain on $his health but less so than if you were to perform the procedures separately. + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP1"}) != -1>><br> + [[Install basic interface|Surgery Degradation][$activeSlave.PLimb = 1, $activeSlave.health -= 10, $surgeryType = "amp2", $nextLink = "Surgery Degradation"]] + <</if>> + <<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP2"}) != -1>><br> + [[Install advanced interface|Surgery Degradation][$activeSlave.PLimb = 2, $activeSlave.health -= 10, $surgeryType = "amp2", $nextLink = "Surgery Degradation"]] <</if>> <<case "amp2">> @@ -1949,6 +1942,7 @@ As the remote surgery's long recovery cycle completes, <</if>> <</if>> +/* This was moved to prostheticsConfig.tw <<case "basicPLimbs">> $He exits the surgery hesitantly, the software of $his prosthetic limbs and the wetware of $his brain working together to figure out how to walk together under the tutelage of a prescribed tutorial. Recovery will be @@.red;significant,@@ since the surgical implantation of anchor points for the limbs themselves and the installation of nerve impulse detectors constituted major surgery. <<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> @@ -2036,6 +2030,7 @@ As the remote surgery's long recovery cycle completes, Of course, $he could not walk out of the surgery; you carried $him. It seems that $his mistrust of you was well founded and this removal of $his artificial limbs has caused @@.mediumorchid;$his devotion to drop@@ and @@.gold;$his trust to drop.@@ As with all surgery @@.red;$his health has been slightly affected.@@ <<set $activeSlave.trust -= 5, $activeSlave.devotion -= 5>> <</if>> +*/ <<case "ster">> <<if $activeSlave.fetish == "mindbroken">>