diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000000000000000000000000000000000000..fa36cb5df0e9986af6bfdccbd14747481d9c48bf --- /dev/null +++ b/.eslintignore @@ -0,0 +1,7 @@ +**/Jquery.js +**/mousetrap.js +**/sugarCubeConfig.js +**/format.js +**/bugReport.js +**/displayVariables.js +**/dTree.min.js \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index c7a8ffcc948c73ee7b4bd309afa58d635b0393ce..466925362f4a9654c2b34c6cd7c9747c42d3d463 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -32,6 +32,9 @@ "semi-style": "warn", "eqeqeq": "error", "no-fallthrough": "error", + "space-before-function-paren": ["error", "never"], + "no-nested-ternary": "warn", + "no-unneeded-ternary": "error", "camelcase": "warn", "comma-spacing": "error", "comma-style": "error", @@ -45,17 +48,13 @@ "dot-notation": "off", "linebreak-style": ["error", "unix"], "eol-last": "warn", - "unicode-bom": [ - "error", - "never" - ], - "valid-jsdoc": [ - "warn", - { - "requireParamDescription": false, - "requireReturnDescription": false, - "requireReturn": false - } + "unicode-bom": ["error", "never"], + "valid-jsdoc": ["warn", + { + "requireParamDescription": false, + "requireReturnDescription": false, + "requireReturn": false + } ] } } diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index 7c2fa1b93dc7a843fe4d67c2d92504f7f7891920..f3da81b97605b1732d2f84c551a274acf992e3ba 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -5,6 +5,7 @@ Pregmod 9 -slave assignment links improved -breast implants now impact milk production based on % implant + -many new names added to lacking name pools -fixes 04/17/2019 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/bugReport.js b/src/js/bugReport.js index 5302db55a333a121ab278a62a7f67d349120fb70..b0ace2e4ef770bcdae25c20171e29f4fdcefeee8 100644 --- a/src/js/bugReport.js +++ b/src/js/bugReport.js @@ -1,3 +1,2 @@ -/* eslint-disable */ /*! <<bugreport>> macro for SugarCube 2.x */ !function(){"use strict";if("undefined"==typeof version||"undefined"==typeof version.title||"SugarCube"!==version.title||"undefined"==typeof version.major||version.major<2)throw new Error("<<bugreport>> macro requires SugarCube 2.0 or greater, aborting load");Macro.add("bugreport",{handler:function(){function serializeVariables(varObj,diffObj,doSort){function renderDiff(diff,orig){for(var keys=Object.keys(diff||{}),render=orig?clone(orig):{},i=0,klen=keys.length;klen>i;i++){var p=keys[i],diffP=diff[p];if(diffP===Diff.Op.Delete)delete render[p];else if(Array.isArray(diffP))switch(diffP[0]){case Diff.Op.SpliceArray:try{render.splice(diffP[1],1+(diffP[2]-diffP[1]))}catch(e){}break;case Diff.Op.Copy:render[p]=clone(diffP[1]);break;case Diff.Op.CopyDate:render[p]=new Date(diffP[1])}else{var recurse=renderDiff(diffP,render[p]);0!==Object.keys(recurse).length&&(render[p]=recurse)}}return render}var varList=[],diff=renderDiff(Diff.diff(varObj,diffObj));for(var p in diff){var sName="$"+(-1===p.search(/[^\w]/)?p:'"'+p+'"');varList.push(sName+"="+JSON.stringify(diff[p]))}return doSort&&("function"==typeof doSort?varList.sort(doSort):varList.sort()),0!==varList.length?varList.join(", "):""}var srcMatch,passages,varsPre,varsPost,dialog,dataEl,info=null!=this.args[0]&&Story.has(this.args[0])?Story.get(this.args[0]):null,last=State.length-1,source=unescape(window.location);null!==(srcMatch=/\/([^\/]+)$/.exec(source))&&(source=srcMatch[1]),passages=[];for(var i=0;last>=i;i++)passages.push('"'+State.index(i).title+'"');passages=passages.join(", "),varsPre=serializeVariables(State.index(0).variables,State.index(last).variables),varsPost=serializeVariables(State.index(last).variables,State.variables),dialog=UI.setup("Bug Report","bugreport"),dialog.innerHTML=(null!==info?'<div id="bugreport-info"></div>':"")+'<div><b>Bug report:</b> <a id="bugreport-data-select" class="link-internal macro-bugreport">[Select]</a></div><code id="bugreport-data" tabindex="0"></code>'+(/applewebkit|chrome/.test(Browser.userAgent)?"":'<div class="scroll-pad"> </div>'),dataEl=dialog.querySelector("#bugreport-data"),null!==info&&new Wikifier(dialog.querySelector("#bugreport-info"),info.processText()),addAccessibleClickHandler("#bugreport-data-select",function(self){return function(){jQuery(dataEl).focus(),self.selectData(dataEl)}}(this.self)),insertText(dataEl,"[spoiler][code]"),insertElement(dataEl,"br"),insertText(dataEl,"SOURCE: "+source),insertElement(dataEl,"br"),insertElement(dataEl,"br"),insertText(dataEl,"PASSAGES:"),insertElement(dataEl,"br"),insertText(dataEl,passages),insertElement(dataEl,"br"),insertElement(dataEl,"br"),insertText(dataEl,"VARIABLES (PRE-EXECUTION):"),insertElement(dataEl,"br"),varsPre&&(insertText(dataEl,varsPre),insertElement(dataEl,"br")),insertElement(dataEl,"br"),insertText(dataEl,"VARIABLES (POST-EXECUTION):"),insertElement(dataEl,"br"),varsPost&&(insertText(dataEl,varsPost),insertElement(dataEl,"br")),insertText(dataEl,"[/code][/spoiler]"),UI.open()},selectData:function(e){var s,r;if(window.getSelection){s=window.getSelection();if(s.setBaseAndExtent){var l=(e.innerText.length>1)?e.innerText.length-1:1;try{s.setBaseAndExtent(e,0,e,l)}catch(error){r=document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r)}}else{if(window.opera&&e.innerHTML.substring(e.innerHTML.length-4)==='<br>'){e.innerHTML=e.innerHTML+' '}var r=document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r)}}else if(document.getSelection){s=document.getSelection();r=document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r)}else if(document.selection){r=document.body.createTextRange();r.moveToElementText(e);r.select()}}})}(); diff --git a/src/js/dTree.min.js b/src/js/dTree.min.js index a3c51d890ea5194fcd558084455fe68d9db93170..b29089b88995fe7df6cab432f07f2e71d7f2e090 100644 --- a/src/js/dTree.min.js +++ b/src/js/dTree.min.js @@ -1,4 +1,3 @@ -/* eslint-disable */ /* This is the minified version of lodash, d3 and dTree */ ; (function (window, define, exports) { diff --git a/src/js/displayVariables.js b/src/js/displayVariables.js index f78139b5ccf2d9b728c2061a2111ea19b94ac516..c153952509e31eab3818533944d8eaf82e651061 100644 --- a/src/js/displayVariables.js +++ b/src/js/displayVariables.js @@ -1,3 +1,2 @@ -/* eslint-disable */ /*! <<checkvars>> macro for SugarCube 2.x */ !function(){"use strict";if("undefined"==typeof version||"undefined"==typeof version.title||"SugarCube"!==version.title||"undefined"==typeof version.major||version.major<2)throw new Error("<<checkvars>> macro requires SugarCube 2.0 or greater, aborting load");Macro.add("checkvars",{handler:function(){function toString(value,indent){var baseType=typeof value;switch(baseType){case"number":return isNaN(value)?"NaN":isFinite(value)?String(value):"Infinity";case"string":return JSON.stringify(value);case"function":return"(function)";default:if("object"!==baseType||null==value)return String(value);var objType=Object.prototype.toString.call(value);if("[object Date]"===objType)return'(object: Date, value: "'+value.toISOString()+'")';if("[object RegExp]"===objType)return"(object: RegExp, value: "+value.toString()+")";var opener,closer,result=[],indentText=" ";return indent||(indent=""),("[object Set]"===objType||value instanceof Set)&&(value=Array.from(value)),Array.isArray(value)?(opener="[\n",closer="\n"+indent+"]",value.forEach(function(p,i){result.push(indent+indentText+i+" ⇒ "+toString(value[i],indent+indentText))}),Object.keys(value).forEach(function(p){/^\d+$/.test(p)||result.push(indent+indentText+toString(p)+" ⇒ "+toString(value[p],indent+indentText))})):"[object Map]"===objType||value instanceof Map?(opener="{\n",closer="\n"+indent+"}",Array.from(value).map(function(kv){result.push(indent+indentText+toString(kv[0],indent+indentText)+" ⇒ "+toString(kv[1],indent+indentText))})):(opener="{\n",closer="\n"+indent+"}",Object.keys(value).forEach(function(p){result.push(indent+indentText+toString(p)+" ⇒ "+toString(value[p],indent+indentText))})),opener+result.join(",\n")+closer}}var dialog,sv=State.variables,names=Object.keys(sv);if(dialog=UI.setup("Story $variables","checkvars"),0===names.length)return dialog.innerHTML="<h1>Story $variables (<code>State.variables</code>):</h1><p><em>No $variables currently set…</em></p>",void UI.open();dialog.innerHTML="<h1>Story $variables (<code>State.variables</code>):</h1><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody></tbody></table>"+(/applewebkit|chrome/.test(Browser.userAgent)?"":'<div class="scroll-pad"> </div>');var tbody=dialog.querySelector("tbody");names.sort(function(a,b){return Util.isNumeric(a)&&Util.isNumeric(b)?Number(a)-Number(b):a.localeCompare(b)});for(var i=0;i<names.length;i++){var tr=document.createElement("tr"),tdName=document.createElement("td"),tdValue=document.createElement("td");tdName.textContent="$"+names[i],tdValue.textContent = toString(sv[names[i]]),tr.appendChild(tdName),tr.appendChild(tdValue),tbody.appendChild(tr)}UI.open()}})}(); 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 00aacf74b2cc644e01778e05bd80ed70c53e6591..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) { @@ -1213,11 +1218,10 @@ window.SkillIncrease = (function() { /* call as SkillIncrease.Oral() */ /** @param {App.Entity.SlaveState} slave */ - function OralSkillIncrease(slave, skillIncrease) { + function OralSkillIncrease(slave, skillIncrease = 1) { const He = capFirstChar(slave.pronoun); const his = slave.possessivePronoun; let r = ""; - skillIncrease = skillIncrease || State.variables.skillIncrease || 1; if (slave.skill.oral <= 10) { if (slave.skill.oral + skillIncrease > 10) { @@ -1242,10 +1246,9 @@ window.SkillIncrease = (function() { /* call as SkillIncrease.Vaginal() */ /** @param {App.Entity.SlaveState} slave */ - function VaginalSkillIncrease(slave, skillIncrease) { + function VaginalSkillIncrease(slave, skillIncrease = 1) { const He = capFirstChar(slave.pronoun); let r = ""; - skillIncrease = skillIncrease || State.variables.skillIncrease || 1; if (slave.skill.vaginal <= 10) { if (slave.skill.vaginal + skillIncrease > 10) { @@ -1270,11 +1273,10 @@ window.SkillIncrease = (function() { /* call as SkillIncrease.Anal() */ /** @param {App.Entity.SlaveState} slave */ - function AnalSkillIncrease(slave, skillIncrease) { + function AnalSkillIncrease(slave, skillIncrease = 1) { const He = capFirstChar(slave.pronoun); const his = slave.possessivePronoun; let r =""; - skillIncrease = skillIncrease || State.variables.skillIncrease || 1; if (slave.skill.anal <= 10) { if (slave.skill.anal + skillIncrease > 10) { @@ -1299,11 +1301,10 @@ window.SkillIncrease = (function() { /* call as SkillIncrease.Whore() */ /** @param {App.Entity.SlaveState} slave */ - function WhoreSkillIncrease(slave, skillIncrease) { + function WhoreSkillIncrease(slave, skillIncrease = 1) { const He = capFirstChar(slave.pronoun); const his = slave.possessivePronoun; let r =""; - skillIncrease = skillIncrease || State.variables.skillIncrease || 1; if (slave.skill.whoring <= 10) { if (slave.skill.whoring + skillIncrease > 10) { @@ -1328,10 +1329,9 @@ window.SkillIncrease = (function() { /* call as SkillIncrease.Entertain() */ /** @param {App.Entity.SlaveState} slave */ - function EntertainSkillIncrease(slave, skillIncrease) { + function EntertainSkillIncrease(slave, skillIncrease = 1) { const He = capFirstChar(slave.pronoun); let r =""; - skillIncrease = skillIncrease || State.variables.skillIncrease || 1; if (slave.skill.entertainment <= 10) { if (slave.skill.entertainment + skillIncrease > 10) { @@ -1732,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/npc/agent/agentFramework.js b/src/npc/agent/agentFramework.js index 5dab0b51e759c32e1378b583780f4a963250b14e..f3160b904b1b8277303a95bad01a0d710a36251d 100644 --- a/src/npc/agent/agentFramework.js +++ b/src/npc/agent/agentFramework.js @@ -13,8 +13,8 @@ App.Data.Facilities.arcologyAgent = { manager: { position: "agent", assignment: "be your agent", - careers: null, - skill: null, + careers: "an arcology owner", + skill: "headGirl", publicSexUse: true, fuckdollAccepted: false, broodmotherAccepted: false, diff --git a/src/npc/fBeg.tw b/src/npc/fBeg.tw new file mode 100644 index 0000000000000000000000000000000000000000..87002fad339dc65170694b4bfa77bb2d338f4982 --- /dev/null +++ b/src/npc/fBeg.tw @@ -0,0 +1,401 @@ +:: FBeg [nobr] + + + +<<set $activeSlave.oralCount++, $oralTotal++>> +<<set $desc = SlaveTitle($activeSlave)>> +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +You call $him over to you for inspection. <<BoobsDescription>> You look at $him lustfully and instruct $him to strip. +<<if ($activeSlave.sexualFlaw == "shamefast")>> Tears well up in $his eyes at the idea of showing $his naked body. +<<elseif ($activeSlave.sexualQuirk == "tease")>> $He blushes with arousal. $He has kept $his innate embarrassment at the thought of being naked, but you have infused this with overwhelming arrousal. $His cheeks are red as $he removes $his clothes, giving quite a strip tease as $he does. +<<elseif ($activeSlave.sexualFlaw == "repressed")>>subconsciously uses $his hands to try to cover $his body. $He is still repressing $his own sexuality. That type of behaviour may have been allowed in the old world, but it has no place in a Free City. +<<elseif ($activeSlave.sexualFlaw == "idealistic")>>shakes $his head pleadingly, "But I don't consent" $he responds. You laugh in such a way that tells $him that $his concent is irrelevant. $He is still idealistic, believing that sex should be a concensual expression of love and intimacy. Such ideas were common in the Old World, but they have no place in a Free City. You decide to grab $him and forcefully rip $his clothes from $his body, since obedience could simply be seen as consent. $He screams and plead as you pin her arms, ripping and tearing at the cloth that keeps her beauty from sight. +<<elseif ($activeSlave.sexualFlaw == "neglectful")>> replied "Yes + <<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>> + <<else>><<Master>> + <</if>>" + $he replies contritely. $He has no sense of self beyond your usefulness of $him, and selflessly sacrifices $his own comfort for your pleasure. +<<elseif ($activeSlave.sexualFlaw == "attention whore")>>eagerly begins to shirk $his wear, drawing as much attention to the process as possible. +<<else>> + <<if ($activeSlave.devotion < -20)>> + $He resists, forcing you to undress $him yourself. + <<elseif ($activeSlave.devotion > -20)>> $He obeys, and moves to the center of your office to undress $himself for you. + <</if>> +<</if>> +$He begins to undress with +<<if ($activeSlave.entertainmentSkill >= 100)>> masteful skill, teasing and taunting all the way down. $He rolls $his hips and most sexual parts as $he removes $his clothing. +<<elseif ($activeSlave.entertainmentSkill >= 80)>> arousing skill. Even though the goal is just to get $him naked, your slave knows that $his job is to entertain you with $his every move. +<<elseif ($activeSlave.entertainmentSkill >= 60)>> notable skill. $He takes the opportunity to give you a light strip tease as $he undresses. +<<elseif ($activeSlave.entertainmentSkill >= 40)>> a decent effort. $He isn't your most entertaining slave, but $he still makes an effort to arouse you with $his undressing. +<<elseif ($activeSlave.entertainmentSkill >= 20)>> some effort to be sexy. $His moves are less than skillfull and the undressing is more pragmatic than arousing. +<<else>> no effort to be sexy. $He has no entertainment skill, and the only goal of $his actions is to go from clothed to naked. +<</if>>. + +<<if ($activeSlave.fetishStrength > 60)>> + <<switch $activeSlave.fetish>> + <<case "submissive">> As $he begins to strip you grab $him without warning and begin to tear off $his clothes. Your slave expected you to allow $him to obey your command, and so $he is initially taken aback by the sudden force but $his submissive nature keeps $him from resisting. $He is such a submissive slut that you feel obligation to push $his status even further. You bind $his arms tightly behind $his back in a leather armbinder. + <<if ($activeSlave.nipplePiercing > 0)>> You then retrieve heavy bells and attach them to her nipple rings. + <<else>> You reach into your pocket and retrieve two weighted and belled nipple clamps, attaching them tightly to your slave's delicate nipples. + <</if>> You tell her to bounce so that they jingle, reminding her of her status. + <<case "masochist">> Once $he is fully exposed you give $him a firm slap accross the tits. $He's a massochist and relishes the pain with sexual arousal. You ask your painslut if $he deserves to be punished. "Oh yes, + <<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>> + <<else>><<Master>> + <</if>>. + Please punish your little slut. Sensing that your slave is getting too much enjoyment from $his beating you cease. + <</switch>> +<</if>> + +You stare at the naked form of your slave standing before you. + +<<if ($activeSlave.boobsTat == "rude words")>> The words on $his chest stand out at you. You ask $him what $his tits say. "Fuckslave." $he replies. You ask if that's what $he is. + <<if ($activeSlave.behavioralFlaw == "liberated")>> "I'm nobody's property. I'm a free woman!" $He shoots back. "We shall see" you reply. + <<elseif ($activeSlave.devotion < -20)>> $He does $his best to shake $his head. + <<else>> "Yes <<Master>>, that's what I am. + <</if>> +<<elseif ($activeSlave.boobsTat == "possessive")>> The words on $his chest stand out at you. You ask $him what $his tits say. "It's Your personal symbol" $he replies. You ask if that's what $he is. + <<if ($activeSlave.behavioralFlaw == "liberated")>> "I'm nobody's property. I'm a free woman!" $He shoots back. "We shall see" you reply. + <<elseif ($activeSlave.devotion < -20)>> $He does $his best to shake $his head. + <<else>> "Yes <<Master>>, that's what I am. + <</if>> +<<elseif ($activeSlave.boobsTat == "degradation")>> The words on $his chest stand out at you. You ask $him what $his tits say. "<<Master>>'s Bitch" $he replies. You ask if that's what $he is. + <<if ($activeSlave.behavioralFlaw == "liberated")>> "I'm nobody's property. I'm a free woman!" $He shoots back. "We shall see" you reply. + <<elseif ($activeSlave.devotion < -20)>> $He does $his best to shake $his head. + <<else>> "Yes <<Master>>, that's what I am. + <</if>> +<<else>> $His body belongs to you, and your slave needs to remember that. +<</if>> + +You then tell your slave to kneel at your feet. +<<if ($activeSlave.behavioralFlaw == "bitchy")>> $He rolls $his eyes sasses you a bit, "Whatever," she scoffs and +<<elseif ($activeSlave.behaviorFlaw == "arrogant")>> $He stands up even straghter than before, crossing $his arms and widening $his stance. $His arrogance makes obeying commands like this difficult, but that is not your concern. You give $him a look that tells $him that pain will await if $he does not obey. $He +<<elseif ($activeSlave.behavioralQuirk == "confident")>> $He confidently moves to obey. $He +<<elseif ($activeSlave.behavioralFlaw == "liberated")>> $He stands up even straighter than before, crossing $his arms and widening $his stance. "I am not some animal," $he protests "I am a free woman." You laugh at $his continued delusions. Liberated women have no place in a Free City. You remind her that pain awaits $him should $he defy you further and $he +<<elseif ($activeSlave.behavioralQuirk == "advocate")>> $He smiles at the demonstration of $his rightful place as a lowly slave. $He +<<elseif ($activeSlave.behavioralFlaw == "odd")>> $He sticks her tongue out at you, blowing rasberries in an act of futile defiance. $He really is an odd one. $He +<<elseif ($activeSlave.behavioralQuirk == "funny")>> $He smiles and turns $his butt to you, swaying it cutely as $his silly way of acknowledging your command. $He +<<else>> +$He nods, and +<</if>> + + +<<if ($activeSlave.devotion < -20)>> + <<if ($activeSlave.fear < -50)>> + drops terrified to the ground. + <<else>> + <<if !canTalk($activeSlave)>>gestures + <<elseif (_lisping == 1)>>lisps + <<else>>declares + <</if>> + angrily that slavery is wrong and $he will not bow. You look at your Assistant who silently summons two other, more obedient slaves from their duties. + <<if ($activeSlave.nipplePiercing > 1)>> You reach out and grab $him by her nipple chain, pulling her in harshly. She yelps in pain, but knows better than to pull away. + <<elseif ($activeSlave.nosePiercing > 1)>> You reach out and grab $him by her nose ring, pulling her in harshly. She yelps in pain, but knows better than to pull away. + <<else>> You reach out and grab $him firmly by the collar. + <</if>> + "One more chance, slut" by now, the other slaves have arrived and are standing loyally by your side. Your loyal slaves force $him to $his knees. + <</if>> + "Head at crotch level," you clarify. "Remember your purpose" +<<elseif ($activeSlave.devotion < 20)>> is not enthusiastic, but is obedient enough to go down without much threat of discipline. +<<elseif ($activeSlave.devotion > 20)>> + <<if ($activeSlave.fetishKnown == 1)>> + <<switch $activeSlave.fetish>> + <<case "submissive">> + bows $his head and humbly assumes $his rightful position at $his <<Master>>'s feet. + <<case "dom">> + would rather be standing by your side making your other sluts bow, but $he still knows that you are $his <<Master>>. + <<case "sadist">> + would rather be pushing one of your other whores painfully to her knees, but $he still obeys. + <<case "masochist">> + waits just long enough to recieve a disciplinary slap, making $him blush with arousal as $he kneels before you. + <<case "cumslut">> + is excited to be closer to your delicious crotch, and hurries to match $his eyes to your package. + <<case "humiliation">> + makes a big show of it as $he lowers $himself dramatically before you. + <<case "buttslut">> + leans heavily forward so that $his ass sticks out ridiculously far as $he bends $his knees and goes to the floor. + <<case "pregnancy">> + obeys your command and goes to $his knees. + <<case "boobs">> + pulls $his shoulders back strongly while leaning far enough forward to drag $his + <<if ($activeSlave.boobs >= 10000)>> wieghty mammaries + <<elseif ($activeSlave.boobs >= 2000)>> cumbersome udders + <<elseif ($activeSlave.boobs >= 1000)>> massive slave tits + <<elseif ($activeSlave.boobs >= 800)>> forward-thrust breasts + <<elseif ($activeSlave.boobs >= 500)>> meeger chest + <<elseif ($activeSlave.boobs <= 400)>> pathetic slave boobs + <<else>> tits + <</if>> + across your body as $he goes down. + <<default>> + obeys your command and goes to $his knees. + <</switch>> + + <<else>> + obeys your command and goes to $his knees. + <</if>> +<</if>> +<<if ($activeSlave.devotion < -20)>> The other slaves guide $him to adjust $his posture so $his eyes ar directly in line with your package. +<<else>> $He kneels so that $his eyes are directly level with your package. +<</if>> + +<<if ($activeSlave.energy > 50)>> +$He cant help but stare in lust at your + + <<if $PC.balls > 2 && $PC.ballsImplant > 3>> + monstrous, massive pair of watermellon sized balls. + <<elseif $PC.balls == 2 && $PC.ballsImplant == 3>> + enormous, heavy pair of balls. + <<elseif $PC.balls == 1 && $PC.ballsImplant == 2>> + huge pair of balls, bulging like softballs from behind your suit. + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> + enormous, heavy pair of balls. + <<elseif $PC.balls == 2 && $PC.ballsImplant == 2>> + huge pair of balls, bulging like softballs from behind your suit. + <<elseif $PC.balls == 1 && $PC.ballsImplant == 1>> + large pair of balls, swinging heavily as you move. + <<elseif $PC.ballsImplant > 2>> + enormous, heavy pair of balls. + <<elseif $PC.ballsImplant == 2>> + huge pair of balls, bulging like heavy softballs from behind your suit. + <<elseif $PC.ballsImplant == 1>> + large pair of balls, swinging heavily as you move. + <<else>> + manly package. + <</if>> + +<<else>> + Your balls loom directly in front of $his face. +<</if>> + +Now kneeling at your feet naked before you, your slave waits for $his Master's command. You take some time to survey the slut's properly displayed body. +<<ButtDescription>> +<<if $activeSlave.butt > 6>> $His massive ass is so huge that $he it squishes around her heels, almost reaching the floor. +<<elseif $activeSlave.butt > 4>> $His ass is so round and large it rolls out from her back in two perfect mounds. The cheeks are so thick it forms a perfect crevice between them, more than a couple inches deep. +<<else>> $His cute and tight ass rests gently on $his ankles. +<</if>> + + +<<if ($activeSlave.energy > 95)>> + Her eyes fill with lust at the helplessness of kneeling at your crotch. +<</if>> +<<if ($activeSlave.fetishStrength > 60)>> + <<switch $activeSlave.fetish>> + <<case "submissive">> + $He keeps her eyes down and poises her body to be fully availible to $his master, trying to model for you the image of the perfect submissive. + <<case "dom">> + Despite $his kneeling stature, $his back is straight and shoulders back. + <<case "masochist">> + $He positions $himself uncomfortably, bringing visual pleasure to you and pain to $himself. $He accentuates $his most sensitive parts, inviting you to slap or spank them. + <<case "cumslut">> + $he goes to $his knees, all the while staring at your <<if $PC.dick != 0>>manly bulge.<<if $PC.vagina == 1>> <</if>>.<<else>> feminine mound.<</if>> + <<case "humiliation">> + $He eagerly takes to this humilating position, hoping to demonstrate $his willingness to be degraded by $his <<Master>>. + <<case "buttslut">> + $He positions $himself, sticking $his butt out as far as $he can manage, hoping to draw your attention to $his favorite area. + <<case "boobs">> + $he kneels with $his back strongly arching far back and dilligently works to touch $his elbows behind $his back to best display $his + <<if ($activeSlave.boobs >= 10000)>> colossal mammaries + <<elseif ($activeSlave.boobs >= 2000)>> gigantic udders + <<elseif ($activeSlave.boobs >= 1000)>> massive slave tits + <<elseif ($activeSlave.boobs >= 800)>> prominent breasts + <<elseif ($activeSlave.boobs >= 400)>> modest chest + <<elseif ($activeSlave.boobs <= 400)>> pathetic slave boobs + <</if>> for $his master. + <<if ($activeSlave.lactation > 0)>> milk dribbles down the soft curves of $his chest as a further sign of $his arousal. + <</if>> + This is, of course, how all slaves are supposed to kneel, but $he takes the pose with added dedication. + <<default>> + $He postions $himself with $his knees spread wide, hoping that you will turn your attention to $his wet pussy. + <</switch>> +<</if>> + +You tell your slave to +<<if $PC.dick != 0>>suck your cock + <<if $PC.vagina == 1>> and eat you out + <</if>>. +<<else>>eat you out. +<</if>> +$He +<<if ($activeSlave.devotion < -20)>> + <<if ($activeSlave.fear < -50)>> fearfully + <<else>> reluctantly + <</if>> +<<elseif ($activeSlave.devotion < 20)>> slowly +<<elseif ($activeSlave.devotion > 20)>> + <<if ($activeSlave.energy > 75)>> hungrily + <<else>> obediently + <</if>> +<<else>> compliantly +<</if>> +begins to +<<if $PC.balls == 2 && $PC.ballsImplant == 3>> lift your kilt, +<<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> lift your kilt, +<<else>> unzip your pants, +<</if>> but you stop her. +A good slave must beg for such an honor. + +<<if ($activeSlave.devotion < -20)>> + <<if ($activeSlave.fear < -50)>> + Tears begin to stream down $his eyes as $he holds $his hands up, pleading for you not to hit $him. You will have to break $him more before $he will be able to comply. + <<else>> $He shakes $his head defiantly. You will have to break $him more before $he will comply. + <</if>> +<<elseif ($activeSlave.devotion < 20)>>"Plea<<s>>e <<Master>>" $he stops for a moment, "may I... May I suck our cock." $His words are insincere, but it's a start. You nod and allow $him to begin. +<<elseif ($activeSlave.devotion > 20)>> "Would it plea<<s>>e you, <<Master>>," $he begins, "if I were to <<s>>uck your cock?" you nod, and command her to begin. +<<elseif ($activeSlave.devotion > 50)>> + <<if ($activeSlave.energy > 95)>> $He eagerly complies, "Plea<<s>>e <<Master>>" $he pleads, "thi<<s>> <<s>>lave + <<if ($activeSlave.fetishStrength > 40)>> + <<switch $activeSlave.fetish>> + <<case "cumslut">> need<<s>> your cock in $his mouth. Your <<s>>lave need<<s>> to drink your cum. Thi<<s>> <<s>>lave + <</switch>> + <</if>> + need<<s>> $his <<Master's>> cock." Your slave is obviously horny for $his Master's cock. "You're a slutty little whore, aren't you? Fine. You may suck my cock." + <<else>> + $He smiles up at you, "Plea<<s>>e <<Master>>," $he pleads earnestly, "Your loyal <<s>>lave need<<s>> to plea<<s>>e $his <<Master>>. Would it plea<<s>>e you to let thi<<s>> <<s>>lave <<s>>uck your cock?" You smile, pleased at her, and order her to begin. + <</if>> +<<else>> $He begs, and you allow $him to begin. +<</if>> +<<if ($activeSlave.devotion > -20)>> + <<if ($activeSlave.oralSkill <= 20)>> + Your slave + <<if ($activeSlave.devotion < 20)>> slowly + <<elseif ($activeSlave.devotion > 20)>> + <<if ($activeSlave.energy > 95)>> hungrily + <<else>> obediently + <</if>> + <</if>> + begins again to + <<if $PC.balls == 2 && $PC.ballsImplant == 3>> lift your kilt, + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> lift your kilt, + <<else>> unzip your pants, + <</if>> + Your member flops out, and $he begins to take it in $his mouth. $He is not very experienced giving blowjobs, and has some trouble using $his hands and mouth simultaniously. + <<if ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>> $His lip piercings feel amazing, making up for her lack of skill. + <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 1)>> $His lip piercings add a nice bit of veriety to an otherwise average blowjob. + <<else>> Despite $his lack of skill, you still relish the power of having your slut at your feet, begging for your cock. You decide to fuck $his facehole instead and grab $his hair pulling $him roughly in to meet your cock. + <</if>> + <<if $PC.balls > 2>>Your massive, heavy balls are so large that they slap your slave in the neck as you fuck $his facehole. + <<elseif $PC.balls == 2 && $PC.ballsImplant == 3>> + Your cantelope sized balls are so large that they slap your slave on the chest as you fuck $his facehole. + <<elseif $PC.balls == 1 && $PC.ballsImplant == 2>> + Your swollen, heavy balls slap your slave on the chin as you fuck $his facehole. + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> + Your massive, heavy balls are so large that they slap your slave in the neck as you fuck $his facehole. + <<elseif $PC.balls == 2 && $PC.ballsImplant == 2>> + Your swollen, heavy balls are so large that they slap your slave on the chest as you fuck $his facehole. + <<elseif $PC.balls == 1 && $PC.ballsImplant == 1>> + You're swollen balls slap your slave on the chin as you fuck $his facehole. + <<else>> + Your balls slap her on the chin. + <</if>> + <<elseif ($activeSlave.oralSkill <= 50)>> + Your slave + <<if ($activeSlave.devotion < 20)>> slowly + <<elseif ($activeSlave.devotion > 20)>> + <<if ($activeSlave.energy > 95)>> hungrily + <<else>> obediently + <</if>> + <</if>> + begins again to + <<if $PC.balls == 2 && $PC.ballsImplant == 3>> lift your kilt, + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> lift your kilt, + <<else>> unzip your pants, + <</if>> + Your member flops out, and $he begins to take it in $his mouth. $His oral skills are above average, and you thoroghly enjoy the sensations as $he practices $his art on your manhood. + <<if ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>> $His lip piercings feel amazing, adding pleasure on top of $his skill. . + <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 1)>> $His lip piercings add a nice bit of veriety to an otherwise above-average blowjob. + <<else>> You feel $him suck as $he strokes your cock and squeezer $his tits, giving you a show. + <</if>> + <<elseif ($activeSlave.oralSkill >= 50)>> Your slave + <<if ($activeSlave.devotion < 20)>> slowly + <<elseif ($activeSlave.devotion > 20)>> + <<if ($activeSlave.energy > 95)>> hungrily + <<else>> obediently + <</if>> + <</if>> + begins again to + <<if $PC.balls == 2 && $PC.ballsImplant == 3>> lift your kilt, + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> lift your kilt, + <<else>> unzip your pants, + <</if>> + Your member flops out, and $he begins to take it in $his mouth. Your slave has fair amount of skill, and begins to work your shaft with $his hand while sucking you with $his mouth. + <<if ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>> $His lip piercings feel amazing, adding even more pleasure to her skillful craft. + <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 1)>> $His lip piercings add a nice bit of veriety to an already above-average blowjob. + <</if>> + <<elseif ($activeSlave.oralSkill >= 90)>> + $He places $his arms behind $his back and + <<if $PC.balls == 2 && $PC.ballsImplant == 3>> lifts your kilt + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> lifts your kilt + <<elseif $PC.balls == 0 && $AGrowth == 2>> lifts your kilt + <<else>> unzips your pants + <</if>> + with $his teeth. Your member flops out, and $he begins to take it in $his mouth, all while keeping $his hands behind $his back. + $He is a master of $his craft, and begins to suck vigorously, all while rolling $his tongue up and down your shaft, expanding and relaxing it alternatingly. + <<if ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing >= 1)>> You would have a hard enough time not cumming even without $his piercings, but with the metal rubbing up and down the shaft of your cock as she rolls her + <<if ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 0)>>studded + <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 1)>>studded and ringed + <</if>> + tongue around your member, you have to force yourself not to cum before $he begs for it. + <</if>> + + <<else>> + Your slave + <<if ($activeSlave.devotion < 20)>> slowly + <<elseif ($activeSlave.devotion > 20)>> + <<if ($activeSlave.energy > 95)>> hungrily + <<else>> obediently + <</if>> + <</if>> + begins again to + <<if $PC.balls == 2 && $PC.ballsImplant == 3>> lift your kilt, + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> lift your kilt, + <<else>> unzip your pants, + <</if>> + Your member flops out, and $he begins to take it in $his mouth. + <<if ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>> $His lip piercings feel amazing, making up for her lack of skill. + <<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 1)>> $His lip piercings add a nice bit of veriety to an otherwise average blowjob. + <</if>> + <</if>> + <<if ($activeSlave.sexualQuirk == "gagfuck queen")>> $He works hard to shove your cock deep into her throat, gagging violently with each thrust. + <</if>> + +Feeling yourself ready to burst, you tell your slut to beg for your delicious cum. With $his mouth full of cock, the words come out muffled "Fpleem cmm mepheh" $His reply is not understandable, but the vibrations on your cock send you over the edge. + + <<if $PC.balls > 2>>Your massive, heavy balls generate so much cum that it fills your slave's mouth, expanding $his stomach and squirting from $his nose and eyes. You remove your cock and spray the rest on $his helpless body. By the end of it all your slave is drenched from head to toe in cum. + <<elseif $PC.balls == 2 && $PC.ballsImplant == 3>> + Your cantelope sized balls slap your slave on the chest, and shoot out load after load of cum. The white juice fills her mouth, squirts from her nose, and continues to spray even after removing it from $his mouth. By the end of it all your slave is drenched from head to toe in cum. + <<elseif $PC.balls == 1 && $PC.ballsImplant == 2>> + Your swollen, heavy balls slap your slave on the chin, and cum shoots down $his throat. + <<elseif $PC.balls > 2 && $PC.ballsImplant > 2>> + Your massive, heavy balls generate so much cum that it fills your slave's mouth, expanding $his stomach and squirting from $his nose and eyes. You remove your cock and spray the rest on $his helpless body. By the end of it all your slave is drenched from head to toe in cum. + <<elseif $PC.balls == 2 && $PC.ballsImplant == 2>> + Your swollen, heavy balls slap your slave on the chest, the white juice fills her mouth, squirts from her nose, and continues to spray even after removing it from $his mouth. By the end of it all your slave is drenched from head to toe in cum. + <<elseif $PC.balls == 1 && $PC.ballsImplant == 1>> + You're swollen balls slap your slave on the chin, and cum shoots down $his throat. + <<else>> + Your balls slap her on the chin as you cum. + <</if>> +<<else>> +You decide that you still want a blowjob, so you signal your other slaves to hold $him in place while you fuck $his helpless facehole. +<</if>> + +You look down at your cum-filled slave as $he awaits further orders. + +<<if (random(1,100) > (100 + $activeSlave.devotion))>> + <<if ($activeSlave.fetish != "cumslut") && ($activeSlave.energy <= 95) && ($activeSlave.sexualFlaw != "hates oral")>> + Being facefucked by force has given $him a @@.red;hatred of oral sex.@@ + <<set $activeSlave.sexualFlaw = "hates oral">> + <</if>> +<<elseif (random(1,100) > (110 - $activeSlave.devotion))>> + <<if ($activeSlave.fetish == "none") && ($activeSlave.behavioralFlaw != "liberated")>> + Feeling the joy of kneeling before such a powerful master and begging for his cock has @@.lightcoral;encouraged $him to be more submissive.@@ + <<set $activeSlave.fetish = "submissive", $activeSlave.fetishKnown = 1>> + <</if>> +<</if>> + +<<if passage() != "Slave Interact">> + <<set _fl = $slaveIndices[$activeSlave.ID]>> + <<if def _fl>> + <<set $slaves[_fl] = $activeSlave>> + <</if>> +<</if>> \ No newline at end of file diff --git a/src/npc/fDance.tw b/src/npc/fDance.tw new file mode 100644 index 0000000000000000000000000000000000000000..424a85f989d3c36549d34e34ccf5cf79200ece84 --- /dev/null +++ b/src/npc/fDance.tw @@ -0,0 +1,359 @@ +:: FDance [nobr] + + + +<<set $desc = SlaveTitle($activeSlave)>> +<<run clearSummaryCache($activeSlave)>> +<<setLocalPronouns $activeSlave>> + +You tell your assistant to summon your slave and set some erotic music. When your slave arrives $he finds the lights in your office flashing club colors. You gesture towards the platform in the center of your office and tell her to dance for you. + +<<if ($activeSlave.entertainmentSkill >= 100)>> Your slave has a level of skill previously unseen in the old world. Even $his blinks have the seductive pull of a goddess. $He slides his ass gracefully unto the stage, then dramatically raises $his elongated legs one at a time onto the platform. Circling to $his knees, $he raises $his ass in the air and glides $his hands up $his legs as $he stands upright. As you watch $him preform, you think how no man of the old world would ever get to see pure sexuality like this. And not only do get to watch $him, you OWN $him. $His body moves like water, and hips that ebbed and flowed as if the tides themselves panged for a rock hard cock to come and take them. You try to go back to your work, but cannot take your eyes off $him for even a second. +<<elseif ($activeSlave.entertainmentSkill >= 80)>> $He takes his rightful place on your stage. $His skill would have only been matched by the best of the best old world erotic dancers, but in your Free City expectations are high. $He dances with seduction in every move, alternating $his style between everything from bellydancing to club twerking, and each with the skill level of a trained professional. You resume your work, but often find yourself pulled back in by the tide of $his rolling hips. +<<elseif ($activeSlave.entertainmentSkill >= 60)>> $He goes to take $his place on your stage and dance for $his Master. $He has impressive skill and would have been a top-tier dancer in the old world. One of the many benefits of being a leader of a Free City is the ability to work in an atmosphere of pure servitiude. You smile as you continue your work in an office an old world man could only dream of. +<<elseif ($activeSlave.entertainmentSkill >= 40)>> $He ascends to the platform and begins to grind at the pole. Despite being an average entertainer, it is clear thet $he is doing $his best. You enjoy the new ambiance while continuing your work. +<<elseif ($activeSlave.entertainmentSkill >= 20)>> $He climbs up onto the platform and grabs onto the pole. $He is still learning the nuances of seductive dance, but at least able to move with the rhythm. It isn't long before you are distracted with work, leaving your slave to continue to dance without an audience, and unable to stop until you command it. +<<else>> $He unceremoniously climbs on the platform and begins to dance. Or, at least, $his best attempt at dancing. $His arms flail about awkwardly as $he crouches and straightens off-beat to the music. You try to tune $him out and get some work done. +<</if>> + + +The atmosphere of your office is a testiment to masculine oppulance. Few men in the old world would have the pleasure of completing their work while an attractive woman flaunts herself for his pleasure. +You allow the situation to continue for about an hour, before deciding it's time to escelate. +You look up once more at your slave and congratulate yourself for choosing such a delicious outfit for $him. +<<switch $activeSlave.clothes>> + <<case "uncomfortable straps">> + <<if $activeSlave.boobs < 300>> + The rings constantly rub against $his chest and force $his nipples to stick out. + <<else>> + The strap over $his tits presses the soft flesh, and the ring around each nipple + <<if $activeSlave.nipples == "fuckable">> + forces them open. + <<else>> + forces them to stick out. + <</if>> + <</if>> + <<case "shibari ropes">> + <<if $activeSlave.boobs < 300>> + The ropes binding $his chest shift slightly with every step, since $he lacks any breasts to hold them in place. + <<else>> + The ropes binding $his chest dig into the soft flesh as $he moves. + <</if>> + <<case "attractive lingerie for a pregnant women">> + <<if $activeSlave.boobs < 300>> + The bulge of $his $activeSlave.nipples nipples can be seen under the taut silk. + <<else>> + $His silken bra causes $his breasts to bulge around them. + <</if>> + <<case "a maternity dress">> + <<if $activeSlave.boobs < 300>> + $His low cut dress was made with breasts in mind; every step $he takes risks it sliding down and revealing $his $activeSlave.nipples nipples. + <<else>> + $His low cut dress shows ample cleavage and is made to be easy to pull down. + <</if>> + <<case "stretch pants and a crop-top">> + <<if $activeSlave.boobs < 300>> + $His flat chest makes the perfect canvas to read $his crop-top. + <<else>> + $His crop-top tightly clings to $his breasts and moves along with them. $His jiggling cleavage distracts from the writing on $his tits. + <</if>> + <<case "restrictive latex">> + <<if $activeSlave.boobs < 300>> + $His lack of breasts draws your eyes straight to $his exposed nipples. + <<else>> + $His tits stick out through $his latex outfit. + <</if>> + <<case "attractive lingerie">> + $His pretty white lace bra has thoughtful cuts that tastefully let $his nipples stick through. + <<case "a succubus outfit">> + <<if $activeSlave.boobs < 300>> + $His succubus outfit presents this sex demon's flat chest, inviting a damning fondle. + <<else>> + $His succubus outfit presents this sex demon's breasts, inviting a damning fondle. + <</if>> + <<case "a slutty maid outfit">> + <<if $activeSlave.boobs < 300>> + $His maid outfit covers $his flat chest with a thin white blouse designed to be easy to pull down. + <<else>> + $His maid outfit covers $his breasts with a thin white blouse designed to be easy to pull down. + <</if>> + <<case "a nice maid outfit">> + <<if $activeSlave.boobs < 300>> + $His maid outfit covers $his flat chest demurely, offering the diverting task of pulling it off $him. + <<else>> + $His maid outfit covers $his breasts demurely, offering the diverting task of pulling it off $him. + <</if>> + <<case "a monokini">> + The straps of $his monokini cross in the center of $his chest, leaving the rest of $his <<if $activeSlave.boobs < 300>>flat <</if>>breasts naked. + <<case "a cybersuit">> + $His bodysuit is tight enough to show off <<if $activeSlave.boobs < 300>>just how flat $he is<<else>>every contour of $his chest<</if>>. + <<case "a string bikini">> + $His string bikini covers only $his nipples, leaving the remainder of $his <<if $activeSlave.boobs < 300>>flat chest<<else>>breasts<</if>> naked. + <<case "a scalemail bikini">> + $His scalemail bikini covers <<if $activeSlave.boobs < 300>>all of $his flat chest.<<elseif $activeSlave.boobs < 700>>$his breasts entirely.<<elseif $activeSlave.boobs <1500>>much of $his breasts, while still emphasizing them.<<else>>the front of $his breasts.<</if>> . + <<case "clubslut netting">> + As $he moves, the weave of the netting over $his chest slips back and forth across $his nipples. + <<case "a cheerleader outfit">> + <<if $activeSlave.boobs < 300>> + As $he moves, the tight fabric rubs across $his obvious nipples. + <<else>> + As $he moves, $his chest threatens to fall out of $his cheerleader top. + <</if>> + <<case "an apron">> + <<if $activeSlave.boobs < 300>> + As $he moves, $his apron threatens to bounce off $his flat chest and expose $his nipples. + <<else>> + As $he moves, $his apron provides excellent views of the sides of $his breasts. + <</if>> + <<case "cutoffs and a t-shirt">> + <<if $activeSlave.boobs < 300>> + $His non-existent breasts are bare under $his t-shirt; not that you can really tell since they lack motion completely. + <<else>> + $His tits are bare under $his t-shirt, so movement gives delicious hints of their motion. + <</if>> + <<case "spats and a tank top">> + <<if $activeSlave.boobs < 300>> + $His flat chest makes $his form-fitting tank top look as if it's clinging to a tube. + <<else>> + $His breasts bounce slightly under $his tank top as $he moves. + <</if>> + <<case "a slutty outfit">> + <<if (random(1,100) > 50)>> + For today's slutty outfit $he's chosen a handkerchief top that occasionally comes untied and <<if $activeSlave.boobs < 300>>reveals $his flat chest<<else>>spills $his breasts out naked<</if>>. + <<else>> + For today's slutty outfit $he's chosen a halter top cut so low that <<if $activeSlave.boobs < 300>>it occasionally slips down $his flat chest to reveal a nipple<<else>>$his breasts occasionally pop out<</if>>. + <</if>> + <<case "a slave gown">> + $His gorgeous dress has thoughtful cuts that tastefully bares $his <<if $activeSlave.boobs < 300>>non-existent <</if>>breasts. + <<case "slutty business attire">> + $His suit jacket and blouse are low enough to show off a lot of boob<<if $activeSlave.boobs < 300>>, or they would, had $he had any<</if>>. + <<case "nice business attire">> + $His suit jacket and blouse are businesslike, but they could be removed easily enough. + <<case "a halter top dress">> + $His beautiful halter top dress almost seems to be sculpted around $his body. + <<case "a ball gown">> + $His fabulous silken ball gown is tailored to accentuate the shape of $his <<if $activeSlave.boobs < 300>>flat chest<<else>>breasts<</if>>. + <<case "a slutty nurse outfit">> + $His jacket presents $his <<if $activeSlave.boobs < 300>>nipples<<else>>breasts<</if>> to be ogled. + <<case "a schoolgirl outfit">> + $His blouse lewdly displays $his <<if $activeSlave.boobs < 300>>$activeSlave.nipples nipples<<else>>breasts<</if>>. + <<case "a kimono">> + $His kimono is clearly designed to accentuate $his <<if $activeSlave.boobs < 300>>flat chest<<else>>breasts<</if>>. + <<case "a hijab and abaya">> + $His abaya covers $his <<if $activeSlave.boobs < 300>>flat chest<<else>>breasts<</if>> totally. + <<case "a huipil">> + $His huipil hugs the curves of $his <<if $activeSlave.boobs < 300>>$activeSlave.nipples nipples<<else>>breasts<</if>>. + <<case "battledress">> + <<if $activeSlave.boobs < 300>> + As $he moves, you can occasionally spot $his lack of undergarments. + <<else>> + $His tank top and sports bra support rather than flatter $his breasts. + <</if>> + <<case "a fallen nuns habit">> + $His slutty nun outfit leaves $his <<if $activeSlave.boobs < 300>>flat <</if>>tits sinfully bare. + <<case "a chattel habit">> + $His chattel habit leaves $his <<if $activeSlave.boobs < 300>>flat <</if>>tits virtuously bare. + <<case "a penitent nuns habit">> + $His habit chafes $his nipples so harshly that it would probably be a relief to $his to have it stripped off $his. + <<case "a comfortable bodysuit">> + $His bodysuit is tight enough to show off <<if $activeSlave.boobs < 300>>just how flat $he is<<else>>every contour of $his chest<</if>>. + <<case "a latex catsuit">> + $His latex catsuit is tight enough to show off <<if $activeSlave.boobs < 300>>just how flat $he is<<else>>every contour of $his chest<</if>>. + <<case "a military uniform">> + $His uniform tunic and shirt are formal, but they could be removed easily enough. + <<case "a schutzstaffel uniform">> + $His uniform tunic and shirt are formal, but they could be removed easily enough. + <<case "a slutty schutzstaffel uniform">> + $His uniform tunic and shirt are formal, but they could be removed easily enough. + <<case "a red army uniform">> + $His uniform tunic and shirt are formal, but they could be removed easily enough. + <<case "a nice nurse outfit">> + $His nurse's outfit is functional, but they could be removed easily enough. + <<case "a mini dress">> + $His mini dress is tight enough to show off <<if $activeSlave.boobs < 300>>just how flat $he is<<else>>every contour of $his chest<</if>>. + <<case "a leotard">> + <<if $activeSlave.boobs < 300>> + $His leotard draws the eye straight to $his obvious nipples, since it lacks anything else to show off. + <<else>> + $His leotard is tight enough that it not only hugs $his breasts, but shows off $his nipples. + <</if>> + <<case "a bunny outfit">> + <<if $activeSlave.boobs < 300>> + With no breasts to speak of, $his strapless corset teddy manages to look rather slutty. + <<else>> + $His strapless corset teddy presents $his boobs while still managing to look a bit classy. + <</if>> + <<case "harem gauze">> + $His <<if $activeSlave.boobs < 300>>non-existent <</if>>breasts are clearly visible through the thin gauze that covers them. + <<case "slutty jewelry">> + <<if $activeSlave.boobs < 300>> + The light chain across $his non-existent breasts is the only thing on $his chest capable of moving as $he walks. + <<else>> + The light chain under $his breasts accentuates their natural movement. + <</if>> + <<default>> + <<if ($activeSlave.vaginalAccessory == "chastity belt")>> + Since $he's wearing nothing but a chastity belt, $his <<if $activeSlave.boobs < 300>>non-existent <</if>>breasts are delightfully naked. + <<else>> + $His naked <<if $activeSlave.boobs < 300>> flat chest and nipples<<else>>breasts<</if>> catch your eye. + <</if>> + <</switch>> +You tell your slave that it's time to encorperate some stripping into $his dance. + +<<if ($activeSlave.sexualFlaw == "shamefast")>> $He immediately begins to tear up at the thought of being naked. $His shame is obvious to you, and you remind $him that $his comfort is not your concern. + <<if ($activeSlave.entertainmentSkill >= 100)>> Even though $he is crippled by shame, your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. With tears still streaming down $his face, $he begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose, even as $he sniffles at the shame of revealing $himself for you. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Even thoough $he is crippled by shame, your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attention, but whenever $he sees that you are becoming distracted $he ups the ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>> Your slave works hard to keep with the rhythm while removing articles of clothing. $His attempts are inhibbitted by $his shame, which makes $him shudder and cry whenever it's time for another article of clothing to come off. + <<elseif ($activeSlave.entertainmentnSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $He is too concerned with protecting $his nakedness to be obedient and attractive simultaniously, and you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able to keep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to shamefully remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> +<<elseif ($activeSlave.sexualQuirk == "tease")>> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. Being a tease, $he is able to maintain an attractive blend of shame and arousal at the thought of being naked before you, and this inspires $him to tease you endlessly. With cheeks still flushed and red, $he begins by writhing $his hips and rolling $his ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose, even as $he blushes at the shame and arousal of revealing $himself for you. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. Being a tease, $he is able to maintain an attractive blend of shame and arousal at the thought of being naked before you, and this inspires $him to tease you endlessly. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. The true entertainment comes from $his teasing nature, which makes $him blush cutely anytime $he shows a bit of skin. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attention, but whenever $he sees that you are becoming distracted $he ups the ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. $His attempts are made more entertaining by $his shame, which makes $him redden and blush whenever it's time for another article of clothing to come off. Even though $his entertainment skill needs improving, you genuinely enjoy the teasing way $he tugs at $his wear and makes you anticipate the removal of each article. + <<elseif ($activeSlave.entertainmentnSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $He is a tease, which adds a bit of value, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able to keep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> +<<elseif ($activeSlave.behavioralFlaw == "odd")>> + <<if ($activeSlave.entertainmentSkill >= 100)>> Even though $he is extremely odd, your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. With her ass cheeks straddling the pole $he begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Even thoough $he is extremely odd, your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attention, but whenever $he sees that you are becoming distracted $he shouts wildly before upping the ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>> Your slave works hard to keep with the rhythm while removing articles of clothing. $His attempts are inhibbitted by $his oddness, which results in $him crouching and squeeling at inappropriate times. $He wonders aloud and you instruct $him to be silent the remainder of the dance. + <<elseif ($activeSlave.entertainmentnSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $He is so odd that $his moves more resembles the chicken dance than any form of erotic dancing. You find yourself unable to look away, and for all the wrong reasons. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able to keep even the simplest of rhythms. Deciding that the rhythm is to blame, $he decides instead to sing $his own song to strip to. $He proceeds to hum string of off beat notes peppered with random words and scats, all punctuated by the sloppy kicking of clothes from $his ankles. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to roughly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> +<<elseif ($activeSlave.sexualFlaw == "attention whore")>> + As an attentrion whore, this is what $he lives for. + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. Being a an attention whore, $he is obsessed with attracting the sexual arousal of others. $He begins by writhing $his hips and rolling $his ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose, even though $he is also fulfilled by the event $he knows that your desire is all that matters. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. Being an attention whore, $he is obsessed with attracting the sexual arousal of others. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He surely wishes $he wer a better entertainer soyou would call on $him to strip morte often. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. The true entertainment comes from $his teasing nature, which makes $him blush cutely anytime $he shows a bit of skin. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attention, but whenever $he sees that you are becoming distracted $he ups the ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. $His attempts are overshadowed by $his clear desire to be looked at, and you can tell $he is distracted by this. + <<elseif ($activeSlave.entertainmentnSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $He is trying much too hard to get your attention, and is visibly angered whenever $he sees that you are not aroused by $his fumblings. You find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able to keep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to over-dramatically remove an article of clothing. After each article removed $he stops and looks at you to make sure you're watching. $His clear desire to be looked at makes $him more self-conscious which offsets the rhythm of the dance even more. $He decides to pick up the pace, aiming to be naked as quickly as possible so that you can admire $his body. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> +<<else>> + <<if ($activeSlave.fetishKnown == 1)>> + <<switch $activeSlave.fetish>> + <<case "submissive">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "dom">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "sadist">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "masochist">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "cumslut">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "humiliation">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "buttslut">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "pregnancy">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<case "boobs">> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <<if ($activeSlave.boobs >= 10000)>> weighty mammaries + <<elseif ($activeSlave.boobs >= 2000)>> cumbersome udders + <<elseif ($activeSlave.boobs >= 1000)>> massive slave tits + <<elseif ($activeSlave.boobs >= 800)>> forward-thrust breasts + <<elseif ($activeSlave.boobs >= 500)>> meager chest + <<elseif ($activeSlave.boobs <= 400)>> pathetic slave boobs + <<else>> tits + <</if>> + across your body as $he goes down. + <<default>> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <</switch>> + <<else>> + <<if ($activeSlave.entertainmentSkill >= 100)>> Your slave is a masterful entertainer, able to keep anyone entertained for even the most lengthy of strip teases. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he knows how to fulfill $his purpose. You keep trying to get back to work, but your slave's movements are so enthralling that you cannot seem to break free. + <<elseif ($activeSlave.entertainmentSkill >= 80)>> Your slave is a skilled entertainer, well above average. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He knows how to use $his hips and ass to draw and keep your attention while slowly moving up to $his chest. <<= boobWatch($activeSlave)>> $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. + <<elseif ($activeSlave.entertainmentSkill >= 60)>> Your slave is a practiced entertainer, not masterful but still able to give an arousing preformance. $He begins by writhing $his hips and rolling her ass. <<ButtDescription>> $He is able to use $his hips and ass to draw your attention before suddenly moving up to $his chest. <<= boobWatch($activeSlave)>> $He isn't able to fully keep your attentiona, but whenever $he sees that you are becoming distracted $he ups thjje ante to draw you back in. $His body is nothing more than an object for your desire, and $he is learning to fulfill $his purpose. $He does her best to direct your arousal onto $his body. + <<elseif ($activeSlave.entertainmentSkill >= 40)>>Your slave works hard to keep with the rhythm while removing articles of clothing. + <<elseif ($activeSlave.entertainmentSkill >= 20)>> Your slave is not a skilled preformer, and $his movements are uninspired. $His movements are still attractive, but you find yourself becoming distracted, $his dance not enough to keep your attention or draw you back. You take out your tablet and make a note that this slave will need to practice $his seduction if $he is to be allowed to dance for you again. Even without skill you still can admire $his body. <<= boobWatch($activeSlave)>><<ButtDescription>> You imagine how much more attractive $his tits and ass could be if $he knew how to move them right. + <<else>> Your slave has no skills to speak of, and isn't able tokeep even the simplest of rhythms. $He fumbles about awkwardly and clumsily, stopping abrubtly every so often to gracelessly remove an article of clothing. You decide to find $his lack of skill amusing, and allow $him to continue practicing while you resume your work. + <</if>> + <</if>> + +<</if>> + +Once the last piece of clothing has hit the floor you let your little slut dance naked a little while longer while you finish your last report. Once you have gotten enough of $his dancing you snap your fingers and your slave hurries to your side and drops to $his knees, awaiting further orders. + +<<if (random(1,100) > (100 + $activeSlave.devotion))>> + <<if ($activeSlave.fetish != "humiliation") && ($activeSlave.energy <= 95) && ($activeSlave.sexualFlaw != "shamefast")>> + Being facefucked by force has given $him a @@.red;desire to always be clothed.@@ + <<set $activeSlave.sexualFlaw = "shamefast">> + <</if>> +<<elseif (random(1,100) > (110 - $activeSlave.devotion))>> + <<if ($activeSlave.fetish == "none") && ($activeSlave.sexualFlaw != "shamefast")>> + Being on display for your pleasure has @@.lightcoral;encouraged $him to focus exposing $himself more often.@@ + <<set $activeSlave.fetish = "humiliation", $activeSlave.fetishKnown = 1>> + <</if>> +<</if>> + +<<if passage() != "Slave Interact">> + <<set _fl = $slaveIndices[$activeSlave.ID]>> + <<if def _fl>> + <<set $slaves[_fl] = $activeSlave>> + <</if>> +<</if>> 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/pregmod/saClothes.tw b/src/pregmod/saClothes.tw index c8478b59d073d0189216ccc8ebe75bd3be62f88f..83f0f74c83c61be9f421819d49f88a88f7835146 100644 --- a/src/pregmod/saClothes.tw +++ b/src/pregmod/saClothes.tw @@ -408,13 +408,13 @@ <<if ($slaves[$i].collar == "dildo gag")>> <<if $slaves[$i].skill.oral <= 10>> Living gagged by a dildo, $he can't help but get better at having things down $his throat. - <<set $skillIncrease = 5>><<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], 5)>> <</if>> <</if>> <<if ($slaves[$i].collar == "massive dildo gag")>> <<if $slaves[$i].skill.oral < 75>> Living gagged by such an immense dildo, $he can't help but get even better at having giant things rammed down $his throat. - <<set $skillIncrease = 5>><<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], 5)>> <</if>> <</if>> <</if>> diff --git a/src/pregmod/theBlackMarket.tw b/src/pregmod/theBlackMarket.tw index fc975ea39ff0b53452e0c1dfcfe6bb367474875c..c1296c69b739963b3e692e3746f6322b47bebf9d 100644 --- a/src/pregmod/theBlackMarket.tw +++ b/src/pregmod/theBlackMarket.tw @@ -12,7 +12,8 @@ You board your VTOL bird for the trip to the current location of the particularl <br><br> Once inside, you are able to fully absorb in the sights and sounds of the market proper. All sorts of items are available for purchase, from exotic beasts that may very well be the last of their kind, to the most lethal of weaponry both old and new, and even luxuries long gone. Despite the overbearing security, one's wallet can easily be emptied in this place. -<br>There is quite the selection of refreshments available, you could always shift your orders from $PC.refreshment to something new. You want <<textbox "$PC.refreshment" $PC.refreshment "The Black Market">> and you want to + +<br><br>There is quite the selection of refreshments available, you could always shift your orders from $PC.refreshment to something new. You want <<textbox "$PC.refreshment" $PC.refreshment "The Black Market">> and you want to ''<<if $PC.refreshmentType == 0>>smoke<<elseif $PC.refreshmentType == 1>>drink<<elseif $PC.refreshmentType == 2>>eat<<elseif $PC.refreshmentType == 3>>snort<<elseif $PC.refreshmentType == 4>>inject<<elseif $PC.refreshmentType == 5>>pop<<else>>orally dissolve<</if>> it.'' | <<if $PC.refreshmentType != 0>>[[smoke it.|The Black Market][$PC.refreshmentType = 0]] |<</if>> <<if $PC.refreshmentType != 1>>[[drink it.|The Black Market][$PC.refreshmentType = 1]] |<</if>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index b88d1eda80fce7b177dfac19718e49d2b233d8a4..7e276538b6829860b754c900cadbef3b9dc7f50b 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>> @@ -3690,6 +3652,9 @@ Done! <<if ndef $abbreviateHormoneBalance>> <<set $abbreviateHormoneBalance = 2>> <</if>> +<<if def $skillIncrease>> + <<unset $skillIncrease>> +<</if>> <<if $releaseID < 1043>> <<for _rule range $defaultRules>> @@ -3713,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/RESS.tw b/src/uncategorized/RESS.tw index 28f7b7b922b003fa4d15932a9ce49d5f10e2e7d2..b63f2b979b304e72b007882bde361518a21f9e6c 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -6956,14 +6956,14 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<if $activeSlave.nipples == "fuckable">> <<set $activeSlave.counter.mammary += 2, $mammaryTotal += 2>> <</if>> - <<set $skillIncrease = 10>> + <<set _skillIncrease = 10>> <<if $activeSlave.skill.anal <= 10 && canDoAnal($activeSlave)>> $He can't help but learn how to take a rough buttfuck. - <<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, _skillIncrease)>> <</if>> <<if $activeSlave.skill.oral <= 10>> $He can't help but learn how to deepthroat. - <<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, _skillIncrease)>> <</if>> <</replace>> <</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take virginity//<</if>> @@ -7596,7 +7596,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address <</if>> You patiently explain that taking <<if $PC.dick == 0>>anything you feel like inserting into $his backdoor<<else>>your cock<</if>> is $his duty, and begin to massage $his sphincter open with a single gentle finger. $He doesn't enjoy the ensuing assfuck, but $he doesn't truly hate it either and @@.hotpink;begins to hope@@ that being your butt slave won't be so painful after all. <<set $activeSlave.devotion += 4>> - <<set $skillIncrease = 10>><<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, 10)>> <<= AnalVCheck()>> <</replace>> <</link>> @@ -9580,7 +9580,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address <<EventNameDelink $activeSlave>> <<replace "#result">> $He obeys your orders to keep $his hands off $his dick, but can't hide $his disappointment and frustration. You keep a close watch on $him, and buttfuck $him every chance you get, teaching $him the finer points of taking a <<if $PC.dick == 0>>strap-on<<else>>dick<</if>> up the butt. You focus entirely on your pleasure, teaching $him how to use $his <<if ($activeSlave.anus > 2)>>gaping<<elseif ($activeSlave.anus > 1)>>loose<<else>>tight<</if>> anal ring to extract orgasms from cocks. This experience was hard for $him but has increased $his anal skill. - <<set $skillIncrease = 10>><<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, 10)>> <<= AnalVCheck(9)>> <</replace>> <</link>> @@ -15166,7 +15166,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address <<replace "#result">> Simple problems require simple solutions — $he'll get fucked in the mouth until $he either gets over $his hang-ups about oral or learns to hide them. You drag the protesting $activeSlave.slaveName out in public, chain $him low so that $his mouth is available, and tell $him that $he'll suck dicks until $he gets through five in a row without grimacing, gagging, or resisting. You have a comfortable chair brought out to you and settle in to watch the show. $activeSlave.slaveName tries, $he really does. But when word gets out as to the conditions of $his enslavement, $his users take a perverse enjoyment in being rougher than usual to evoke the exact reactions $he's trying to avoid. By the third failed streak, you've started to grow bored of the spectacle, but luckily you find entertainment in conversation with those who have already been entertained by poor $activeSlave.slaveName. Before long more chairs have been brought up and an impromptu salon has been set up alongside the blowbang line. By the sixth failed streak, an enterprising citizen has set up a small bar and is serving drinks. By the ninth, you've delegated watching $activeSlave.slaveName to your assistant. You personally break the eleventh streak after $he reached four, to general acclaim from your newfound friends and a toast to your virility. - When the fourteenth streak is finally successful, there are serious talks about making these blowbang salons a regular occurrence and some backslapping directed towards you for your innovation in genteel hedonism. While you seriously doubt $activeSlave.slaveName enjoys oral sex any more than $he did at the start of the day, $he's certainly @@.green;learned to keep $his feelings on the matter to $himself.@@ $He did, however, @@.red;have quite a rough time@@ of it<<if $activeSlave.skill.oral <= 30>>, though $he did learn a thing or two about sucking dick.<<set $skillIncrease = 10>><<OralSkillIncrease $activeSlave>><<else>>.<</if>> And last of all, you and $activeSlave.slaveName did make @@.green;quite a good impression@@ today, though for widely differing reasons. + When the fourteenth streak is finally successful, there are serious talks about making these blowbang salons a regular occurrence and some backslapping directed towards you for your innovation in genteel hedonism. While you seriously doubt $activeSlave.slaveName enjoys oral sex any more than $he did at the start of the day, $he's certainly @@.green;learned to keep $his feelings on the matter to $himself.@@ $He did, however, @@.red;have quite a rough time@@ of it<<if $activeSlave.skill.oral <= 30>>, though $he did learn a thing or two about sucking dick.<<= SkillIncrease.Oral($activeSlave, 10)>><<else>>.<</if>> And last of all, you and $activeSlave.slaveName did make @@.green;quite a good impression@@ today, though for widely differing reasons. <<set $activeSlave.health -= 10, $activeSlave.sexualFlaw = "none">> <<set _oralSeed = random(65,80)>> <<set $activeSlave.counter.oral += _oralSeed, $activeSlave.counter.publicUse += _oralSeed, $oralTotal += _oralSeed>> @@ -19695,7 +19695,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address <<replace "#result">> You tell $him $he'll get fucked in the mouth until $he either gets over the idea of being special for $his education or until all $his learning is fucked out of $his head. You drag the protesting $activeSlave.slaveName out into a public plaza, restrain $him in stocks so that $his mouth is available, and inform the gathering crowd of citizens that this particular slave thinks $himself more than a fuckhole because of some fancy 'education'. <br><br> - When you return later in the evening, it becomes abundantly clear that your citizenry taught $activeSlave.slaveName a harsh lesson about a slave's place in $arcologies[0].name. $activeSlave.slaveName has certainly @@.green;learned to keep any pretentious thoughts about $his education in $his head.@@ $He did, however, @@.red;have quite a rough time@@ sucking all those dicks<<if $activeSlave.skill.oral <= 30>>, though $he did learn about sucking dick, so $he can't claim enslavement isn't educational.<<set $skillIncrease = 10>><<OralSkillIncrease $activeSlave>><<else>>.<</if>> And last of all, you and $activeSlave.slaveName did make @@.green;quite a good impression@@ today, though for widely differing reasons. + When you return later in the evening, it becomes abundantly clear that your citizenry taught $activeSlave.slaveName a harsh lesson about a slave's place in $arcologies[0].name. $activeSlave.slaveName has certainly @@.green;learned to keep any pretentious thoughts about $his education in $his head.@@ $He did, however, @@.red;have quite a rough time@@ sucking all those dicks<<if $activeSlave.skill.oral <= 30>>, though $he did learn about sucking dick, so $he can't claim enslavement isn't educational.<<= SkillIncrease.Oral($activeSlave, 10)>><<else>>.<</if>> And last of all, you and $activeSlave.slaveName did make @@.green;quite a good impression@@ today, though for widely differing reasons. <<set $activeSlave.health -= 10>> <<set _blowBang = random(65,80)>> <<set $activeSlave.counter.oral += _blowBang, $activeSlave.counter.publicUse += _blowBang, $oralTotal += _blowBang>> 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/dairyReport.tw b/src/uncategorized/dairyReport.tw index 8dc3f1ead0e9fb0439fcd18d1facd59273e344b1..a33099f30a0cfb7caa0fe106d62f723ee8027a7e 100644 --- a/src/uncategorized/dairyReport.tw +++ b/src/uncategorized/dairyReport.tw @@ -196,8 +196,7 @@ $His skilled tongue helps $him keep $his cattle happy. <</if>> <<if ($Milkmaid.skill.oral < 90)>> - <<set $skillIncrease = 3>> - <<OralSkillIncrease $slaves[_FLs]>> + <<= SkillIncrease.Oral($slaves[_FLs], 3)>> <</if>> <<if ($Milkmaid.sexualQuirk == "caring")>> <<set $milkmaidTrustBonus++>> 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/hgApplication.tw b/src/uncategorized/hgApplication.tw index 51ed0e9ec32604d5bece1f313cc62f642a659561..ca84ef0b93fb21ac2c28b0e2e6a86170e69f9a53 100644 --- a/src/uncategorized/hgApplication.tw +++ b/src/uncategorized/hgApplication.tw @@ -232,68 +232,68 @@ $He punishes $activeSlave.slaveName whenever $he sees _him2 breaking the rules y <<set $activeSlave.training = 0>> <<if ($HeadGirl.fetish == "cumslut") && ($HeadGirl.fetishStrength > 60)>> In spare moments $he teaches $activeSlave.slaveName how to suck cocks, cunts, and assholes. $His enthusiasm for oral sex is infectious. $activeSlave.slaveName's @@.green;oral skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, random(5,10))>> <<elseif ($HeadGirl.dick > 0) && canPenetrate($HeadGirl)>> In spare moments $he teaches $activeSlave.slaveName how to suck cocks, cunts, and assholes. Your Head Girl uses $his penis as an effective teaching tool. $activeSlave.slaveName's @@.green;oral skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, random(5,10))>> <<elseif ($HeadGirl.clit > 2)>> In spare moments $he teaches $activeSlave.slaveName how to suck cocks, cunts, and assholes. Your Head Girl uses $his pseudophallus-sized clit as an effective teaching tool. $activeSlave.slaveName's @@.green;oral skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, random(5,10))>> <<else>> In spare moments $he teaches $activeSlave.slaveName how to suck cocks, cunts, and assholes. $activeSlave.slaveName's @@.green;oral skills have improved.@@ <</if>> -<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<OralSkillIncrease $activeSlave>> +<<= SkillIncrease.Oral($activeSlave, Math.ceil(_effectiveness/10))>> <<elseif $HGtraining == "anal skill">> <<set $activeSlave.training = 0>> <<if ($HeadGirl.fetish == "buttslut") && ($HeadGirl.fetishStrength > 60)>> In spare moments $he teaches $activeSlave.slaveName how to take it up the ass. Your Head Girl's enthusiasm for backdoor loving is infectious. $activeSlave.slaveName's @@.green;anal skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, random(5,10))>> <<elseif ($HeadGirl.dick > 0) && canPenetrate($HeadGirl)>> In spare moments $he teaches $activeSlave.slaveName how to take a dick up the butt. Your Head Girl uses $his penis as an effective teaching tool. $activeSlave.slaveName's @@.green;anal skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, random(5,10))>> <<elseif ($HeadGirl.clit > 2)>> In spare moments $he teaches $activeSlave.slaveName how to take a phallus up the butt. Your Head Girl uses $his pseudophallus-sized clit as an effective teaching tool. $activeSlave.slaveName's @@.green;anal skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, random(5,10))>> <<else>> In spare moments $he teaches $activeSlave.slaveName how to take a dick up the butt. $activeSlave.slaveName's @@.green;anal skills have improved.@@ <</if>> -<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<AnalSkillIncrease $activeSlave>> +<<= SkillIncrease.Anal($activeSlave, Math.ceil(_effectiveness/10))>> <<elseif $HGtraining == "fuck skill">> <<set $activeSlave.training = 0>> <<if ($HeadGirl.energy > 95)>> In spare moments $he teaches $activeSlave.slaveName how to take a dick. Your Head Girl's enthusiasm for sex is infectious. $activeSlave.slaveName's @@.green;vanilla sex skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<VaginalSkillIncrease $activeSlave>> + <<= SkillIncrease.Vaginal($activeSlave, random(5,10))>> <<elseif ($HeadGirl.dick > 0) && canPenetrate($HeadGirl)>> In spare moments $he teaches $activeSlave.slaveName how to take a dick. Your Head Girl uses $his penis as an effective teaching tool. $activeSlave.slaveName's @@.green;vanilla sex skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<VaginalSkillIncrease $activeSlave>> + <<= SkillIncrease.Vaginal($activeSlave, random(5,10))>> <<elseif ($HeadGirl.clit > 2)>> In spare moments $he teaches $activeSlave.slaveName how to take a phallus. Your Head Girl uses $his pseudophallus-sized clit as an effective teaching tool. $activeSlave.slaveName's @@.green;vanilla sex skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<VaginalSkillIncrease $activeSlave>> + <<= SkillIncrease.Vaginal($activeSlave, random(5,10))>> <<else>> In spare moments $he teaches $activeSlave.slaveName how to take a dick. $activeSlave.slaveName's @@.green;vanilla sex skills have improved.@@ <</if>> -<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<VaginalSkillIncrease $activeSlave>> +<<= SkillIncrease.Vaginal($activeSlave, Math.ceil(_effectiveness/10))>> <<elseif $HGtraining == "whore skill">> <<set $activeSlave.training = 0>> In spare moments $he teaches $activeSlave.slaveName how to prostitute _himself2. $activeSlave.slaveName's @@.green;whoring skills have improved.@@ -<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<WhoreSkillIncrease $activeSlave>> +<<= SkillIncrease.Whore($activeSlave, Math.ceil(_effectiveness/10))>> <<elseif $HGtraining == "entertain skill">> <<set $activeSlave.training = 0>> <<if ($HeadGirl.fetish == "humiliation") && ($HeadGirl.fetishStrength > 60)>> In spare moments $he teaches $activeSlave.slaveName how to entertain. Your Head Girl's enthusiasm for public display is infectious. $activeSlave.slaveName's @@.green;entertainment skills have improved.@@ - <<set $skillIncrease = random(5,10)>><<EntertainSkillIncrease $activeSlave>> + <<= SkillIncrease.Entertain($activeSlave, random(5,10))>> <<else>> In spare moments $he teaches $activeSlave.slaveName how to entertain. $activeSlave.slaveName's @@.green;entertainment skills have improved.@@ <</if>> -<<set $skillIncrease = Math.ceil(_effectiveness/10)>><<EntertainSkillIncrease $activeSlave>> +<<= SkillIncrease.Entertain($activeSlave, Math.ceil(_effectiveness/10))>> <</if>> <</if>> 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/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw index 45395352ecd534382ba5b5df93d8019a235dc3ba..d7bad0c4257b1d8e2253a3cefa811e984eab0cd2 100644 --- a/src/uncategorized/ptWorkaround.tw +++ b/src/uncategorized/ptWorkaround.tw @@ -329,7 +329,6 @@ You are well-versed in sexual techniques and how to employ them, giving you an edge in teaching $him. <<set _trainingEfficiency += 10>> <</if>> - <<set $skillIncrease = _trainingEfficiency>> <<if $activeSlave.devotion > 50>> $He's devoted to you, making sexual training much easier. <<elseif $activeSlave.devotion > 20>> @@ -344,43 +343,43 @@ <</if>> <<if $activeSlave.skill.oral <= 10>> Since $he's orally unskilled, you start with $his mouth. $He <<if $PC.dick == 1>>sucks your dick<<else>>eats you out<</if>>, of course, but $his training is more creative than just that. You give $him delicious hard candies to suck and feed $him phallic fruits and vegetables that $he must deepthroat before $he can eat. As $his skill improves, $he wears a gag with an inward-facing dildo, which is swapped out for a bigger size every so often. You only let $him orgasm when $he's sucking, and before long $he's associating giving someone oral pleasure with experiencing pleasure $himself. @@.lime;$His oral skills have improved.@@ - <<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, _trainingEfficiency)>> <<elseif ($activeSlave.skill.vaginal <= 10) && ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>> Since $he's vaginally unskilled, and not a virgin, you start with $his pussy. @@.lime;$His vaginal skills have improved.@@ - <<VaginalSkillIncrease $activeSlave>> + <<= SkillIncrease.Vaginal($activeSlave, _trainingEfficiency)>> <<elseif ($activeSlave.skill.anal <= 10) && ($activeSlave.anus > 0) && canDoAnal($activeSlave)>> Since $he's anally unskilled, and not an anal virgin, you start with $his ass. @@.lime;$His anal skills have improved.@@ - <<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, _trainingEfficiency)>> <<elseif $activeSlave.skill.oral <= 30>> Since $he's sexually experienced, you work with $him on the finer points of oral sex. @@.lime;$His oral skills have improved.@@ - <<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, _trainingEfficiency)>> <<elseif ($activeSlave.skill.vaginal <= 30) && ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>> Since $he's sexually experienced, you work with $him on the finer points of penetrative sex. $He can already fuck pretty well, but $his muscular control could be improved. $He works $his Kegel muscles all week, using fingers, dildos, and your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> as training tools. $He becomes expert enough that $he is able to make you cum without any thrusting at all by you or any riding by $him; $he just flexes $his muscles enough to <<if $PC.dick == 0>>grind the fake phallus back against your cunt<<else>>stimulate you<</if>>. @@.lime;$His vaginal skills have improved.@@ - <<VaginalSkillIncrease $activeSlave>> + <<= SkillIncrease.Vaginal($activeSlave, _trainingEfficiency)>> <<elseif ($activeSlave.skill.anal <= 30) && ($activeSlave.anus > 0) && canDoAnal($activeSlave)>> Since $he's anally experienced, you work with $him on the finer points of penetrative sex. $He can already take it up $his ass, but $his muscular control could be improved. $He works $his Kegel muscles and anal sphincter all week, using fingers, dildos, and your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> as training tools. $He becomes expert enough that $he is able to make you cum without any thrusting at all by you or any riding by $him; $he just flexes $his muscles enough to <<if $PC.dick == 0>>squeeze the fake phallus<<else>>stimulate you<</if>>. @@.lime;$His anal skills have improved.@@ - <<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, _trainingEfficiency)>> <<elseif $activeSlave.skill.oral < 100>> $He is already a skilled oral whore, but $his skills can be polished further. You train $him in the basics of <<if $seePee == 1>>urine play, <</if>>massage, pet play, needle play, and many other niche skills. You also expand $his oral endurance, enabling $him to deepthroat for extended periods. @@.lime;$His oral skills have improved.@@ - <<OralSkillIncrease $activeSlave>> + <<= SkillIncrease.Oral($activeSlave, _trainingEfficiency)>> <<elseif ($activeSlave.skill.vaginal < 100) && ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>> $He is already a skilled pussy slut, but $his skills can be polished further. You train $him in the basics of <<if $seePee == 1>>urine play, <</if>>massage, pet play, needle play, and many other niche skills. You also work with $him to develop a personal regimen of vaginal muscle exercises. This will enable $him to squeeze and massage dicks with $his practiced vaginal walls. @@.lime;$His vaginal skills have improved.@@ - <<VaginalSkillIncrease $activeSlave>> + <<= SkillIncrease.Vaginal($activeSlave, _trainingEfficiency)>> <<elseif ($activeSlave.skill.anal < 100) && ($activeSlave.anus > 0) && canDoAnal($activeSlave)>> $He is already a skilled anal bitch, but $his skills can be polished further. You train $him in the basics of <<if $seePee == 1>>urine play, <</if>>massage, pet play, needle play, and many other niche skills. You also expand $his knowledge of sexual positions. $He learns to balance $himself on tiptoe for the challenge of standing anal sex without support. @@.lime;$His sexual skills have improved.@@ - <<AnalSkillIncrease $activeSlave>> + <<= SkillIncrease.Anal($activeSlave, _trainingEfficiency)>> <<elseif $activeSlave.skill.whoring <= 10>> Since $he's dangerously naïve about selling sex, you teach $him the basics of self protection and business. @@.lime;$His prostitution skills have improved.@@ - <<WhoreSkillIncrease $activeSlave>> + <<= SkillIncrease.Whore($activeSlave, _trainingEfficiency)>> <<elseif $activeSlave.skill.entertainment <= 10>> Since $he's rough and unskilled at entertainment, you teach $him the basics of polite conversation, music, and dance. @@.lime;$His entertainment skills have improved.@@ - <<EntertainSkillIncrease $activeSlave>> + <<= SkillIncrease.Entertain($activeSlave, _trainingEfficiency)>> <<elseif $activeSlave.skill.whoring <= 30>> Since $he has only basic entertainment skills, you teach $him to steer clients to more lucrative sex acts. @@.lime;$His prostitution skills have improved.@@ - <<WhoreSkillIncrease $activeSlave>> + <<= SkillIncrease.Whore($activeSlave, _trainingEfficiency)>> <<elseif $activeSlave.skill.entertainment <= 30>> Since $he has only basic entertainment skills, you teach $him more about poise and Free Cities etiquette. @@.lime;$His entertainment skills have improved.@@ - <<EntertainSkillIncrease $activeSlave>> + <<= SkillIncrease.Entertain($activeSlave, _trainingEfficiency)>> <<else>> $He's learned everything you can teach, and is now a masterful <<if ($activeSlave.skill.vaginal >= 100)>> 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/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw index 0d2ac526e12f6b2821aabfebd09f55b2e774816c..2122ca1099fbd7e33e565d85398ed58ac83594bd 100644 --- a/src/uncategorized/saLiveWithHG.tw +++ b/src/uncategorized/saLiveWithHG.tw @@ -219,19 +219,19 @@ <</if>> <</if>> -<<set $skillIncrease = 10>> +<<set _skillIncrease = 10>> <<if ($slaves[$i].skill.oral <= 30)>> $HeadGirl.slaveName wants to come home to a talented tongue, so _he2 trains $slaves[$i].slaveName's oral skills. - <<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].vagina > 0) && ($slaves[$i].skill.vaginal <= 30)>> $HeadGirl.slaveName wants _his2 personal sex slave to be as skilled with $his pussy as possible, so _he2 trains $slaves[$i].slaveName's vaginal skills. - <<VaginalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].anus > 0) && ($slaves[$i].skill.anal <= 30)>> $HeadGirl.slaveName wants _his2 personal sex slave to be a skillful backdoor whore, so _he2 trains $slaves[$i].slaveName's anal skills. - <<AnalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.entertainment <= 10)>> $HeadGirl.slaveName wants to be kept amused in _his2 occasional free time, so _he2 trains $slaves[$i].slaveName's entertainment skills. - <<EntertainSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Entertain($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].sexualFlaw != "none")>> $HeadGirl.slaveName is annoyed by $slaves[$i].slaveName's sexual flaws, so _he2 @@.green;trains@@ $him out of them. <<set $slaves[$i].sexualFlaw = "none">> diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw index e5f3297574017378f88b28fbd9706973f5f88e78..baa00fa17a05cb2fd56e343b50dc10e103255b72 100644 --- a/src/uncategorized/saPleaseYou.tw +++ b/src/uncategorized/saPleaseYou.tw @@ -3,7 +3,6 @@ serves you this week. <<set _trainingEfficiency = 5+Math.trunc($slaves[$i].devotion/30)+(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)>> -<<set $skillIncrease = _trainingEfficiency>> <<set _oralUse = 0, _analUse = 0, _vaginalUse = 0, _mammaryUse = 0, _penetrativeUse = 0>> <<set _fetishChangeChance = fetishChangeChance($slaves[$i])>> @@ -108,7 +107,7 @@ serves you this week. <</if>> <<if ($slaves[$i].skill.vaginal < 100)>> After a lot of time spent having vanilla sex, $his vaginal skill improves. - <<VaginalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Vaginal($slaves[$i], _trainingEfficiency)>> <</if>> <</if>> <<if $PC.dick == 1>> @@ -239,7 +238,7 @@ serves you this week. <</if>> <<if ($slaves[$i].skill.anal < 100)>> After a lot of time spent getting buttfucked, $his anal skill improves. - <<AnalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Anal($slaves[$i], _trainingEfficiency)>> <</if>> <<if $slaves[$i].fetish == "buttslut">> <<if $slaves[$i].fetishKnown == 1>> @@ -383,7 +382,7 @@ serves you this week. <</if>> <<if ($slaves[$i].skill.oral < 100)>> After a lot of time spent <<if $PC.dick == 1>>sucking you off<<if $PC.vagina == 1>> and eating you out<</if>><<else>>eating you out<</if>>, $his oral skill improves. - <<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], _trainingEfficiency)>> <</if>> <<if $slaves[$i].fetish == "cumslut">> <<if $slaves[$i].fetishKnown == 1>> @@ -1055,13 +1054,13 @@ serves you this week. <<if $slaves[$i].fetish != "mindbroken">> <<if ($slaves[$i].skill.oral < 100)>> After a lot of time spent with <<if $PC.dick == 1>>your dick in $his mouth<<else>>$his mouth on your cunt<</if>>, $his oral skill improves. - <<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], _trainingEfficiency)>> <<elseif ($slaves[$i].skill.vaginal < 100) && ($slaves[$i].vagina > 0) && canDoVaginal($slaves[$i])>> After a lot of time spent getting fucked, $his vaginal skill improves. - <<VaginalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Vaginal($slaves[$i], _trainingEfficiency)>> <<elseif ($slaves[$i].skill.anal < 100) && ($slaves[$i].anus != 0) && canDoAnal($slaves[$i])>> After a lot of time spent taking it up the ass, $his anal skill improves. - <<AnalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Anal($slaves[$i], _trainingEfficiency)>> <</if>> <</if>> <</if>> diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw index 7f7a66cf69ef11806ae7cb77d3a4c03128ed6088..4845edbd5f46778f1d298c8db1bb3fe03fab75ee 100644 --- a/src/uncategorized/saRelationships.tw +++ b/src/uncategorized/saRelationships.tw @@ -1457,13 +1457,13 @@ _SlaveI.slaveName's <<if _SlaveI.relationship >= 5>>wife<<else>>lover<</if>> is older, more experienced, and <<if (_SlaveJ.skill.oral > _SlaveI.skill.oral)>> better at blowjobs than $he is. They are such good slaves that the senior _girl2 serves as a mentor to the junior, improving $his oral skills. - <<set $skillIncrease = 5>><<OralSkillIncrease _SlaveI>> + <<= SkillIncrease.Oral(_SlaveI, 5)>> <<elseif (_SlaveJ.skill.anal > _SlaveI.skill.anal) && (_SlaveI.anus > 0)>> better at taking a buttfuck than $he is, and they are such good slaves that the senior _girl2 serves as a mentor to the junior, improving $his anal skills. - <<set $skillIncrease = 5>><<AnalSkillIncrease _SlaveI>> + <<= SkillIncrease.Anal(_SlaveI, 5)>> <<elseif (_SlaveJ.skill.vaginal > _SlaveI.skill.vaginal) && (_SlaveI.vagina > 0) && (_SlaveJ.vagina > 0)>> a better lover than $he is, and they are such good slaves that the senior _girl2 serves as a mentor to the junior, improving $his vaginal skills. - <<set $skillIncrease = 5>><<VaginalSkillIncrease _SlaveI>> + <<= SkillIncrease.Vaginal(_SlaveI, 5)>> <<elseif (_SlaveJ.trust > _SlaveI.trust)>> a better slave than $he is, and they are such obedient slaves that the senior _girl2 serves as a mentor to the junior, @@.mediumaquamarine;improving $his trust.@@ <<set _SlaveI.trust += 11>> diff --git a/src/uncategorized/saTakeClasses.tw b/src/uncategorized/saTakeClasses.tw index 60ff204f23d84994c61c3dee13c592b480b97d4a..a89a193792fce0ac7ed48dd1c3efc37ce9383b6e 100644 --- a/src/uncategorized/saTakeClasses.tw +++ b/src/uncategorized/saTakeClasses.tw @@ -142,7 +142,7 @@ <</if>> <<set _seed = 0>> - <<set $skillIncrease = 10+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)>> + <<set _skillIncrease = 10+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)>> <<for _j = 0; _j < _learning; _j++>> <<if ($slaves[$i].devotion <= 20) && (_seed == 0)>> Since $he is wanting in basic obedience, $he suffers through courses on @@.hotpink;$his place@@ in the Free Cities world. @@ -150,41 +150,41 @@ <<set _seed = 1>> <<elseif ($slaves[$i].skill.oral <= 10)>> Since $he is orally incompetent, $he is taught basic gag reflex suppression exercises and other simple oral things. - <<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.vaginal <= 10) && ($slaves[$i].vagina > 0) && canDoVaginal($slaves[$i])>> Since $he is unskilled at using $his pussy, $he is taught Kegel exercises and other simple vaginal skills. - <<VaginalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.vaginal <= 10) && ($slaves[$i].vagina >= 0)>> Since $he is unskilled at using $his pussy and not permitted to learn through practice, $he is taught Kegel exercises, vaginal basics and several new positions. - <<VaginalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.anal <= 10) && ($slaves[$i].anus > 0) && canDoAnal($slaves[$i])>> Since $he is a novice at taking it up $his butt, $he is taught relaxation exercises and other simple anal basics. - <<AnalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.anal <= 10) && ($slaves[$i].anus >= 0)>> Since $he is a novice at taking it up $his butt and not permitted to learn through practice, $he is taught relaxation exercises and other simple anal basics. - <<AnalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.whoring <= 10)>> Since $he has little idea what's involved in selling $his body, $he is taught basic safety practices and other simple prostitution skills. - <<WhoreSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Whore($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.entertainment <= 10)>> Since $his entertainment value is limited to $his holes, $he is taught simple conversational skills and other courtesan's essentials. - <<EntertainSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Entertain($slaves[$i], _skillIncrease)>> <<elseif ($schoolroomUpgradeSkills == 1)>> <<if ($slaves[$i].skill.oral <= 30)>> Having completed the basic sex slave curriculum, $he studies more advanced ways to use $his lips and tongue to please cocks, cunts, and asses. - <<OralSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Oral($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.whoring <= 30)>> Having completed the basic sex slave curriculum, $he studies intermediate prostitution, including how to stay as safe as possible and maximize $his efficiency. - <<WhoreSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Whore($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.entertainment <= 30)>> Having completed the basic sex slave curriculum, $he studies courtesanship, including social dynamics and flirtation more subtle than straightforward begging for sex. - <<EntertainSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Entertain($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.vaginal <= 30) && ($slaves[$i].vagina >= 0)>> Having completed the basic sex slave curriculum, $he studies more advanced techniques and exotic positions to make use of $his <<if $slaves[$i].vagina == 0>>virgin pussy for use in $his first time<<else>>pussy<</if>>. - <<VaginalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Vaginal($slaves[$i], _skillIncrease)>> <<elseif ($slaves[$i].skill.anal <= 30)>> Having completed the basic sex slave curriculum, $he studies more advanced techniques and exotic positions to make use of $his <<if $slaves[$i].vagina == 0>>virgin ass for use in $his first time<<else>>ass<</if>>. - <<AnalSkillIncrease $slaves[$i]>> + <<= SkillIncrease.Anal($slaves[$i], _skillIncrease)>> <</if>> <</if>> <</for>> diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw deleted file mode 100644 index f3be3cad23d52913428b9485fd41c086ee93279d..0000000000000000000000000000000000000000 --- a/src/uncategorized/saWhore.tw +++ /dev/null @@ -1,1331 +0,0 @@ -:: SA whore [nobr] - -<!-- Statistics gathering --> -<<set _incomeStats = getSlaveStatisticData($slaves[$i], $slaves[$i].assignment === Job.BROTHEL ? $facility.brothel : undefined)>> - -<<set $FResult = FResult($slaves[$i])>> -<<if ($slaves[$i].releaseRules == "restrictive") && ($slaves[$i].standardReward !== "orgasm")>> - <<set $FResult += 2>> -<</if>> -<<if $ACitizens > $ASlaves*4>> - <<set $FResult = Math.trunc($FResult*1.1)>> -<<elseif $ACitizens > $ASlaves*2>> - <<set $FResult = Math.trunc($FResult*1)>> -<<elseif $ACitizens > $ASlaves>> - <<set $FResult = Math.trunc($FResult*0.95)>> -<<elseif $ACitizens > $ASlaves*0.5>> - <<set $FResult = Math.trunc($FResult*0.9)>> -<<else>> - <<set $FResult = Math.trunc($FResult*0.85)>> -<</if>> -<<set $beauty = Beauty($slaves[$i])>> -<<if $ACitizens > $ASlaves*4>> - <<set $beauty = Math.trunc($beauty*1.1)>> -<<elseif $ACitizens > $ASlaves*2>> - <<set $beauty = Math.trunc($beauty*1)>> -<<elseif $ACitizens > $ASlaves>> - <<set $beauty = Math.trunc($beauty*0.95)>> -<<elseif $ACitizens > $ASlaves*0.5>> - <<set $beauty = Math.trunc($beauty*0.9)>> -<<else>> - <<set $beauty = Math.trunc($beauty*0.85)>> -<</if>> -<<if $slaves[$i].sexualFlaw == "neglectful">> - <<set $beauty = Math.trunc($beauty*1.1)>> -<</if>> -<<if $slaves[$i].assignment == "be the Madam">> - <<if $brothelSlaves+$slavesGettingHelp > 0>> - <<set $beauty = Math.trunc($beauty*((5-$brothelSlaves-$slavesGettingHelp)/5))>> - <</if>> -<</if>> - -<<if ($slaves[$i].devotion > 95) || ($slaves[$i].energy > 95)>> - enthusiastically sells -<<elseif ($slaves[$i].devotion > 50)>> - willingly sells -<<elseif ($slaves[$i].devotion > 20)>> - obediently sells -<<elseif ($slaves[$i].trust < -20)>> - reluctantly sells -<<else>> - is forced to sell -<</if>> -$his body. - -<<set $beautyMultiplier = 1>> -<<set _adsBeautyMultiplier = 0>> -<<if $brothel > 0>> - <<if (($universalRulesFacilityWork == 1) && ($slaves[$i].assignment == "whore") && ($brothelSpots > 0)) || ($slaves[$i].assignment == "work in the brothel")>> - <<if ($slaves[$i].assignment == "whore")>> - Since there's extra space in $brothelName, $he sells $himself there. - <<set $brothelSpots -= 1>> - <</if>> - <<if $brothelAdsSpending != 0>> - <<if $brothelAdsStacked == 1>> - <<if ($slaves[$i].butt > 4)>> - <<if ($slaves[$i].boobs > 800)>> - <<set $beautyMultiplier += 0.05>> - $His stacked body fits $brothelName's ad campaign, getting $him more business. - <</if>> - <</if>> - <<elseif $brothelAdsStacked == -1>> - <<if ($slaves[$i].boobs < 500)>> - <<if ($slaves[$i].butt < 3)>> - <<if ($slaves[$i].weight <= 10)>> - <<if ($slaves[$i].muscles <= 30)>> - <<set $beautyMultiplier += 0.05>> - $His slim body fits $brothelName's ad campaign, getting $him more business. - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if $brothelAdsPreg == 1>> - <<if ($slaves[$i].bellyPreg >= 5000) || ($slaves[$i].bellyImplant >= 5000)>> - <<set $beautyMultiplier += 0.05>> - $His gravid body fits $brothelName's ad campaign, getting $him more attention. - <</if>> - <<elseif $brothelAdsPreg == -1>> - <<if ($slaves[$i].belly < 100) && ($slaves[$i].weight < 30) && (!setup.fakeBellies.includes($bellyAccessory)) && ($slaves[$i].bellyImplant <= 0)>> - <<set $beautyMultiplier += 0.05>> - $His flat belly fits $brothelName's ad campaign, getting $him more attention. - <</if>> - <</if>> - <<if $brothelAdsModded == 1>> - <<if $modScore > 15 || ($piercingScore > 8 && $tatScore > 5)>> - <<set $beautyMultiplier += 0.05>> - Body art like $hers is a major draw. - <</if>> - <<elseif $brothelAdsModded == -1>> - <<if $slaves[$i].corsetPiercing == 0 && $piercingScore < 3 && $tatScore < 2>> - <<set $beautyMultiplier += 0.05>> - Very clean bodies like $hers are a major draw. - <</if>> - <</if>> - <<if $brothelAdsImplanted == 1>> - <<if ($slaves[$i].boobsImplant > 0)>> - <<if ($slaves[$i].buttImplant > 0)>> - <<if ($slaves[$i].bellyImplant >= 1500)>> - <<if ($slaves[$i].waist < -10)>> - <<if ($slaves[$i].lipsImplant > 0)>> - <<set $beautyMultiplier += 0.05>> - Many citizens come to the brothel looking to rent a plastic slut like $him. - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <<elseif $brothelAdsImplanted == -1>> - <<if ($slaves[$i].boobsImplant == 0)>> - <<if ($slaves[$i].buttImplant == 0)>> - <<if ($slaves[$i].waist >= -95)>> - <<if ($slaves[$i].lipsImplant == 0)>> - <<if ($slaves[$i].bellyImplant == -1)>> - <<if ($slaves[$i].faceImplant < 30)>> - <<set $beautyMultiplier += 0.05>> - Many citizens come to the brothel looking to play with a natural girl like $him. - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if $brothelAdsOld == 1>> - <<if ($slaves[$i].physicalAge >= 30)>> - <<set $beautyMultiplier += 0.05>> - $He's perfect for $brothelName, whose brand is mature slaves. - <</if>> - <<elseif $brothelAdsOld == -1>> - <<if ($slaves[$i].physicalAge < 30 && $slaves[$i].physicalAge >= 18)>> - <<set $beautyMultiplier += 0.05>> - $He's perfect for $brothelName, whose brand is young slaves. - <</if>> - <<elseif $brothelAdsOld == -2>> - <<if ($slaves[$i].physicalAge <= 18 && $slaves[$i].physicalAge >= 13)>> - <<set $beautyMultiplier += 0.05>> - $He's perfect for $brothelName, whose brand is teenage slaves. - <</if>> - <<elseif $brothelAdsOld == -3>> - <<if ($slaves[$i].physicalAge < 13)>> - <<set $beautyMultiplier += 0.05>> - $He's perfect for $brothelName, whose brand is $loli slaves. - <</if>> - <</if>> - <<if $brothelAdsXX == 1>> - <<if ($slaves[$i].dick == 0)>> - <<set $beautyMultiplier += 0.05>> - Almost everyone who comes to $brothelName is looking to fuck a $girl like $him. - <</if>> - <<elseif $brothelAdsXX == -1>> - <<if ($slaves[$i].dick > 0)>> - <<set $beautyMultiplier += 0.05>> - Almost everyone who comes to $brothelName is looking to pound a $girl who cums when buttfucked. - <</if>> - <</if>> - <</if>> - <<if $Madam != 0>> - <<setLocalPronouns $Madam 2>> - <<if $madamCashBonus > 0>> - <<if !canHear($slaves[$i])>> - <<set $beautyMultiplier += $madamCashBonus/2>> - <<else>> - <<set $beautyMultiplier += $madamCashBonus>> - <</if>> - <<if ($slaves[$i].assignment == "whore")>> - Working - <<else>> - Living and working - <</if>> - out of the brothel, $he comes under <<= SlaveFullName($Madam)>>'s - <<if $madamCashBonus < 0.1>> - completely inept - <<elseif $madamCashBonus < 0.2>> - unskilled - <<elseif $madamCashBonus < 0.3>> - skillful - <<else>> - masterful - <</if>> - leadership. - <<if ($Madam.dick > 2) && canAchieveErection($Madam)>> - <<if ($slaves[$i].devotion <= 20)>> - The Madam rapes $him when $he fails to meet standards. - <<else>> - The Madam uses _his2 dick to reward $him when $he does well and needs some loving. - <</if>> - <</if>> - <<if !canHear($slaves[$i])>> - Unfortunately, $his inability to hear wastes most of $Madam.slaveName's advice. - <</if>> - <<if $MadamIgnoresFlaws != 1>> - <<if !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes($slaves[$i].sexualFlaw) && (random(1,100) > 90)>> - <<= SlaveFullName($Madam)>> manages to @@.green;break@@ $slaves[$i].slaveName of $his sexual flaws. - <<set $slaves[$i].sexualFlaw = "none">> - <<elseif ($slaves[$i].behavioralFlaw != "none") && (random(1,100) > 90)>> - <<= SlaveFullName($Madam)>> manages to @@.green;break@@ $slaves[$i].slaveName of $his flaws. - <<set $slaves[$i].behavioralFlaw = "none">> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> -<<set $beauty = Math.trunc($beauty*$beautyMultiplier), -_beautyCorrection = 0>> -<<if $beauty > 210>> - <<set _beautyCorrection = $beauty / 210, - $beauty = 210, - $FResult = Math.trunc(_beautyCorrection * $FResult)>> -<</if>> - -$His appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a day)<<if $beauty > 160>>, so many that <<if canDoVaginal($slaves[$i]) && canDoAnal($slaves[$i])>>each of $his holes was<<elseif canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>each of $his available holes was<<else>>$his mouth and anywhere else a cock could fit was<</if>> often filled by more than one cock<<elseif $beauty > 140>>, so many that $he spent much of $his time getting gangbanged<<elseif $beauty > 120>>, so many that customers often <<if canDoAnal($slaves[$i]) || canDoVaginal($slaves[$i])>>spitroasted<<else>>double-teamed<</if>> the slut<<elseif $beauty > 100>>, so many that $he frequently had sex with multiple customers at once<<elseif $beauty > 70>>, so many that $he occasionally had sex with multiple customers at once<</if>>. They paid <<print cashFormat($FResult)>> on average<<if _beautyCorrection > 1>>, including a premium for being in extremely high demand<</if>>. -<<set _incomeStats.customers = $beauty>> - -<<if $seeAge == 1>> - <<if $slaves[$i].physicalAge == $minimumSlaveAge && $slaves[$i].physicalAge == $fertilityAge && canGetPregnant($slaves[$i]) && ($arcologies[0].FSRepopulationFocus != "unset" || $arcologies[0].FSGenderFundamentalist != "unset") && $arcologies[0].FSRestart == "unset">> - <<if $slaves[$i].birthWeek == 0>> - $He just turned $minimumSlaveAge this week, giving $him an immense boost to both popularity and price. $He is also expected to become fertile soon, giving $him an additional boost as customers clamor to claim $his fresh womb. - <<elseif $slaves[$i].birthWeek < 4>> - This is still the first month in which it's legal to pay to fuck $him, giving $him a boost to both popularity and price. $He was also anticipated to become fertile this month, and $his womb is still unoccupied, giving $him an additional boost. - <</if>> - <<elseif $slaves[$i].physicalAge == $minimumSlaveAge>> - <<if $slaves[$i].birthWeek == 0>> - $He just turned $minimumSlaveAge this week, giving $him an immense boost to both popularity and price. - <<elseif $slaves[$i].birthWeek < 4>> - This is still the first month in which it's legal to pay to fuck $him, giving $him a boost to both popularity and price. - <</if>> - <<elseif $slaves[$i].physicalAge == $fertilityAge && canGetPregnant($slaves[$i]) && ($arcologies[0].FSRepopulationFocus != "unset" || $arcologies[0].FSGenderFundamentalist != "unset")>> - <<if $slaves[$i].birthWeek == 0>> - $He is expected to become fertile soon, giving $him an immense boost to both popularity and price as customers clamor to claim $his fresh womb. - <<elseif $slaves[$i].birthWeek < 4 && $slaves[$i].pregKnown == 0>> - This is still the first month in which $he was anticipated to become fertile, and $his womb is still unoccupied, giving $him a boost to both popularity and price. - <</if>> - <</if>> -<</if>> - -<<if ($slaves[$i].behavioralQuirk == "sinful")>> - $slaves[$i].slaveName @@.hotpink;secretly enjoys@@ how utterly sinful and depraved it is for $him to sell $his body. - <<set $slaves[$i].devotion += 1>> -<<elseif ($slaves[$i].behavioralQuirk == "cutting")>> - $slaves[$i].slaveName @@.hotpink;openly enjoys@@ the direct, frank language of prostitution, and delights customers with cutting remarks even as they fuck $him. - <<set $slaves[$i].devotion += 1>> -<</if>> -<<if ($slaves[$i].sexualQuirk == "caring")>> - $slaves[$i].slaveName sees $his role as helping people with their sexual needs, and $he @@.mediumaquamarine;trusts that $his place@@ in society is an important one. - <<set $slaves[$i].trust += 1>> -<</if>> - -<<set $injury = 0>> -<<if $slaves[$i].assignment == "work in the brothel">> -<<elseif ($slaves[$i].curatives > 0) || $slaves[$i].inflationType == "curative">> - The drugs <<if $slaves[$i].inflationType == "curative">>$he holds inside $his belly<<else>>$he's on<</if>> protect $him from the wear of whoring. -<<elseif ($slaves[$i].health < -50)>> - The stress of whoring while ill is @@.red;very hard on $him.@@ - <<set $slaves[$i].health -= 10>> - <<set $injury = 1>> -<<elseif ($slaves[$i].health < -20) && (random(1,100) > 50)>> - The stress of whoring while ill is @@.red;hard on $him.@@ - <<set $slaves[$i].health -= 7>> - <<set $injury = 1>> -<<elseif ($slaves[$i].vagina < 0)>> - <<set $desc = SlaveTitle($slaves[$i])>> - <<if (($slaves[$i].skill.anal + $slaves[$i].skill.oral) >= 200)>> - $He's such an expert whore that $he copes with the stress of being a $desc prostitute. - <<elseif random(1,100) > 40+(10*($slaves[$i].skill.anal + $slaves[$i].skill.oral))>> - The stress of being a $desc prostitute is @@.red;hard on $him.@@ - <<set $slaves[$i].health -= 7>> - <<set $injury = 1>> - <</if>> -<<elseif ($slaves[$i].chastityVagina) && canDoAnal($slaves[$i])>> - <<if (($slaves[$i].skill.anal + $slaves[$i].skill.oral) >= 200)>> - $He's such an expert whore that $he copes with the stress of being limited to buttsex and oral. - <<elseif random(1,100) > 40+(10*($slaves[$i].skill.anal + $slaves[$i].skill.oral))>> - The stress of being limited to buttsex and oral is @@.red;hard on $him.@@ - <<set $slaves[$i].health -= 7>> - <<set $injury = 1>> - <</if>> -<<elseif ($slaves[$i].skill.anal + $slaves[$i].skill.oral + $slaves[$i].skill.vaginal) < 300>> - <<if random(1,100) > 10+(($slaves[$i].skill.anal + $slaves[$i].skill.oral + $slaves[$i].skill.vaginal)/10)>> - <<set $injury = 1>> - <</if>> -<</if>> -<<if ($injury == 1)>> - <<set $slaves[$i].health -= 3>> - <<if canDoAnal($slaves[$i])>> - <<set _injuryChance = random(1,100)>> - <<else>> - <<set _injuryChance = random(1,80)>> - <</if>> - <<if (_injuryChance > 80)>> - <<set $slaves[$i].minorInjury = "sore ass">> - Rough anal with a careless customer left $him with a @@.red;$slaves[$i].minorInjury.@@ - <<= minorInjuryResponse($slaves[$i])>> - <<elseif (_injuryChance > 60)>> - <<set $slaves[$i].minorInjury = "black eye">> - A violent customer left $him with a @@.red;$slaves[$i].minorInjury.@@ - <<= minorInjuryResponse($slaves[$i])>> - <<elseif (_injuryChance > 40)>> - <<set $slaves[$i].minorInjury = "split lip">> - An abusive customer left $him with a @@.red;$slaves[$i].minorInjury.@@ - <<= minorInjuryResponse($slaves[$i])>> - <<elseif (_injuryChance > 20)>> - <<set $slaves[$i].minorInjury = "bad bruise">> - A rough customer left $him with a @@.red;$slaves[$i].minorInjury.@@ - <<= minorInjuryResponse($slaves[$i])>> - <<else>> - <<set $slaves[$i].minorInjury = "sore muscle">> - The hard labor of constant sex left $him with a @@.red;$slaves[$i].minorInjury.@@ - <</if>> -<</if>> - -<<if canDoVaginal($slaves[$i])>> - <<if ($slaves[$i].vagina == 0)>> - <<if ($slaves[$i].aphrodisiacs > 1) || ($slaves[$i].inflationType == "aphrodisiac")>> - $His virginity goes to the highest bidder, earning <<print cashFormat(($beauty*10))>>. $He's so full of aphrodisiacs that $he @@.hotpink;enjoys the experience.@@ @@.lime;$His pussy is now broken in.@@ - <<set $slaves[$i].devotion += 4>> - <<set $slaves[$i].vagina = 1>> - <<set $FResult += 10>> - <<elseif ($slaves[$i].devotion > 20)>> - $His virginity goes to the highest bidder, earning <<print cashFormat(($beauty*10))>>. Losing $his virginity in this way @@.hotpink;confirms $his submission to you.@@ @@.lime;$His pussy is now broken in.@@ - <<set $slaves[$i].devotion += 4>> - <<set $slaves[$i].vagina = 1>> - <<set $FResult += 10>> - <<else>> - $His virginity goes to the highest bidder, earning <<print cashFormat(($beauty*10))>>. $He tries to resist, and losing $his virginity to a rape makes $him @@.mediumorchid;hate@@ and @@.gold;fear@@ you a great deal. @@.lime;$His pussy is now broken in.@@ - <<set $slaves[$i].devotion -= 10>> - <<set $slaves[$i].trust -= 10>> - <<set $slaves[$i].vagina = 1>> - <<set $FResult += 10>> - <</if>> - <<elseif ($slaves[$i].vagina < 3)>> - <<if (random(1,100) > ((170-$beauty)+($slaves[$i].vagina*10)+($slaves[$i].skill.vaginal/3)))>> - @@.lime;$His pussy gets loosened by the intense use.@@ - <<set $slaves[$i].vagina += 1>> - <</if>> - <</if>> -<</if>> - -<<if canDoAnal($slaves[$i])>> - <<if ($slaves[$i].anus == 0)>> - <<if ($slaves[$i].aphrodisiacs > 1) || ($slaves[$i].inflationType == "aphrodisiac")>> - $His tight little anus goes to the highest bidder, earning <<print cashFormat(($beauty*5))>>. $He's so full of aphrodisiacs that $he @@.hotpink;enjoys the experience.@@ $His fresh asshole is fucked all week, and by the end of it @@.lime;$he won't sit down.@@ - <<set $slaves[$i].devotion += 4>> - <<set $slaves[$i].anus = 2>> - <<set $FResult += 5>> - <<elseif ($slaves[$i].devotion > 20)>> - $His tight little anus goes to the highest bidder, earning <<print cashFormat(($beauty*5))>>. The pain and humiliation @@.hotpink;confirm $his submission to you.@@ $His fresh asshole is fucked all week, and by the end of it @@.lime;$he won't sit down.@@ - <<set $slaves[$i].devotion += 4>> - <<set $slaves[$i].anus = 2>> - <<set $FResult += 5>> - <<else>> - $His tight little anus goes to the highest bidder, earning <<print cashFormat(($beauty*5))>>. The pain and humiliation increases $his @@.mediumorchid;hatred@@ and @@.gold;fear@@ for you. $His fresh asshole is fucked all week, and by the end of it @@.lime;$he won't sit down.@@ - <<set $slaves[$i].devotion -= 5>> - <<set $slaves[$i].trust -= 5>> - <<set $slaves[$i].anus = 2>> - <<set $FResult += 5>> - <</if>> - <<elseif ($slaves[$i].anus < 3)>> - <<if ($slaves[$i].vagina < 0)>> - <<if ((random(1,100) > ((150-$beauty)+($slaves[$i].anus*10)+($slaves[$i].skill.anal/6))))>> - @@.lime;$His asshole sees constant use in place of a pussy and loosens.@@ - <<set $slaves[$i].anus += 1>> - <</if>> - <<elseif ($slaves[$i].chastityVagina)>> - <<if ((random(1,100) > ((150-$beauty)+($slaves[$i].anus*10)+($slaves[$i].skill.anal/6))))>> - @@.lime;$His asshole sees constant use in place of $his protected pussy and loosens.@@ - <<set $slaves[$i].anus += 1>> - <</if>> - <<else>> - <<if ((random(1,100) > ((160-$beauty)+($slaves[$i].anus*10)+($slaves[$i].skill.anal/6))))>> - @@.lime;$His asshole loosens with constant use.@@ - <<set $slaves[$i].anus += 1>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if !setup.whoreCareers.includes($slaves[$i].career) && $slaves[$i].skill.whore < $masteredXP>> - <<set $slaves[$i].skill.whore += random(1,Math.ceil(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/15) + 8)>> -<</if>> -<<if setup.whoreCareers.includes($slaves[$i].career)>> - $He has sex work experience from $his life before $he was a slave, making $him more effective. -<<elseif $slaves[$i].skill.whore >= $masteredXP>> - $He has experience as a prostitute from working for you, making $him more effective. -<</if>> - -<<if ($slaves[$i].devotion > 20)>> -<<elseif !canWalk($slaves[$i])>> - Since $he can't walk, $he spends all of $his time in $his own room in the brothel. Customers come in, fuck $him, and leave. - <<if ($slaves[$i].skill.whoring <= 10)>> - <<elseif ($slaves[$i].skill.whoring <= 30)>> - As a skilled prostitute, $he gets a little more money out of customers. - <<elseif ($slaves[$i].skill.whoring <= 60)>> - As an expert prostitute, $he gets more money out of customers. - <<elseif ($slaves[$i].skill.whoring >= 100)>> - As a masterful prostitute, $he makes more money. - <</if>> -<</if>> -<<if ($slaves[$i].amp != 1)>> - <<if ($slaves[$i].skill.whoring < 100)>> - <<set $slaves[$i].skill.whoring += 10+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)>> - $He @@.green;gains experience as a public slut,@@ and gets better at - <<if ($slaves[$i].skill.whoring <= 30)>> - basic street smarts. - <<elseif ($slaves[$i].skill.whoring <= 60)>> - steering clients to more lucrative sex acts. - <<else>> - squeezing johns for every penny. - <</if>> - <</if>> -<</if>> - -<<if $slaves[$i].aphrodisiacs > 1 || ($slaves[$i].inflationType == "aphrodisiac")>> - The aphrodisiac cocktail has $him so desperately horny that regardless of $his personal feelings, $he @@.hotpink;gets off with customers all week.@@ In $his drug-addled state $he doesn't remember enough to learn sexual skills. - <<set $slaves[$i].devotion += 4>> -<<elseif ($slaves[$i].devotion <= 20) && ($slaves[$i].energy <= 95)>> - <<if $slaves[$i].trust >= -20>> - $He tries to refuse being sold as a whore, so $he is restrained for sale. $He loses a bit of $himself to a week of rape, but remembers enough to know @@.mediumorchid;you're responsible,@@ and @@.gold;can force $him if necessary.@@ - <<set $slaves[$i].devotion -= 5>> - <<set $slaves[$i].trust -= 5>> - <<else>> - $He doesn't show much enthusiasm, but the habit of slave prostitution @@.hotpink;wears away at $his will.@@ - <<set $slaves[$i].devotion += 4>> - <</if>> -<<else>> - <<if ($slaves[$i].skill.oral + $slaves[$i].skill.anal >= 200) && (($slaves[$i].skill.vaginal >= 100) || !canDoVaginal($slaves[$i]))>> - $He's a @@.aquamarine;sexual master@@ - <<if canDoVaginal($slaves[$i])>> - whose - <<else>> - and despite <<if $slaves[$i].vagina < 0>>$his lack of a<<else>>the inaccessibility of $his<</if>> front hole, $his - <</if>> - body commands @@.yellowgreen;a high price.@@ When $he's not - <<if canDoVaginal($slaves[$i]) && (random(1,4) == 1)>> - pleasing the rich with $his <<if $slaves[$i].prestige > 1 || $slaves[$i].pornPrestige > 2>>prestigious<<else>>popular<</if>> pussy, - <<elseif ($beauty > 70) && (random(1,3) == 1)>> - getting gangbanged, - <<elseif (random(1,2) == 1)>> - performing one of $his <<if $slaves[$i].prestige > 1 || $slaves[$i].pornPrestige > 2>>famous<<else>>top-tier<</if>> blowjobs, - <<elseif canDoAnal($slaves[$i])>> - selling access to $his <<if $slaves[$i].prestige > 1 || $slaves[$i].pornPrestige > 2>>legendary<<else>>notorious<</if>> anus, - <<else>> - pleasing the masses with $his chest, - <</if>> - $he works social gatherings and high society. - <<else>> - $He shows diligence, and $his sexual skills improve, according to what the customers demand<<if !canDoVaginal($slaves[$i])>> and what's possible for $him<</if>>. - <<set $skillIncrease = 5+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)+$oralUseWeight>> - <<OralSkillIncrease $slaves[$i]>> - <<if canDoAnal($slaves[$i])>> - <<set $skillIncrease = 5+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)+$analUseWeight>> - <<AnalSkillIncrease $slaves[$i]>> - <</if>> - <<if canDoVaginal($slaves[$i])>> - <<set $skillIncrease = 5+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)+$vaginalUseWeight>> - <<VaginalSkillIncrease $slaves[$i]>> - <</if>> - <</if>> - <<if ($slaves[$i].amp != 1)>> - <<if ($slaves[$i].skill.whoring < 100)>> - $He gains experience as a prostitute. - <<set $skillIncrease = 10+Math.floor(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/32)>> - <<WhoreSkillIncrease $slaves[$i]>> - <</if>> - <</if>> -<</if>> - -<<if $slaves[$i].minorInjury != 0>> - $He attracts fewer people due to $his minor injury. - <<set $beauty -= 1>> -<</if>> - -<<if (($slaves[$i].hears == -1 && $slaves[$i].earwear != "hearing aids") || ($slaves[$i].hears == 0 && $slaves[$i].earwear == "muffling ear plugs") ||($slaves[$i].hears == -2)) && $slaves[$i].assignment == "whore">> - $His trouble hearing causes $him to often not recognize $he's being picked up, missing out on partners. - <<if !canHear($slaves[$i])>> - <<set $beauty *= .75>> - <<else>> - <<set $beauty *= .90>> - <</if>> -<</if>> - -<<if $slaves[$i].assignment == "work in the brothel" && $slaves[$i].devotion > 50>> - Being so far from your presence @@.mediumorchid;weakens $his intense devotion to you.@@ -<</if>> - -<<if $showEWM == 1>> - -<<if ($slaves[$i].releaseRules == "restrictive") && ($slaves[$i].standardReward !== "orgasm")>> - $He's a better whore because prostitution is $his main sexual outlet. -<</if>> - -<<if $familyTesting == 1>> - <<if totalRelatives($slaves[$i]) > 0>> - <<set _children = $slaves.filter(function(s) { return ($slaves[$i].ID == s.father || $slaves[$i].ID == s.mother || s.ID == $slaves[$i].father || s.ID == $slaves[$i].mother || areSisters($slaves[$i], s) > 0) && s.assignment == "whore"; })>> - <<if _children.length > 2>> - Since $his relatives, - <<for _sw = 0; _sw < _children.length; _sw++>> - <<if _sw < _children.length-1>> - _children[_sw].slaveName, - <<else>> - and _children[_sw].slaveName, - <</if>> - <</for>> - are selling themselves too, $he earns extra ¤ by working with them. - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Customers are very enthusiastic about being able to participate in incestuous sex. - <</if>> - <<elseif _children.length > 1>> - Since $his relatives, _children[0].slaveName and _children[1].slaveName, are selling themselves too, $he earns extra ¤ by working with them. - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Customers are very enthusiastic about being able to participate in incestuous sex. - <</if>> - <<elseif _children.length > 0>> - <<setLocalPronouns _children[0] 2>> - Since $his relative, _children[0].slaveName, is selling _himself2 too, $he earns extra ¤ by working with _him2. - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Customers are very enthusiastic about being able to participate in incestuous sex. - <</if>> - <</if>> - <</if>> -<<else>> - <<if $slaves[$i].relation != 0>> - <<set $j = $slaveIndices[$slaves[$i].relationTarget]>> - <<if (def $j) && $slaves[$j].assignment == $slaves[$i].assignment>> - <<setLocalPronouns $slaves[$j] 2>> - Since $his $slaves[$j].relation $slaves[$j].slaveName is selling _himself2 too, $he earns extra ¤ by working with _him2. - <<if $arcologies[0].FSEgyptianRevivalist > 20>> - Customers are very enthusiastic about being able to participate in incestuous sex like the ancient Egyptians. - <<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - Customers are very enthusiastic about being able to participate in incestuous sex. - <</if>> - <</if>> - <</if>> -<</if>> /*closes extended family mode */ -<<if $slaves[$i].relationship > 0>> - <<set $j = $slaveIndices[$slaves[$i].relationshipTarget]>> - <<if (def $j) && $slaves[$j].assignment == $slaves[$i].assignment>> - $His <<print relationshipTerm($slaves[$i])>> $slaves[$j].slaveName is also whoring, so $he earns a bit more. - <</if>> -<<elseif $slaves[$i].relationship == -1>> - $He relies on customers' desire to fuck $him for emotional support, making $him an excellent, if occasionally disturbing, whore. -<</if>> -<<if $slaves[$i].rivalry != 0>> - <<set $j = $slaveIndices[$slaves[$i].rivalryTarget]>> - <<if (def $j) && $slaves[$j].assignment == $slaves[$i].assignment>> - $He earns a little less ¤ due to bickering with $slaves[$j].slaveName. - <</if>> -<</if>> - -<<if canTalk($slaves[$i])>> - <<if $slaves[$i].voice > 2>> - <<if $slaves[$i].voiceImplant > 0>> - $His high-pitched bimbo voice makes it easier for $him to entice potential customers. - <<else>> - $His high, girly voice makes it easier for $him to entice potential customers. - <</if>> - <<elseif $slaves[$i].voice == 1>> - Most potential customers find $his deep voice unattractive, making it harder for $him to entice them. - <</if>> -<</if>> - -<<if ($arcologies[0].FSTransformationFetishist > 20) || ($arcologies[0].FSDegradationist > 20)>> - <<if $modScore > 15 || ($piercingScore > 8 && $tatScore > 5)>> - Many customers fetishize body mods and consider $hers fascinating. - <<elseif $modScore > 7>> - Many customers fetishize body mods and consider $hers interesting. - <</if>> -<<elseif ($arcologies[0].FSBodyPurist > 20) || ($arcologies[0].FSPaternalist > 20)>> - <<if $modScore <= 7>> - Most customers disapprove of excessive body ornamentation and are pleased that $he's unspoiled in that regard. - <<else>> - Most customers disapprove of body mods and consider $hers unappealing. - <</if>> -<<else>> - <<if $modScore > 15 || ($piercingScore > 8 && $tatScore > 5)>> - $He has so much body art that most customers don't think $he needs any more. - <<elseif !($slaves[$i].corsetPiercing == 0 && $piercingScore < 3 && $tatScore < 2)>> - $His body art helps attract customers. - <</if>> -<</if>> - -<<if $slaves[$i].aphrodisiacs > 1 || ($slaves[$i].inflationType == "aphrodisiac" && $slaves[$i].inflation > 1)>> - On such a heavy aphrodisiac dose, $he can't wait for each customer to fuck $him.<<if $slaves[$i].inflationType == "aphrodisiac" && canDoAnal($slaves[$i])>> Which is practically nonstop, as anyone that fucks $his ass gets a hit of the aphrodisiacs within $his belly.<</if>> -<<elseif $slaves[$i].aphrodisiacs > 0 || ($slaves[$i].inflationType == "aphrodisiac")>> - On aphrodisiacs, $he climaxes with every customer.<<if $slaves[$i].inflationType == "aphrodisiac" && canDoAnal($slaves[$i])>> Which happens often, as anyone that fucks $his ass gets a tiny hit of the aphrodisiacs within $his belly.<</if>> -<<elseif $slaves[$i].devotion > 95>> - $He's so devoted that $he does $his best and pleases every customer. -<<elseif $slaves[$i].devotion > 50>> - $He's so devoted that $he works hard to please customers. -<<elseif $slaves[$i].trust < -20>> - $He's afraid of you, so $he works hard to please customers. -<<else>> - $He neither loves nor fears you enough to work hard, and makes a poor whore. -<</if>> - -<<if ($slaves[$i].butt > 4) && ($slaves[$i].boobs > 800)>> - <<if $arcologies[0].FSAssetExpansionist != "unset">> - $He makes a river of ¤ with $his huge, fashionable assets. - <<if canTalk($slaves[$i])>> - <<if $slaves[$i].voice > 2>> - $His high voice contributes to $his bimbo image, so $he does even better. - <</if>> - <</if>> - <<elseif $arcologies[0].FSSlimnessEnthusiast >= 20>> - $He makes no extra ¤ with $his large assets since many citizens consider them disgusting. - <<else>> - $He receives extra ¤ for having huge assets. - <</if>> - <<if $slaves[$i].dick > 0>> - <<if $arcologies[0].FSGenderRadicalist != "unset">> - Society's appetite for stacked whores with dicks makes $him especially profitable. - <</if>> - <</if>> -<</if>> - -<<if ($slaves[$i].visualAge >= 30)>> - <<if $arcologies[0].FSMaturityPreferentialist != "unset">> - $His mature body is very fashionable. - <<elseif $arcologies[0].FSYouthPreferentialist != "unset">> - $His old body is badly out of fashion. - <</if>> -<<else>> - <<if $arcologies[0].FSYouthPreferentialist != "unset">> - $His youthful body is very fashionable. - <<elseif $arcologies[0].FSMaturityPreferentialist != "unset">> - $His young body is out of fashion. - <</if>> -<</if>> - -<<if $arcologies[0].FSGenderFundamentalistLawBeauty + $arcologies[0].FSGenderRadicalistLawBeauty > 0>> - <<if $genderLawPass == 1>> - <<if $arcologies[0].FSAssetExpansionist != "unset">> - $He makes extra ¤ due to $his fashionably feminine body. - <<else>> - $He receives extra ¤ for having a sleek, girlish figure. - <</if>> - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <</if>> -<<elseif $arcologies[0].FSSlimnessEnthusiastLaw == 1>> - <<if slimPass($slaves[$i]) == 1>> - $He makes extra ¤ due to $his fashionably sleek little body. - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <</if>> -<<elseif $arcologies[0].FSHedonisticDecadenceLaw2 == 1>> - <<if ($slaves[$i].boobs >= 2000) && ($slaves[$i].butt >= 5) && ($slaves[$i].weight > 95)>> - $He makes extra ¤ due to $his fashionably plump body. - <<if canTalk($slaves[$i])&& $slaves[$i].voice > 2>> - $His high voice contributes to $his feminine image, so $he does even better. - <</if>> - <</if>> -<<else>> - <<if ($slaves[$i].boobs < 500) && ($slaves[$i].butt < 3)>> - <<if ($slaves[$i].muscles <= 30) && $arcologies[0].FSPhysicalIdealist == "unset" && ($slaves[$i].weight <= 10) && $arcologies[0].FSHedonisticDecadence == "unset">> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - $He makes extra ¤ due to $his fashionably sleek little body. - <<else>> - $He receives extra ¤ for having a sleek, girlish figure. - <</if>> - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <<elseif $arcologies[0].FSPhysicalIdealist != "unset">> /* no muscle malus for muscle loving societies */ - <<if $arcologies[0].FSPhysicalIdealistStrongFat == 1 && ($slaves[$i].weight <= 30)>> /* reduced weight malus for fat loving societies */ - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - $He makes extra ¤ due to $his fashionably sleek little body. - <<else>> - $He receives extra ¤ for having a sleek, girlish figure. - <</if>> - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <<elseif ($slaves[$i].weight <= 10)>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - $He makes extra ¤ due to $his fashionably sleek little body. - <<else>> - $He receives extra ¤ for having a sleek, girlish figure. - <</if>> - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <</if>> - <<elseif $arcologies[0].FSHedonisticDecadence != "unset" && ($slaves[$i].weight <= 30)>> /* reduced weight malus for fat loving societies */ - <<if $arcologies[0].FSHedonisticDecadenceStrongFat == 1>> /* no muscle malus for muscle loving societies */ - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - $He makes extra ¤ due to $his fashionably sleek little body. - <<else>> - $He receives extra ¤ for having a sleek, girlish figure. - <</if>> - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <<elseif ($slaves[$i].muscles <= 30)>> - <<if $arcologies[0].FSSlimnessEnthusiast > 20>> - $He makes extra ¤ due to $his fashionably sleek little body. - <<else>> - $He receives extra ¤ for having a sleek, girlish figure. - <</if>> - <<if canTalk($slaves[$i]) && $slaves[$i].voice > 2>> - $His high voice contributes to $his girlish image, so $he does even better. - <</if>> - <</if>> - <</if>> - <</if>> -<</if>> - -<<if ($slaves[$i].boobsImplant == 0) && ($slaves[$i].buttImplant == 0) && ($slaves[$i].waist >= -95) && ($slaves[$i].lipsImplant == 0) && ($slaves[$i].bellyImplant == -1) && ($slaves[$i].faceImplant < 30)>> - <<if $arcologies[0].FSBodyPurist != "unset">> - With $his all-natural, implant free appearance, $he's very profitable. - <<elseif $arcologies[0].FSTransformationFetishist >= 20>> - Customers are disappointed by $his all-natural, implant free appearance. - <<else>> - Some discerning customers appreciate $his all-natural, implant free appearance. - <</if>> -<<else>> - <<if $arcologies[0].FSTransformationFetishist != "unset">> - The public is willing to pay more for $his augmented body. - <</if>> -<</if>> - -<<if $slaves[$i].nipples == "fuckable">> - <<if $arcologies[0].FSTransformationFetishist != "unset">> - $His fuckable nipples give $him a profitable edge over those without such body modifications. - <<else>> - $His fuckable nipples entice some of the more adventurous customers. - <</if>> -<</if>> - -<<if ($slaves[$i].clitPiercing == 3) && ($slaves[$i].devotion >= -20)>> - Almost everyone loves $his enthusiasm for sex encouraged by $his smart piercing. -<<elseif ($slaves[$i].clitPiercing == 3)>> - Almost everyone appreciates $his reduced reluctance towards sex encouraged by $his smart piercing. -<</if>> - -<<if $slaves[$i].teeth == "removable">> - The extra attention $he receives from $his ability to give toothless sucks is balanced out by the customers who are disgusted by it. -<<elseif $slaves[$i].teeth == "pointy">> - The extra attention $he receives from $his terrifying mouth of sharp teeth is balanced out by the customers who are scared off by them. -<</if>> - -<<if $slaves[$i].dick != 0>> - <<if $arcologies[0].FSGenderRadicalist == "unset">> - $He sees fewer customers because many prefer whores without cocks. - <<elseif $arcologies[0].FSGenderRadicalist < 50>> - $His cock entices some customers and disappoints others; it has little effect on $his popularity. - <<else>> - The overwhelming majority of potential customers consider $his cock an attraction. - <</if>> -<</if>> - -<<if $slaves[$i].muscles > 95>> - <<if $arcologies[0].FSPhysicalIdealist != "unset">> - In the new culture of $arcologies[0].name $his muscles make $him a very profitable whore. - <<else>> - $His muscles scare off some customers, but some pay well to enjoy a muscular whore. - <</if>> -<</if>> - -<<if $slaves[$i].amp == 1>> - Many prefer to fuck a whore with limbs, but some greatly enjoy buying the use of a helpless amputee. -<</if>> - -<<if $slaves[$i].lactation > 0>> - $He appeals to customers who like lactation play, or just want a whore they can drink milk from. - <<set $slaves[$i].lactationDuration = 2, $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>> -<</if>> - -<<if $slaves[$i].bellyPreg >= 1500 || setup.fakeBellies.includes($bellyAccessory) || $slaves[$i].bellyImplant >= 1500>> - <<if $arcologies[0].FSRepopulationFocus != "unset">> - In the new culture of $arcologies[0].name, $his pregnancy makes $him a profitable whore<<if setup.fakeBellies.includes($bellyAccessory) || $slaves[$i].bellyImplant >= 1500>>, even if it's not real<</if>>. - <<elseif $arcologies[0].FSRepopulationFocusPregPolicy == 1 && $slaves[$i].bellyPreg >= 1500>> - It's currently trendy to plow a whore laden with child, a role $he fits perfectly. - <<elseif $arcologies[0].FSRestart != "unset">> - In the new culture of $arcologies[0].name, $his<<if setup.fakeBellies.includes($bellyAccessory) || $slaves[$i].bellyImplant >= 1500>> apparent<</if>> pregnancy is a massive turn off to potential customers. - <<elseif $arcologies[0].FSGenderFundamentalist != "unset">> - The new respect for traditional gender roles has given many citizens a taste for pregnant whores<<if setup.fakeBellies.includes($bellyAccessory) || $slaves[$i].bellyImplant >= 1500>>, even if they only look pregnant<</if>>. - <<else>> - Many customers avoid visibly pregnant whores. - <</if>> -<</if>> - -<<if $arcologies[0].FSRepopulationFocusMilfPolicy == 1 && $slaves[$i].counter.birthsTotal > 0>> - Slaves that have had children are hot right now making $him quite the appealing MILF. -<</if>> - -<<if ($seeRace == 1)>> - <<if ($slaves[$i].race == "white")>> - Many customers prefer white <<= $girl>>s like $slaves[$i].slaveName. - <</if>> -<</if>> - -<<if $arcologies[0].FSSupremacist != "unset">> - <<if $slaves[$i].race != $arcologies[0].FSSupremacistRace>> - Some citizens fetishize whores of the servile races. - <</if>> -<</if>> -<<if $arcologies[0].FSSubjugationist != "unset">> - <<if $slaves[$i].race == $arcologies[0].FSSubjugationistRace>> - Many prefer to use and abuse whores of the proper slave race. - <</if>> -<</if>> -<<if $arcologies[0].FSEdoRevivalist != "unset">> - <<if ($slaves[$i].nationality == "Japanese") || ($slaves[$i].nationality == "Edo Revivalist")>> - As a proper Japanese $girl, $he is considered extremely desirable. - <</if>> -<<elseif $arcologies[0].FSChineseRevivalist != "unset">> - <<if ($slaves[$i].nationality == "Chinese") || ($slaves[$i].nationality == "Chinese Revivalist")>> - As a proper Chinese $girl, $he is considered extremely desirable. - <</if>> -<</if>> - -<<if $slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 15>> - $His intelligence gives $him an advantage at the business of selling $his body. -<<elseif $slaves[$i].intelligence+$slaves[$i].intelligenceImplant < -15>> - $His stupidity gives $him a handicap at the business of selling $his body. -<</if>> - -<<if $slaves[$i].prestige > 0>> - $He attracts more attention because it's prestigious to fuck $him. -<</if>> - -<<if $slaves[$i].pornPrestige > 2>> - Customers line up for the chance to buy time with the face of $slaves[$i].porn.fameType porn. -<<elseif $slaves[$i].pornPrestige > 1>> - $He has a sizable fanbase, one that is eager to buy time with $him. -<<elseif $slaves[$i].pornPrestige > 0>> - A few of $his fans recognize $him and eagerly patronize $him. -<</if>> - -<<if ($slaves[$i].fetishKnown == 1)>> -<<if ($slaves[$i].fetishStrength > 60)>> -<<switch $slaves[$i].fetish>> -<<case "submissive">> - $He gets more ¤ for $his eagerness to submit. -<<case "cumslut">> - $He gets more ¤ for $his enjoyment of cum. -<<case "humiliation">> - $He gets more ¤ for $his eagerness to be humiliated by citizens. -<<case "buttslut">> - <<if canDoAnal($slaves[$i])>> - $He gets more ¤ for $his obvious enjoyment of buttsex. - <</if>> -<<case "dom">> - $He gets some more ¤ for $his enthusiasm dominating other slaves in group sex. -<<case "boobs">> - $He receives more ¤ for $his eagerness to get some hands on $his chest. -<<case "masochist">> - $He gets more ¤ for $his obvious enjoyment of pain. -<<case "sadist">> - $He gets some more ¤ for $his willingness to abuse other slaves. -<<case "pregnancy">> - <<if $slaves[$i].mpreg == 0>> - <<if canDoVaginal($slaves[$i])>> - As an impregnation fetishist $he's very enthusiastic about vaginal sex. - <</if>> - <<else>> - <<if canDoAnal($slaves[$i])>> - As an impregnation fetishist $he's very enthusiastic about anal sex. - <</if>> - <</if>> -<<case "mindbroken">> - $He gets less ¤ because $he just lies there, totally unresponsive. -<</switch>> -<</if>> -<</if>> - -<<if ($slaves[$i].attrKnown == 1)>> -<<if ($slaves[$i].energy > 95)>> - As a nymphomaniac $he gets sexual release from every transaction and is wildly successful. - <<set $slaves[$i].need -= $beauty>> -<<elseif ($slaves[$i].energy > 80)>> - With $his powerful sex drive $he rarely has to fake an orgasm. - <<set $slaves[$i].need -= $beauty*.9>> -<<elseif $slaves[$i].aphrodisiacs > 0 || ($slaves[$i].inflationType == "aphrodisiac")>> - With $his aphrodisiac boosted libido, it's barely possible to discern $him from a natural nymphomaniac. - <<set $slaves[$i].need -= $beauty*.9>> -<<elseif ($slaves[$i].energy > 60)>> - With $his good sex drive $he often orgasms with customers. - <<set $slaves[$i].need -= $beauty*.8>> -<<elseif ($slaves[$i].energy > 40)>> - With $his average sex drive $he occasionally orgasms with customers. - <<set $slaves[$i].need -= $beauty*.5>> -<<elseif ($slaves[$i].energy > 20)>> - With $his poor sex drive $he almost never orgasms with customers. - <<set $slaves[$i].need -= $beauty*.1>> -<<else>> - Since $he's frigid, $he rarely experiences authentic arousal at work. -<</if>> -<<if ($slaves[$i].attrXY <= 15)>> - <<if ($slaves[$i].attrXX <= 15)>> - $His general disgust with sex makes $him a very poor whore. - <<elseif ($slaves[$i].attrXX <= 85)>> - $His sexual disgust with men makes $him a poor whore. - <<elseif ($slaves[$i].attrXX <= 95)>> - $His sexual disgust with men hinders $him, though $he is more enthusiastic with female customers. - <<else>> - $His sexual disgust with men hinders $him, though $he makes up for it with female customers. - <</if>> -<<elseif ($slaves[$i].attrXY <= 85)>> - <<if ($slaves[$i].attrXX <= 15)>> - $His sexual disgust with men makes $him a poor whore. - <<elseif ($slaves[$i].attrXX <= 85)>> - $His indifference to men and women makes $him a poor whore. - <<elseif ($slaves[$i].attrXX <= 95)>> - $His sexual indifference to men hinders $him, though $he is more enthusiastic with female customers. - <<else>> - $His sexual indifference to men hinders $him, though $he makes up for it with female customers. - <</if>> -<<elseif ($slaves[$i].attrXY <= 95)>> - <<if ($slaves[$i].attrXX <= 15)>> - $His sexual disgust with women hinders $him, though $he makes up for it with male customers. - <<elseif ($slaves[$i].attrXX <= 85)>> - $His sexual indifference to women hinders $him, though $he makes up for it with male customers. - <<elseif ($slaves[$i].attrXX <= 95)>> - $He has the advantage of sexual sincerity with both men and women. - <<else>> - $He's a good whore with male customers, and truly enthusiastic with women. - <</if>> -<<else>> - <<if ($slaves[$i].attrXX <= 15)>> - $His sexual disgust with women hinders $him, though $he is enthusiastic with male customers. - <<elseif ($slaves[$i].attrXX <= 85)>> - $His sexual indifference to women hinders $him, though $he is enthusiastic with male customers. - <<elseif ($slaves[$i].attrXX <= 95)>> - $He's a good whore with female customers, and truly enthusiastic with men. - <<else>> - $He's openly lustful towards all customers, men and women. - <</if>> -<</if>> -<</if>> - -<<if ($slaves[$i].behavioralQuirk == "confident")>> - $He's better at $his job because $he's such a confident whore. -<<elseif ($slaves[$i].behavioralQuirk == "cutting")>> - $He gets a lot of attention for $his ability to joke at a customer's expense. -<<elseif ($slaves[$i].behavioralQuirk == "funny")>> - $He brings unintentional comic relief to the hard work of prostitution. -<<elseif ($slaves[$i].behavioralQuirk == "adores women")>> - $He's a favorite among female customers, whom $he greets with real enthusiasm. -<<elseif ($slaves[$i].behavioralQuirk == "adores men")>> - $He's a favorite among male customers, whom $he greets with frank and open lust. -<<elseif ($slaves[$i].behavioralQuirk == "fitness")>> - $He's eager to please customers because $he finds validation in their willingness to pay for sex with $him. -<<elseif ($slaves[$i].behavioralQuirk == "insecure")>> - $He thinks of $himself as really beautiful, despite the occasional harshness of sex work. -<<elseif ($slaves[$i].behavioralQuirk == "sinful")>> - $He identifies with prostitutes from the holy books, and scandalizes customers with $his explicit scriptural references. -<<elseif ($slaves[$i].behavioralQuirk == "advocate")>> - $He reassures uncomfortable customers that prostitution isn't bad for $him at all. -<</if>> -<<if ($slaves[$i].sexualQuirk == "gagfuck queen")>> - $He's a favorite among customers who like to throatfuck a retching whore. -<<elseif ($slaves[$i].sexualQuirk == "painal queen")>> - $He's a favorite among customers who like to assrape a struggling whore. -<<elseif ($slaves[$i].sexualQuirk == "strugglefuck queen")>> - $He's a favorite among customers who like to wrestle with a struggling whore. -<<elseif ($slaves[$i].sexualQuirk == "tease")>> - Despite being a whore, $he somehow retains the ability to blush enticingly at nudity. -<<elseif ($slaves[$i].sexualQuirk == "romantic")>> - Despite being a whore, $he somehow retains the ability to make $his customers feel special. -<<elseif ($slaves[$i].sexualQuirk == "perverted")>> - $He enjoys unexpected, perverted requests from customers. -<<elseif ($slaves[$i].sexualQuirk == "unflinching")>> - $He's impossible to disgust or surprise, pleasing customers with odd tastes. -<<elseif ($slaves[$i].sexualQuirk == "size queen")>> - $He's very eager to spend quality time with big cocks, making $him a favorite among the well-endowed. -<<elseif ($slaves[$i].sexualQuirk == "caring")>> - $He's a relaxing whore to patronize, doing everything $he can to make $his customers comfortable. -<</if>> - -<<switch $slaves[$i].behavioralFlaw>> -<<case "arrogant">> - $He receives less ¤ because $he treats clients like they are beneath $his dignity. -<<case "bitchy">> - $He receives less ¤ because $he makes cutting remarks to clients. -<<case "odd">> - $He receives less ¤ because clients are annoyed by $his odd behavior. -<<case "hates men">> - $He receives less ¤ because $he can't conceal $his distaste for the company of men. -<<case "hates women">> - $He receives less ¤ because $he can't conceal $his distaste for the company of women. -<<case "devout">> - $He receives less ¤ because people are annoyed by $his habit of praying for forgiveness during sex. -<<case "liberated">> - $He receives less ¤ because people are annoyed by $his obvious belief that being forced to serve them is wrong. -<</switch>> -<<switch $slaves[$i].sexualFlaw>> -<<case "hates oral">> - $He receives less ¤ because $he tries to avoid sucking cock. -<<case "hates anal">> - $He receives less ¤ because $he tries to avoid taking it up the ass. -<<case "hates penetration">> - $He receives less ¤ because $he tries to avoid getting fucked. -<<case "repressed">> - $He receives less ¤ because customers who don't feel like forcing $him sometimes have to cajole $him past $his repressed sexuality. -<<case "idealistic">> - $He receives less ¤ because customers who don't feel like forcing $him sometimes have to convince $him to have sex with them. -<<case "apathetic">> - $He receives less ¤ because $he often just lies there taking dick. -<<case "crude">> - $He receives less ¤ because $he isn't exactly the most elegant sexual partner. -<<case "judgemental">> - $He receives less ¤ because $he openly disdains unattractive customers. -<<case "shamefast">> - $He receives less ¤ because $he sometimes hesitates to take $his clothes off and get to work. -<<case "cum addict">> - $His abject begging for cum annoys customers who aren't looking for oral, but this is more than outweighed by how much it delights those who are. -<<case "anal addict">> - $His abject begging for buttsex annoys customers who aren't interested in fucking $his ass, but this is more than outweighed by how much it delights those who are. -<<case "attention whore">> - $He loses customers by $his constant attention seeking. -<<case "breast growth">> - $His excessive obsession with $his own breasts, to the detriment of most sexual intercourse, loses customers. -<<case "abusive">> - $He loses customers whenever $his sexual abusiveness becomes apparent. -<<case "malicious">> - $He loses customers whenever $his sexual maliciousness becomes apparent. -<<case "self hating">> - $He loses customers during the crying jags brought on by $his self hatred. -<<case "neglectful">> - The occasional customer who likes a whore to climax authentically and can tell the difference is disappointed by $his neglect of $his own pleasure, but they're rare. Most are thrilled by $him. -<<case "breeder">> - $His obsession with pregnancy loses customers who aren't interested in that. -<</switch>> - -<</if>> /* CLOSES EWM */ - -<<if ($slaves[$i].sexualFlaw == "none")>> -<<if $slaves[$i].devotion < 10>> -<<if random(1,100) > 70>> -<<if ($slaves[$i].skill.vaginal <= 30) && canDoVaginal($slaves[$i])>> - After being fucked too hard too often, $he now @@.red;dislikes being penetrated.@@ - <<set $slaves[$i].sexualFlaw = "hates penetration">> -<<elseif ($slaves[$i].skill.anal <= 30) && canDoAnal($slaves[$i])>> - After so much anal pain, $he now @@.red;dislikes being buttfucked.@@ - <<set $slaves[$i].sexualFlaw = "hates anal">> -<<elseif ($slaves[$i].skill.oral <= 30)>> - After one too many facials, $he now @@.red;dislikes sucking cock.@@ - <<set $slaves[$i].sexualFlaw = "hates oral">> -<</if>> -<</if>> -<</if>> -<</if>> - -In total, you were paid @@.yellowgreen;<<print cashFormat(Math.trunc($beauty*$FResult))>>@@ for the use of $slaves[$i].slaveName's body this week. -<<set _cashX = Math.trunc(($beauty*$FResult)*(1+(0.002*$slaves[$i].skill.whoring)))>> -<<set _incomeStats.income += Math.trunc(($beauty*$FResult)*(1+(0.002*$slaves[$i].skill.whoring)))>> - -<<if $slaves[$i].assignment == "work in the brothel">> - <<run cashX(_cashX, "whoreBrothel", $slaves[$i])>> -<<elseif $slaves[$i].assignment == "whore">> - <<run cashX(_cashX, "whore", $slaves[$i])>> -<<else>> - <<run cashX(_cashX, "whoring in an unregistered building", $slaves[$i])>> -<</if>> - -/* FACILITY DECORATION IMPACTS */ - -<<if $slaves[$i].assignment == "work in the brothel">> -<<if $brothelDecoration != "standard">> -<<set _fsBeauty = 0.0005*$FSSingleSlaveRep*$beauty>> -<<switch $brothelDecoration>> -<<case "Roman Revivalist">> - <<set $arcologies[0].FSRomanRevivalist += _fsBeauty>> -<<case "Aztec Revivalist">> - <<set $arcologies[0].FSAztecRevivalist += _fsBeauty>> -<<case "Egyptian Revivalist">> - <<set $arcologies[0].FSEgyptianRevivalist += _fsBeauty>> -<<case "Edo Revivalist">> - <<set $arcologies[0].FSEdoRevivalist += _fsBeauty>> -<<case "Arabian Revivalist">> - <<set $arcologies[0].FSArabianRevivalist += _fsBeauty>> -<<case "Chinese Revivalist">> - <<set $arcologies[0].FSChineseRevivalist += _fsBeauty>> -<<case "Chattel Religionist">> - <<set $arcologies[0].FSChattelReligionist += _fsBeauty>> -<<case "Degradationist">> - <<set $arcologies[0].FSDegradationist += _fsBeauty>> -<<case "Asset Expansionist">> - <<set $arcologies[0].FSAssetExpansionist += _fsBeauty>> -<<case "Transformation Fetishist">> - <<set $arcologies[0].FSTransformationFetishist += _fsBeauty>> -<<case "Repopulation Focus">> - <<set $arcologies[0].FSRepopulationFocus += _fsBeauty>> -<<case "Eugenics">> - <<set $arcologies[0].FSRestart += _fsBeauty>> -<<case "Gender Radicalist">> - <<set $arcologies[0].FSGenderRadicalist += _fsBeauty>> -<<case "Gender Fundamentalist">> - <<set $arcologies[0].FSGenderFundamentalist += _fsBeauty>> -<<case "Physical Idealist">> - <<set $arcologies[0].FSPhysicalIdealist += _fsBeauty>> -<<case "Hedonistic">> - <<set $arcologies[0].FSHedonisticDecadence += _fsBeauty>> -<<case "Supremacist">> - <<set $arcologies[0].FSSupremacist += _fsBeauty>> -<<case "Subjugationist">> - <<set $arcologies[0].FSSubjugationist += _fsBeauty>> -<<case "Paternalist">> - <<set $arcologies[0].FSPaternalist += _fsBeauty>> -<<case "Pastoralist">> - <<set $arcologies[0].FSPastoralist += _fsBeauty>> -<<case "Maturity Preferentialist">> - <<set $arcologies[0].FSMaturityPreferentialist += _fsBeauty>> -<<case "Youth Preferentialist">> - <<set $arcologies[0].FSYouthPreferentialist += _fsBeauty>> -<<case "Body Purist">> - <<set $arcologies[0].FSBodyPurist += _fsBeauty>> -<<case "Slimness Enthusiast">> - <<set $arcologies[0].FSSlimnessEnthusiast += _fsBeauty>> -<</switch>> -<</if>> -<</if>> - -/* SEX ACT COUNTS AND SEXUAL SATISFACTION */ - -<<set _oralUse = $oralUseWeight+($slaves[$i].skill.oral/30)+($slaves[$i].lips/20)>> -<<set _analUse = 0>> -<<if canDoAnal($slaves[$i])>><<set _analUse = $analUseWeight+($slaves[$i].skill.anal/30)-$slaves[$i].anus>><</if>> -<<set _vaginalUse = 0>> -<<if canDoVaginal($slaves[$i])>><<set _vaginalUse = $vaginalUseWeight+($slaves[$i].skill.vaginal/30)-$slaves[$i].vagina>><</if>> -<<set _mammaryUse = 0>> -<<if $slaves[$i].boobs > 10000>><<set _mammaryUse += 5+$mammaryUseWeight>><<elseif $slaves[$i].boobs > 2000>><<set _mammaryUse += $mammaryUseWeight+($slaves[$i].boobs/2000)>><</if>> -<<if $slaves[$i].nipples == "fuckable">><<set _mammaryUse = _mammaryUse*2>><</if>> -<<set _penetrativeUse = 0>> -<<if canDoVaginal($slaves[$i]) && $slaves[$i].clit > 1>><<set _penetrativeUse += $penetrativeUseWeight+($slaves[$i].skill.vaginal/30)+$slaves[$i].clit>><</if>> -<<if $slaves[$i].dick>> - <<if canPenetrate($slaves[$i])>> - <<set _penetrativeUse += $penetrativeUseWeight+$slaves[$i].dick+Math.min($slaves[$i].balls,10)/4>> - <<if ($slaves[$i].drugs == "hyper testicle enhancement")>> - <<set _penetrativeUse += Math.min($slaves[$i].balls,5)>> - <</if>> - <<elseif ($slaves[$i].chastityPenis != 1)>> - <<set _penetrativeUse += $penetrativeUseWeight+$slaves[$i].dick+Math.min($slaves[$i].balls,10)/8>> - <<if ($slaves[$i].drugs == "hyper testicle enhancement")>> - <<set _penetrativeUse += Math.min($slaves[$i].balls,5)>> - <</if>> - <</if>> -<</if>> - -<<set _demand = _oralUse+_analUse+_vaginalUse+_mammaryUse+_penetrativeUse>> -<<set _oralUse = Math.trunc((_oralUse/_demand)*$beauty)>> -<<set _analUse = Math.trunc((_analUse/_demand)*$beauty)>> -<<set _vaginalUse = Math.trunc((_vaginalUse/_demand)*$beauty)>> -<<set _mammaryUse = Math.trunc((_mammaryUse/_demand)*$beauty)>> -<<set _penetrativeUse = Math.trunc((_penetrativeUse/_demand)*$beauty)>> - -<<set _cervixPump = 0>> -<<if $slaves[$i].cervixImplant == 1 || $slaves[$i].cervixImplant == 3>> - <<set _cervixPump += 20*_vaginalUse>> -<</if>> -<<if $slaves[$i].cervixImplant == 2 || $slaves[$i].cervixImplant == 3>> - <<set _cervixPump += 20*_analUse>> -<</if>> - -<<set $slaves[$i].counter.oral += _oralUse, $slaves[$i].counter.publicUse += _oralUse, $oralTotal += _oralUse>> -<<set $slaves[$i].counter.anal += _analUse, $slaves[$i].counter.publicUse += _analUse, $analTotal += _analUse>> -<<set $slaves[$i].counter.vaginal += _vaginalUse, $slaves[$i].counter.publicUse += _vaginalUse, $vaginalTotal += _vaginalUse>> -<<set $slaves[$i].counter.mammary += _mammaryUse, $slaves[$i].counter.publicUse += _mammaryUse, $mammaryTotal += _mammaryUse>> -<<set $slaves[$i].counter.penetrative += _penetrativeUse, $slaves[$i].counter.publicUse += _penetrativeUse, $penetrativeTotal += _penetrativeUse>> - -<<if $slaves[$i].need>> -<<if $slaves[$i].fetishKnown>> -<<switch $slaves[$i].fetish>> -<<case "submissive" "masochist">> - <<if _analUse+_vaginalUse > 0>> - $He enjoys being fucked, and got sexual satisfaction from the <<print _analUse+_vaginalUse>> dicks stuck inside $him this week. - <<set $slaves[$i].need -= _analUse+_vaginalUse>> - <</if>> -<<case "dom" "sadist">> - <<if _penetrativeUse > 0>> - $He enjoys being on top, and got special sexual satisfaction from the _penetrativeUse times $he got to fuck someone this week. - <<set $slaves[$i].need -= 2*_penetrativeUse>> - <</if>> -<<case "cumslut">> - <<if _oralUse > 0>> - $He enjoys sucking, and got sexual satisfaction from the _oralUse blowjobs $he gave this week. - <<set $slaves[$i].need -= _oralUse>> - <</if>> -<<case "buttslut">> - <<if _analUse > 0>> - $He enjoys getting buttfucked, and got sexual satisfaction from the _analUse times $he was sodomized this week. - <<set $slaves[$i].need -= _analUse>> - <</if>> -<<case "boobs">> - <<if _mammaryUse > 0>> - $He enjoys <<if $slaves[$i].nipples == "fuckable">>having $his tits fucked<<else>>giving a good titfuck<</if>>, and got sexual satisfaction from the _mammaryUse times they were used this week. - <<set $slaves[$i].need -= _mammaryUse>> - <</if>> -<<case "pregnancy">> - <<if $slaves[$i].mpreg == 0>> - <<if _vaginalUse > 0>> - $He enjoys having $his pussy fucked, and got sexual satisfaction from the _vaginalUse times $he got dick this week. - <<set $slaves[$i].need -= _vaginalUse>> - <</if>> - <<else>> - <<if _analUse > 0>> - $He enjoys having $his ass fucked, and got sexual satisfaction from the _analUse times $he got dick this week. - <<set $slaves[$i].need -= _analUse>> - <</if>> - <</if>> -<<case "humiliation">> - $He enjoys the humiliation of being a public slut, and got a bit of sexual satisfaction from every sex act $he performed this week. - <<set $slaves[$i].need -= $beauty>> -<</switch>> -<</if>> -<</if>> - -<<if ($showVignettes == 1)>> - <<set _vignette = GetVignette($slaves[$i])>> - __This week__ _vignette.text - <<if (_vignette.type == "cash")>> - <<if (_vignette.effect > 0)>> - @@.yellowgreen;making you an extra <<print cashFormat(Math.trunc($FResult*_vignette.effect))>>.@@ - <<elseif (_vignette.effect < 0)>> - @@.red;losing you <<print cashFormat(Math.abs(Math.trunc($FResult*_vignette.effect)))>>.@@ - <<else>> - an incident without lasting effect. - <</if>> - <<set _cashX = Math.trunc($FResult*_vignette.effect)>> - <<if $slaves[$i].assignment == "work in the brothel">> - <<run cashX(_cashX, "whoreBrothel", $slaves[$i])>> - <<elseif $slaves[$i].assignment == "whore">> - <<run cashX(_cashX, "whore", $slaves[$i])>> - <<else>> - <<run cashX(_cashX, "whoring in an unregistered building", $slaves[$i])>> - <</if>> - <<set _incomeStats.income += Math.trunc($FResult*_vignette.effect)>> - <<elseif (_vignette.type == "devotion")>> - <<if (_vignette.effect > 0)>> - <<if $slaves[$i].devotion > 50>> - @@.hotpink;increasing $his devotion to you.@@ - <<elseif $slaves[$i].devotion >= -20>> - @@.hotpink;increasing $his acceptance of you.@@ - <<elseif $slaves[$i].devotion > -10>> - @@.hotpink;reducing $his dislike of you.@@ - <<else>> - @@.hotpink;reducing $his hatred of you.@@ - <</if>> - <<elseif (_vignette.effect < 0)>> - <<if $slaves[$i].devotion > 50>> - @@.mediumorchid;reducing $his devotion to you.@@ - <<elseif $slaves[$i].devotion >= -20>> - @@.mediumorchid;reducing $his acceptance of you.@@ - <<elseif $slaves[$i].devotion > -10>> - @@.mediumorchid;increasing $his dislike of you.@@ - <<else>> - @@.mediumorchid;increasing $his hatred of you.@@ - <</if>> - <<else>> - an incident without lasting effect. - <</if>> - <<set $slaves[$i].devotion += 1*_vignette.effect>> - <<elseif (_vignette.type == "trust")>> - <<if (_vignette.effect > 0)>> - <<if $slaves[$i].trust > 20>> - @@.mediumaquamarine;increasing $his trust in you.@@ - <<elseif $slaves[$i].trust > -10>> - @@.mediumaquamarine;reducing $his fear of you.@@ - <<else>> - @@.mediumaquamarine;reducing $his terror of you.@@ - <</if>> - <<elseif (_vignette.effect < 0)>> - <<if $slaves[$i].trust > 20>> - @@.gold;reducing $his trust in you.@@ - <<elseif $slaves[$i].trust >= -20>> - @@.gold;increasing $his fear of you.@@ - <<else>> - @@.gold;increasing $his terror of you.@@ - <</if>> - <<else>> - an incident without lasting effect. - <</if>> - <<set $slaves[$i].trust += 1*_vignette.effect>> - <<elseif (_vignette.type == "health")>> - <<if (_vignette.effect > 0)>> - @@.green;improving $his health.@@ - <<elseif (_vignette.effect < 0)>> - @@.red;affecting $his health.@@ - <<else>> - an incident without lasting effect. - <</if>> - <<set $slaves[$i].health += 2*_vignette.effect>> - <<else>> - <<if (_vignette.effect > 0)>> - @@.green;gaining you a bit of reputation.@@ - <<elseif (_vignette.effect < 0)>> - @@.red;losing you a bit of reputation.@@ - <<else>> - an incident without lasting effect. - <</if>> - <<run repX( Math.trunc($FResult*_vignette.effect*0.1), "vignette", $slaves[$i])>> - <<set _incomeStats.rep += Math.trunc($FResult*_vignette.effect*0.1)>> - <</if>> - -<</if>> - -<<if $slaves[$i].energy > 40 && $slaves[$i].energy < 95>> - Being used sexually all week @@.lime;increases $his sex drive.@@ - <<set $slaves[$i].energy++>> -<</if>> - -<<if _cervixPump > 0>> - $He notices $his @@.lime;belly has grown@@ from - <<if $slaves[$i].cervixImplant == 1>> - vaginal - <<elseif $slaves[$i].cervixImplant == 2>> - anal - <</if>> - sex throughout week. - <<set $slaves[$i].bellyImplant += _cervixPump>> -<</if>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index a2c7afe77a068248571add2e7e204d7742c77407..295605163cf1340b5372dc9cb487bc5bb1cf8b68 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">> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index e5951ea84a16cc0c93ca7eca4765a7020dbb3c9e..451f5fd8497f30fbdf3011277e49f2763c37a9c2 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -487,61 +487,6 @@ <</if>> <</widget>> -/% - Call as <<OralSkillIncrease>> - $args[0]: Slave. - $skillIncrease: Amount of increase. -%/ -<<widget "OralSkillIncrease">> - -<<= SkillIncrease.Oral($args[0], $skillIncrease)>> - -<</widget>> - -/% - Call as <<VaginalSkillIncrease>> - $args[0]: Slave. - $skillIncrease: Amount of increase. -%/ -<<widget "VaginalSkillIncrease">> - -<<= SkillIncrease.Vaginal($args[0], $skillIncrease)>> - -<</widget>> - -/% - Call as <<AnalSkillIncrease>> - $args[0]: Slave. - $skillIncrease: Amount of increase. -%/ -<<widget "AnalSkillIncrease">> - -<<= SkillIncrease.Anal($args[0], $skillIncrease)>> - -<</widget>> - -/% - Call as <<WhoreSkillIncrease>> - $args[0]: Slave. - $skillIncrease: Amount of increase. -%/ -<<widget "WhoreSkillIncrease">> - -<<= SkillIncrease.Whore($args[0], $skillIncrease)>> - -<</widget>> - -/% - Call as <<EntertainSkillIncrease>> - $args[0]: Slave. - $skillIncrease: Amount of increase. -%/ -<<widget "EntertainSkillIncrease">> - -<<= SkillIncrease.Entertain($args[0], $skillIncrease)>> - -<</widget>> - <<widget "Master">><<if def $args[0]>><<run Enunciate($args[0])>><<elseif ndef $titleEnunciate>><<run Enunciate($activeSlave)>><</if>>$titleEnunciate<</widget>> <<widget "say">><<if (def $args[0]) && $sayEnunciate != "lisp">>$args[0]<<else>>$sayEnunciate<</if>><</widget>> <<widget "s">>$sEnunciate<</widget>>