diff --git a/src/cheats/mod_EditArcologyCheat.tw b/src/cheats/mod_EditArcologyCheat.tw index a529f295cbfaa4aaa4ca75a78f2a7b665fc2252c..8d6e5f1b71384784759c43c00d2c3ceb75b1411e 100644 --- a/src/cheats/mod_EditArcologyCheat.tw +++ b/src/cheats/mod_EditArcologyCheat.tw @@ -277,15 +277,13 @@ __Player Character__ <br>Hair color: ''$PC.hColor''. <<textbox "$PC.hColor" $PC.hColor "MOD_Edit Arcology Cheat">> <br>Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "MOD_Edit Arcology Cheat">> [[Cigars|MOD_Edit Arcology Cheat][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|MOD_Edit Arcology Cheat][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]] -<br>Preferred method of consumption: <<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>> -<br>[[Smoked|MOD_Edit Arcology Cheat][$PC.refreshmentType = 0]] | [[Drank|MOD_Edit Arcology Cheat][$PC.refreshmentType = 1]] | [[Eaten|MOD_Edit Arcology Cheat][$PC.refreshmentType = 2]] | [[Snorted|MOD_Edit Arcology Cheat][$PC.refreshmentType = 3]] | [[Injected|MOD_Edit Arcology Cheat][$PC.refreshmentType = 4]] +<br>Preferred method of consumption: <<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<elseif $PC.refreshmentType == 4>>Injected<<elseif $PC.refreshmentType == 5>>Popped<<else>>Orally Dissolved<</if>> +<br>[[Smoked|MOD_Edit Arcology Cheat][$PC.refreshmentType = 0]] | [[Drank|MOD_Edit Arcology Cheat][$PC.refreshmentType = 1]] | [[Eaten|MOD_Edit Arcology Cheat][$PC.refreshmentType = 2]] | [[Snorted|MOD_Edit Arcology Cheat][$PC.refreshmentType = 3]] | [[Injected|MOD_Edit Arcology Cheat][$PC.refreshmentType = 4]] | [[Popped|MOD_Edit Arcology Cheat][$PC.refreshmentType = 5]] | [[Orally Dissolved|MOD_Edit Arcology Cheat][$PC.refreshmentType = 6]] <br><br>Arcology citizens: $ACitizens <<textbox "$ACitizens" $ACitizens>> <br>Arcology sex slaves: $ASlaves <<textbox "$ASlaves" $ASlaves>> -<br>Arcology menial slaves: $AHelots -<<textbox "$AHelots" $AHelots>> <br>Arcology prosperity cap: $AProsperityCap <<textbox "$AProsperityCap" $AProsperityCap>> diff --git a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw index 83f8343c4dea9413e0187f391ef492da5f320e77..b690d76c6fcde45f489dbb7bcb9b08f4d8034378 100644 --- a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw +++ b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw @@ -4,7 +4,6 @@ <<set $ACitizens = Number($ACitizens) || 0>> <<set $ASlaves = Number($ASlaves) || 0>> -<<set $AHelots = Number($AHelots) || 0>> <<set $shelterAbuse = Number($shelterAbuse) || 0>> <<set $TSS.studentsBought = Number($TSS.studentsBought) || 0>> diff --git a/src/cheats/mod_EditSlaveCheat.tw b/src/cheats/mod_EditSlaveCheat.tw index 184264bb5b9574f6695cb24423133f9c1aa3417a..73c0e46f70d0ff08974d0fcbf31225fff68fce9d 100644 --- a/src/cheats/mod_EditSlaveCheat.tw +++ b/src/cheats/mod_EditSlaveCheat.tw @@ -66,6 +66,19 @@ <br> +''Fuckdoll: (0-100)'' +<<textbox "$activeSlave.fuckdoll" $activeSlave.fuckdoll>> +<br> +<<radiobutton "$activeSlave.fuckdoll" 0>> Not a fuckdoll +<<radiobutton "$activeSlave.fuckdoll" 15>> Barely a fuckdoll +<<radiobutton "$activeSlave.fuckdoll" 25>> Slight fuckdoll +<<radiobutton "$activeSlave.fuckdoll" 45>> Basic fuckdoll +<<radiobutton "$activeSlave.fuckdoll" 65>> Intermediate fuckdoll +<<radiobutton "$activeSlave.fuckdoll" 85>> Advanced fuckdoll +<<radiobutton "$activeSlave.fuckdoll" 100>> Total fuckdoll + +<br> + ''Nationality: ($activeSlave.nationality)'' <<textbox "$activeSlave.nationality" $activeSlave.nationality>> //This will not alter name or race// @@ -302,7 +315,7 @@ Unskilled. <br><br> -''Muscles (0 to 3): $activeSlave.muscles |'' +''Muscles (0 to 100): $activeSlave.muscles |'' <<textbox "$activeSlave.muscles" $activeSlave.muscles>> <br> <<radiobutton "$activeSlave.muscles" 0>> None @@ -456,6 +469,12 @@ Plush. <br><br> +''Genes (XX:female, XY:male):'' $activeSlave.genes +<<radiobutton "$activeSlave.amp" "XX">> Female +<<radiobutton "$activeSlave.amp" "XY">> Male + +<br><br> + ''Breasts (200 to 24000):'' <<textbox "$activeSlave.boobs" $activeSlave.boobs>> <br> @@ -822,6 +841,13 @@ Monstrous. <<radiobutton "$activeSlave.scrotum" 7>> Enormous <<radiobutton "$activeSlave.scrotum" 8>> Monstrous +<br> + +''Prostate (0: no prostate, 1:prostate):'' $activeSlave.prostate +<br> +<<radiobutton "$activeSlave.prostate" 0>> No prostate +<<radiobutton "$activeSlave.prostate" 1>> Prostate + <br><br> ''Prostitution (0 to 100):'' diff --git a/src/events/gameover.tw b/src/events/gameover.tw index a9191d9db0e7c69b36da1e445e9d272685cab038..e665223c91105d60921f362ade6482891ec6a8f1 100644 --- a/src/events/gameover.tw +++ b/src/events/gameover.tw @@ -44,7 +44,7 @@ Surrounding yourself with powerful has its boons, but also poses a distinct thre You look up from your desk as the locked door to your office unseals, and a dozen individuals brazenly walk into your view.<<if $Bodyguard != 0>> $Bodyguard.slaveName stands between you and them. A single glare from the leader of the bunch and she backs off, eyes to the ground.<</if>> <br><br> <<if $PC.pregSource == -1>> - <<if $PC.refreshmentType == 0>>Taking a drag from a fresh $PC.refreshment<<elseif $PC.refreshmentType == 1>>Taking a drink of a fresh glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>Taking a bite of a fresh $PC.refreshment<<elseif $PC.refreshmentType == 3>>Doing a line of $PC.refreshment<<else>>Injecting a hit of $PC.refreshment into your arm<</if>>, you greet your rather unwelcome guests. + <<if $PC.refreshmentType == 0>>Taking a drag from a fresh $PC.refreshment<<elseif $PC.refreshmentType == 1>>Taking a drink of a fresh glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>Taking a bite of a fresh $PC.refreshment<<elseif $PC.refreshmentType == 3>>Doing a line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>Injecting a hit of $PC.refreshment into your arm<<elseif $PC.refreshmentType == 5>>Swallowing a $PC.refreshment<<elseif $PC.refreshmentType == 6>>Placing a tab of $PC.refreshment under your tongue<</if>>, you greet your rather unwelcome guests. <br><br> "You are no longer worthy of being a part of our society. But you carry within you one of our heirs. A conundrum for some, but we have already solved that problem." <br><br> diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw index 8939152a5f98863fb6b2a0b943bebc598aa9d1de..2a0519f55ba395ffc67395a00f963ba0ce913465 100644 --- a/src/events/intro/initNationalities.tw +++ b/src/events/intro/initNationalities.tw @@ -20,7 +20,7 @@ <<set $trinkets.push("a framed picture of a slave with her sale price scrawled across the bottom")>> <<elseif $PC.career == "engineer">> <<set $trinkets.push("an artist's impression of an early arcology design")>> - <<set $AProsperityCap = 100>> + <<set $arcologyUpgrade.drones = 1, $arcologyUpgrade.hydro = 1>> <<set $upgradeMultiplierArcology = 0.6>> <<elseif $PC.career == "medicine">> <<set $trinkets.push("a framed postsurgical x-ray")>> diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index 553b9288f2b8e30e9acc0296bb31100dc994456a..2d1a9c7b49bcf4e2878bcc85edba977de4eaee93 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -619,10 +619,13 @@ Hair color: ''$PC.hColor''. <br> Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">> [[Cigars|Intro Summary][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|Intro Summary][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]] <br> -Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>>''. -[[Smoked|Intro Summary][$PC.refreshmentType = 0]] | [[Drank|Intro Summary][$PC.refreshmentType = 1]] | [[Eaten|Intro Summary][$PC.refreshmentType = 2]] | [[Snorted|Intro Summary][$PC.refreshmentType = 3]] | [[Injected|Intro Summary][$PC.refreshmentType = 4]] +Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<elseif $PC.refreshmentType == 4>>Injected<<elseif $PC.refreshmentType == 5>>Popped<<else>>Orally Dissolved<</if>>''. +[[Smoked|Intro Summary][$PC.refreshmentType = 0]] | [[Drank|Intro Summary][$PC.refreshmentType = 1]] | [[Eaten|Intro Summary][$PC.refreshmentType = 2]] | [[Snorted|Intro Summary][$PC.refreshmentType = 3]] | [[Injected|Intro Summary][$PC.refreshmentType = 4]] | [[Popped|Intro Summary][$PC.refreshmentType = 5]] | [[Orally Dissolved|Intro Summary][$PC.refreshmentType = 6]] <br> -<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>> +<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly +<<elseif $PC.refreshmentType == 5>>//"Popped" must fit into the following sentence: "I shook the bottle of $PC.refreshment" to fit events properly +<<elseif $PC.refreshmentType == 6>>//"Orally Dissolved" must fit into the following sentence: "I placed a tab of $PC.refreshment under my tongue" to fit events properly +<</if>>// <<else>> @@ -728,14 +731,17 @@ Hair color: ''$PC.hColor''. Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "Intro Summary">> [[Cigars|Intro Summary][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|Intro Summary][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]] <br> Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>>''. -[[Smoked|Intro Summary][$PC.refreshmentType = 0]] | [[Drank|Intro Summary][$PC.refreshmentType = 1]] | [[Eaten|Intro Summary][$PC.refreshmentType = 2]] | [[Snorted|Intro Summary][$PC.refreshmentType = 3]] | [[Injected|Intro Summary][$PC.refreshmentType = 4]] +[[Smoked|Intro Summary][$PC.refreshmentType = 0]] | [[Drank|Intro Summary][$PC.refreshmentType = 1]] | [[Eaten|Intro Summary][$PC.refreshmentType = 2]] | [[Snorted|Intro Summary][$PC.refreshmentType = 3]] | [[Injected|Intro Summary][$PC.refreshmentType = 4]] | [[Popped|Intro Summary][$PC.refreshmentType = 5]] | [[Orally Dissolved|Intro Summary][$PC.refreshmentType = 6]] <br> -<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly//<</if>> - -<br><br> +<<if $PC.refreshmentType == 0>>//"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly +<<elseif $PC.refreshmentType == 5>>//"Popped" must fit into the following sentence: "I shook the bottle of $PC.refreshment" to fit events properly +<<elseif $PC.refreshmentType == 6>>//"Orally Dissolved" must fit into the following sentence: "I placed a tab of $PC.refreshment under my tongue" to fit events properly +<</if>>// <</if>> +<br><br> + Image display <<if $seeImages == 1>> ''enabled.'' [[Disable|Intro Summary][$seeImages = 0]] diff --git a/src/events/intro/pcBodyIntro.tw b/src/events/intro/pcBodyIntro.tw index 05c22fc3a81e35258585d32abbcec5f8a59107d9..a8d71b36dfeac059dcf3a297a79924902f946ab8 100644 --- a/src/events/intro/pcBodyIntro.tw +++ b/src/events/intro/pcBodyIntro.tw @@ -73,9 +73,13 @@ Name your character: <<textbox "$PCName" $PCName "PC Body Intro">> Preferred refreshment: <<textbox "$PC.refreshment" $PC.refreshment "PC Body Intro">> [[Cigars|PC Body Intro][$PC.refreshment = "cigar",$PC.refreshmentType = 0]] | [[Whiskey|PC Body Intro][$PC.refreshment = "whiskey",$PC.refreshmentType = 1]] <br> Preferred method of consumption: ''<<if $PC.refreshmentType == 0>>Smoked<<elseif $PC.refreshmentType == 1>>Drank<<elseif $PC.refreshmentType == 2>>Eaten<<elseif $PC.refreshmentType == 3>>Snorted<<else>>Injected<</if>>''. -[[Smoked|PC Body Intro][$PC.refreshmentType = 0]] | [[Drank|PC Body Intro][$PC.refreshmentType = 1]] | [[Eaten|PC Body Intro][$PC.refreshmentType = 2]] | [[Snorted|PC Body Intro][$PC.refreshmentType = 3]] | [[Injected|PC Body Intro][$PC.refreshmentType = 4]] +[[Smoked|PC Body Intro][$PC.refreshmentType = 0]] | [[Drank|PC Body Intro][$PC.refreshmentType = 1]] | [[Eaten|PC Body Intro][$PC.refreshmentType = 2]] | [[Snorted|PC Body Intro][$PC.refreshmentType = 3]] | [[Injected|PC Body Intro][$PC.refreshmentType = 4]] | [[Popped|PC Body Intro][$PC.refreshmentType = 5]] | [[Orally Dissolved|PC Body Intro][$PC.refreshmentType = 6]] <br> -//Flavor only; no mechanical effect. If entering a custom refreshment, please assign proper usage. <<if $PC.refreshmentType == 0>>"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly<</if>>// +//Flavor only; no mechanical effect. If entering a custom refreshment, please assign proper usage. +<<if $PC.refreshmentType == 0>>"Smoke" must fit into the following sentence: "I smoked a $PC.refreshment" to fit events properly +<<elseif $PC.refreshmentType == 5>>"Popped" must fit into the following sentence: "I shook the bottle of $PC.refreshment" to fit events properly +<<elseif $PC.refreshmentType == 6>>"Orally Dissolved" must fit into the following sentence: "I placed a tab of $PC.refreshment under my tongue" to fit events properly +<</if>>// <br><br> diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index 4818bd970a532ec3c6376a9d040fc2c05772c474..c2091f3c37a146ae38ef812be8fb331a564fc6a8 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -940,6 +940,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr ''fcanon'' for various fixes, massive improvements to the RA and wrangling my inabilty to spll gud. ''stuffedgameanon'' for fixes, streamlining the starting girls family code, family trees, unbelievable improvements to the games functionality, the sanityChecker, a tag checker and above ALL else; Improving the game's speed by an obscene amount. ''anon'' for a prototype foot job scene. +''anon'' for writing forced marriages, extra escape outcomes and more player refreshment types. ''Bane70'' optimized huge swaths of code with notable professionalism. ''Circle Tritagonist'' provided several new collars and outfits. ''Qotsafan'' submitted bugfixes. diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 625cc8ea2bd1bdd462e7765725113455a2ccd8a1..ebe82f0452a7b33417e55d83d8132d5777c8efcd 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -178,10 +178,10 @@ <<set $useFSNames = 1>> <<set $seeDetails = 1>> <<set $seeDesk = 1>> +<<set $seeBuilding = 1>> <<set $seeArcology = 1>> <<set $seeFCNN = 1>> <<set $seeBuy = 1>> -<<set $seeArcology = 1>> <<set $seeExtreme = 0>> <<set $seeHyperPreg = 0>> <<set $seeCircumcision = 1>> @@ -617,7 +617,6 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $futaAddiction = 0>> <<set $IDNumber = 1>> -<<set $RulesID = 3>> <<set $week = 1>> <<set $month = "January">> @@ -766,14 +765,56 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $repGain = 0>> <<set $repLoss = 0>> <<set $cashLastWeek = 0>> -<<set $AProsperityCap = 60>> -<<set $ACitizens = ($AProsperityCap+200)*16>> -<<set $ASlaves = ($AProsperityCap+200)*4>> -<<set $AHelots = $ASlaves*2>> + +<<set $arcologyUpgrade = {drones: 0, hydro: 0, apron: 0, grid: 0, spire: 0}>> + +<<set $AGrowth = 2>> +<<set $ACitizens = 4000>> +<<set $ASlaves = 1000>> + +<<set $sectors = []>> +<<set $AS = {type: "Penthouse", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Empty", ownership: 0}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Shops", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Apartments", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Markets", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Manufacturing", ownership: 1}>><<set $sectors.push($AS)>> +<<set $AS = {type: "Barracks", ownership: 1}>><<set $sectors.push($AS)>> +<<for _i = 0; _i < 12; _i++>> + <<set _j = random(5,28)>> + <<if $sectors[_j].ownership == 1>> + <<set $sectors[_j].ownership = 0>> + <<else>> + <<set _i-->> + <</if>> +<</for>> + <<set $helots = 0>> <<set $fuckdolls = 0>> <<set $menialBioreactors = 0>> -<<set $AGrowth = 2>> <<set $prestigeAuctioned = 0>> <<set $slaveMarketLimit = 20>> <<set $slavesSeen = 0>> diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index 0256fce795701f1822d34a276af3988c21cb3a9c..4f58a071e9fc661ea7a4c1adee0d9b0f4dc7ce46 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -518,7 +518,7 @@ window.canDoVaginal = function(slave) { return false; } else if (slave.vaginalAccessory == "combined chastity") { return false; - } + } return true; }; @@ -760,36 +760,17 @@ window.relationTargetWord = function(slave) { }; window.ruleApplied = function(slave, ID) { - if (!slave) { - return null; - }else if (!slave.currentRules) { + if (!slave || !slave.currentRules) return null; - } else { - for(var d=0; d < slave.currentRules.length; ++d){ - if(slave.currentRules[d] == ID){ - return true; - } - }return false; - } + return slave.currentRules.includes(ID); }; window.ruleAssignment = function(applyAssignment, assignment) { - if (!applyAssignment) { - return false; - } - for(var d=0; d < applyAssignment.length; ++d){ - if(applyAssignment[d] == assignment){ - return true; - } - }return false; + return applyAssignment.includes(assignment); }; window.ruleFacility = function(applyFacility, facility) { - for(var d=0; d < applyFacility.length; ++d){ - if(applyFacility[d] == facility){ - return true; - } - }return false; + return applyFacility.includes(facility); }; window.ruleExcludeSlaveFacility = function(rule, slave) { @@ -898,7 +879,7 @@ window.ruleAppliedToSlaveFacility = function(rule, slave) { }else if (!rule.facility) { return false; } else { - for(var d = 0; d < rule.facility.length; ++d){ + for(var d=0; d < rule.facility.length; ++d){ if(rule.facility[d] == "hgsuite"){ if(slave.assignment == "live with your Head Girl" ){ return true; @@ -989,35 +970,21 @@ window.ruleAppliedToSlaveFacility = function(rule, slave) { }; window.ruleSlaveSelected = function(slave, rule) { - if (!slave) { - return null; - }else if (!rule) { + if (!slave || !rule) { return null; - }else if (!rule.selectedSlaves) { + } else if (!rule.selectedSlaves) { return false; - } else { - for(var d=0; d < rule.selectedSlaves.length; ++d){ - if(slave.ID == rule.selectedSlaves[d]){ - return true; - } - }return false; } + return rule.selectedSlaves.includes(slave.ID); }; window.ruleSlaveExcluded = function(slave, rule) { - if (!slave) { + if (!slave || !rule) { return null; - }else if (!rule) { - return null; - }else if (!rule.excludedSlaves) { + } else if (!rule.excludedSlaves) { return false; - } else { - for(var d=0; d < rule.excludedSlaves.length; ++d){ - if(slave.ID == rule.excludedSlaves[d]){ - return true; - } - }return false; } + return rule.excludedSlaves.includes(slave.ID); }; window.hasSurgeryRule = function(slave, rules) { @@ -1040,26 +1007,6 @@ window.hasSurgeryRule = function(slave, rules) { } }; -window.lastPregRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return false; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].preg == -1){ - return rules[d]; - } - } - } - }return null; - } -}; - window.hasHColorRule = function(slave, rules) { if (!slave) { return false; @@ -1120,827 +1067,222 @@ window.hasEyeColorRule = function(slave, rules) { } }; -window.lastEyeWearRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { +window.lastRuleFor = function(slave, rules, what) { + if (!slave || !rules || !slave.currentRules) return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].eyewear != "no default setting"){ - return rules[d]; - } - } + + for (var d = rules.length-1; d >= 0; --d) { + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d][what] !== "no default setting") { + return rules[d]; } - }return null; + } } + + return null; }; -window.lastEyeColorRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { +window.lastPregRule = function(slave, rules) { + if (!slave || !rules) return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].eyeColor != "no default setting"){ - return rules[d]; - } - } + if (!slave.currentRules) + return false; + + for (var d = rules.length-1; d >= 0; --d){ + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d].preg == -1){ + return rules[d]; } - }return null; + } } + + return null; +}; + +window.lastEyeWearRule = function(slave, rules) { + return lastRuleFor(slave, rules, "eyewear"); +}; + +window.lastEyeColorRule = function(slave, rules) { + return lastRuleFor(slave, rules, "eyeColor"); }; window.lastMakeupRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].makeup != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "makeup"); }; window.lastNailsRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].nails != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "nails"); }; window.lastHColorRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].hColor != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "hColor"); }; window.lastHStyleRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].hStyle != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "hStyle"); }; window.lastHLengthRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].hLength != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "hLength"); }; window.lastPubicHColorRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].pubicHColor != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "pubicHColor"); }; window.lastPubicHStyleRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].pubicHStyle != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "pubicHStyle"); }; window.lastUnderArmHColorRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].underArmHColor != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "underArmHColor"); }; window.lastUnderArmHStyleRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].underArmHStyle != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "underArmHStyle"); }; window.lastNipplesPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].nipplesPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "nipplesPiercing"); }; + window.lastAreolaePiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].areolaePiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "areolaePiercing"); }; + window.lastClitPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].clitPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "clitPiercing"); }; + window.lastClitSettingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].clitSetting != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "clitSetting"); }; + window.lastClitSettingXYRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].clitSettingXY != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "clitSettingXY"); }; + window.lastClitSettingXXRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].clitSettingXX != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "clitSettingXX"); }; + window.lastClitSettingEnergyRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].clitSettingEnergy != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "clitSettingEnergy"); }; + window.lastVaginaPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].vaginaPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "vaginaPiercing"); }; + window.lastDickPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].dickPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "dickPiercing"); }; + window.lastAnusPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].anusPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "anusPiercing"); }; + window.lastLipsPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].lipsPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "lipsPiercing"); }; + window.lastTonguePiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].tonguePiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "tonguePiercing"); }; + window.lastEarPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].earPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "earPiercing"); }; + window.lastEyebrowPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].earPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "eyebrowPiercing"); }; + window.lastNosePiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].nosePiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "nosePiercing"); }; + window.lastNavelPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].navelPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "navelPiercing"); }; + window.lastCorsetPiercingRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].corsetPiercing != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "corsetPiercing"); }; + window.lastBoobsTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].boobsTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "boobsTat"); }; + window.lastButtTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].buttTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "buttTat"); }; + window.lastVaginaTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].vaginaTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "vaginaTat"); }; + window.lastDickTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].dickTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "dickTat"); }; + window.lastAnusTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].anusTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "anusTat"); }; + window.lastLipsTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].lipsTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "lipsTat"); }; + window.lastShouldersTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].shouldersTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "shouldersTat"); }; + window.lastArmsTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].armsTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "armsTat"); }; + window.lastLegsTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].legsTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "legsTat"); }; + window.lastStampTatRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].stampTat != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastRuleFor(slave, rules, "stampTat"); }; -window.lastLactationSurgeryRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { +window.lastSurgeryRuleFor = function(slave, rules, what) { + if (!slave || !rules || !slave.currentRules) return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - if (!rules[d].surgery) { - return null; - } - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].surgery.lactation != "no default setting"){ - return rules[d]; - } - } + + for (var d = rules.length-1; d >= 0; --d) { + if (!rules[d].surgery) + return null; + + if (ruleApplied(slave, rules[d].ID)) { + if (rules[d].surgery[what] != "no default setting") { + return rules[d]; } - }return null; + } } + + return null; }; + +window.lastLactationSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "lactation"); +} + window.lastLipSurgeryRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - if (!rules[d].surgery) { - return null; - } - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].surgery.lips != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastSurgeryRuleFor(slave, rules, "lips"); }; + window.lastBoobSurgeryRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - if (!rules[d].surgery) { - return null; - } - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].surgery.boobs != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastSurgeryRuleFor(slave, rules, "boobs"); }; + window.lastButtSurgeryRule = function(slave, rules) { - if (!slave) { - return null; - }else if (!rules) { - return null; - }else if (!slave.currentRules) { - return null; - }else { - for(var d=rules.length-1; d >= 0;--d){ - if (!rules[d].surgery) { - return null; - } - for(var e=0; e < slave.currentRules.length;++e){ - if(slave.currentRules[e] == rules[d].ID){ - if (rules[d].surgery.butt != "no default setting"){ - return rules[d]; - } - } - } - }return null; - } + return lastSurgeryRuleFor(slave, rules, "butt"); }; window.checkThresholds = function(number, rule) { @@ -1996,13 +1338,6 @@ window.checkThresholds = function(number, rule) { } }; -window.removeFromArray = function(arr, val) { - for (var i = 0; i < arr.length; i++) - if (val == arr[i]) - return arr.splice(i,1); - return null; -}; - window.milkAmount = function(slave) { var milk; var calcs; diff --git a/src/pregmod/reMaleArcologyOwner.tw b/src/pregmod/reMaleArcologyOwner.tw index 39af19271f245ed228c67623f0d773d0a45ff541..4bff07de86b0c3577bce908968065e7cccfecbe8 100644 --- a/src/pregmod/reMaleArcologyOwner.tw +++ b/src/pregmod/reMaleArcologyOwner.tw @@ -14,7 +14,7 @@ He strikes a fine balance in conversation with you, firm enough to not overpower <span id="result"> <<link "Head over and assert yourself">> <<replace "#result">> - You head over and insert yourself into the conversation between him and the woman trying to convince him to invest in her solar power concern. Your presence and power are such that she gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to his company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what he was looking for. He is likely concerned that you are far too assertive for him to safely manage. He excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company. + You head over and insert yourself into the conversation between him and the woman trying to convince him to invest in her solar power concern. Your presence and power are such that she gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to his company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what he was looking for. He is likely concerned that you are far too assertive for him to safely manage. He excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>sheet of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company. <</replace>> <</link>> <br><<link "Walk past him and out onto an unoccupied balcony">> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index f734040b8e9e0aa820f03db4ca43274963c7e0ae..83347387ceb9e045fde54ddd1fd99d0728f5b760 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -39,56 +39,51 @@ <<set $fixedRace = 0>> <</if>> -<<if ndef $RulesID>> - <<set $RulesID to 3>> - <<include "Init Rules">> -<<else>> - <<for _i to 0; _i < $defaultRules.length; _i++>> - <<if ndef $defaultRules[_i].standardReward>> - <<set $defaultRules[_i].standardReward to "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].standardPunishment>> - <<set $defaultRules[_i].standardPunishment to "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].aVirginAccessory>> - <<set $defaultRules[_i].aVirginAccessory to "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].aVirginDickAccessory>> - <<set $defaultRules[_i].aVirginDickAccessory to "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].aVirginButtplug>> - <<set $defaultRules[_i].aVirginButtplug to "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].surgery>> - <<set $defaultRules[_i].surgery to {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>> - <</if>> - <<if ndef $defaultRules[_i].dietMilk>> - <<set $defaultRules[_i].dietMilk = 0>> - <</if>> - <<if ndef $defaultRules[_i].dietCum>> - <<set $defaultRules[_i].dietCum = 0>> - <</if>> - <<if ndef $defaultRules[_i].clitSettingXY>> - <<set $defaultRules[_i].clitSettingXY = "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].clitSettingXX>> - <<set $defaultRules[_i].clitSettingXX = "no default setting">> - <</if>> - <<if ndef $defaultRules[_i].clitSettingEnergy>> - <<set $defaultRules[_i].clitSettingEnergy = "no default setting">> - <</if>> - <<switch $defaultRules[_i].clitSetting>> - <<case "all">> - <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100, $defaultRules[_i].clitSettingXX = 100, $defaultRules[_i].clitSettingEnergy = 100>> - <<case "none">> - <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 0, $defaultRules[_i].clitSettingXX = 0, $defaultRules[_i].clitSettingEnergy = 0>> - <<case "men">> - <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100>> - <<case "women">> - <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXX = 100>> - <</switch>> - <</for>> -<</if>> +<<for _i = 0; _i < $defaultRules.length; _i++>> + <<if ndef $defaultRules[_i].standardReward>> + <<set $defaultRules[_i].standardReward = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].standardPunishment>> + <<set $defaultRules[_i].standardPunishment = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].aVirginAccessory>> + <<set $defaultRules[_i].aVirginAccessory = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].aVirginDickAccessory>> + <<set $defaultRules[_i].aVirginDickAccessory = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].aVirginButtplug>> + <<set $defaultRules[_i].aVirginButtplug = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].surgery>> + <<set $defaultRules[_i].surgery = {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>> + <</if>> + <<if ndef $defaultRules[_i].dietMilk>> + <<set $defaultRules[_i].dietMilk = 0>> + <</if>> + <<if ndef $defaultRules[_i].dietCum>> + <<set $defaultRules[_i].dietCum = 0>> + <</if>> + <<if ndef $defaultRules[_i].clitSettingXY>> + <<set $defaultRules[_i].clitSettingXY = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].clitSettingXX>> + <<set $defaultRules[_i].clitSettingXX = "no default setting">> + <</if>> + <<if ndef $defaultRules[_i].clitSettingEnergy>> + <<set $defaultRules[_i].clitSettingEnergy = "no default setting">> + <</if>> + <<switch $defaultRules[_i].clitSetting>> + <<case "all">> + <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100, $defaultRules[_i].clitSettingXX = 100, $defaultRules[_i].clitSettingEnergy = 100>> + <<case "none">> + <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 0, $defaultRules[_i].clitSettingXX = 0, $defaultRules[_i].clitSettingEnergy = 0>> + <<case "men">> + <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXY = 100>> + <<case "women">> + <<set $defaultRules[_i].clitSetting = "no default setting", $defaultRules[_i].clitSettingXX = 100>> + <</switch>> +<</for>> <<if ndef $month>> <<set $month to either("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")>> @@ -488,22 +483,6 @@ Setting missing global variables: <<set $nicaeaHeld = 0>> <</if>> -<<if ndef $AProsperityCap>> - <<set $AProsperityCap to 60>> -<</if>> -<<if ndef $ACitizens>> - <<set $ACitizens to ($AProsperityCap+200)*16>> -<</if>> -<<if ndef $ASlaves>> - <<set $ASlaves to ($AProsperityCap+200)*4>> -<</if>> -<<if ndef $AHelots>> - <<set $AHelots to $ASlaves*2>> -<</if>> -<<if ndef $helots>> - <<set $helots to 0>> -<</if>> - <<if ndef $facilityCost>> <<set $facilityCost to 500>> <</if>> @@ -1109,14 +1088,14 @@ Setting missing global variables: <<set $fakeBellies to ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]>> /* lets fake bellies be seperated from other .bellyAccessory */ <</if>> -<<if ($ver.includes("0.9") != true) || ($ver == "0.9")>> +<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver == "0.9")>> <<if $seeDicks == 2>> <<set $seeDicks = 100>> <<elseif $seeDicks == 1>> <<set $seeDicks = 25>> <</if>> <</if>> -<<if ($ver.includes("0.9.4") != true) && ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>> +<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver.includes("0.9.4") != true) && ($ver.includes("0.9") == true) && ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>> <<for _r to 0; _r < $defaultRules.length; _r++>> <<if ndef $defaultRules[_r].aphrodisiacs>> <<set $defaultRules[_r].aphrodisiacs = 0>> @@ -1287,8 +1266,7 @@ Setting missing slave variables: <<set _Slave.training = 0>> <</if>> -<<if ($ver.includes("0.8.9") != true) && ($ver.includes("0.8.10") != true) && ($ver.includes("0.8.11") != true) && ($ver.includes("0.8.12") != true)>> -<<if $ver.includes("0.9") != true>> +<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) && ($ver.includes("0.8.9") != true) && ($ver.includes("0.8.10") != true) && ($ver.includes("0.8.11") != true) && ($ver.includes("0.8.12") != true)>> <<if _Slave.attrXX == 2>> <<set _Slave.attrXX = 90>> <<elseif _Slave.attrXX == 1>> @@ -1312,10 +1290,8 @@ Setting missing slave variables: <<set _Slave.attrXY = 10>> <</if>> <</if>> -<</if>> -<<if $ver.includes("0.9") != true>> -<<if $ver.includes("0.10") != true>> +<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true)>> <<if _Slave.health <= -9>> <<set _Slave.health = -90>> <<elseif _Slave.health <= -7>> @@ -1387,9 +1363,8 @@ Setting missing slave variables: <</if>> <</if>> <</if>> -<</if>> -<<if ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>> +<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver.includes("0.9") == true) && ($ver.includes("0.9.5") != true) && ($ver.includes("0.9.6") != true) && ($ver.includes("0.9.7") != true) && ($ver.includes("0.9.8") != true) && ($ver.includes("0.9.9") != true) && ($ver.includes("0.9.10") != true)>> <<if _Slave.oralSkill > 0>> <<if _Slave.oralSkill == 3>> <<set _Slave.oralSkill = 100>> @@ -1461,7 +1436,7 @@ Setting missing slave variables: <</if>> <</if>> <</if>> -<<if ($ver.includes("0.9") != true) || ($ver == "0.9")>> +<<if ($ver.includes("0.6") == true) || ($ver.includes("0.7") == true) || ($ver.includes("0.8") == true) || ($ver.includes("0.9") != true) || ($ver == "0.9")>> <<if _Slave.lips != 0>> <<if _Slave.lips == 3>> <<set _Slave.lips = 85>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index 9129cb3ab9500e37b7ae5a15bb11a02df1be339e..6101e272ce1e30987ded7db5fe3f4f11955596ea 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -225,7 +225,7 @@ You have a lot of work to do with <span id="name"><<print "[[$activeSlave.slaveN An escape attempt occurs and is stopped almost before you are informed of it. <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> made a rash attempt to leave the penthouse, but $assistantName monitors everyone constantly and was able to enclose her before she got very far. <<if $assistant == 0>>It reports impersonally that the would-be escapee is locked in the entryway awaiting your judgment.<<else>>She reports suggestively that the would-be escapee is locked in the entryway awaiting your pleasure.<</if>> <br><br> -<<if $AProsperityCap > 60>>Your advanced security systems are able to stop her promptly, and there is no indication to the public that any escape attempt was made.<<else>>Your basic security systems are only able to stop her by briefly locking down your penthouse, exciting @@.red;some adverse public comment.@@<<set $rep -= 100>><</if>> +<<if $arcologyUpgrade.drones == 1>>Your advanced security systems are able to stop her promptly, and there is no indication to the public that any escape attempt was made.<<else>>Your basic security systems are only able to stop her by briefly locking down your penthouse, exciting @@.red;some adverse public comment.@@<<set $rep -= 100>><</if>> <<if $activeSlave.indentureRestrictions > 0>> <br><br> This behavior has violated her indenture contract, allowing you to apply more severe punishments that might otherwise breach it. @@ -1327,7 +1327,7 @@ Heading back towards your office after seeing to a minor matter, you encounter < <<case "refreshment delivery">> -When it's time for refreshments, $assistantName directs the closest unoccupied slave to bring them in. This has the added advantage of bringing an enjoyably unpredictable variety of slaves under your eyes. This time, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> comes through the door of your office, carrying <<if $PC.refreshmentType == 0>>a selection of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 1>>a bottle of $PC.refreshment with a glass in your favorite style<<elseif $PC.refreshmentType == 2>>a selection of $PC.refreshment on a plate of your favored style<<elseif $PC.refreshmentType == 3>>a line of $PC.refreshment and the necessary implements<<else>>a syringe of $PC.refreshment and the necessary implements<</if>> on a tray<<if $activeSlave.preg > 30>> carefully held against her pregnant belly, doing her best to will her child<<if $activeSlave.pregType > 1>>ren<</if>> to not kick the tray off balance<<elseif $activeSlave.preg > 20>> carefully held against her pregnant belly<</if>>. +When it's time for refreshments, $assistantName directs the closest unoccupied slave to bring them in. This has the added advantage of bringing an enjoyably unpredictable variety of slaves under your eyes. This time, <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> comes through the door of your office, carrying <<if $PC.refreshmentType == 0>>a selection of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 1>>a bottle of $PC.refreshment with a glass in your favorite style<<elseif $PC.refreshmentType == 2>>a selection of $PC.refreshment on a plate of your favored style<<elseif $PC.refreshmentType == 3>>a line of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 4>>a syringe of $PC.refreshment and the necessary implements<<elseif $PC.refreshmentType == 5>>a bottle of $PC.refreshment<<elseif $PC.refreshmentType == 4>>several sheets of $PC.refreshment<</if>> on a tray<<if $activeSlave.preg > 30>> carefully held against her pregnant belly, doing her best to will her child<<if $activeSlave.pregType > 1>>ren<</if>> to not kick the tray off balance<<elseif $activeSlave.preg > 20>> carefully held against her pregnant belly<</if>>. <br><br> @@ -1335,11 +1335,11 @@ She comes to a stop right beside your elbow, waiting for further direction, just <<if $activeSlave.amp < 0>> As she maintains her posture obediently, her P-Limbs produce minute machine noises. They allow her good coordination, but their gyros and servomotors are constantly working to maintain it, which means that when she stands still, they're not perfectly quiet. <<elseif $activeSlave.boobs > 4000>> - Her breasts are so massive that she's got the tray more or less balanced on top of them. As she breathes, her tits rise and fall slightly, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threatening to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<else>>causing the syringes of $PC.refreshment to roll from side to side<</if>>. + Her breasts are so massive that she's got the tray more or less balanced on top of them. As she breathes, her tits rise and fall slightly, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threatening to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<elseif $PC.refreshmentType == 4>>causing the syringes of $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 5>>rattling the $PC.refreshment in its bottle<<elseif $PC.refreshmentType == 6>>threatening to knock the sheets of $PC.refreshment off the tray<</if>>. <<elseif $activeSlave.preg > 30>> - She keeps the tray balanced atop her pregnancy, though the weight encourages her child<<if $activeSlave.pregType > 1>>ren<</if>> to begin kicking. As you glance over at her, she lets out a minute, tired sigh, as kicks from her child<<if $activeSlave.pregType > 1>>ren<</if>> <<if $PC.refreshmentType == 0>>cause the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>cause ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threaten to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturb the lines of $PC.refreshment<<else>>cause the syringes of $PC.refreshment to roll from side to side<</if>>. + She keeps the tray balanced atop her pregnancy, though the weight encourages her child<<if $activeSlave.pregType > 1>>ren<</if>> to begin kicking. As you glance over at her, she lets out a minute, tired sigh, as kicks from her child<<if $activeSlave.pregType > 1>>ren<</if>> <<if $PC.refreshmentType == 0>>cause the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>cause ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>threaten to knock the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturb the lines of $PC.refreshment<<elseif $PC.refreshmentType == 4>>cause the syringes of $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 5>>rattle the $PC.refreshment in its bottle<<elseif $PC.refreshmentType == 6>>threaten to knock the sheets of $PC.refreshment off the tray<</if>>. <<elseif $activeSlave.preg > 20>> - Her pregnant belly is big enough that she's got the tray more or less balanced on top of it. As you glance over at her, she lets out a minute, tired sigh, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>nearly rocking the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<else>>causing the syringes of $PC.refreshment to roll from side to side<</if>>. + Her pregnant belly is big enough that she's got the tray more or less balanced on top of it. As you glance over at her, she lets out a minute, tired sigh, <<if $PC.refreshmentType == 0>>causing the $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 1>>causing ripples in the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>nearly rocking the $PC.refreshment from it's plate<<elseif $PC.refreshmentType == 3>>disturbing the lines of $PC.refreshment<<elseif $PC.refreshmentType == 4>>causing the syringes of $PC.refreshment to roll from side to side<<elseif $PC.refreshmentType == 5>>nearly tipping the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>threatening to blow the sheets of $PC.refreshment off the tray<</if>>. <<elseif $activeSlave.muscles > 30>> With her incredible musculature, she's able to maintain utter stillness in the perfect posture of an obedient slave. A naturally standing human makes some small movements, but her strength allows her to suppress them by setting muscle groups against each other. This has the ancillary benefit of making them stand out nicely. <<elseif $activeSlave.energy > 95>> @@ -1672,7 +1672,7 @@ The consequences of the special qualities of her womanhood soon become apparent. <br><br> Your slaves are all in the very best of vaginal health, so the scent of her female arousal is not strong. But her cunt produces such copious natural lubricant that with nothing to do but stand there, her <<if $activeSlave.births > 0>>motherly<<elseif $activeSlave.weight > 30>>thick<<elseif $activeSlave.muscles > 30>>strong<<else>>feminine<</if>> inner thighs are soon slick with a sheen of healthy pussyjuice. You notice a droplet of the stuff running down her warm $activeSlave.skin skin. <<if canAchieveErection($activeSlave)>> - Her <<if $activeSlave.dick > 3>>stiff prick<<else>>hard little dick<</if>> is sticking up from atop her pussy, leaving it nice and visible. + Her <<if $activeSlave.dick > 3>>stiff prick<<else>>hard little dick<</if>> is sticking up from atop her pussy, leaving it nice and visible. <<elseif $activeSlave.dick > 0>> Her pussy is <<if $activeSlave.dick > 3>>entirely<<else>>partially<</if>> concealed by her limp dick, which is getting a good coating, since it's resting against the source. <</if>> @@ -4323,7 +4323,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <br><<link "Share some refreshments with her">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You reach into the back of your desk, where your private reserves are, and wordlessly offer her a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>>. She stares at you disbelievingly for a moment before stammering her thanks and accepting it with both hands. She holds it uncertainly, watching you get one yourself. + You reach into the back of your desk, where your private reserves are, and wordlessly offer her a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>pill of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tab of $PC.refreshment<</if>>. She stares at you disbelievingly for a moment before stammering her thanks and accepting it with both hands. She holds it uncertainly, watching you get one yourself. <br><br> She is first among your slaves, but she is still very much a slave. She neither receives nor expects <<if $PC.refreshmentType == 0>> @@ -4344,7 +4344,7 @@ You tell her kindly that you understand, and that she'll be trained to address t <<else>> She savors the thrill of using $PC.refreshment for a moment, before turning to you, an almost desperate need on her face. <</if>> - You return to work, and she follows your example, though she's rather distracted. When she finishes hers, she sets her tablet down for a moment and comes over to you, doing her best to show her naked body to best advantage as she comes. She gives you a deep kiss, <<if $PC.refreshmentType == 0 || $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>which tastes of fine $PC.refreshment, with a hint of $activeSlave.slaveName,<<else>>with plenty of tongue,<</if>> and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as she savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4>>rush<<else>>flavor<</if>>. + You return to work, and she follows your example, though she's rather distracted. When she finishes hers, she sets her tablet down for a moment and comes over to you, doing her best to show her naked body to best advantage as she comes. She gives you a deep kiss, <<if $PC.refreshmentType == 0 || $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>which tastes of fine $PC.refreshment, with a hint of $activeSlave.slaveName,<<else>>with plenty of tongue,<</if>> and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as she savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4 || $PC.refreshmentType == 5 || $PC.refreshmentType == 6>>rush<<else>>flavor<</if>>. <<set $activeSlave.trust += 4>> <</replace>> <</link>> @@ -7306,7 +7306,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part <<link "Enjoy some oral with your refreshments">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - There were many things about being an arcology owner you didn't properly understand before you became one. One of the smallest and yet most enjoyable is the unlimited availability of <<if $PC.refreshmentType == 0>>a good $PC.refreshment<<elseif $PC.refreshmentType == 1>>a glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>$PC.refreshment<<else>>a syringe of $PC.refreshment<</if>> and <<if $PC.dick == 1>>a blowjob<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>some cunnilingus<</if>>. Turning to $activeSlave.slaveName, you <<if $PC.refreshmentType == 0>>select a $PC.refreshment<<elseif $PC.refreshmentType == 1>>pour yourself some $PC.refreshment<<elseif $PC.refreshmentType == 2>>serve yourself a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>prepare a line of $PC.refreshment<<else>>select a syringe of $PC.refreshment<</if>>, relieve the slave of the tray, and <<if !canSee($activeSlave)>>audibly <</if>>widen your legs slightly in your chair. She <<if $activeSlave.preg > 20>>gently lowers her pregnant body to its<<else>>immediately drops to her<</if>> knees and gets to work, <<if $activeSlave.oralSkill >= 100>>using all of her mastery at giving oral pleasure<<elseif $activeSlave.oralSkill > 60>>using all of her skills at in oral pleasure<<else>>doing her best despite her mediocre oral skills<</if>>.<<if $activeSlave.teeth > 2>> You can feel the extreme care she has to take to keep her sharklike teeth clear of you.<<elseif $activeSlave.lips > 40>> Her huge lips are soft and pillowy against you.<<elseif ($activeSlave.teeth == "straightening braces") || ($activeSlave.teeth == "cosmetic braces")>> You can feel the slight hesitations as she takes care to keep her braces off you.<</if>> You take your time, <<if $PC.refreshmentType == 0>>smoking meditatively<<elseif $PC.refreshmentType == 1>>taking meditative sips<<elseif $PC.refreshmentType == 2>>taking meditative bites<<elseif $PC.refreshmentType == 3>>enjoying your $PC.refreshment high<<else>>injecting a fix into your arm<</if>> and running a thoughtful hand <<if $activeSlave.hLength > 1>>through $activeSlave.slaveName's $activeSlave.hColor hair<<else>>across $activeSlave.slaveName's scalp<</if>> while you look at the view out your office windows. This isn't the first time you've done this, nor will it be the last, and $activeSlave.slaveName is @@.hotpink;used to being used as a serving girl.@@ + There were many things about being an arcology owner you didn't properly understand before you became one. One of the smallest and yet most enjoyable is the unlimited availability of <<if $PC.refreshmentType == 0>>a good $PC.refreshment<<elseif $PC.refreshmentType == 1>>a glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>$PC.refreshment<<elseif $PC.refreshmentType == 4>>a syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>bottles of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tabs of $PC.refreshment<</if>> and <<if $PC.dick == 1>>a blowjob<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>some cunnilingus<</if>>. Turning to $activeSlave.slaveName, you <<if $PC.refreshmentType == 0>>select a $PC.refreshment<<elseif $PC.refreshmentType == 1>>pour yourself some $PC.refreshment<<elseif $PC.refreshmentType == 2>>serve yourself a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>prepare a line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>select a syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>carefully tap out enough pills of $PC.refreshment to satisfy you<<elseif $PC.refreshmentType == 6>>carefully pick up a tab of $PC.refreshment<</if>>, relieve the slave of the tray, and <<if !canSee($activeSlave)>>audibly <</if>>widen your legs slightly in your chair. She <<if $activeSlave.preg > 20>>gently lowers her pregnant body to its<<else>>immediately drops to her<</if>> knees and gets to work, <<if $activeSlave.oralSkill >= 100>>using all of her mastery at giving oral pleasure<<elseif $activeSlave.oralSkill > 60>>using all of her skills at in oral pleasure<<else>>doing her best despite her mediocre oral skills<</if>>.<<if $activeSlave.teeth > 2>> You can feel the extreme care she has to take to keep her sharklike teeth clear of you.<<elseif $activeSlave.lips > 40>> Her huge lips are soft and pillowy against you.<<elseif ($activeSlave.teeth == "straightening braces") || ($activeSlave.teeth == "cosmetic braces")>> You can feel the slight hesitations as she takes care to keep her braces off you.<</if>> You take your time, <<if $PC.refreshmentType == 0>>smoking meditatively<<elseif $PC.refreshmentType == 1>>taking meditative sips<<elseif $PC.refreshmentType == 2>>taking meditative bites<<elseif $PC.refreshmentType == 3>>enjoying your $PC.refreshment high<<elseif $PC.refreshmentType == 4>>injecting a fix into your arm<<elseif $PC.refreshmentType == 5>>popping a few $PC.refreshment<<elseif $PC.refreshmentType == 6>>holding the tab under your tongue<</if>> and running a thoughtful hand <<if $activeSlave.hLength > 1>>through $activeSlave.slaveName's $activeSlave.hColor hair<<else>>across $activeSlave.slaveName's scalp<</if>> while you look at the view out your office windows. This isn't the first time you've done this, nor will it be the last, and $activeSlave.slaveName is @@.hotpink;used to being used as a serving girl.@@ <<set $activeSlave.devotion += 4>> <<set $activeSlave.oralCount += 1>> <<set $oralTotal += 1>> @@ -7316,15 +7316,19 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> <<if $PC.refreshmentType != 2>> - You tell her to hop up on the desk. She obeys promptly, <<if $activeSlave.energy > 95>>already starting to pant<<else>><<if canSee($activeSlave)>>watching you<<else>>listening<</if>> closely for further instructions<</if>>. To her complete lack of surprise, you tell her to pull her legs back and spread her hole<<if $activeSlave.vagina > -1>>s<</if>>. As she opens herself for you, she <<if canSee($activeSlave)>>sees<<else>>hears<</if>> that you're doing something with <<if $PC.refreshmentType == 0>>the $PC.refreshment<<elseif $PC.refreshmentType == 1>>the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>the plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>the bag of $PC.refreshment<<else>>the syringe of $PC.refreshment<</if>>, and <<if $activeSlave.trust > 50>>relaxes, trusting you completely<<else>>does her best to relax<</if>>. She gasps when she feels + You tell her to hop up on the desk. She obeys promptly, <<if $activeSlave.energy > 95>>already starting to pant<<else>><<if canSee($activeSlave)>>watching you<<else>>listening<</if>> closely for further instructions<</if>>. To her complete lack of surprise, you tell her to pull her legs back and spread her hole<<if $activeSlave.vagina > -1>>s<</if>>. As she opens herself for you, she <<if canSee($activeSlave)>>sees<<else>>hears<</if>> that you're doing something with <<if $PC.refreshmentType == 0>>the $PC.refreshment<<elseif $PC.refreshmentType == 1>>the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 2>>the plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>the bag of $PC.refreshment<<elseif $PC.refreshmentType == 4>>the syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>the tabs of $PC.refreshment<</if>>, and <<if $activeSlave.trust > 50>>relaxes, trusting you completely<<else>>does her best to relax<</if>>. She gasps when she feels <<if $PC.refreshmentType == 0>> the head of the lit $PC.refreshment, warm from your mouth, being gently inserted into her <<if $activeSlave.vagina > 0>>pussy<<else>>asshole<</if>>. You give her precise muscular instructions, which she does her best to obey, and before long, she's slowly smoking it using her fuckhole. Her body is very permeable there, and the effects of the it hit her very quickly. <<elseif $PC.refreshmentType == 1>> the cool tip of a small enema bulb being gently inserted into her ass. You press the $PC.refreshment into her slowly. You didn't give her much, but her body is very permeable there, and the effects hit her very quickly. <<elseif $PC.refreshmentType == 3>> $PC.refreshment being gently inserted into her ass. You didn't give her much, but her body is very permeable there, and the effects hit her very quickly. - <<else>> + <<elseif $PC.refreshmentType == 4>> the tip of the syringe penetrate her <<if $activeSlave.dick > 0>>cock head<<elseif $activeSlave.vagina == -1>>tiny front hole<<else>>clit<</if>> and the sting of the contents being forced into her sex organ. You didn't give her much, but her body is very sensitive there, and the effects hit her very quickly. + <<elseif $PC.refreshmentType == 5>> + your finger pushing a pill deep into her <<if $activeSlave.vagina > 0>>pussy<<else>>asshole<</if>>. You didn't give her much, but her body is very sensitive there, and the effects hit her very quickly. + <<elseif $PC.refreshmentType == 6>> + finger pushing a tab into her <<if $activeSlave.vagina > 0>>pussy<<else>>asshole<</if>>. You didn't give her much, but it quickly disolves and her body is very sensitive there, so the effects hit her very quickly. <</if>> You go back to work, letting the slave loll around on your desk, enjoying the effects. You reflect that it's probably some kind of milestone in wealth that you're willing to throw the good stuff around like this. When she's had time to reflect on the strange incident, she @@.mediumaquamarine;resolves to trust you more in the future,@@ since it can be fun. <<else>> @@ -7371,7 +7375,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part <<link "Use her as a cushion">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You tell her she's looking very nice today. Surprised,she manages <<if $activeSlave.devotion > 20>>to thank you prettily, wondering<<else>>to thank you hesitantly, worrying about<</if>> what comes next. You pick up a tablet, come around your desk, and fold yourself into a lotus position, just in front of her and with your back to her. Struck by this strange and trusting maneuver, she keeps still, letting you get yourself situated. You slide backward until you are pressed against the mound of breasts behind you, and then relax into their soft, fleshy mass. Your back nestles naturally into her cleavage, and the give of her huge mammaries conforms to you, allowing you to rest your elbows comfortably on each breast as though they were armrests. Feeling the weight of you against her chest, $activeSlave.slaveName throws her arms back, bracing herself against the floor.<<if $activeSlave.preg > 30>> You can feel her full, taut, pregnancy just barely once you have sunk deep into her cleavage.<</if>> You begin to tap away at the tablet, and she realizes <<if $activeSlave.devotion > 20>>with pleased surprise<<else>>with mixed resentment and relief<</if>> that you intend to use her as a sort of human cushion for a while. From where she's sitting, she <<if canSee($activeSlave)>>can easily read over your shoulder, and you make no attempt to stop her<<else>>could read over your shoulder, if she could see<</if>>; keeping secrets from your slaves is generally impractical, and <<if $activeSlave.devotion > 20>>this $desc is trustworthy<<else>>there's nothing she could do with your secrets, even if she were to try<</if>>. After an hour or so, you inspect her and dismiss her, and she leaves @@.mediumaquamarine;trusting her bizarre place@@ in your world. + You tell her she's looking very nice today. Surprised, she manages <<if $activeSlave.devotion > 20>>to thank you prettily, wondering<<else>>to thank you hesitantly, worrying about<</if>> what comes next. You pick up a tablet, come around your desk, and fold yourself into a lotus position, just in front of her and with your back to her. Struck by this strange and trusting maneuver, she keeps still, letting you get yourself situated. You slide backward until you are pressed against the mound of breasts behind you, and then relax into their soft, fleshy mass. Your back nestles naturally into her cleavage, and the give of her huge mammaries conforms to you, allowing you to rest your elbows comfortably on each breast as though they were armrests. Feeling the weight of you against her chest, $activeSlave.slaveName throws her arms back, bracing herself against the floor.<<if $activeSlave.preg > 30>> You can feel her full, taut, pregnancy just barely once you have sunk deep into her cleavage.<</if>> You begin to tap away at the tablet, and she realizes <<if $activeSlave.devotion > 20>>with pleased surprise<<else>>with mixed resentment and relief<</if>> that you intend to use her as a sort of human cushion for a while. From where she's sitting, she <<if canSee($activeSlave)>>can easily read over your shoulder, and you make no attempt to stop her<<else>>could read over your shoulder, if she could see<</if>>; keeping secrets from your slaves is generally impractical, and <<if $activeSlave.devotion > 20>>this $desc is trustworthy<<else>>there's nothing she could do with your secrets, even if she were to try<</if>>. After an hour or so, you inspect her and dismiss her, and she leaves @@.mediumaquamarine;trusting her bizarre place@@ in your world. <<set $activeSlave.trust += 4>> <</replace>> <</link>> @@ -7895,7 +7899,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part <<link "Have mercy on the poor girl and take her off her cum diet for now">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You see how $activeSlave.slaveName is suffering and you decide to reconsider her dietary prescription. You instruct $assistantName to change <<print $activeSlave.slaveName>>'s diet to exclude cum for now. Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves. She is now @@.mediumorchid;more confident that she can resist you and get her way@@, she also @@.mediumaquamarine;trusts you a little more@@ to look after her well being. + You see how $activeSlave.slaveName is suffering and you decide to reconsider her dietary prescription. You instruct $assistantName to change <<print $activeSlave.slaveName>>'s diet to exclude cum for now. Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves. She is now @@.mediumorchid;more confident that she can resist you and get her way@@, she also @@.mediumaquamarine;trusts you a little more@@ to look after her well being. <<set $activeSlave.trust += 5>> <<set $activeSlave.devotion -= 5>> <<set $activeSlave.dietCum = 0>> @@ -7937,7 +7941,7 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part <br><<link "Sentence her to a day in $arcadeName for cum injection therapy">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You have $assistantName inform $activeSlave.slaveName of her unacceptable behavior and sentence her to a day in $arcadeName. She cries and pleads for mercy, and even begs to be allowed to suck a cock, any cock, so she can prove her newfound enthusiasm for cum, but you are unmerciful as two other slaves drag her off to serve her sentence. She is forced to wear a<<if $activeSlave.vagina != -1>> combined vaginal and<<else>>n<</if>> anal chastity belt so that the only hole available is her mouth, and is then confined in $arcadeName with her mouth spread open by a ring gag and her head sticking through the hole in the wall. A sign below her mouth proclaims her to be a "cum extraction tube" and she is used that way for the duration of her stay--a gruelling, 18-hour marathon of relentless throat fucking. <<if $activeSlave.sexualFlaw != "hates oral">>Her ordeal is so extreme that she now @@.red;hates oral sex@@<<else>>Her hatred of oral sex makes her ordeal that much more horrific<</if>>, but it @@.hotpink;breaks down her resistance@@. She now @@.gold;better understands the terrifying power you have over her@@, and the sheer amount of cum she is forced to ingest @@.red;negatively effects her health@@. Your other cum-fed slaves take note of what you do to girls who can't hold down their assigned diet. + You have $assistantName inform $activeSlave.slaveName of her unacceptable behavior and sentence her to a day in $arcadeName. She cries and pleads for mercy, and even begs to be allowed to suck a cock, any cock, so she can prove her newfound enthusiasm for cum, but you are unmerciful as two other slaves drag her off to serve her sentence. She is forced to wear a<<if $activeSlave.vagina != -1>> combined vaginal and<<else>>n<</if>> anal chastity belt so that the only hole available is her mouth, and is then confined in $arcadeName with her mouth spread open by a ring gag and her head sticking through the hole in the wall. A sign below her mouth proclaims her to be a "cum extraction tube" and she is used that way for the duration of her stay--a gruelling, 18-hour marathon of relentless throat fucking. <<if $activeSlave.sexualFlaw != "hates oral">>Her ordeal is so extreme that she now @@.red;hates oral sex@@<<else>>Her hatred of oral sex makes her ordeal that much more horrific<</if>>, but it @@.hotpink;breaks down her resistance@@. She now @@.gold;better understands the terrifying power you have over her@@, and the sheer amount of cum she is forced to ingest @@.red;negatively effects her health@@. Your other cum-fed slaves take note of what you do to girls who can't hold down their assigned diet. <<set $activeSlave.devotion += 5>> <<set $activeSlave.trust -= 5>> <<set $activeSlave.health -= 5>> @@ -7954,9 +7958,9 @@ She's obviously @@.mediumaquamarine;becoming more comfortable@@ playing the part <<link "Surgically alter her to be of the inferior $arcologies[0].FSSubjugationistRace race, and give her a public debut">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> -Some slaves have a bigger potential price to pay for disobedience than they realize. $activeSlave.slaveName is $activeSlave.race, which is<<if $activeSlave.race != $arcologies[0].FSSupremacistRace>> not particularly noteworthy.<<else>> advantageous to her, as it is generally unpopular to enslave a girl of the superior race.<</if>> However, she's about to learn that her racial appearance isn't immutable, and in your arcology, it can make a big difference in how she is treated. You escort the struggling <<if $activeSlave.preg > 5>>mother-to-be<<else>>girl<</if>> to the surgery center and instruct $assistantName to alter her appearance so that she appears to be <<print $arcologies[0].FSSubjugationistRace>>. The full meaning of your instructions <<if $activeSlave.intelligence < 0>> slowly start to dawn on <<print $activeSlave.slaveName>>'s stupid face <<else>> spark a quick reaction <<if canSee($activeSlave)>>from <<print $activeSlave.slaveName>>'s intelligent eyes<<else>>on <<print $activeSlave.slaveName>>'s intelligent face<</if>><</if>> and she whimpers and begs for you to reconsider even as she's strapped onto the operating table. +Some slaves have a bigger potential price to pay for disobedience than they realize. $activeSlave.slaveName is $activeSlave.race, which is<<if $activeSlave.race != $arcologies[0].FSSupremacistRace>> not particularly noteworthy.<<else>> advantageous to her, as it is generally unpopular to enslave a girl of the superior race.<</if>> However, she's about to learn that her racial appearance isn't immutable, and in your arcology, it can make a big difference in how she is treated. You escort the struggling <<if $activeSlave.preg > 5>>mother-to-be<<else>>girl<</if>> to the surgery center and instruct $assistantName to alter her appearance so that she appears to be <<print $arcologies[0].FSSubjugationistRace>>. The full meaning of your instructions <<if $activeSlave.intelligence < 0>> slowly start to dawn on <<print $activeSlave.slaveName>>'s stupid face <<else>> spark a quick reaction <<if canSee($activeSlave)>>from <<print $activeSlave.slaveName>>'s intelligent eyes<<else>>on <<print $activeSlave.slaveName>>'s intelligent face<</if>><</if>> and she whimpers and begs for you to reconsider even as she's strapped onto the operating table. <br><br> -By the time she wakes up from the anesthesia, you've already made the necessary alterations to her permanent records, which now clearly indicate that she was born <<print $arcologies[0].FSSubjugationistRace>>, and as such, can be rightfully regarded as the racially inferior fuck-animal she now is. Of course, your fellow slave owners and the slave market will be savvy enough to see through the alterations you've forced upon her, but when you make her available for a day of use in the public square, all your average citizen knows is that the girl they are fucking is simply a worthless $arcologies[0].FSSubjugationistRace slut who doesn't deserve much more than a stomach full of cum. The surgery @@.red;negatively effects her health@@, but by the end of a long day she'll likely never forget, she has gotten a crash course in what it means to be a $arcologies[0].FSSubjugationistRace slave in your arcology, and any evidence that she was born $activeSlave.race has been efficiently expunged from her records. <<if ($activeSlave.vagina == 0 || $activeSlave.anus == 0)>>@@.lime;All vestiges of her virginity have been unceremoniously stripped away@@.<</if>> The experience has @@.hotpink;broken down her resistance@@, and your willingness to go to such extremes to subjugate her @@.gold;greatly increases her fear of you@@. +By the time she wakes up from the anesthesia, you've already made the necessary alterations to her permanent records, which now clearly indicate that she was born <<print $arcologies[0].FSSubjugationistRace>>, and as such, can be rightfully regarded as the racially inferior fuck-animal she now is. Of course, your fellow slave owners and the slave market will be savvy enough to see through the alterations you've forced upon her, but when you make her available for a day of use in the public square, all your average citizen knows is that the girl they are fucking is simply a worthless $arcologies[0].FSSubjugationistRace slut who doesn't deserve much more than a stomach full of cum. The surgery @@.red;negatively effects her health@@, but by the end of a long day she'll likely never forget, she has gotten a crash course in what it means to be a $arcologies[0].FSSubjugationistRace slave in your arcology, and any evidence that she was born $activeSlave.race has been efficiently expunged from her records. <<if ($activeSlave.vagina == 0 || $activeSlave.anus == 0)>>@@.lime;All vestiges of her virginity have been unceremoniously stripped away@@.<</if>> The experience has @@.hotpink;broken down her resistance@@, and your willingness to go to such extremes to subjugate her @@.gold;greatly increases her fear of you@@. <<set $activeSlave.devotion += 5>> <<set $activeSlave.trust -= 10>> <<set $activeSlave.vagina += 1>> @@ -8016,7 +8020,7 @@ At first $activeSlave.slaveName is confused as to why you are showing her these <br><<link "Discipline her normally. Artificial racial subjugation is going too far">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> -You look $activeSlave.slaveName over, and something about her makes you reconsider playing games with her racial appearance. <<if $activeSlave.race == $arcologies[0].FSSupremacistRace>>Perhaps her natural $activeSlave.race supremacy is too sacrosanct for you to go to such lengths. <</if>>You'll not make such an extreme example of her. Still, she is a disobedient slave, and she cannot be allowed to openly defy your orders and inspections. You take her over your knee, expose her bare ass and spank her hard and relentlessly. She screams and whines and struggles, and you call in an obedient slave to help keep control of her as you punish her reddened bottom. You also make sure to tell her how lucky she is that she isn't one of those worthless sub-human $arcologies[0].FSSubjugationistRace sluts, and that she is getting off easy. But you also remind her that there are worse owners to belong to, and if she continues to resist your will, you will be very selective about who you sell her to. +You look $activeSlave.slaveName over, and something about her makes you reconsider playing games with her racial appearance. <<if $activeSlave.race == $arcologies[0].FSSupremacistRace>>Perhaps her natural $activeSlave.race supremacy is too sacrosanct for you to go to such lengths. <</if>>You'll not make such an extreme example of her. Still, she is a disobedient slave, and she cannot be allowed to openly defy your orders and inspections. You take her over your knee, expose her bare ass and spank her hard and relentlessly. She screams and whines and struggles, and you call in an obedient slave to help keep control of her as you punish her reddened bottom. You also make sure to tell her how lucky she is that she isn't one of those worthless sub-human $arcologies[0].FSSubjugationistRace sluts, and that she is getting off easy. But you also remind her that there are worse owners to belong to, and if she continues to resist your will, you will be very selective about who you sell her to. <br><br> By the time you've finished with her sensitive ass, it shines red, and she is crying and whimpering in pain. You send her away, having @@.hotpink;dampened her resistance a bit@@, and @@.gold;scared her with your tales of how much worse life could be@@ for her <<if $activeSlave.race == $arcologies[0].FSSupremacistRace>> if she weren't born of the supreme race.<<else>>under a less forgiving owner.<</if>> <<set $activeSlave.devotion += 5>> @@ -8029,7 +8033,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <<link "Give the poor girl a break and take her off her cum diet so she can safely get to a healthier weight">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You silently appraise <<print $activeSlave.slaveName>>'s desperate face and lean forward in your chair to check your terminal. You confirm that <<if $activeSlave.dietCum == 1>> her food is supplemented with cum for flavor.<<else>>she is being fed significant amounts of ejaculate.<</if>> While her <<if $activeSlave.dietCum == 2>>extreme <</if>>diet is still engineered to <<if $activeSlave.dietCum == 2>>barely <</if>> provide the nutrition she needs, if she can't hold the stuff down, she can't gain weight<<if $activeSlave.preg > 5>>, even more so with her growing child taking whatever nutrients it can<</if>>. With a few taps on the keyboard you change her orders so that she will be fed a much more nutritionally rich diet that is free of ejaculate. However, you make sure to warn her that $assistantName will be monitoring her, and you may change your mind once she reaches a more attractive weight. She thanks you profusely, <<if $activeSlave.vagina != 0>>even attempting to offer her body for use in gratitude,<</if>> but you simply send her away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a @@.hotpink;positive effect on her attitude@@. She @@.aquamarine;trusts you a little more@@ too. + You silently appraise <<print $activeSlave.slaveName>>'s desperate face and lean forward in your chair to check your terminal. You confirm that <<if $activeSlave.dietCum == 1>> her food is supplemented with cum for flavor.<<else>>she is being fed significant amounts of ejaculate.<</if>> While her <<if $activeSlave.dietCum == 2>>extreme <</if>>diet is still engineered to <<if $activeSlave.dietCum == 2>>barely <</if>> provide the nutrition she needs, if she can't hold the stuff down, she can't gain weight<<if $activeSlave.preg > 5>>, even more so with her growing child taking whatever nutrients it can<</if>>. With a few taps on the keyboard you change her orders so that she will be fed a much more nutritionally rich diet that is free of ejaculate. However, you make sure to warn her that $assistantName will be monitoring her, and you may change your mind once she reaches a more attractive weight. She thanks you profusely, <<if $activeSlave.vagina != 0>>even attempting to offer her body for use in gratitude,<</if>> but you simply send her away. You find yourself concerned that you are becoming soft by allowing slaves to dictate what they will and won't eat, but your benevolent decision has already had a @@.hotpink;positive effect on her attitude@@. She @@.aquamarine;trusts you a little more@@ too. <<set $activeSlave.trust += 2>> <<set $activeSlave.devotion += 2>> <<set $activeSlave.dietCum = 0>> @@ -8059,7 +8063,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <br><<link "Use aphrodisiacs and positive reinforcement to make her cum diet more palatable">> <<replace "#name">>$activeSlave.slaveName<</replace>> <<replace "#result">> - You do a quick check at your terminal. She is indeed being fed <<if $activeSlave.dietCum == 1>> food that is supplemented with cum for flavor.<<else>>large amounts of human ejaculate.<</if>> You tell her that it can't be helped. When you assign a slave her diet, it's for a reason, and in <<print $activeSlave.slaveName>>'s case, you are using her diet to make her into a better whore. By the look on her distressed face, you can tell she doesn't understand or appreciate your perspective, but you tell her you have just the thing to help change her outlook. + You do a quick check at your terminal. She is indeed being fed <<if $activeSlave.dietCum == 1>> food that is supplemented with cum for flavor.<<else>>large amounts of human ejaculate.<</if>> You tell her that it can't be helped. When you assign a slave her diet, it's for a reason, and in <<print $activeSlave.slaveName>>'s case, you are using her diet to make her into a better whore. By the look on her distressed face, you can tell she doesn't understand or appreciate your perspective, but you tell her you have just the thing to help change her outlook. <br><br> You pull out a heavy dose of aphrodisiacs from the drawer in your desk. They are expensive, but powerful drugs that can be used in a brute force way to manipulate the sexual urges and tastes of even the most frigid sluts. The mild dose included in every slave's food is usually enough to affect a slow, inevitable change in attitude for resistant slaves, but sometimes a more acute dose can be an amusing way to turn disgust into dependence. $activeSlave.slaveName shivers as you reassure her and inject her <<if $activeSlave.weight < -80>>bony <<else>>tiny <</if>>body with the powerful drugs. You know they are working when she begins to perspire a little, and <<if $activeSlave.vagina > -1>>she starts to leak fresh girl-juice down her shivering thighs<<elseif $activeSlave.dick == 0>>starts to turn instinctively to offer you her only hole<<else>>her dick starts to come to attention<</if>>. You then book her to be the main attraction at a corporate office party that afternoon, where she will be the target of a blow-bang and bukkake. You see that she's dosed heavily with the drugs every day this week, and then book the rest of her afternoons for similar duties, making sure she still tends to her regular assignments as well. In the meantime, you also instruct the kitchen that she is to eat as much cum-based food from the dispensers as she can suck down in order to fuel up for these exhausting escapades. By the end of the week, the aphrodisiacs and her slide into an inescapable routine of cum immersion have done their job, and she has begun to @@.lightcoral;view cum as an inevitable component of her daily life@@. She also manages to @@.green;gain a little weight@@. Thanks to your manipulation of her Pavlovian responses through extreme drug therapy, her @@.red;health has suffered a bit@@, but she is also @@.hotpink;more dependent on you@@ thanks to her <<if $activeSlave.addict == 0>>@@.cyan;new@@<<else>>@@.cyan;developing@@<</if>> @@.cyan;addiction to aphrodisiacs.@@ <<set $activeSlave.devotion += 5>> @@ -8099,7 +8103,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <<set $activeSlave.fetishKnown = 1>> <</if>> <</if>> - Not long after you penetrate her, she <<if $activeSlave.balls > 0>>squirts a weak ejaculation onto the couch<<else>>shivers and releases some watery fluid<</if>>. She had almost forgotten that she was being fucked like a girl, and stiffens uncomfortably when she feels you <<if $PC.dick == 1>>fill her rectum with your hot seed<<else>>grip her hips harder and shake with your own climax<</if>>. As she gets up from the couch, she seems @@.hotpink;subdued and submissive.@@ After all, if she's submitting to you, that absolves her of responsibility for what she's becoming. + Not long after you penetrate her, she <<if $activeSlave.balls > 0>>squirts a weak ejaculation onto the couch<<else>>shivers and releases some watery fluid<</if>>. She had almost forgotten that she was being fucked like a girl, and stiffens uncomfortably when she feels you <<if $PC.dick == 1>>fill her rectum with your hot seed<<else>>grip her hips harder and shake with your own climax<</if>>. As she gets up from the couch, she seems @@.hotpink;subdued and submissive.@@ After all, if she's submitting to you, that absolves her of responsibility for what she's becoming. <<set $activeSlave.devotion += 5>> <<AnalVCheck>> <</replace>> @@ -8215,7 +8219,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr You approach her and <<if $activeSlave.dick > 0>>reach under her girldick for her<<else>>cup her<</if>> sopping pussy. She gasps as she feels your cool grasp. Your possessive hand encompasses her vulva, with your index and ring fingers sliding around either side of her pubic mound to grip her entire womanhood. <<if $activeSlave.vagina > 0>> <<if $activeSlave.vagina > 0>> - Her relaxed pussy almost draws your middle finger inward and upward, + Her relaxed pussy almost draws your middle finger inward and upward, <<else>> Her pussy welcomes your middle finger, <</if>> @@ -8706,7 +8710,7 @@ By the time you've finished with her sensitive ass, it shines red, and she is cr <<set $activeSlave.oralCount++, $oralTotal++>> <</if>> When she's gotten you off, she @@.mediumaquamarine;thanks you trustingly.@@ Even though she wasn't able to figure out how to seat herself in a really satisfactorily sexy way, she's glad you gave her some agency. - <</if>> + <</if>> <</replace>> <<set $activeSlave.trust += 5>> <</link>> diff --git a/src/uncategorized/apartments.tw b/src/uncategorized/apartments.tw new file mode 100644 index 0000000000000000000000000000000000000000..c43a8bc8de95e354c662ede5538ba45bbd6f1e1e --- /dev/null +++ b/src/uncategorized/apartments.tw @@ -0,0 +1,36 @@ +:: Apartments [nobr] + +<<set $nextButton = "Back", $nextLink = "Manage Arcology">> + +This is a sector of the arcology's living areas, +<<switch $sectors[$AS].type>> +<<case "Apartments">> + occupied by citizens of varying wealth and social standing. +<<case "DenseApartments">> + upgraded for dense occupancy by as many citizens as possible. +<<case "LuxuryApartments">> + improved for occupancy by the Free Cities' wealthiest citizens. +<<default>>ERROR: bad sector type +<</switch>> + +You control this part of the arcology and all these tenants pay you rent. +<<SectorSell>> +<br> + +<<if $sectors[$AS].type != "DenseApartments">> + <br> + [[Upgrade this sector of apartments for dense occupancy by as many citizens as possible|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $sectors[$AS].type = "DenseApartments"]] + //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>// +<</if>> + +<<if $sectors[$AS].type != "LuxuryApartments">> + <br> + [[Improve this sector of apartments occupancy by the Free Cities' wealthiest citizens|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $sectors[$AS].type = "LuxuryApartments"]] + //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>// +<</if>> + +<<if $sectors[$AS].type != "Apartments">> + <br> + [[Return this sector to standard, mixed housing|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $sectors[$AS].type = "Apartments"]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<</if>> \ No newline at end of file diff --git a/src/uncategorized/arcade.tw b/src/uncategorized/arcade.tw index 653386a40521bc7980bf04b44b742ab139ab6547..9ba495898cd85ea74c0db4105de71de06a988134 100644 --- a/src/uncategorized/arcade.tw +++ b/src/uncategorized/arcade.tw @@ -61,7 +61,16 @@ $arcadeNameCaps <<elseif $arcadeSlaves > 0>> It's understaffed; there are lines here and there for the few holes available. <<else>> - It's empty and quiet. [[Decommission the arcade|Main][$arcade = 0, $arcadeUpgradeInjectors = 0, $arcadeUpgradeFuckdolls = 0, $arcadeUpgradeCollectors = 0]] + It's empty and quiet. + <<link "Decommission the arcade">> + <<set $arcade = 0, $arcadeUpgradeInjectors = 0, $arcadeUpgradeFuckdolls = 0, $arcadeUpgradeCollectors = 0>> + <<for _i = 0; _i < $sectors.length; _i++>> + <<if $sectors[_i].type == "Arcade">> + <<set $sectors[_i].type == "Markets">><<break>> + <</if>> + <</for>> + <<goto "Main">> + <</link>> <</if>> <br>It can support $arcade inmates. diff --git a/src/uncategorized/arcadeReport.tw b/src/uncategorized/arcadeReport.tw index d468a115bc6cbf021838b2764c4945a39466f9c1..a9f2215d20f5b964892730202e1975b5a46271df 100644 --- a/src/uncategorized/arcadeReport.tw +++ b/src/uncategorized/arcadeReport.tw @@ -35,6 +35,9 @@ <</if>> /% Onward bound as normal %/ <<set $oldCash = $cash, $i = _i>> + + /* Perform facility based rule changes */ + <<set $slaves[_i].clothes = "no clothing">> <<if ($arcadeUpgradeInjectors == 1)>> <<if ($slaves[_i].health > -60)>> <<set $slaves[_i].health -= 10>> @@ -54,6 +57,7 @@ <</if>> <<set $slaves[_i].trust -= 5>> <</if>> + <<if $showEWD != 0>> <br><br> /* 000-250-006 */ diff --git a/src/uncategorized/arcologyDescription.tw b/src/uncategorized/arcologyDescription.tw index 9229ed4e2c7efab3b627c7c3273c97888e2c1fea..2a7d1907ef94668e43ae55d37c749c6b4bd8206b 100644 --- a/src/uncategorized/arcologyDescription.tw +++ b/src/uncategorized/arcologyDescription.tw @@ -1,135 +1,8 @@ :: Arcology Description [nobr] -/* -<style> - table.arcology { - table-layout:fixed; - text-align: center; - border-collapse: separate; - border-spacing: 5px; - border-style: hidden; - empty-cells: hide; - } - th, td { - background-color: Black; - width: 50px; - } - td#Empty { - border: 5px solid LightGray; - } - td#Private { - border: 5px solid Red; - } - td#Apartments { - border: 5px solid YellowGreen; - } - td#Pens { - border: 5px solid GoldenRod; - } - td#Entryway { - border: 5px solid SlateGray; - } - td#Barracks { - border: 5px solid OliveDrab; - } - td#Apron { - border: 5px solid Skyblue; - } - td#Hydro { - border: 5px solid SeaGreen; - } - td#Penthouse { - border: 5px solid Teal; - } - td#Brothel { - border: 5px solid Pink; - } - td#Club { - border: 5px solid Plum; - } - td#Arcade { - border: 5px solid DeepPink; - } -</style> - -<center> -<table class="arcology" border="1"> - <tr> - <td></td> - <td></td> - <td></td> - <td></td> - <td id="Penthouse" colspan="4"><<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td></td> - <td></td> - <td></td> - <td id="Private" colspan="2">Private</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Empty" colspan="2">Empty</td> - </tr> - <tr> - <td></td> - <td></td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Club" colspan="2">[[$clubNameCaps|Club]]</td> - <td id="Empty" colspan="2">Empty</td> - <td id="Empty" colspan="2">Empty</td> - </tr> - <tr> - <td></td> - <td></td> - <td id="Brothel" colspan="2">[[$brothelNameCaps|Brothel]]</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Arcade" colspan="2">[[$arcadeNameCaps|Club]]</td> - <td id="Apartments" colspan="2">Apartments</td> - </tr> - <tr> - <td></td> - <td></td> - <td id="Private" colspan="2">Private</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Private" colspan="2">Private</td> - <td id="Empty" colspan="2">Empty</td> - </tr> - <tr> - <td></td> - <td id="Hydro">Hydro</td> - <td id="Empty" colspan="2">Empty</td> - <td id="Private" colspan="2">Private</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Private" colspan="2">Private</td> - <td id="Hydro">Hydro</td> - </tr> - <tr> - <td></td> - <td id="Empty" colspan="2">Empty</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Apartments" colspan="2">Apartments</td> - </tr> - <tr> - <td id="Apron">Apron</td> - <td id="Apartments" colspan="2">Apartments</td> - <td id="Empty" colspan="2">Empty</td> - <td id="Entryway" colspan="2">Entryway</td> - <td id="Pens" colspan="2">Pens</td> - <td id="Barracks" colspan="2">Barracks</td> - <td id="Apron" colspan="2">Apron</td> - </tr> -</table> -</center> -*/ - -__''$arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $AProsperityCap >= 120>> solar-panelled<</if>> skin gleams in the sunshine<<if $AProsperityCap >= 100>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>.<<if $weatherCladding > 0>> Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $AProsperityCap >= 300>>, though its highest point is capped by tall, elegant spire<</if>>.<</if>> -Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<elseif $AProsperityCap >= 120>> shining<</if>> bulk +__''$arcologies[0].name''__, your arcology, is located in a Free City in <<if $terrain == "oceanic">>the middle of the ocean<<else>>$continent<</if>>. It is a huge structure whose<<if $arcologyUpgrade.apron == 1>> solar-panelled<</if>> skin gleams in the sunshine<<if $arcologyUpgrade.hydro == 1>>, while verdant exterior hydroponics bays lend it an air of growth<</if>>.<<if $weatherCladding == 1>> Much of its beautiful exterior is now hidden behind dull panels of weather cladding<<if $arcologyUpgrade.spire == 1>>, though its highest point is capped by tall, elegant spire<</if>><<elseif $weatherCladding == 1>> The entirety of its once dull exterior has been retrofitted with breathtaking golden sheets in eye catching designs<<if $arcologyUpgrade.spire == 1>>, its highest point capped by a tall, magnificient spire<</if>>.<</if>> +Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<elseif $arcologyUpgrade.apron == 1>> shining<</if>> bulk <<if $terrain == "urban">> towers above the city around it; it is part of a cluster of arcologies that form a Free City in the midst of an old world urban area. <<elseif $terrain == "rural">> @@ -331,7 +204,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el <<elseif $arcologies[0].FSChineseRevivalistDecoration >= 40>> Some are showing ancient Chinese operas. <</if>> - <<if $AProsperityCap >= 190>>The programming is constantly updated to suit the individual viewer.<</if>> + <<if $arcologyUpgrade.grid == 1>>The programming is constantly updated to suit the individual viewer.<</if>> <<if $brothelAdsSpending > 0>> Pornographic advertisements for the brothel are interspersed with the programming. <<if $brothelAdsOld == 1>> @@ -528,9 +401,9 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el <<elseif $arcologies[0].FSChineseRevivalistDecoration >= 60>> The central plaza is constructed as a Chinese water market, with stalls set up to serve customers passing by on boats riding on shallow canals. <</if>> - <<if $AProsperityCap > 60>>A security drone occasionally flies across the open space.<</if>> + <<if $arcologyUpgrade.drones == 1>>A security drone occasionally flies across the open space.<</if>> <<else>> - <<if $AProsperityCap > 60>>The central plaza is a large atrium; a security drone occasionally flies across the open space.<</if>> + <<if $arcologyUpgrade.drones == 1>>The central plaza is a large atrium; a security drone occasionally flies across the open space.<</if>> <</if>> <<if ($arcologies[0].FSSupremacistDecoration >= 80) || ($arcologies[0].FSSubjugationistDecoration >= 80) || ($arcologies[0].FSGenderRadicalistDecoration >= 80) || ($arcologies[0].FSGenderFundamentalistDecoration >= 80) || ($arcologies[0].FSPaternalistDecoration >= 80) || ($arcologies[0].FSDegradationistDecoration >= 80) || ($arcologies[0].FSBodyPuristDecoration >= 80) || ($arcologies[0].FSRepopulationFocusDecoration >= 80) || ($arcologies[0].FSRestartDecoration >= 80) || ($arcologies[0].FSTransformationFetishistDecoration >= 80) || ($arcologies[0].FSYouthPreferentialistDecoration >= 80) || ($arcologies[0].FSMaturityPreferentialistDecoration >= 80) || ($arcologies[0].FSSlimnessEnthusiastDecoration >= 80) || ($arcologies[0].FSAssetExpansionistDecoration >= 80) || ($arcologies[0].FSPastoralistDecoration >= 80) || ($arcologies[0].FSPhysicalIdealistDecoration >= 80) || ($arcologies[0].FSChattelReligionistDecoration >= 80) || ($arcologies[0].FSRomanRevivalistDecoration >= 80) || ($arcologies[0].FSEgyptianRevivalistDecoration >= 80) || ($arcologies[0].FSEdoRevivalistDecoration >= 80) || ($arcologies[0].FSArabianRevivalistDecoration >= 80) || ($arcologies[0].FSChineseRevivalistDecoration >= 80)>> @@ -680,7 +553,7 @@ Its<<if $weatherCladding == 2>> glorious<<elseif $weatherCladding > 0>> dull<<el The noise in the thriving open space is almost oppressive, with the sounds of drunken merriment, traditional music, and distant intercourse forming an omnipresent hum. <</if>> -$ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial slaves live in $arcologies[0].name. +$ACitizens citizens and <<print $ASlaves+$helots+$slaves.length>> slaves live in $arcologies[0].name. <<if $arcologies[0].FSSupremacistLawME == 1>>The citizenry is entirely $arcologies[0].FSSupremacistRace.<</if>> <<if $arcologies[0].FSRomanRevivalistLaw == 1>>Every citizen has military responsibilities, which are a point of pride to many, with most opting to wear utilitarian clothing even when off duty.<</if>> <<if $arcologies[0].FSMaturityPreferentialistLaw == 1>>Most citizens are at least middle-aged, and graying hair on a citizen is considered attractive here. @@ -704,7 +577,7 @@ $ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial Its lingua franca is $language. -<span id="neighbors"><br> +<span id="neighbors"> <<link "View neighboring arcologies">> <<replace "#neighbors">> diff --git a/src/uncategorized/assign.tw b/src/uncategorized/assign.tw index 1733d59b79a6be4fd6532136f205dac4c8cdf537..d3cd34948fc35d1fc61ad2d53ff2c0503170a6ca 100644 --- a/src/uncategorized/assign.tw +++ b/src/uncategorized/assign.tw @@ -3,64 +3,25 @@ <<set $activeSlave = $slaves[$i], _ID = $activeSlave.ID>> <<assignJob $activeSlave $returnTo>> + <<switch $returnTo>> -<<case "Arcade">> - <<set $activeSlave.clothes = "no clothing">> -<<case "Master Suite">> - <<if $masterSuiteUpgradeLuxury > 1>> - <<set $activeSlave.livingRules = "luxurious">> - <<else>> - <<set $activeSlave.livingRules = "normal">> - <</if>> -<<case "Dairy">> - <<if $dairyRestraintsSetting > 1>> - <<set $activeSlave.collar = "none", $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none">> - <</if>> - <<if $dairyPregSetting > 0>> - <<set $reservedChildren -= $activeSlave.reservedChildren>> - <<set $activeSlave.reservedChildren to 0>> - <</if>> <<case "Pit">> <<set $fighterIDs.push(_ID)>> + <<case "Coursing Association">> <<set $Lurcher = $activeSlave>> -<</switch>> -<<if ($returnTo != "Pit") && ($returnTo != "Coursing Association")>> - -<<if $returnTo != "Master Suite">> - <<set $activeSlave.livingRules = "spare">> -<</if>> - -<<set $activeSlave.drugs = "no drugs", $activeSlave.releaseRules = "restrictive", $activeSlave.sentence = 0, $activeSlave.standardPunishment = "situational", $activeSlave.standardReward = "situational", $activeSlave.releaseRules = "restrictive">> - -<<if _ID == $HeadGirl.ID>><<set $HeadGirl = 0>><</if>> -<<if _ID == $Recruiter.ID>><<set $Recruiter = 0>><</if>> -<<if _ID == $Bodyguard.ID>><<set $Bodyguard = 0>><</if>> -<<if _ID == $Madam.ID>><<set $Madam = 0>><</if>> -<<if _ID == $DJ.ID>><<set $DJ = 0>><</if>> -<<if _ID == $Milkmaid.ID>><<set $Milkmaid = 0>><</if>> -<<if _ID == $Schoolteacher.ID>><<set $Schoolteacher = 0>><</if>> -<<if _ID == $Attendant.ID>><<set $Attendant = 0>><</if>> -<<if _ID == $Nurse.ID>><<set $Nurse = 0>><</if>> -<<if _ID == $Collectrix.ID>><<set $Collectrix = 0>><</if>> -<<if _ID == $Stewardess.ID>><<set $Stewardess = 0>><</if>> -<<if _ID == $Wardeness.ID>><<set $Wardeness = 0>><</if>> -<<if _ID == $Concubine.ID>><<set $Concubine = 0>><</if>> - -<<set $slaves[$i] = $activeSlave>> +<<default>> + <<if ($showAssignToScenes != 1) || ($activeSlave.fetish == "mindbroken")>> + <<goto $returnTo>> + <<elseif ($returnTo == "Dairy") && (($dairyStimulatorsSetting >= 2) || ($dairyFeedersSetting >= 2) || ($dairyPregSetting >= 2))>> + <<goto "Industrial Dairy Assignment Scene">> + <<elseif ($returnTo == "Dairy") && ($dairyRestraintsSetting == 0 && $activeSlave.devotion > 0)>> + <<goto "Free Range Dairy Assignment Scene">> + <<elseif ($returnTo == "Brothel")>> + <<goto "Brothel Assignment Scene">> + <<else>> + <<goto $returnTo>> + <</if>> -<<if ($showAssignToScenes != 1) || ($activeSlave.fetish == "mindbroken")>> - <<goto $returnTo>> -<<elseif ($returnTo == "Dairy") && (($dairyStimulatorsSetting >= 2) || ($dairyFeedersSetting >= 2) || ($dairyPregSetting >= 2))>> - <<goto "Industrial Dairy Assignment Scene">> -<<elseif ($returnTo == "Dairy") && ($dairyRestraintsSetting == 0 && $activeSlave.devotion > 0)>> - <<goto "Free Range Dairy Assignment Scene">> -<<elseif ($returnTo == "Brothel")>> - <<goto "Brothel Assignment Scene">> -<<else>> - <<goto $returnTo>> -<</if>> -<<else>> - <<goto $returnTo>> -<</if>> +<</switch>> diff --git a/src/uncategorized/brothel.tw b/src/uncategorized/brothel.tw index 3643317f1381ee932f7d78ea7ef1d25fbd1398da..6c79ea15c3d4766fbe6a319cbd1a071c3662e08a 100644 --- a/src/uncategorized/brothel.tw +++ b/src/uncategorized/brothel.tw @@ -129,7 +129,16 @@ $brothelNameCaps <<elseif $Madam != 0>> $Madam.slaveName is alone in $brothelName, and has nothing to do but keep the place clean and plan future sales efforts. <<else>> - $brothelNameCaps is empty and desolate. [[Decommission the brothel|Main][$brothel = 0, $brothelUpgradeDrugs = 0, $brothelDecoration = "standard"]] + $brothelNameCaps is empty and desolate. + <<link "Decommission the brothel">> + <<set $brothel = 0, $brothelUpgradeDrugs = 0, $brothelDecoration = "standard">> + <<for _i = 0; _i < $sectors.length; _i++>> + <<if $sectors[_i].type == "Brothel">> + <<set $sectors[_i].type == "Shops">><<break>> + <</if>> + <</for>> + <<goto "Main">> + <</link>> <</if>> <<set _Tmult0 = Math.trunc($brothel*1000*$upgradeMultiplierArcology)>> diff --git a/src/uncategorized/buildingWidgets.tw b/src/uncategorized/buildingWidgets.tw new file mode 100644 index 0000000000000000000000000000000000000000..1aba1edd73fd9863570c108a974a7f996ac80e9e --- /dev/null +++ b/src/uncategorized/buildingWidgets.tw @@ -0,0 +1,310 @@ +:: building widgets [nobr widget] + +/% +Call as <<DisplayBuilding>> +Displays the arcology as a table. +Yes, I am aware this is horrible. If anyone can figure out how to get widgets to play nice with tables, or otherwise unfuck this, tell me and I'll implement it. +%/ +<<widget "DisplayBuilding">> + +<<set _Pass = passage()>> + +<style> + table.arcology { + table-layout: fixed; + text-align: center; + border-collapse: separate; + border-spacing: 5px; + border-style: hidden; + empty-cells: hide; + width: 80%; + } + th, td { + background-color: Black; + width: 8%; + } + td#Empty { + border: 5px solid LightGray; + } + td#Private { + border: 5px solid Red; + } + td#Shops { + border: 5px solid Thistle; + } + td#Brothel { + border: 5px solid Violet; + } + td#Club { + border: 5px solid Orchid; + } + td#Apartments { + border: 5px solid LimeGreen; + } + td#DenseApartments { + border: 5px solid SeaGreen; + } + td#LuxuryApartments { + border: 5px solid PaleGreen; + } + td#Markets { + border: 5px solid MediumOrchid; + } + td#Arcade { + border: 5px solid DeepPink; + } + td#Pens { + border: 5px solid GoldenRod; + } + td#Pit { + border: 5px solid OrangeRed; + } + td#Manufacturing { + border: 5px solid SlateGray; + } + td#Barracks { + border: 5px solid OliveDrab; + } + td#Penthouse { + border: 5px solid Teal; + } + td#Dairy { + border: 5px solid White; + } +</style> + +<center> +<table class="arcology" border="1"> + <tr> /* Level 9, penthouse, sector 0 */ + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + </tr> + <tr> /* Level 9, penthouse, sector 0 */ + <td></td> + <td></td> + <td></td> + <td id="Penthouse" colspan="4"> + <<link "Penthouse">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Manage Penthouse">><</link>> + <<if $servantsQuarters||$spa||$clinic||$schoolroom||$cellblock||$incubator>> + <br> + <<if $masterSuite>>[[Suite|Master Suite]]<</if>> + <<if $servantsQuarters>>[[Quarters|Servants' Quarters]]<</if>> + <<if $spa>>[[Spa]]<</if>> + <<if $clinic>>[[Clinic]]<</if>> + <<if $schoolroom>>[[Schoolroom]]<</if>> + <<if $cellblock>>[[Cellblock]]<</if>> + <<if $incubator>>[[Incubator]]<</if>> + <<if $HGSuite>>[HG Suite|Head Girl Suite]]<</if>> + <</if>> + </td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> /* Level 6, promenade, sectors 5-7 */ + <td></td> + <td></td> + <<for _i = 5; _i <= 7; _i++>> + <<switch $sectors[_i].type>> + <<case "Club">> + <td colspan="2" id="Club"><<print "[[Club][$AS="+_i+"]]">> ($clubSlaves/<<print $club>><<if $DJ>>, L<</if>>)</td> + <<case "Brothel">> + <td colspan="2" id="Brothel"><<print "[[Brothel][$AS="+_i+"]]">> ($brothelSlaves/<<print $brothel>><<if $Madam>>,L<</if>>)</td> + <<case "Shops">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Shops"><<print "[[Shops][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Shops|Private][$AS="+_i+"]]">></td> + <</if>> + <<default>><td></td> + <</switch>> + <</for>> + </tr> + <tr> /* Level 5, apartments, sectors 8-11 */ + <td></td> + <<for _i = 8; _i <= 11; _i++>> + <<switch $sectors[_i].type>> + <<case "Apartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Apartments"><<print "[[Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "DenseApartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="DenseApartments"><<print "[[Dense Apartments|Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Dense Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "LuxuryApartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="LuxuryApartments"><<print "[[Luxury Apartments|Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Luxury Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<default>><td></td> + <</switch>> + <</for>> + </tr> + <tr> /* Level 4, apartments, sectors 12-15 */ + <td></td> + <<for _i = 12; _i <= 15; _i++>> + <<switch $sectors[_i].type>> + <<case "Apartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Apartments"><<print "[[Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "DenseApartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="DenseApartments"><<print "[[Dense Apartments|Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Dense Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "LuxuryApartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="LuxuryApartments"><<print "[[Luxury Apartments|Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Luxury Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<default>><td></td> + <</switch>> + <</for>> + </tr> + <tr> /* Level 3, apartments, sectors 16-19 */ + <td></td> + <<for _i = 16; _i <= 19; _i++>> + <<switch $sectors[_i].type>> + <<case "Apartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Apartments"><<print "[[Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "DenseApartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="DenseApartments"><<print "[[Dense Apartments|Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Dense Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "LuxuryApartments">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="LuxuryApartments"><<print "[[Luxury Apartments|Apartments][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Luxury Apartments|Private][$AS="+_i+"]]">></td> + <</if>> + <<default>><td></td> + <</switch>> + <</for>> + </tr> + <tr> /* Level 2, concourse, sectors 20-24 */ + <<for _i = 20; _i <= 24; _i++>> + <<switch $sectors[_i].type>> + <<case "Markets">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Markets"><<print "[[Markets][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Markets|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "Pit">> + <td colspan="2" id="Pit"><<print "[[Pit][$AS="+_i+"]]">></td> + <<case "Arcade">> + <td colspan="2" id="Arcade"><<print "[[Arcade][$AS="+_i+"]]">> ($arcadeSlaves/<<print $arcade>>)</td> + <<default>><td></td> + <</switch>> + <</for>> + </tr> + <tr> /* Level 1, service area, sectors 25-29 */ + <<for _i = 25; _i <= 29; _i++>> + <<switch $sectors[_i].type>> + <<case "Manufacturing">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Manufacturing"><<print "[[Manufacturing][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Manufacturing|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "Pens">> + <<if $sectors[_i].ownership == 1>> + <td colspan="2" id="Pens"><<print "[[Pens][$AS="+_i+"]]">></td> + <<else>> + <td colspan="2" id="Private"><<print "[[Pens|Private][$AS="+_i+"]]">></td> + <</if>> + <<case "Barracks">> + <td colspan="2" id="Barracks">Barracks</td> + <<case "Dairy">> + <<set _SCapT9 = $bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>> + <td colspan="2" id="Dairy"><<print "[[Dairy][$AS="+_i+"]]">> ($dairySlaves<<if _SCapT9>>+_SCapT9<</if>>/<<print $dairy>><<if $Milkmaid>>,L<</if>>)</td> + <<default>><td></td> + <</switch>> + <</for>> + </tr> +</table> +</center> + +<</widget>> + +<<widget "SectorSell">> + +<<set $price = 1000*Math.trunc($arcologies[0].prosperity*(1+($arcologies[0].demandFactor/100)))>> +Selling this sector would relenquish a 4% interest in $arcologies[0].name. Such an interest is worth ¤$price. +<<if $arcologies[0].ownership >= 4>> + [[Sell|Manage Arcology][$cash += $price, $arcologies[0].ownership -= 4, $arcologies[0].demandFactor -= 20, $sectors[$AS].ownership = 0]] +<</if>> + +<</widget>> + +/% + Call as <<ApartmentEffects>> + Updates $ACitizenLimit and $AProsperityCap. +%/ +<<widget "ApartmentEffects">> + +<<if $arcologyUpgrade.drones != 1>> + <<set $AProsperityCap = 0>> +<<elseif $arcologyUpgrade.hydro != 1>> + <<set $AProsperityCap = 10>> +<<elseif $arcologyUpgrade.apron != 1>> + <<set $AProsperityCap = 30>> +<<elseif $arcologyUpgrade.grid != 1>> + <<set $AProsperityCap = 60>> +<<elseif $arcologyUpgrade.spire != 1>> + <<set $AProsperityCap = 100>> +<<else>> + <<set $AProsperityCap = 150>> +<</if>> +<<set $ACitizenLimit = 0>> +<<for _i = 8; _i <= 19; _i++>> + <<if $sectors[_i].type == "DenseApartments">> + <<set $ACitizenLimit += 600, $AProsperityCap += 10>> + <<elseif $sectors[_i].type == "LuxuryApartments">> + <<set $ACitizenLimit += 400, $AProsperityCap += 15>> + <<else>> + <<set $ACitizenLimit += 400, $AProsperityCap += 10>> + <</if>> +<</for>> + +<</widget>> + +/% + Call as <<UpdateOwnership>> + Updates $arcologies[0].ownership. +%/ +<<widget "UpdateOwnership">> + +<<set $arcologies[0].ownership = 0>> +<<for _i = 5; _i <= 29; _i++>> + <<if $sectors[_i].ownership == 1>> + <<set $arcologies[0].ownership += 4>> + <</if>> +<</for>> + +<</widget>> \ No newline at end of file diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw index 3ab2de8e5077d679a863534a7cbee1c1eda489b5..3167be76517c784f330a1ef056675e338776b5fa 100644 --- a/src/uncategorized/buySlaves.tw +++ b/src/uncategorized/buySlaves.tw @@ -143,8 +143,8 @@ __Sex Slave Purchase Options__ __Menial Slaves__ <br> -The parts of your arcology you own can house a total of <<print 100*Math.trunc(($arcologies[0].ownership*$AProsperityCap)/1000)>> menial slaves. <<MenialPopCap>> +The parts of your arcology you own can house a total of $PopCap menial slaves. <<set $seed = Math.trunc(($slaveCostFactor*1000)/100)*100>> <<set $seed = Math.clamp($seed, 500, 1500)>> diff --git a/src/uncategorized/club.tw b/src/uncategorized/club.tw index afb687d936a0c1bf12b9c11df50adda35b29592b..9e47a347bfcda3a6c1bdbc0ce76ba6507785a233 100644 --- a/src/uncategorized/club.tw +++ b/src/uncategorized/club.tw @@ -129,7 +129,16 @@ $clubNameCaps <<elseif $DJ != 0>> $clubNameCaps is doing business normally, without a complement of sex slaves to spice things up. $DJ.slaveName is alone in $clubName, and can accomplish little by herself. <<else>> - $clubNameCaps is doing business normally, without a complement of sex slaves to spice things up. [[Decommission the rooms|Main][$club = 0, $clubDecoration = "standard", $clubUpgradePDAs = 0]] + $clubNameCaps is doing business normally, without a complement of sex slaves to spice things up. + <<link "Decommission the club">> + <<set $club = 0, $clubDecoration = "standard", $clubUpgradePDAs = 0>> + <<for _i = 0; _i < $sectors.length; _i++>> + <<if $sectors[_i].type == "Club">> + <<set $sectors[_i].type == "Shops">><<break>> + <</if>> + <</for>> + <<goto "Main">> + <</link>> <</if>> <<if $clubSlaves > 2>> diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw index 5c88f72a6bb8db7d9c3be1a957956e9a7af1964d..6efa4390562e679fd1944d73642ba4172471fc60 100644 --- a/src/uncategorized/dairy.tw +++ b/src/uncategorized/dairy.tw @@ -296,7 +296,16 @@ $dairyNameCaps <<elseif $Milkmaid != 0>> $Milkmaid.slaveName is alone in $dairyName, and has nothing to do but clean and maintain the equipment. <<else>> - $dairyNameCaps is empty and desolate. [[Decommission the dairy|Main][$dairy = 0, $dairyFeedersUpgrade = 0, $dairyPregUpgrade = 0, $dairyStimulatorsUpgrade = 0, $dairyDecoration = "standard", $dairyFeedersSetting = 0, $dairyPregSetting = 0, $dairyStimulatorsSetting = 0,$dairyHyperPregRemodel = 0, $cumPipline = 0, $dairyPipeline = 0]] + $dairyNameCaps is empty and desolate. + <<link "Decommission the dairy">> + <<set $dairy = 0, $dairyFeedersUpgrade = 0, $dairyPregUpgrade = 0, $dairyStimulatorsUpgrade = 0, $dairyDecoration = "standard", $dairyFeedersSetting = 0, $dairyPregSetting = 0, $dairyStimulatorsSetting = 0, $dairyHyperPregRemodel = 0, $cumPipeline = 0, $dairyPipeline = 0>> + <<for _i = 0; _i < $sectors.length; _i++>> + <<if $sectors[_i].type == "Dairy">> + <<set $sectors[_i].type == "Manufacturing">><<break>> + <</if>> + <</for>> + <<goto "Main">> + <</link>> <</if>> <<set _Tmult0 = Math.trunc($dairy*1000*$upgradeMultiplierArcology)>> diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw index ca38d8c12a557e15409e85929d725b032d371442..5cbf541fc9397e0c3d509b554ffdc480e350264c 100644 --- a/src/uncategorized/dairyReport.tw +++ b/src/uncategorized/dairyReport.tw @@ -302,7 +302,14 @@ <<elseif ($slaves[_i].diet == "fattening") || ($dairyRestraintsSetting > 1)>> <<set $slaves[_i].diet = "healthy">> <</if>> - + <<if $dairyRestraintsSetting > 1>> + <<set $slaves[_i].collar = "none", $slaves[_i].clothes = "no clothing", $slaves[_i].buttplug = "none", $slaves[_i].vaginalAccessory = "none">> + <</if>> + <<if $dairyPregSetting > 0>> + <<set $reservedChildren -= $slaves[_i].reservedChildren>> + <<set $slaves[_i].reservedChildren to 0>> + <</if>> + /* General End of Week effects */ <<if $showEWD != 0>> <br><br> diff --git a/src/uncategorized/economics.tw b/src/uncategorized/economics.tw index 8033d4574651dc349d37da06091de36f93720a4c..3e8d12ab677230371758d765b75a0e8674c65361 100644 --- a/src/uncategorized/economics.tw +++ b/src/uncategorized/economics.tw @@ -1,12 +1,14 @@ :: Economics [nobr] -<<set $nextButton = "Continue">> -<<set $nextLink = "Scheduled Event">> +<<set $nextButton = "Continue", $nextLink = "Scheduled Event">> <<if $cash > -10000>> <<set $debtWarned = 0>> <</if>> +<<ApartmentEffects>> +<<UpdateOwnership>> + //FC Markets Report:// <<set $assetAffected = either("general", "slaves", "entrapment", "capture", "training", "surgical", "drugs")>> @@ -1290,75 +1292,47 @@ __Arcology Management__ <<else>> <<set $ASlaves += random(-10,10)>> <</if>> -<<if $AHelots < 100>> - <<set $AHelots = random(90,110)>> -<<else>> - <<set $AHelots += random(-10,10)>> -<</if>> -<<if $ACitizens < 100>> - <<set $ACitizens = random(90,110)>> -<<else>> - <<set $ACitizens += random(-10,10)>> -<</if>> +<<set $ACitizens += random(-10,10)>> <<if $ProImmigrationRep == 1>> - Your welcome program for new citizens helps encourage wealthy people from the old world to immigrate, but @@.red;annoys some longstanding citizens.@@ - <<set $ACitizens += random(10,20)>> - <<set $rep -= 100>> + <<if $ACitizens < $ACitizenLimit>> + Your welcome program for new citizens helps encourage wealthy people from the old world to immigrate, but @@.red;annoys some longstanding citizens.@@ + <<set $ACitizens += random(10,20)>> + <<set $rep -= 100>> + <</if>> <<elseif $AntiImmigrationCash == 1>> - You covertly @@.yellowgreen;sell@@ the private information of potential arcology immigrants on the old world black market. - <<set $cash += random(500,1500)>> - <<set $ACitizens -= random(5,15)>> + <<if $ACitizens > 100>> + You covertly @@.yellowgreen;sell@@ the private information of potential arcology immigrants on the old world black market. + <<set $cash += random(500,1500)>> + <<set $ACitizens -= random(5,15)>> + <</if>> <</if>> <<if $arcologies[0].FSRestartLaw == 1>> - Your sterilization program drives several disloyal citizens out of the arcology. - <<set $ACitizens -= random(3,10)>> + <<if $ACitizens > 100>> + Your sterilization program drives several disloyal citizens out of the arcology. + <<set $ACitizens -= random(3,10)>> + <</if>> <</if>> <<if $arcologies[0].FSRepopulationFocusLaw == 1>> - The rent promotion for pregnant women attracts several gravid ladies and a few girls eager to become mothers to enroll as citizens in your arcology. - <<set $ACitizens += random(5,10)>> + <<if $ACitizens < $ACitizenLimit>> + The rent promotion for pregnant women attracts several gravid ladies and a few girls eager to become mothers to enroll as citizens in your arcology. + <<set $ACitizens += random(5,10)>> + <</if>> <</if>> <<if $ProImmigrationCash == 1>> - The rent promotion for new immigrants brings new citizens to the arcology. - <<set $ACitizens += random(10,20)>> + <<if $ACitizens < $ACitizenLimit>> + The rent promotion for new immigrants brings new citizens to the arcology. + <<set $ACitizens += random(10,20)>> + <</if>> <<elseif $AntiImmigrationRep == 1>> - You allow citizens input on potential immigrants, a @@.green;popular@@ program. - <<set $rep += 100>> - <<set $AHelots += random(5,15)>> -<</if>> - -<<if $ProRefugees == 1>> - Your propaganda in the old world encourages desperate refugees to come here and become menial slaves. - <<set $AHelots += random(5,10)>> -<</if>> - -<<if $ACitizens+$ASlaves < ($arcologies[0].prosperity+200)*16>> - <<set $ACitizens = Math.trunc($ACitizens*1.05)>> - <<set $ASlaves = Math.trunc($ASlaves*(1/$slaveCostFactor))>> -<<elseif $ACitizens+$ASlaves > ($arcologies[0].prosperity+200)*20>> - <<set $ACitizens = Math.trunc($ACitizens*0.95)>> - <<set $ASlaves = Math.trunc($ASlaves*0.9)>> -<</if>> - -<<if $AHelots > $ASlaves*2>> - <<set $AHelots = Math.trunc($AHelots*0.95)>> -<<elseif $arcologies[0].FSEgyptianRevivalist != "unset">> - <<set $AHelots += random(10,100)>> -<<elseif $arcologies[0].FSDegradationist != "unset">> - <<set $AHelots += random(10,100)>> -<<elseif $arcologies[0].FSPastoralist != "unset">> - <<set $AHelots += random(10,80)>> -<<elseif $arcologies[0].FSRomanRevivalist != "unset">> - <<set $AHelots += random(10,80)>> -<<elseif $arcologies[0].FSChattelReligionist != "unset">> - <<set $AHelots += random(10,20)>> -<<elseif $arcologies[0].FSPaternalist != "unset">> - <<set $AHelots += random(10,20)>> -<<else>> - <<set $AHelots += random(10,50)>> + <<if $ACitizens > 100>> + You allow citizens input on potential immigrants, a @@.green;popular@@ program. + <<set $rep += 100>> + <<set $ACitizens -= random(5,15)>> + <</if>> <</if>> -<<set $seed = random(20,50)>> +<<set $seed = random(20,40)>> <<if $arcologies[0].FSPaternalist != "unset">> Poor citizens can rely on their better-off peers in $arcologies[0].name. <<set $seed -= Math.trunc($arcologies[0].FSPaternalist/10)>> @@ -1403,19 +1377,32 @@ __Arcology Management__ <</if>> <<if $seed < 0>> <<if $ACitizens < $ASlaves*5>> - <<set $ACitizens -= $seed>> - <<set $ASlaves += $seed>> + <<if $ACitizens > 100>> + <<set $ACitizens -= $seed>> + <</if>> + <<set $ASlaves += $seed>> <</if>> <<else>> <<if $ACitizens > $ASlaves*0.1>> - <<if $ACitizens > 200>> - <<set $ACitizens -= $seed>> + <<if $ACitizens > 100>> + <<set $ACitizens -= $seed>> + <</if>> <<set $ASlaves += $seed>> <</if>> - <</if>> <</if>> -$ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial slaves live in your arcology. +<<if $ACitizens >= $ACitizenLimit>> + <<set $ACitizens = $ACitizenLimit>> + Your arcology is currently home to as many citizens as it can house; unless the living areas are reconfigured, the citizen population will not increase. +<<elseif $ACitizens <= 100>> + <<set $ACitizens = 100>> + Your arcology is home to an extremely small number of very wealthy citizens; wealth is as concentrated as possible and the citizen population will not decrease further. +<<elseif $ACitizens < $ACitizenLimit*0.6>> + <<set $ACitizens += random(10,20)>> + The availability of a large number of apartments encourages many new citizens to immigrate. +<</if>> + +$ACitizens citizens and <<print $ASlaves+$helots+$slaves.length>> slaves now live in your arcology. <<if $arcologies[0].FSSupremacistLawME == 1>>The citizenry is entirely $arcologies[0].FSSupremacistRace.<</if>> <<if $arcologies[0].FSRomanRevivalistLaw == 1>>The citizens take pride in their martial duties, preferring to wear utilitarian clothing even when off duty.<</if>> <<if $arcologies[0].FSGenderRadicalistLaw == 1>>Every single one of the slaves is female by virtue of her fuckable asshole. @@ -1441,18 +1428,26 @@ $ACitizens citizens, $ASlaves sex slaves, and <<print $AHelots+$helots>> menial <<elseif $ACitizens > $ASlaves*0.5>> Since many citizens can afford to keep a sex slave, @@.yellow;demand for sexual services is only moderate.@@ <<elseif $ACitizens > $ASlaves*0.25>> - Since most citizens can afford to keep at least one sex slaves, @@.gold;local demand for sexual services is low,@@ though visitors to the arcology will always keep it above a certain minimum. + Since most citizens can afford to keep at least one sex slave, @@.gold;local demand for sexual services is low,@@ though visitors to the arcology will always keep it above a certain minimum. <<else>> Since most of your citizens now keep private harems of sex slaves, @@.gold;local demand for sexual services is very low,@@ though visitors to the arcology will always keep it above a certain minimum. <</if>> <br> -<<set $rents = ($arcologies[0].prosperity*$arcologies[0].ownership*2)+random(1,100)>> +<<set $rents = random(1,100)>> +<<for _i = 1; _i < $sectors.length; _i++>> + <<if $sectors[_i].ownership == 1>> + <<switch $sectors[_i].type>> + <<case "DenseApartments" "LuxuryApartments" "Apartments" "Shops" "Markets" "Manufacturing">> + <<set $rents += $arcologies[0].prosperity*10>> + <</switch>> + <</if>> +<</for>> <<set $rentalMultiplier = 1>> <<if $arcologies[0].FSPaternalistLaw == 1>> <<set $rentalMultiplier -= 0.1>> - Slaveowners who can prove that they abstain from certain practices are given a reduction to their rent. + Tenants who can prove that they abstain from certain practices are given a reduction to their rent. <</if>> <<if $arcologies[0].FSYouthPreferentialistLaw == 1>> <<set $rentalMultiplier -= 0.1>> @@ -1548,7 +1543,7 @@ earning you @@.yellowgreen;¤$seed.@@ <<set _AWeekGrowth = $AGrowth>> <<if _AWeekGrowth+$arcologies[0].prosperity > $AProsperityCap>> - @@.yellow;$arcologies[0].name is at its maximum prosperity, so rents will not increase until it is upgraded.@@ + @@.yellow;$arcologies[0].name is at its maximum prosperity, so rents will not increase until it is improved.@@ <<elseif (2*_AWeekGrowth)+$arcologies[0].prosperity >= $AProsperityCap>> @@.yellow;Your arcology is nearly at its maximum prosperity.@@ <<set $arcologies[0].prosperity += _AWeekGrowth>> @@ -1830,24 +1825,25 @@ The Futanari Sisters have a <<if $TFS.schoolProsperity > 4>>very prosperous<<els <</if>> <<if $marketAssistantLimit != 0>> +<<silently>><<MenialPopCap>><</silently>> <<set $seed = Math.clamp($slaveCostFactor*1000, 500, 1500)>> <br> Your ''business assistant'' manages the menial slave market. <<if $seed <= 800+$marketAssistantAggressiveness>>/* BUY */ - <<if $helots+$fuckdolls+$menialBioreactors >= 100*Math.trunc(($arcologies[0].ownership*$AProsperityCap)/1000)>> + <<if $helots+$fuckdolls+$menialBioreactors >= $PopCap>> There is no room in the parts of your arcology you own for more menial slaves. <<else>> - <<if $cash > $marketAssistantLimit+$seed>> - <<if $assistant == 0>>It<<else>>She<</if>> acquires more chattel, since it's a buyers' market. - <<if ($arcologies[0].FSPastoralist != "unset") && ($arcologies[0].FSPaternalist == "unset")>> - <<set $menialBioreactors += Math.trunc(($cash-$marketAssistantLimit)/($seed-100)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed-100))*($seed-100)>> - <<elseif ($arcologies[0].FSDegradationist != "unset")>> - <<set $fuckdolls += Math.trunc(($cash-$marketAssistantLimit)/($seed*2)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed*2))*($seed*2)>> - <<else>> - <<set $helots += Math.trunc(($cash-$marketAssistantLimit)/($seed)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed))*($seed)>> + <<if $cash > $marketAssistantLimit+$seed>> + <<if $assistant == 0>>It<<else>>She<</if>> acquires more chattel, since it's a buyers' market. + <<if ($arcologies[0].FSPastoralist != "unset") && ($arcologies[0].FSPaternalist == "unset")>> + <<set $menialBioreactors += Math.trunc(($cash-$marketAssistantLimit)/($seed-100)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed-100))*($seed-100)>> + <<elseif ($arcologies[0].FSDegradationist != "unset")>> + <<set $fuckdolls += Math.trunc(($cash-$marketAssistantLimit)/($seed*2)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed*2))*($seed*2)>> + <<else>> + <<set $helots += Math.trunc(($cash-$marketAssistantLimit)/($seed)), $cash -= Math.trunc(($cash-$marketAssistantLimit)/($seed))*($seed)>> + <</if>> <</if>> <</if>> - <</if>> <<elseif $seed >= 1200-$marketAssistantAggressiveness>>/* SELL */ <<if $helots+$fuckdolls+$menialBioreactors > 0>> <<if $assistant == 0>>It<<else>>She<</if>> liquidates your chattel holdings, since it's a sellers' market. diff --git a/src/uncategorized/freeRangeDairyAssignmentScene.tw b/src/uncategorized/freeRangeDairyAssignmentScene.tw index cfc8e23ab68dae4a94b6258cee43f30a2131b9f6..222e02a36055a3011bd64c67245c3a1765f6306b 100644 --- a/src/uncategorized/freeRangeDairyAssignmentScene.tw +++ b/src/uncategorized/freeRangeDairyAssignmentScene.tw @@ -33,7 +33,7 @@ While walking to her designated stall, she passes the other cows currently at th <</if>> <<for $i = 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].assignment == "work in the dairy" && $slaves[$i].balls > 5 && $activeSlave.ID != $slaves[$i].ID>> + <<if $slaves[$i].assignment == "work in the dairy" && $slaves[$i].slaveName != $activeSlave.slaveName && $slaves[$i].balls > 5 >> <<set $aroused = true >> The hyper-endowed cum-cow $slaves[$i].slaveName is the pride of $dairyName. $activeSlave.slaveName stops to watch her for a while. The constant suction on her dick has her panting. She is obviously nearing climax. Soon, her eyes bulge and her muscles tense. <<if $dairyStimulatorsSetting == 1>> @@ -308,7 +308,15 @@ It does not take long for $activeSlave.slaveName to reach her first orgasm of ma <<if $activeSlave.dick > 0 >> Her <<if $activeSlave.balls > 5 >>cum-engorged<</if>> balls draw up. Her <<if $activeSlave.dick > 8 >>gargantuan member<<elseif $activeSlave.dick > 6 >>huge cock<<else>>dick<</if>> twitches and flexes within its receptacle. - <<if $activeSlave.balls > 5 >> + <<if $activeSlave.balls >= 50>> + A special tank beneath her holds her monolithic balls' endless ejaculate while the machine struggles to suck it away. + <<elseif $activeSlave.balls >= 37>> + A special tank attached to the hose holds her titanic balls' near endless ejaculate while the machine struggles to suck it away. + <<elseif $activeSlave.balls >= 25>> + A special reservoir attached to the hose holds her massive balls' ridiculous ejaculate while the machine struggles to suck it away. + <<elseif $activeSlave.balls >= 10>> + The machine strains to suck down the giant load from her huge balls. + <<elseif $activeSlave.balls > 5 >> The copious ejaculation from her over-sized balls give the machine something to work on. <<elseif $activeSlave.balls > 0 >> Her ejaculate is quickly sucked away. @@ -317,19 +325,28 @@ It does not take long for $activeSlave.slaveName to reach her first orgasm of ma <</if>> <</if>> <<if $activeSlave.lactation > 0 >> -The milking cups on her nipples switch from rhythmic pulsing into intense suction. Aided by her orgasm, she seems to ejaculate milk - <<if $activeSlave.boobs > 10000 >> +<br> +The milking cups on her nipples switch from rhythmic pulsing into intense suction. Aided by her orgasm, milk spurts from her nipples + <<if $activeSlave.boobs > 20000 >> + in obscenely massive amounts. Her immense breasts seem to never empty. + <<elseif $activeSlave.boobs > 10000 >> in absurdly large amounts. Her gargantuan breasts do not seem to get less milk-laden for a long time. <<elseif $activeSlave.boobs > 5000 >> - in a large amount. Her huge breasts can provide liters of milk. + in a large amount. Her huge breasts can provide multiple liters of milk. <<elseif $activeSlave.boobs > 1000 >> - in a fair amount. Her large breasts can store an impressive volume of milk. - <<elseif $activeSlave.boobs > 500 >> - enough for whitening a cup of coffee. Her average breasts cannot store much more. + for quite some time. Her large breasts can store an impressive volume of milk. + <<elseif $activeSlave.boobs > 700 >> + until there is enough for whitening a cup of coffee. Her average breasts cannot store much more. + <<elseif ($arcologies[0].FSSlimnessEnthusiast > 80) >> + for a suprisingly long time. Your arcology succeeded in optimized the milking process for small breasts. <<else>> for a short time. Her small tits cannot dispense much milk at once. <</if>> <</if>> +<<if $activeSlave.prostate != 0 && $activeSlave.dick == 0 >> +<br> +$activeSlave.slaveName has no cock, but a functional prostate gland. It's attached to her urethra, so she squirts <<if $activeSlave.prostateImplant == 1>>massively<<else>>copiously<</if>> while she orgasms. The exotic fluid is caught by a basin positioned unter her dripping pussy. +<</if>> <br><br> With the first milking cycle being over, $activeSlave.slaveName drifts into a relaxing slumber. <<if $dairyFeedersSetting == 1 && ($activeSlave.sexualFlaw == "cum addict" || $activeSlave.fetish == "cumslut") >> diff --git a/src/uncategorized/genericPlotEvents.tw b/src/uncategorized/genericPlotEvents.tw index 32df6153260fd638173dcfef87fc0537599b2bac..1649a8178167b08ffa888b948740ddfcd75370cb 100644 --- a/src/uncategorized/genericPlotEvents.tw +++ b/src/uncategorized/genericPlotEvents.tw @@ -23,7 +23,7 @@ Early one morning, you hear convulsive dry heaving coming from one of the bathro <br><br> It doesn't take much investigation before you find other slaveowners reporting the same thing. Elementary detective work fingers a particular drug supplier as the culprit, and before long the unfortunate Pharmaceutical concern is drowning under a rain of harsh public comment and harsher private contract warfare. As the day wears on, the poor slaves feel a bit better, but begin to report discomfort in their breasts. Apparently the problem has to do with contamination of the curative production line with A-HGH production reactants. <br><br> -The firm promptly pays @@.yellowgreen;fair compensation@@ for the minor damage to your slaves' health. However, you're left with the matter of the boobs to deal with. Over the week, all your slaves on curatives experience at least a little @@.lime;breast growth,@@ and some gain several cup sizes.<<if $medicalEnema == 1>> Those with bellies full of curative mixture, on the other hand, have not stopped growing yet and won't until they completely absorb their load. They will likely end up @@.lime;sporting enormous tits@@ by the end of this..<</if>> +The firm promptly pays @@.yellowgreen;fair compensation@@ for the minor damage to your slaves' health. However, you're left with the matter of the boobs to deal with. Over the week, all your slaves on curatives experience at least a little @@.lime;breast growth,@@ and some gain several cup sizes.<<if $medicalEnema == 1>> Those with bellies full of curative mixture, on the other hand, have not stopped growing yet and won't until they completely absorb their load. They will likely end up @@.lime;sporting enormous tits@@ by the end of this.<</if>> <<case "bad breasts">> @@ -577,7 +577,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<replace "#result">> The hapless manufacturer eventually goes bankrupt. However, you do manage to force surgical correction of the pregnancies before they do. As additional compensation, they agree to naturally enhance your afflicted slaves busts knowing full well that most buyers are not interested in slaves that have been knocked up. At the managers expense, your slaves move through a top-flight surgeons care and are pregnancy free and sporting @@.lime;larger breasts@@. <<for $i = 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].drugs is "breast injections">> + <<if $slaves[$i].drugs == "breast injections">> <<set $slaves[$i].boobs += 100*(random(1,10))>> <</if>> <</for>> @@ -655,7 +655,7 @@ A screen opposite your desk springs to life, <<if $assistant == 0>>showing your <<case "militia">> <<set $personalArms = 0>> -<<if $AProsperityCap > 60>> +<<if $arcologyUpgrade.drones == 1>> <<link "Arm yourself and your drones">> <<replace "#result">> In a time of uncertainty, the public adores people who protect them. So, in addition to publicly procuring yourself the latest weapons and armor, you update the arcology's drone systems. The security drones' riot cannons can be replaced for easy maintenance, so it's rather easy to provide them with alternate, lethal weaponry that they can switch to if it becomes necessary. $arcologies[0].name becomes known as one of the best-protected in the Free Cities. @@.green;Your reputation has greatly improved.@@ diff --git a/src/uncategorized/importRule.tw b/src/uncategorized/importRule.tw index 1244784a817fa81da9c854030ce2d3da7a02a7e9..9f359ed200a0d720b7436560b45086a439f76ce3 100644 --- a/src/uncategorized/importRule.tw +++ b/src/uncategorized/importRule.tw @@ -1,26 +1,26 @@ :: Import Rule [nobr] +<<set $nextButton = "Continue", $nextLink = "Rules Assistant">> -<<set $nextButton = "Continue">> -<<set $nextLink = "Rules Assistant">> //Paste the code into the text box and click Apply// <br><br> <span id = "import"> </span> + <<set $tempRule = "">> <<textbox "$tempRule" $tempRule>> + <<link "Apply">> <<if (def $tempRule) && ($tempRule !== "")>> <<set $tempRule = eval('({' + $tempRule + '})')>> - <<if $defaultRules.length > 0>> - <<set $RulesID += 1>> - <<else>> - <<set $RulesID = 1>> - <</if>> - - <<set $tempRule.ID = $RulesID>> <<set $defaultRules.push($tempRule)>> + + /* renumber rule IDs */ + <<for $r = 0; $r < $defaultRules.length; $r++>> + <<set $defaultRules[$r].ID = $r + 1>> + <</for>> + <<replace #import>> ''Rule imported successfully!'' <br><br> @@ -33,7 +33,9 @@ <</if>> <<unset $tempRule>> <</link>> + <br><br> + <<link "Continue">> <<goto "Rules Assistant">> <</link>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index ba0b629894505a7cd03c4e78bb9d5db89870b9c9..e17300e5c5c26db3c5e46d5c53baa866aec0da5d 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -14,18 +14,6 @@ <<if ndef $defaultRules>> <<include "Init Rules">> <</if>> -<<if ndef $PC.birthArcOwner>> - <<set $PC.birthArcOwner = 0>> -<</if>> -<<if ndef $PC.birthCitizen>> - <<set $PC.birthCitizen = 0>> -<</if>> -<<if ndef $medicalEnema>> - <<set $medicalEnema = 0>> -<</if>> -<<if ndef $slaveDeath>> - <<set $slaveDeath = 0>> -<</if>> <<if ndef $assistantExtra2>> <<set $assistantExtra2 = 0>> <</if>> @@ -149,13 +137,14 @@ <<set $incubatorNameCaps = "The Incubator">> <</if>> -<<if $seeArcology == 1>> //<<include "Arcology Description">> | [[Hide|Main][$seeArcology = 0]]//<br><</if>> +<<if $seeBuilding == 1>><<DisplayBuilding>><</if>> +<<if $seeArcology == 1>> <<include "Arcology Description">> | [[Hide|Main][$seeArcology = 0]]<br><</if>> <<if $seeDesk == 1>> <<include "Office Description">> -//[[Hide|Main][$seeDesk = 0]]// +[[Hide|Main][$seeDesk = 0]] <</if>> -<<if $seeFCNN == 1>><center>FCNN: <<print $fcnn.random()>>//[[Hide|Main][$seeFCNN = 0]]//</center><</if>> +<<if $seeFCNN == 1>><center>FCNN: <<print $fcnn.random()>> [[Hide|Main][$seeFCNN = 0]]</center><</if>> <<if ($seeDesk == 1) && ($seeFCNN == 0)>><br><</if>> __''MAIN MENU''__ //[[Summary Options]] diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index e5cc4a74249c7b104429074032cfc0d7e4490eb1..a6a9be195469ae47388508f705bb7de233b2db30 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -1,7 +1,6 @@ :: Manage Arcology [nobr] -<<set $nextButton = "Back">> -<<set $nextLink = "Main">> +<<set $nextButton = "Back", $nextLink = "Main">> <<if $cheatMode == 1>> <center> @@ -10,40 +9,18 @@ <</if>> <<set $showEncyclopedia = 0>> +<<DisplayBuilding>> <<include "Arcology Description">> <br><br> __Arcology Ownership__ +<br> +<<UpdateOwnership>> You own ''$arcologies[0].ownership%'' of $arcologies[0].name, <<if $arcologies[0].minority > 0>>against ''$arcologies[0].minority%'' owned by the second most significant holder<<else>>and there are no other significant holders<</if>>. <<if $arcologies[0].minority > $arcologies[0].ownership-10>> @@.red;This is a dangerously narrow margin of control.@@ <</if>> -<<set $price = 500*Math.trunc($arcologies[0].prosperity*(1+($arcologies[0].demandFactor/100)))>> -A 1% interest in $arcologies[0].name is worth ¤$price and will require a transaction cost of ¤10000 to acquire. -<br> -<<if $arcologies[0].ownership+$arcologies[0].minority < 100>> - [[Buy|Manage Arcology][$cash -= $price+10000, $arcologies[0].ownership += 1, $arcologies[0].demandFactor += 5]] - <<if $arcologies[0].ownership+$arcologies[0].minority <= 90>> - <<if $cash > $price*10>> - | [[10%|Manage Arcology][$cash -= ($price*10)+10000, $arcologies[0].ownership += 10, $arcologies[0].demandFactor += 50]] - //Transaction costs will only be paid once// - <</if>> - <</if>> -<<else>>Buy<</if>> | -<<if $arcologies[0].ownership > 0>> - [[Sell|Manage Arcology][$cash += $price, $arcologies[0].ownership -= 1, $arcologies[0].demandFactor -= 5]] - <<if $arcologies[0].ownership >= 10>> - | [[10%|Manage Arcology][$cash += $price*10, $arcologies[0].ownership -= 10, $arcologies[0].demandFactor -= 50]] - <</if>> -<</if>> -<<if $arcologies[0].ownership+$arcologies[0].minority < 100>> -<<if $rep >= 10000>> - <br> - <<set $repPrice = Math.clamp($price/2, 0, 10000)>> - You have so much political capital that you can spend reputation to acquire ownership by spending reputation. [[Use reputation|Manage Arcology][$rep -= $repPrice, $arcologies[0].ownership += 1, $arcologies[0].demandFactor += 5]] -<</if>> -<</if>> <<if $FSAnnounced > 0>> <<if $FSCredits > 0>> @@ -57,25 +34,21 @@ A 1% interest in $arcologies[0].name is worth ¤$price and will require a transa __Construction__ <br> -<<if $AProsperityCap <= 60>> - //The first major upgrade needed is the installation of a drone security system so higher-class citizens will feel safe and protected should they choose to immigrate. This upgrade will cost ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>.// [[Install drone security system|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $AProsperityCap += 20]] -<<elseif $AProsperityCap <= 80>> - //The next major upgrade needed is the installation of a better water reclamation system so your residents will have access to cheaper water and hydroponically grown food. This upgrade will cost ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>.// [[Upgrade water reclamation system|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $AProsperityCap += 20]] -<<elseif $AProsperityCap <= 100>> - //The next major upgrade needed is the installation of a broader apron at the bottom of the arcology to increase its surface area and gather more solar energy. Right now, tenants that use a lot of power have to import it from outside. This upgrade will cost ¤<<print Math.trunc(20000*$upgradeMultiplierArcology)>>.// [[Install solar apron|Manage Arcology][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $AProsperityCap += 20]] -<<elseif $AProsperityCap <= 120>> - //The next major upgrade needed is an improvement of the arcology's electrical transmission lines to make efficient use of the additional power from the solar apron. This upgrade will cost ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>.// [[Upgrade transmission lines|Manage Arcology][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $AProsperityCap += 30]] -<<elseif $AProsperityCap <= 150>> - //The next major upgrade needed is an overhaul of the commercial floors. As the arcology has become prosperous a better class of citizen has started to look for a higher class of establishment. These renovations will cost ¤<<print Math.trunc(100000*$upgradeMultiplierArcology)>>.// [[Renovate commercial floors|Manage Arcology][$cash -= Math.trunc(100000*$upgradeMultiplierArcology), $AProsperityCap += 40]] -<<elseif $AProsperityCap <= 190>> - //The next major upgrade needed is an overhaul of the residential floors. As the arcology has become prosperous a better class of citizen has started to look for a higher class of living quarters. These renovations will cost ¤<<print Math.trunc(200000*$upgradeMultiplierArcology)>>.// [[Renovate residential floors|Manage Arcology][$cash -= Math.trunc(200000*$upgradeMultiplierArcology), $AProsperityCap += 50]] -<<elseif $AProsperityCap <= 240>> - //The next major upgrade needed is the addition of a spire at the top of the arcology to increase the space available for the wealthiest citizens to own whole floors. This huge project will cost ¤<<print Math.trunc(250000*$upgradeMultiplierArcology)>>.// [[Add spire|Manage Arcology][$cash -= Math.trunc(250000*$upgradeMultiplierArcology), $AProsperityCap += 60]] +<<if $arcologyUpgrade.drones != 1>> + //The first major upgrade needed is the installation of a drone security system so higher-class citizens will feel safe and protected should they choose to immigrate. This upgrade will cost ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>.// [[Install drone security system|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $arcologyUpgrade.drones = 1]] +<<elseif $arcologyUpgrade.hydro != 1>> + //The next major upgrade needed is the installation of a better water reclamation system so your residents will have access to cheaper water and hydroponically grown food. This upgrade will cost ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>>.// [[Upgrade water reclamation system|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $arcologyUpgrade.hydro = 1]] +<<elseif $arcologyUpgrade.apron != 1>> + //The next major upgrade needed is the installation of a broader apron at the bottom of the arcology to increase its surface area and gather more solar energy. Right now, tenants that use a lot of power have to import it from outside. This upgrade will cost ¤<<print Math.trunc(20000*$upgradeMultiplierArcology)>>.// [[Install solar apron|Manage Arcology][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $arcologyUpgrade.apron = 1]] +<<elseif $arcologyUpgrade.grid != 1>> + //The next major upgrade needed is an improvement of the arcology's electrical transmission lines to make efficient use of the additional power from the solar apron. This upgrade will cost ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>.// [[Upgrade transmission lines|Manage Arcology][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $arcologyUpgrade.grid = 1]] +<<elseif $arcologyUpgrade.spire != 1>> + //The next major upgrade needed is the addition of a spire at the top of the arcology to increase the space available for the wealthiest citizens to own whole floors. This huge project will cost ¤<<print Math.trunc(250000*$upgradeMultiplierArcology)>>.// [[Add spire|Manage Arcology][$cash -= Math.trunc(250000*$upgradeMultiplierArcology), $arcologyUpgrade.spire = 1]] <<else>> //The arcology's public areas are fully upgraded.// <</if>> <<if ($PC.engineering >= 100) || ($PC.career == "arcology owner")>> -<<if $AProsperityCap < 360>> +<<if $weatherCladding != 2>> //Arcology upgrades are less expensive due to your @@.springgreen;<<if $PC.career == "arcology owner">>experience in the Free Cities<<else>>arcology engineering training<</if>>.@@// <</if>> <</if>> @@ -84,9 +57,9 @@ __Construction__ <<if $weatherCladding == 0>> //Extreme weather is becoming common worldwide. The arcology's exterior can be hardened to reduce damage in case of heavy weather, but this will reduce its beauty somewhat and will cost ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>. Your citizens are <<if $weatherAwareness == 0>>likely to disapprove of this measure as alarmism.<<else>>@@.yellow;concerned that this measure has not been taken already.@@<</if>> // [[Apply weather cladding|Manage Arcology][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $weatherCladding = 1]] -<<elseif $weatherCladding == 1 && $AProsperityCap is 300>> +<<elseif $weatherCladding == 1 && $arcologyUpgrade.spire == 1>> The arcology's exterior is jacketed with unsightly but sturdy weather cladding. Your arcology is so prosperous that remodeling the cladding into something beautiful is within the realm of possibility. This massive project will cost ¤<<print Math.trunc(3500000*$upgradeMultiplierArcology)>> and without a doubt render your arcology one of the wonders of the world. -[[Remodel weather cladding|Manage Arcology][$cash -= Math.trunc(3500000*$upgradeMultiplierArcology), $weatherCladding = 2, $AProsperityCap = 360]] +[[Remodel weather cladding|Manage Arcology][$cash -= Math.trunc(3500000*$upgradeMultiplierArcology), $weatherCladding = 2]] <<elseif $weatherCladding == 1>> //The arcology's exterior is jacketed with unsightly but sturdy weather cladding.// <<elseif $weatherCladding == 2>> @@ -95,114 +68,6 @@ __Construction__ <br><br> -__Facilities__ -<br> - -<<if $brothel == 0>> - [[Combine empty apartments into a brothel|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $brothel = 5]] - //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs// -<<elseif $brothel > 0>> - A brothel has been installed directly below your penthouse. It can support <<print $brothel>> whores. -<</if>> - -<br> - -<<if $club == 0>> - [[Build a club to serve as a focal point for public sluts|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $club = 5]] - //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs// -<<elseif $club > 0>> - There are rooms off the club to support slaves as they please citizens. They can support <<print $club>> sluts. -<</if>> - -<br> - -<<if $arcade == 0>> - [[Construct a sex arcade to confine slaves in|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $arcade = 5]] - //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs// -<<elseif $arcade > 0>> - A sex arcade has been installed in the arcology. It can support <<print $arcade>> inmates. -<</if>> - -<br> - -<<if $dairy == 0>> - [[Add a dairy to the water reclamation facility|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $dairy = 5]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>> and will incur upkeep costs// -<<elseif $dairy > 0>> - A dairy has been installed in the water reclamation area of your penthouse. It can support <<print $dairy>> milkers. -<</if>> - -<br> - -<<if $servantsQuarters == 0>> - [[Build a dormitory to house large numbers of house servants|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $servantsQuarters = 5]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// -<<else>> - Your penthouse includes a dormitory to house large numbers of house servants. -<</if>> - -<br> - -<<if $schoolroom == 0>> - [[Build a schoolroom where slaves can be educated|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $schoolroom = 5]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// -<<else>> - Your penthouse includes a schoolroom where slaves can be educated. -<</if>> - -<br> - -<<if $spa == 0>> - [[Install open baths to provide relaxation space for resting slaves|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $spa = 5]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// -<<else>> - The penthouse includes a fully appointed spa where slaves can rest and recuperate. -<</if>> - -<br> - -<<if $clinic == 0>> - [[Expand the surgical recovery area to accommodate patients and a nurse|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clinic = 5]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// -<<else>> - The surgical recovery area has been expanded to take in more unhealthy slaves and be staffed by a nurse. -<</if>> - -<br> - -<<if $cellblock == 0>> - [[Construct cells to properly confine disobedient slaves|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $cellblock = 5]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// -<<else>> - The lower level of the penthouse includes a hallway of cells to confine slaves in. -<</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 Arcology][$cash -= Math.trunc(15000*$upgradeMultiplierArcology), $researchLab.built = "true", $researchLab.maxSpace = 5]] - //Costs ¤<<print Math.trunc(15000*$upgradeMultiplierArcology)>>// - <</if>> -<</if>> - -<<if $familyTesting == 1>> -<br> -<<if $AProsperityCap > 120>> -<<if $incubator == 0>> - [[Install an incubation chamber to rapidly age children|Manage Arcology][$cash -= Math.trunc(100000*$upgradeMultiplierArcology), $incubator = 1]] - //Costs ¤<<print Math.trunc(100000*$upgradeMultiplierArcology)>>// -<<else>> - The penthouse has a specialized facility dedicated to rapidly aging children. -<</if>> -<<elseif $AProsperityCap >= 100 && $AProsperityCap <= 120>> - //Installation of a child aging facility will require the arcology's electrical infrastructure to be overhauled.// -<</if>> -<</if>> - -<br><br> - __Special Arcology Upgrades__ <br> diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw index b56f379f41e78dd8ef41bfd11c884813fac6a1b7..ad77ed9321df9f6bf287587e4914fa92a2335f0e 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -33,7 +33,8 @@ The penthouse also features little individual rooms, which house slaves who do e <br><br> -__Penthouse Improvements__ +__Penthouse Facilities__ + <br> <<if $masterSuite == 0>> @@ -45,6 +46,65 @@ __Penthouse Improvements__ <br> +<<if $servantsQuarters == 0>> + [[Build a dormitory to house large numbers of house servants|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $servantsQuarters = 5]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<<else>> + Your penthouse includes a dormitory to house large numbers of house servants. +<</if>> + +<br> + +<<if $schoolroom == 0>> + [[Build a schoolroom where slaves can be educated|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $schoolroom = 5]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<<else>> + Your penthouse includes a schoolroom where slaves can be educated. +<</if>> + +<br> + +<<if $spa == 0>> + [[Install open baths to provide relaxation space for resting slaves|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $spa = 5]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<<else>> + The penthouse includes a fully appointed spa where slaves can rest and recuperate. +<</if>> + +<br> + +<<if $clinic == 0>> + [[Expand the surgical recovery area to accommodate patients and a nurse|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $clinic = 5]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<<else>> + The surgical recovery area has been expanded to take in more unhealthy slaves and be staffed by a nurse. +<</if>> + +<br> + +<<if $cellblock == 0>> + [[Construct cells to properly confine disobedient slaves|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $cellblock = 5]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<<else>> + The lower level of the penthouse includes a hallway of cells to confine slaves in. +<</if>> + +<br> + +<<if $familyTesting == 1>> +<<if $arcologyUpgrade.grid == 1>> +<<if $incubator == 0>> + [[Install an incubation chamber to rapidly age children|Manage Penthouse][$cash -= Math.trunc(100000*$upgradeMultiplierArcology), $incubator = 1]] + //Costs ¤<<print Math.trunc(100000*$upgradeMultiplierArcology)>>// +<<else>> + The penthouse has a specialized facility dedicated to rapidly aging children. +<</if>> +<<elseif $arcologyUpgrade.hydro == 1 || $arcologyUpgrade.apron == 1>> + //Installation of a child aging facility will require the arcology's electrical infrastructure to be overhauled.// +<</if>> +<br> +<</if>> + <<if $HGSuite != 1>> [[Build a small suite for a Head Girl to live in|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $HGSuite = 1]] //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// @@ -52,6 +112,20 @@ __Penthouse Improvements__ 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][$cash -= Math.trunc(15000*$upgradeMultiplierArcology), $researchLab.built = "true", $researchLab.maxSpace = 5]] + //Costs ¤<<print Math.trunc(15000*$upgradeMultiplierArcology)>>// + <</if>> +<</if>> + +<br><br> + +__Penthouse Upgrades__ + <br> <<if $servantMilkers != 1>> @@ -191,37 +265,28 @@ __Penthouse Improvements__ <br> -<<if $pit == 0>> - [[Build a pit to host slave fights|Manage Penthouse][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $pit = 1]] - //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<<if $surgeryUpgrade == 0>> +<<if $rep > 10000>> + [[Upgrade the remote surgery|Manage Penthouse][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $surgeryUpgrade = 1]] + //Costs ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>// <<else>> - You have a room with a padded pit sunken into the floor for slave fights. + //You lack the reputation to secure rare surgery upgrades// +<</if>> +<<else>> + Your remote surgery has been heavily upgraded and customized. <</if>> <br> -<<if ($dispensary == 0)>> -<<if ($rep > 2000)>> +<<if $dispensary == 0>> +<<if $rep > 2000>> [[Install a pharmaceutical fabricator|Manage Penthouse][$cash -= Math.trunc(20000*$upgradeMultiplierArcology), $dispensary = 1, $drugsCost = $drugsCost/4]] //Costs ¤<<print Math.trunc(20000*$upgradeMultiplierArcology)>>// <<else>> //You lack the reputation to obtain cutting-edge pharmaceutical technology// <</if>> <<else>> - There is a [[pharmaceutical fabricator|Dispensary]] in the basement. -<</if>> - -<br> - -<<if ($surgeryUpgrade == 0)>> -<<if ($rep > 10000)>> - [[Upgrade the remote surgery|Manage Penthouse][$cash -= Math.trunc(50000*$upgradeMultiplierArcology), $surgeryUpgrade = 1]] - //Costs ¤<<print Math.trunc(50000*$upgradeMultiplierArcology)>>// -<<else>> - //You lack the reputation to secure rare surgery upgrades// -<</if>> -<<else>> - Your remote surgery has been heavily upgraded and customized. + There is a [[pharmaceutical fabricator|Dispensary]] attached to the surgery. <</if>> <br> diff --git a/src/uncategorized/manufacturing.tw b/src/uncategorized/manufacturing.tw new file mode 100644 index 0000000000000000000000000000000000000000..b6b6f2a7db8c8247f2d4a86af6cb2a7a7f819453 --- /dev/null +++ b/src/uncategorized/manufacturing.tw @@ -0,0 +1,17 @@ +:: Manufacturing [nobr] + +<<set $nextButton = "Back", $nextLink = "Manage Arcology">> + +This is a space in the arcology's service areas, rented to a variety of tenants for manufacturing purposes. You control this part of the arcology and all these producers pay you rent. +<<SectorSell>> +<br> + +<<if $dairy == 0>> + <br> + [[Construct a dairy to milk slaves on an industrial scale|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $dairy = 5, $sectors[$AS].type = "Dairy"]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>> and will incur upkeep costs// +<</if>> + +<br> +[[Build pens to increase the number of menial slaves you can house|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $sectors[$AS].type = "Pens"]] +//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// \ No newline at end of file diff --git a/src/uncategorized/markets.tw b/src/uncategorized/markets.tw new file mode 100644 index 0000000000000000000000000000000000000000..7600665edff0e6ebd765e1c82cb1a70b570dfe6d --- /dev/null +++ b/src/uncategorized/markets.tw @@ -0,0 +1,19 @@ +:: Markets [nobr] + +<<set $nextButton = "Back", $nextLink = "Manage Arcology">> + +This is an area of the concourse occupied by large stores and markets, many of which sell slaves. You control this part of the arcology and all these merchants pay you rent. +<<SectorSell>> +<br> + +<<if $arcade == 0>> + <br> + [[Construct a sex arcade to present slaves' holes for public use|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $arcade = 5, $sectors[$AS].type = "Arcade"]] + //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs// +<</if>> + +<<if $pit == 0>> + <br> + [[Build a pit to host proper slave fights|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $pit = 1, $sectors[$AS].type = "Pit"]] + //Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// +<</if>> \ No newline at end of file diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw index 44285fff16434f0a9ad75901693cabc2ca209e66..7e489e555206a9064c655664e5a73ceacfcbf6b4 100644 --- a/src/uncategorized/masterSuiteReport.tw +++ b/src/uncategorized/masterSuiteReport.tw @@ -118,7 +118,10 @@ The level of sexual energy in the suite is /* 000-250-006 */ <<if ($slaves[_i].assignment != "be your Concubine")>> <<if $verboseDescriptions == 1>>''__@@.pink;$slaves[_i].slaveName@@__'' sees to your pleasure in the master suite.<</if>> + + /* Perform facility based rule changes */ <<if ($masterSuiteUpgradeLuxury == 1)>> + <<set $slaves[_i].livingRules = "luxurious">> <<if ($slaves[_i].devotion <= 95)>> <<set $slaves[_i].devotion += 2>> <</if>> @@ -129,6 +132,7 @@ The level of sexual energy in the suite is <<set $slaves[_i].trust++>> <</if>> <<elseif ($masterSuiteUpgradeLuxury == 2)>> + <<set $slaves[_i].livingRules = "luxurious">> <<if ($slaves[_i].energy > 90)>> <<if ($slaves[_i].devotion <= 95)>> <<set $slaves[_i].devotion += 2>> @@ -145,6 +149,7 @@ The level of sexual energy in the suite is <</if>> <</if>> <<else>> + <<set $slaves[_i].livingRules = "spare">> <<if ($slaves[_i].devotion <= 20) && ($slaves[_i].trust > -20)>> <<set $slaves[_i].devotion -= 2, $slaves[_i].trust -= 5>> <<elseif ($slaves[_i].devotion <= 60)>> @@ -156,6 +161,7 @@ The level of sexual energy in the suite is <<set $slaves[_i].trust++>> <</if>> <</if>> + <<else>> <<set $Concubine = $slaves[_FLs]>> <<if $verboseDescriptions == 1>> <</if>>''Your concubine $Concubine.slaveName is serving you in $masterSuiteName.'' More than any other slave, her sexual brilliance and physical appeal are @@.green;critical@@ to your reputation. @@ -193,9 +199,9 @@ The level of sexual energy in the suite is <</if>> <<if $slaves[_i].devotion <= 20>> <<if $masterSuiteUpgradeLuxury > 0>> - <<set $slaves[_i].devotion += 4, $slaves[_i].trust += 4>> + <<set $slaves[_i].livingRules = "luxurious", $slaves[_i].devotion += 4, $slaves[_i].trust += 4>> <<else>> - <<set $slaves[_i].devotion += 2, $slaves[_i].trust += 2>> + <<set $slaves[_i].livingRules = "normal", $slaves[_i].devotion += 2, $slaves[_i].trust += 2>> <</if>> <</if>> <<if $masterSuiteDecoration != "standard">> diff --git a/src/uncategorized/minorInjuryResponse.tw b/src/uncategorized/minorInjuryResponse.tw index 70c34c5753d8490cbe1d7429ed6f96c415449f6c..618534dc2123c4ed91a3e222c85542cdad97a872 100644 --- a/src/uncategorized/minorInjuryResponse.tw +++ b/src/uncategorized/minorInjuryResponse.tw @@ -1,15 +1,15 @@ :: minor injury response [nobr] - + <<if $arcologies[0].FSDegradationist > 20>> She carries on, knowing that in your degradationist arcology, this is accepted behavior. <<elseif $arcologies[0].FSPaternalist > 20>> -<<if ($AProsperityCap >= 60) && (random(1,100) > 50)>> +<<if ($arcologyUpgrade.drones == 1) && (random(1,100) > 50)>> The security drones successfully detain him and oblige him to pay significant @@.yellowgreen;compensation,@@ since abusing slaves is discouraged here. <<set $cash += 50>> -<<elseif ($AProsperityCap >= 160) && (random(1,100) > 50)>> +<<elseif ($arcologyUpgrade.grid == 1) && (random(1,100) > 50)>> The computer systems successfully detain him and require him to pay significant @@.yellowgreen;compensation,@@ since abusing slaves is discouraged here. <<set $cash += 50>> <<elseif ($slaves[$i].whoreSkill > random(1,100))>> @@ -22,10 +22,10 @@ She carries on, knowing that in your degradationist arcology, this is accepted b <<else>> -<<if ($AProsperityCap >= 60) && (random(1,100) > 50)>> +<<if ($arcologyUpgrade.drones == 1) && (random(1,100) > 50)>> The security drones successfully detain him and oblige him to pay minor @@.yellowgreen;compensation.@@ <<set $cash += 10>> -<<elseif ($AProsperityCap >= 160) && (random(1,100) > 50)>> +<<elseif ($arcologyUpgrade.grid == 1) && (random(1,100) > 50)>> The computer systems successfully detain him and require him to pay minor @@.yellowgreen;compensation.@@ <<set $cash += 10>> <<elseif ($slaves[$i].whoreSkill > random(1,100))>> diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw index 72905c7decb65c070788b086aef853426f7576ff..694c15316d167217585fab1d6b0524263051b6aa 100644 --- a/src/uncategorized/neighborsDevelopment.tw +++ b/src/uncategorized/neighborsDevelopment.tw @@ -383,7 +383,7 @@ has an estimated GSP of @@.yellowgreen;¤<<print Math.trunc((0.1*$arcologies[$i] <<elseif $arcologies[$i].minority < $arcologies[$i].PCminority>> <<set $arcologies[$i].minority = 0>> <<elseif $arcologies[$i].minority > (100 - $arcologies[$i].minority - $arcologies[$i].ownership - $arcologies[$i].PCminority)*5>> - <<set $arcologies[$i].minority -= random(1,3)>> + <<set $arcologies[$i].minority -= random(3,5)>> <<elseif $arcologies[$i].minority < (100 - $arcologies[$i].minority - $arcologies[$i].ownership - $arcologies[$i].PCminority)*4>> <<if $arcologies[$i].minority < 10>> <<if $arcologies[$i].ownership + $arcologies[$i].PCminority <= 90>> @@ -2179,4 +2179,4 @@ has an estimated GSP of @@.yellowgreen;¤<<print Math.trunc((0.1*$arcologies[$i] <</if>> <</if>> /* CLOSES INFLUENCE INITIATION */ -<</for>> \ No newline at end of file +<</for>> diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw index ce17740a664f1895c305518f6273212402bd2f10..4afca14f2b042aaf6723b88c9672b95050f38786 100644 --- a/src/uncategorized/nonRandomEvent.tw +++ b/src/uncategorized/nonRandomEvent.tw @@ -18,7 +18,7 @@ <<elseif (_effectiveWeek == 11)>> <<set $Event = "assistant">> <<goto "Assistant Events">> -<<elseif (_effectiveWeek == 12) && $PC.vagina > 0 && $raped == -1 && $AProsperityCap <= 60 && $Bodyguard == 0 && $PC.career != "arcology owner">> +<<elseif (_effectiveWeek == 12) && $PC.vagina > 0 && $raped == -1 && $arcologyUpgrade.drones != 1 && $Bodyguard == 0 && $PC.career != "arcology owner">> <<goto "P raped">> <<elseif (_effectiveWeek == 14)>> <<set $Event = "bad curatives">> diff --git a/src/uncategorized/officeDescription.tw b/src/uncategorized/officeDescription.tw index bc8613f49ed864c42f42cfce31483a89c6a11c8d..c998486e93ddb8f940c05575b00d301f750532c3 100644 --- a/src/uncategorized/officeDescription.tw +++ b/src/uncategorized/officeDescription.tw @@ -1,6 +1,6 @@ :: Office Description [nobr] - //You are at your desk in your penthouse office. It has a glass top interface from which you can rule over $arcologies[0].name; $assistantName's avatar is visible in one corner. + You are at your desk in your penthouse office. It has a glass top interface from which you can rule over $arcologies[0].name; $assistantName's avatar is visible in one corner. <<include "Personal Assistant Appearance">> diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw index 16a678791ee2846a28fae375d9d7805cf40c721b..2637133b117ee16436b6d93d29dd4b1573dbfa4a 100644 --- a/src/uncategorized/options.tw +++ b/src/uncategorized/options.tw @@ -48,7 +48,15 @@ Image display <br><br> -<<if ($seeArcology == 1)>> +<<if $seeBuilding == 1>> +Main menu arcology interface @@.cyan;ENABLED@@. [[Disable|Options][$seeBuilding = 0]] +<<else>> +Main menu arcology interface @@.red;DISABLED@@. [[Enable|Options][$seeBuilding = 1]] +<</if>> + +<br> + +<<if $seeArcology == 1>> Main menu arcology description @@.cyan;ENABLED@@. [[Disable|Options][$seeArcology = 0]] <<else>> Main menu arcology description @@.red;DISABLED@@. [[Enable|Options][$seeArcology = 1]] @@ -161,7 +169,7 @@ Assignment performance vignettes on the end week report are /* Accordion 000-250-006 */ <br /> - Accordion effects on weekly reports are + Accordion effects on weekly reports are <<if ($useAccordion != 1)>> @@.red;DISABLED@@. [[Enable|Options][$useAccordion = 1]] <<else>> @@ -253,7 +261,7 @@ Curative side effects are @@.red;DISABLED@@. [[Enable|Options][$curativeSideEffe Cybernetics Mod is currently @@.red;DISABLED@@. [[Enable|Options][$cyberMod = 1]] <<else>> Cybernetics Mod is currently @@.cyan;ENABLED@@. [[Disable|Options][$cyberMod = 0]] -<</if>> +<</if>> <br><br> diff --git a/src/uncategorized/pBombing.tw b/src/uncategorized/pBombing.tw index 424418b0b779beeb81689411397012a9abb5b730..557ad6d11ca725927756cd7c3d411396eb9ee9fa 100644 --- a/src/uncategorized/pBombing.tw +++ b/src/uncategorized/pBombing.tw @@ -75,7 +75,7 @@ The implant is small, and went off too far ahead to do anything more than stun. As you collect your senses, you are dimly aware of a massive form rushing to stand over you. In its hands is a chunky object that emits three long tongues of flame and makes three barking sounds that break through the ringing in your ears. You manage to get yourself together enough to understand the mercenary as he slings his shotgun and kneels to check you over. His experienced hands disclose no injury, and he says, "You'll be OK, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>. Come on, up and at 'em. Let's get you checked out." There is some @@.red;minor property damage@@ to repair, but no lasting harm. <<set $cash -= 1000>> -<<elseif $AProsperityCap > 60>> +<<elseif $arcologyUpgrade.drones == 1>> Two security drones reach the scene at the very last second. They drop the assailants with taser rounds, the demonic little munitions' sharp heads burying themselves in muscle before applying voltage. There is some @@.red;minor property damage@@ to repair, but no lasting harm. <<set $cash -= 1000>> diff --git a/src/uncategorized/pMercenaryRomeo.tw b/src/uncategorized/pMercenaryRomeo.tw index c84e73b9f4042e52e01b4bf652d3acbdd98dca5d..c756f111c8c9fc0a09dbebbe9241ab2618d356c4 100644 --- a/src/uncategorized/pMercenaryRomeo.tw +++ b/src/uncategorized/pMercenaryRomeo.tw @@ -47,7 +47,7 @@ <</nobr>>\ \ -One of your mercenaries requests an interview. He's a worn, grey-haired tank of a man, made bulkier still by heavy ceramic plate armor and lots of ammunition and gear. The murderous submachine gun favored for city fighting looks like a toy in his hands. But as he sits at your invitation and accepts a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>> proffered by an attentive slave girl, he seems almost bashful. +One of your mercenaries requests an interview. He's a worn, grey-haired tank of a man, made bulkier still by heavy ceramic plate armor and lots of ammunition and gear. The murderous submachine gun favored for city fighting looks like a toy in his hands. But as he sits at your invitation and accepts a <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>a plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>line of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>pill of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tab of $PC.refreshment<</if>> proffered by an attentive slave girl, he seems almost bashful. "<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, I'll say this straight. I'd like to buy one of your slaves. I've been seeing <span id="name"><<print "[[$activeSlave.slaveName|Long Slave Description][$nextLink = passage(), $eventDescription = 1]]">></span> a lot, and she makes the years sit a little lighter on me. I've scraped together what I can, and I can pay ¤$slaveCost." It's a decent price, probably a little less than you could get at auction. It's a huge sum for a mercenary; it's probably his entire savings. You ask what he would do with her. "Well," he says, actually blushing, "I'd free her. And marry her, if she'd have me." \ diff --git a/src/uncategorized/pMercsHelpCorp.tw b/src/uncategorized/pMercsHelpCorp.tw index 2b338969a11f02a1b0727f279e257b00215d2096..4f13f66d38f84a797a005c2c563f1bd9eeae69af 100644 --- a/src/uncategorized/pMercsHelpCorp.tw +++ b/src/uncategorized/pMercsHelpCorp.tw @@ -12,7 +12,7 @@ \ Your weekly meeting with your $mercenariesTitle commander finishes with unusual speed. With the arcology owner who set the Daughters on you enslaved, all other immediate threats defused or smashed,<<if $arcologies[0].FSRomanRevivalistLaw > 0>> your citizens serving in the urban cohorts with enthusiasm,<</if>> and the $mercenariesTitle in excellent fighting condition, there just weren't enough concerns from either of your perspectives to fill the time. You sit across your desk from each other, discussing the global situation over $PC.refreshment. -"You know, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>," the scarred man says thoughtfully. "Threat board's pretty sparse these days. I mean, not for those poor bastards." He <<if $PC.refreshmentType == 0>>waves his $PC.refreshment<<elseif $PC.refreshmentType == 1>>uses his glass to point<<elseif $PC.refreshmentType == 2>>points a piece of $PC.refreshment<<elseif $PC.refreshmentType == 3>>finishes arranging a line before pointing<<else>>using his syringe to point<</if>> at a screen showing a live news feed from a war on the other side of the world. A huge cloud in an unmistakable, malevolent shape, a broad rising head atop a dirty column of vapor, is towering above a large city. +"You know, <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>," the scarred man says thoughtfully. "Threat board's pretty sparse these days. I mean, not for those poor bastards." He <<if $PC.refreshmentType == 0>>waves his $PC.refreshment<<elseif $PC.refreshmentType == 1>>uses his glass to point<<elseif $PC.refreshmentType == 2>>points a piece of $PC.refreshment<<elseif $PC.refreshmentType == 3>>finishes arranging a line before pointing<<elseif $PC.refreshmentType == 4>>using his syringe to point<<elseif $PC.refreshmentType == 5>>shaking the bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>using the sheet of $PC.refreshment to point<</if>> at a screen showing a live news feed from a war on the other side of the world. A huge cloud in an unmistakable, malevolent shape, a broad rising head atop a dirty column of vapor, is towering above a large city. "But in our immediate area, there's just not much that can threaten us. Most trouble on the horizon's going to come from economics and supply and the climate, but that stuff doesn't shoot back. I think we can afford a little dispersal of military effort. Why don't I second squads to your corporation, when we've got the availability? Your corporate guys are already pulling meat out of the conflict zones. No offense to them, they're pretty good, but they're not quite at the level of my boys and girls. And don't worry, I'd keep 'em clear of shit like that." He indicates the onscreen mushroom cloud again. diff --git a/src/uncategorized/pens.tw b/src/uncategorized/pens.tw new file mode 100644 index 0000000000000000000000000000000000000000..f9dd120723859049c304de139eaa679566413c82 --- /dev/null +++ b/src/uncategorized/pens.tw @@ -0,0 +1,11 @@ +:: Pens [nobr] + +<<set $nextButton = "Back", $nextLink = "Manage Arcology">> + +This is a space in the arcology's service areas, designed to house hundreds of slaves for paying owners. You control this part of the arcology. If you own menial slaves, they will be kept here; unused space will be rented to other slave brokers. +<<SectorSell>> +<br> + +<br> +[[Convert this sector into a manufacturing district|Manage Arcology][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $sectors[$AS].type = "Manufacturing"]] +//Costs ¤<<print Math.trunc(5000*$upgradeMultiplierArcology)>>// \ No newline at end of file diff --git a/src/uncategorized/personalAssistantAppearance.tw b/src/uncategorized/personalAssistantAppearance.tw index dea86ec184e62c858ceda588bb0bca8d38dd0616..94e5750721994fcf9e0fe4ddd0b73e5e5030579a 100644 --- a/src/uncategorized/personalAssistantAppearance.tw +++ b/src/uncategorized/personalAssistantAppearance.tw @@ -1219,11 +1219,11 @@ She's a cute little <<if $arcologies[0].FSSupremacist != "unset">>$arcologies[0] <<if $marketAssistantRelationship == "cute">> They're sitting back to back, reading their books and giggling to each other over whispers of what they erotic tricks they can do. <<elseif $marketAssistantRelationship == "nonconsensual">> - $assistantName has her plaything tightly bound to a rack and is gleefully pouring hot wax onto the oddly silent market assistant. You see why when a drop lands on her sensative clit, eliciting a scream from the restrained imp; $assistantName pulls her restraints even tighter as punishment. + $assistantName has her test subject stripped and bound. She focuses a spell on a single of the girls breasts and records the results as it steadily begins swelling, leaving it's twin behind. The market assistant moans as an egg pushes its way out of her erect nipple. <<elseif $marketAssistantRelationship == "incestuous">> - $assistantName and her sister are struggling to stay airborn as they attempt push an oversized, double-ended dildo out of their own cunt and into the other's. When they notice you watching, $assistantName seizes the opportunity to bear down hard, forcing the entirety of the toy into the distracted market assistant. She crashes to the ground, hands upon her cock bulged middle, orgasming indecently. + $assistantName is lustfully groping her sister's plush breasts. Upon noticing your gaze, she channels her magic and <<if $seeDicks != 0>>sprouts a huge dick strait into her sister's plump rear<<else>>begins to enlarge the already lovely handfuls<</if>>. The market assistant can only finger herself in response, oblivious to everything going on. <<else>> - They're taking swings at each other with switches. Giggling with each swing and moaning with every successful strike. + They've pulled open each others robes and are gently tribbing. Upon noticing you, $assistantName casts a spell to triple the market assistant's sensitivity and braces for the impending orgasm. She cums so hard she passses out; $assistantName gently pulls her into a close embrace until she recovers. <</if>> <<else>> She's idly turning the pages of her spellbook. When she notices you watching, she flips the book around to show you a new and kinky trick she wants to try out. diff --git a/src/uncategorized/pit.tw b/src/uncategorized/pit.tw index 509ea17cb84e1db6569fd8568823c95a3cf79112..529d193a840c99653f8cc0a56d2ee6da799b8031 100644 --- a/src/uncategorized/pit.tw +++ b/src/uncategorized/pit.tw @@ -15,6 +15,15 @@ $pitNameCaps is clean and ready, with slaves assigned to the week's bout. <<else>> but no slaves are assigned fight. + <<link "Decommission the pit">> + <<set $pit = 0>> + <<for _i = 0; _i < $sectors.length; _i++>> + <<if $sectors[_i].type == "Pit">> + <<set $sectors[_i].type == "Pit">><<break>> + <</if>> + <</for>> + <<goto "Main">> + <</link>> <</if>> //<<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Sir<<else>>Ma'am<</if>>, slaves assigned here can continue their usual duties.// diff --git a/src/uncategorized/private.tw b/src/uncategorized/private.tw new file mode 100644 index 0000000000000000000000000000000000000000..83c1f1f55c0a722a76b5fea9668c02cca7ad79c2 --- /dev/null +++ b/src/uncategorized/private.tw @@ -0,0 +1,33 @@ +:: Private [nobr] + +<<set $nextButton = "Back", $nextLink = "Manage Arcology">> + +This is a privately-owned +<<switch $sectors[$AS].type>> +<<case "Shops">> + section of the promenade filled with a variety of small, higher-end shops, salons, brothels, and clubs. +<<case "Apartments">> + sector of the arcology's living areas, occupied by citizens of varying wealth and social standing. +<<case "DenseApartments">> + sector of the arcology's living areas, upgraded for dense occupancy by as many citizens as possible. +<<case "LuxuryApartments">> + sector of the arcology's living areas, mproved for occupancy by the Free Cities' wealthiest citizens. +<<case "Markets">> + area of the concourse occupied by large stores and markets, many of which sell slaves. +<<case "Manufacturing">> + space in the arcology's service areas, rented to a variety of tenants for manufacturing purposes. +<<case "Pens">> + space in the arcology's service areas, designed to house hundreds of slaves for paying owners. +<<default>>ERROR: bad sector type +<</switch>> + +<<set $price = 1000*Math.trunc($arcologies[0].prosperity*(1+($arcologies[0].demandFactor/100)))>> +You will have to acquire an additional 4% interest in $arcologies[0].name to take control of this sector. Such an interest is worth ¤$price and will require a transaction cost of ¤10000 to acquire for a total cost of ¤<<print $price+10000>>. +<<if $arcologies[0].ownership+$arcologies[0].minority <= 96>> + [[Buy|Manage Arcology][$cash -= $price+10000, $arcologies[0].ownership += 4, $arcologies[0].demandFactor += 20, $sectors[$AS].ownership = 1]] + <<if $rep >= 18000>> + <br> + <<set $repPrice = Math.clamp($price/2, 0, 18000)>> + You have so much political capital that you can spend reputation to acquire ownership by spending reputation. [[Use reputation|Manage Arcology][$rep -= $repPrice, $arcologies[0].ownership += 4, $arcologies[0].demandFactor += 20, $sectors[$AS].ownership = 1]] + <</if>> +<</if>> \ No newline at end of file diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw index df80f4d92ae2066d019e03027e8f8d437d17c5c5..51426f1d209133280a1a7119e199e9242a1a12a6 100644 --- a/src/uncategorized/randomIndividualEvent.tw +++ b/src/uncategorized/randomIndividualEvent.tw @@ -858,7 +858,7 @@ <<if $eventSlave.assignment == "serve the public">> <<if $eventSlave.fetishKnown == 1>> <<if $FSDegradationist == "unset">> -<<if $AProsperityCap > 60>> +<<if $arcologyUpgrade.drones == 1>> <<set $RESSevent.push("mean girls")>> <</if>> <</if>> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 334b5abc098712bae504cabec7b12c4322265bef..7da2dda01ed1e6a21bd2e7f69a1d1c16fda8801d 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -627,7 +627,7 @@ <<if ($HeadGirl.devotion > 50) && ($HeadGirl.whoreSkill >= 100)>> <<set $recruit.push("whore recruit")>> <</if>> -<<if ($AProsperityCap > 60)>> +<<if $arcologyUpgrade.drones == 1>> <<set $events.push("RE malefactor")>> <<set $malefactor = ["liberator", "whore", "businesswoman", "addict", "anchorBaby"]>> <<if $seeDicks != 0>> diff --git a/src/uncategorized/reFemaleArcologyOwner.tw b/src/uncategorized/reFemaleArcologyOwner.tw index c551c37f225db06a547114b5b25c6b24be170e96..3411912796725eca85971b5a373bcf73ffab831a 100644 --- a/src/uncategorized/reFemaleArcologyOwner.tw +++ b/src/uncategorized/reFemaleArcologyOwner.tw @@ -12,7 +12,7 @@ She strikes a fine balance in conversation with you, firm enough for a rising wo <span id="result"> <<link "Head over and assert yourself">> <<replace "#result">> - You head over and insert yourself into the conversation between her and the man trying to convince her to invest in his solar power concern. Your presence and power are such that he gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to her company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what she was looking for. She is likely concerned that this is too much public <<if $PC.title == 1>>submission<<else>>vulnerability<</if>> for her to safely manage. She excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<else>>syringe of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company. + You head over and insert yourself into the conversation between her and the man trying to convince her to invest in his solar power concern. Your presence and power are such that he gives way rapidly, and you ostentatiously yet nonverbally assert your right to first claim to her company and conversation. After a few minutes of this public display, however, it becomes apparent that this is not what she was looking for. She is likely concerned that this is too much public <<if $PC.title == 1>>submission<<else>>vulnerability<</if>> for her to safely manage. She excuses herself and withdraws. You return to your <<if $PC.refreshmentType == 0>>$PC.refreshment<<elseif $PC.refreshmentType == 1>>glass of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plate of $PC.refreshment<<elseif $PC.refreshmentType == 3>>pouch of $PC.refreshment<<elseif $PC.refreshmentType == 4>>syringe of $PC.refreshment<<elseif $PC.refreshmentType == 5>>bottle of $PC.refreshment<<elseif $PC.refreshmentType == 6>>sheet of $PC.refreshment<</if>>, consoling yourself that you are not exactly starved for company. <</replace>> <</link>> <br><<link "Walk past her and out onto an unoccupied balcony">> diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw index d068d1e974d4885bd220b18fc392f2db08997e55..a412dc787d5ca23c3f8bf51c252b0c6da104b6d9 100644 --- a/src/uncategorized/rulesAssistant.tw +++ b/src/uncategorized/rulesAssistant.tw @@ -3,30 +3,33 @@ <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Main">> <<set $showEncyclopedia = 1, $encyclopedia = "Personal Assistant">> -<<if $defaultRules.length > 0>> +<<set _length = $defaultRules.length>> - <<for _r = 0; _r < $defaultRules.length; _r++>> - <<if $currentRule.ID == $defaultRules[_r].ID>> - <<set $r = _r+1>> +<<if _length > 0>> + + <<if ndef $currentRule || $currentRule == null>> <<set $currentRule = $defaultRules[0]>> <</if>> + <<if ndef $currentRule.assignment>> <<set $currentRule.assignment = []>> <</if>> + <<if ndef $currentRule.excludeAssignment>> <<set $currentRule.excludeAssignment = []>> <</if>> + <<if ndef $currentRule.excludedSlaves>> <<set $currentRule.excludedSlaves = []>> <</if>> + <<if ndef $currentRule.selectedSlaves>> <<set $currentRule.selectedSlaves = []>> <</if>> + <<if ndef $currentRule.facility>> <<set $currentRule.facility = []>> <</if>> + <<if ndef $currentRule.excludeFacility>> <<set $currentRule.excludeFacility = []>> <</if>> + + <<for $r = _length - 1; $r >= 0; $r-->> + <<if $defaultRules[$r] == null>> + <<set $defaultRules.deleteAt($r)>> + <<goto "Rules Assistant">> + <<elseif $currentRule.ID == $defaultRules[$r].ID>> + <<set $r = $r + 1>> <<break>> <</if>> <</for>> - - /* backwards compatibility */ - <<if ndef $currentRule.assignment>> <<set $currentRule.assignment = []>> <</if>> - <<if ndef $currentRule.excludeAssignment>> <<set $currentRule.excludeAssignment = []>> <</if>> - <<if ndef $currentRule.excludedSlaves>> <<set $currentRule.excludedSlaves = []>> <</if>> - <<if ndef $currentRule.selectedSlaves>> <<set $currentRule.selectedSlaves = []>> <</if>> - <<if ndef $currentRule.facility>> <<set $currentRule.facility = []>> <</if>> - <<if ndef $currentRule.excludeFacility>> <<set $currentRule.excludeFacility = []>> <</if>> - + <center> <<if $r > 1>> @@.cyan;[Shift+â†,Shift+Q] @@<span id="firstRule"> <strong> <<link "First">> - <<set $currentRule.facility = _facility>> - <<set $currentRule.excludeFacility = _excludeFacility>> <<set $currentRule = $defaultRules[0]>> <<goto "Rules Assistant">> <</link>> @@ -36,9 +39,7 @@ @@.cyan;[â†,Q] @@<span id="prevRule"> <strong> <<link "Prev">> - <<set $currentRule.facility = _facility>> - <<set $currentRule.excludeFacility = _excludeFacility>> - <<set $currentRule = $defaultRules[_r-1]>> + <<set $currentRule = $defaultRules[$r-2]>> <<goto "Rules Assistant">> <</link>> </strong> @@ -47,15 +48,13 @@ [Shift+â†,Shift+Q] First | [â†,Q] Prev <</if>> - ''Viewing Rule $r of $defaultRules.length'' + ''Viewing Rule $r of _length'' - <<if _r+1 < $defaultRules.length>> + <<if $r < _length>> <span id="nextRule"> <strong> <<link "Next">> - <<set $currentRule.facility = _facility>> - <<set $currentRule.excludeFacility = _excludeFacility>> - <<set $currentRule = $defaultRules[_r+1]>> + <<set $currentRule = $defaultRules[$r]>> <<goto "Rules Assistant">> <</link>> </strong> @@ -64,11 +63,11 @@ Next [E,→] | <</if>> - <<if $r != $defaultRules.length && $defaultRules[$defaultRules.length-1]>> + <<if $r < _length>> <span id="lastRule"> <strong> <<link "Last">> - <<set $currentRule = $defaultRules[$defaultRules.length-1]>> + <<set $currentRule = $defaultRules[_length-1]>> <<goto "Rules Assistant">> <</link>> </strong> @@ -79,8 +78,8 @@ </center> <center> - <<if _r > 0>> - <<print $defaultRules[_r-1].name+"   <-   ">> + <<if $r > 1>> + <<print $defaultRules[$r-2].name+"   <-   ">> <<else>> <<print "     ">> <</if>> @@ -92,8 +91,8 @@ @@.yellow;$currentRule.name@@ </span> - <<if _r < $defaultRules.length-1>> - <<print "   ->   "+$defaultRules[_r+1].name>> + <<if $r < _length>> + <<print "   ->   "+$defaultRules[$r].name>> <<else>> <<print "     ">> <</if>> @@ -101,15 +100,15 @@ <center> <span id="ruleDown"> - <<if _r > 0>> - <<link "Lower Priority">> - <<set _tmpRule = $defaultRules[_r]>> - <<set $defaultRules[_r] = $defaultRules[_r-1]>> - <<set $defaultRules[_r-1] = _tmpRule>> - <<goto "Rules Assistant">> - <</link>> + <<if $r > 1>> + <<link "Lower Priority">> + <<set _tmpRule = $defaultRules[$r-1]>> + <<set $defaultRules[$r-1] = $defaultRules[$r-2]>> + <<set $defaultRules[$r-2] = _tmpRule>> + <<goto "Rules Assistant">> + <</link>> <<else>> - Lower Priority + Lower Priority <</if>> </span> | @@ -120,11 +119,11 @@ <</link>> | <span id="ruleUp"> - <<if _r < $defaultRules.length-1>> + <<if $r < _length>> <<link "Higher Priority">> - <<set _tmpRule = $defaultRules[_r]>> - <<set $defaultRules[_r] = $defaultRules[_r+1]>> - <<set $defaultRules[_r+1] = _tmpRule>> + <<set _tmpRule = $defaultRules[$r-1]>> + <<set $defaultRules[$r-1] = $defaultRules[$r]>> + <<set $defaultRules[$r] = _tmpRule>> <<goto "Rules Assistant">> <</link>> <<else>> @@ -132,7 +131,7 @@ <</if>> </span> </center> -<</if>> /* closes if $defaultRules.length > 0 */ +<</if>> /* closes if _length > 0 */ <br> @@ -140,7 +139,7 @@ <br><br> -<<if $defaultRules.length < 1>> +<<if _length < 1>> ''No rules.'' <<else>> @@ -1722,8 +1721,6 @@ Slave diets: <<RAChangeApply>> <</link>> <<if $dietXXY == 1>> -<<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1>> -<<if $activeSlave.balls > 0>> | <<link "Futanari">> <<set $currentRule.diet = "XXY">> @@ -1733,8 +1730,6 @@ Slave diets: <</link>> <</if>> <</if>> -<</if>> -<</if>> <span id = "dietsupport"> <<if $currentRule.diet !== "no default setting">> @@ -2517,7 +2512,7 @@ Relationship rules: ''$currentRule.relationshipRules.'' <<link "Reset this rule to use FC Dev's preferred options">> <<replace "#saveresult">> //Rule reset.// - <<for _t = 0; _t < $defaultRules.length; _t++>> + <<for _t = 0; _t < _length; _t++>> <<if $currentRule.ID == $defaultRules[_t].ID>> <<if ($currentRule.ID == 1)>> @@ -2780,57 +2775,44 @@ Relationship rules: ''$currentRule.relationshipRules.'' <span id="result"> <<set _text = "Remove rule " + $r>> <<link _text>> - <<set $defaultRules[$r-1].activation = "none">> - <<for $s = 0; $s < $slaves.length; $s++>> - <<CheckAutoRulesActivate $slaves[$s]>> - <</for>> - <<set $defaultRules.pluck([$r-1],[$r-1])>> - <<for _r = $defaultRules.length; _r >= 0; _r-->> - <<if def $defaultRules[_r]>> - <<set $currentRule = $defaultRules[_r]>> + <<set $defaultRules.deleteAt($r-1)>> + <<for $r = $defaultRules.length; $r > 0; $r-->> + <<if def $defaultRules[$r-1]>> + <<set $currentRule = $defaultRules[$r-1]>> <<break>> <</if>> <</for>> <<goto "Rules Assistant">> <</link>> </span> -<</if>> + +<</if>> /* closes if _length > 0 */ <br> -<<if $defaultRules.length < 10>> +<<if _length < 10>> <br> <<link "Add a new rule">> <<set _activeRule = {aphrodisiacs: "no default setting", activation: "none", thresholdLower: 4, thresholdUpper: "none", eqLower: true, eqUpper: true, releaseRules: "no default setting", clitSetting: "no default setting", clitSettingXY: "no default setting", clitSettingXX: "no default setting", clitSettingEnergy: "no default setting", speechRules: "no default setting", clothes: "no default setting", fuckdoll: 0, choosesOwnClothes: 0, collar: "no default setting", shoes: "no default setting", virginAccessory: "no default setting", aVirginAccessory: "no default setting", vaginalAccessory: "no default setting", aVirginDickAccessory: "no default setting", dickAccessory: "no default setting", cSec: 0, bellyAccessory: "no default setting", aVirginButtplug: "no default setting", buttplug: "no default setting", markings: "none", eyeColor: "no default setting", makeup: "no default setting", nails: "no default setting", hColor: "no default setting", hLength: "no default setting", hStyle: "no default setting", pubicHColor: "no default setting", pubicHStyle: "no default setting", nipplesPiercing: "no default setting", areolaePiercing: "no default setting", clitPiercing: "no default setting", vaginaLube: "no default setting", vaginaPiercing: "no default setting", analArea: 1, dickPiercing: "no default setting", anusPiercing: "no default setting", lipsPiercing: "no default setting", tonguePiercing: "no default setting", earPiercing: "no default setting", nosePiercing: "no default setting", eyebrowPiercing: "no default setting", navelPiercing: "no default setting", corsetPiercing: "no default setting", boobsTat: "no default setting", buttTat: "no default setting", vaginaTat: "no default setting", dickTat: "no default setting", lipsTat: "no default setting", anusTat: "no default setting", shouldersTat: "no default setting", armsTat: "no default setting", legsTat: "no default setting", backTat: "no default setting", stampTat: "no default setting", curatives: "no default setting", livingRules: "no default setting", relationshipRules: "no default setting", standardPunishment: "no default setting", standardReward: "no default setting", useRulesAssistant: 1, diet: "no default setting", dietCum: "no default setting", dietMilk: "no default setting", muscles: "no default setting", XY: "no default setting", XX: "no default setting", gelding: "no default setting", preg: "no default setting", growth: "no default setting", autoSurgery: 0, choosesOwnAssignment: 0, lactation: 0, autoBrand: 0, pornFameSpending: "no default setting", dietGrowthSupport: 0, eyewear: "no default setting", assignment: [], excludeAssignment: [], setAssignment: "none", facility: [], excludeFacility: [], assignFacility: "none", excludeSpecialSlaves: true, facilityRemove: false, removalAssignment: "rest", selectedSlaves: [], excludedSlaves: [], surgery: {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}, underArmHColor: "no default setting", underArmHStyle: "no default setting" }>> - <<if ndef _r>> - <<set _r = 0>> - <<set $r = 1>> - <</if>> - - <<if $defaultRules.length > 0>> - <<set _length to ($defaultRules.length+1)>> - <<set $RulesID to $RulesID+1>> - <<else>> - <<set _length to 1>> - <<set $RulesID to 1>> - <</if>> - - <<set _activeRule.name = "Rule " + _length>> - <<set _activeRule.ID = $RulesID>> - + <<set _activeRule.name = "Rule " + (_length+1)>> <<set $defaultRules.push(_activeRule)>> - <<set $currentRule = $defaultRules[$defaultRules.length-1]>> + /* renumber rule IDs */ + <<for $r = 0; $r < $defaultRules.length; $r++>> + <<set $defaultRules[$r].ID = $r + 1>> + <</for>> + + <<set $currentRule = $defaultRules[_length]>> <<goto "Rules Assistant">> <</link>> <</if>> -<<if $defaultRules.length > 0>> +<<if _length > 0>> | <span id="apply"> <span id="applied"></span> <span id="applyresult"></span> diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index 4d7ec903ab9478d092d96716c349bdd33c3e0886..d8a78e452270d14be8818bc8a5b7625e0321feee 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -2178,7 +2178,7 @@ <<if ($slaves[$i].assignment != "work in the brothel")>> <<if ($slaves[$i].assignment != "serve in the club")>> <<if ($slaves[$i].assignment != "serve in the master suite") || ($masterSuiteUpgradeLuxury < 2)>> -<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyRestraintsSetting < 2)>> +<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyStimulatorsSetting == 0)>> <<if ($slaves[$i].vagina is 3) && ($slaves[$i].vaginalAccessory != "large dildo") && ($slaves[$i].vaginalAccessory != "huge dildo")>> With a rest from strenuous use, @@.orange;$possessive loose vagina recovers a little.@@ <<set $slaves[$i].vagina -= 1>> diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw index 19c9b22752f12f2cd84f633d7701447d152394b1..6a6c9599f165e70f6891ea404f985b9c94089afb 100644 --- a/src/uncategorized/seCoursing.tw +++ b/src/uncategorized/seCoursing.tw @@ -15,7 +15,7 @@ <</if>> <</for>> -It's time to go coursing. You meet with fellow members of the Coursing Association while the automated maintenance drones clear the plaza and lay down the green, sharing a refine discussion of recent events over <<if $PC.refreshmentType == 0>>a $PC.refreshment<<elseif $PC.refreshmentType == 1>>glasses of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plates of $PC.refreshment<<elseif $PC.refreshmentType == 3>>hits of $PC.refreshment<<else>>shots of $PC.refreshment<</if>>. Once the field is ready, the day's hares are led out and chained in a row along one side of the plaza, naked. You and the other members watch this process intently, since you won't get any more information on them than what you can learn by looking. +It's time to go coursing. You meet with fellow members of the Coursing Association while the automated maintenance drones clear the plaza and lay down the green, sharing a refine discussion of recent events over <<if $PC.refreshmentType == 0>>a $PC.refreshment<<elseif $PC.refreshmentType == 1>>glasses of $PC.refreshment<<elseif $PC.refreshmentType == 2>>plates of $PC.refreshment<<elseif $PC.refreshmentType == 3>>hits of $PC.refreshment<<elseif $PC.refreshmentType == 4>>shots of $PC.refreshment<<elseif $PC.refreshmentType == 5>>handfulls of $PC.refreshment<<elseif $PC.refreshmentType == 6>>tabs of $PC.refreshment<</if>>. Once the field is ready, the day's hares are led out and chained in a row along one side of the plaza, naked. You and the other members watch this process intently, since you won't get any more information on them than what you can learn by looking. <br><br> The rules have been explained to the hares: they're to be freed if they can reach the other side of the plaza without being caught and raped by the lurchers who will be released to chase them. diff --git a/src/uncategorized/shops.tw b/src/uncategorized/shops.tw new file mode 100644 index 0000000000000000000000000000000000000000..a2ca2bcc560dd3cf1b930feec4f343a59f310e35 --- /dev/null +++ b/src/uncategorized/shops.tw @@ -0,0 +1,19 @@ +:: Shops [nobr] + +<<set $nextButton = "Back", $nextLink = "Manage Arcology">> + +This is a section of the promenade filled with a variety of small, higher-end shops, salons, brothels, and clubs. You control this part of the arcology and all these businesses pay you rent. +<<SectorSell>> +<br> + +<<if $brothel == 0>> + <br> + [[Convert this sector of the promenade into a brothel|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $brothel = 5, $sectors[$AS].type = "Brothel"]] + //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs// +<</if>> + +<<if $club == 0>> + <br> + [[Build a club to serve as a focal point for public sluts|Manage Arcology][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $club = 5, $sectors[$AS].type = "Club"]] + //Costs ¤<<print Math.trunc(10000*$upgradeMultiplierArcology)>> and will incur upkeep costs// +<</if>><<set $nextButton = "Back", $nextLink = "Manage Arcology">> \ No newline at end of file diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 298c6614d5b23fca2e560c0df2787076805fcecf..071b6a8bbe51aec824d688e8dfbc203d96cf6c44 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -523,7 +523,7 @@ _Pass $nextLink <span id="FSButton"><<link [[Future Societies|Future Society]]>><</link>></span> @@.cyan;[F]@@ <</if>> <br><span id="LanguageButton"><<link "Language options">><<set $seed = $language>><<goto "Change Language">><</link>></span> @@.cyan;[L]@@ - <br><span id="PAOButton"><<link [[Personal assistant options]]>><</link>></span> @@.cyan;[T]@@ + <br><span id="PAOButton"><<link [[Assistant Options|Personal assistant options]]>><</link>></span> @@.cyan;[T]@@ <br><span id="URButton"><<link [[Universal Rules]]>><</link>></span> @@.cyan;[U]@@ <br><span id="WARButton"><<link [[Wardrobe]]>><</link>></span> @@.cyan;[W]@@ <<if $cyberMod != 0 && $researchLab.built == "true">> diff --git a/src/utility/assignWidgets.tw b/src/utility/assignWidgets.tw index edee8d60f9ec7213c489d49789740720062cd13d..15216fd79e2536c73bf9e49737fb72ef4c899b0b 100644 --- a/src/utility/assignWidgets.tw +++ b/src/utility/assignWidgets.tw @@ -3,7 +3,7 @@ /% Call as <<assignJob slaveObject $returnto | _currentRule.facilityRemove | "serve in the master suite" $args[0] slave object. *MUST be present* - $args[1] Job to assign slave to. Will accept the $returnto vars and the _currentRule.assignFacility vars and the actual job assignments "serve in the master suite" etc. + $args[1] Job to assign slave to. Will accept the $returnTo vars and the _currentRule.assignFacility vars and the actual job assignments "serve in the master suite" etc. This is basically a Widget version of assign but will work anywhere, and saves to the slaves[..] array, and changes your $args[0] var sent. %/ @@ -19,9 +19,9 @@ <<set _wi = $i>> <<else>> <<for _wi = 0; _wi < _SL; _wi++>> - <<if _wID == $slaves[_wi].ID>> - <<break>> - <</if>> + <<if _wID == $slaves[_wi].ID>> + <<break>> + <</if>> <</for>> <</if>> @@ -43,6 +43,10 @@ <<set $args[0].assignment = "serve in the club", $args[0].assignmentVisible = 0, $clubSlaves++, $ClubiIDs.push({ID: _wID, Index: _wi})>> <<case "dairy" "work in the dairy">> <<set $args[0].assignment = "work in the dairy", $args[0].assignmentVisible = 0, $dairySlaves++, $DairyiIDs.push({ID: _wID, Index: _wi})>> + <<if $dairyPregSetting > 0>> + <<set $reservedChildren -= $args[0].reservedChildren>> + <<set $$args[0].reservedChildren = 0>> + <</if>> <<case "hgsuite" "head girl suite" "live with your head girl">> <<set $args[0].assignment = "live with your Head Girl", $args[0].assignmentVisible = 0, $HGSuiteSlaves++, $HGSuiteiIDs.push({ID: _wID, Index: _wi})>> <<case "servantsquarters" "servants' quarters" "work as a servant">> @@ -74,7 +78,7 @@ <<if $slaves[_wi].choosesOwnClothes == 1>><<include "SA chooses own clothes">><<set $args[0] = $slaves[_wi]>><</if>> /* update clothes, then update $args[0] */ -<</if>> +<</if>> /* not Pit or Coursing Association */ <</widget>> /% @@ -87,8 +91,23 @@ %/ <<widget removeJob>> <<if ($args[1] != "Pit") && ($args[1] != "Coursing Association")>> + <<set _wID = $args[0].ID, _SL = $slaves.length>> +<<if _wID == $HeadGirl.ID>><<set $HeadGirl = 0>><</if>> +<<if _wID == $Recruiter.ID>><<set $Recruiter = 0>><</if>> +<<if _wID == $Bodyguard.ID>><<set $Bodyguard = 0>><</if>> +<<if _wID == $Madam.ID>><<set $Madam = 0>><</if>> +<<if _wID == $DJ.ID>><<set $DJ = 0>><</if>> +<<if _wID == $Milkmaid.ID>><<set $Milkmaid = 0>><</if>> +<<if _wID == $Schoolteacher.ID>><<set $Schoolteacher = 0>><</if>> +<<if _wID == $Attendant.ID>><<set $Attendant = 0>><</if>> +<<if _wID == $Nurse.ID>><<set $Nurse = 0>><</if>> +<<if _wID == $Collectrix.ID>><<set $Collectrix = 0>><</if>> +<<if _wID == $Stewardess.ID>><<set $Stewardess = 0>><</if>> +<<if _wID == $Wardeness.ID>><<set $Wardeness = 0>><</if>> +<<if _wID == $Concubine.ID>><<set $Concubine = 0>><</if>> + /% use .toLowerCase() to get rid of a few dupe conditions. %/ <<switch $args[1].toLowerCase()>> <<case "clinic" "get treatment in the clinic">> diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index 6387a0dd26f72321aeadbc9293a9595d6e39cc3f..593d198dadb818bf89e324f600d903ea2424fad7 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -431,9 +431,9 @@ <<replace #sexoption>> <<if ($activeSlave.vagina > -1)>> <<if canDoVaginal($activeSlave)>> - <<link "Fuck her">><<replace "#miniscene">><<include "FVagina">><br><</replace>><</link>> + <<link "Fuck her">><<replace "#miniscene">><<include "FVagina">><br><</replace>><<SlaveInteractFertility>><</link>> <<if canDoAnal($activeSlave)>> - | <<link "Use her holes">><<replace "#miniscene">><<include "FButt">><br> <</replace>><</link>> + | <<link "Use her holes">><<replace "#miniscene">><<include "FButt">><br> <</replace>><<SlaveInteractFertility>><</link>> <</if>> <<else>> //Remove her chastity belt if you wish to fuck her// @@ -1042,8 +1042,13 @@ %/ <<widget "MenialPopCap">> -<<set _PopCap = 100*Math.trunc(($arcologies[0].ownership*$AProsperityCap)/1000)>> -<<set _OverMenialCap = ($helots+$fuckdolls+$menialBioreactors)-_PopCap>> +<<set $PopCap = 500>> +<<for _i = 20; _i < $sectors.length; _i++>> + <<if $sectors[_i].type == "Pens">> + <<set $PopCap += 500>> + <</if>> +<</for>> +<<set _OverMenialCap = ($helots+$fuckdolls+$menialBioreactors)-$PopCap>> <<if _OverMenialCap > 0>> <<set _Price = Math.trunc(($slaveCostFactor*1000)/100)*100>> <<set _Price = Math.clamp(_Price, 500, 1500)>> @@ -1753,6 +1758,470 @@ This experience <</widget>> +<<widget "ClearFacilityDecorations">> +/* Called when a FS is abandoned or failed out of. */ + +<<if $brothel > 0>> +<<if $brothelDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($brothelDecoration == "Supremacist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($brothelDecoration == "Subjugationist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($brothelDecoration == "Gender Radicalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($brothelDecoration == "Gender Fundamentalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($brothelDecoration == "Paternalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($brothelDecoration == "Body Purist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($brothelDecoration == "Transformation Fetishist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($brothelDecoration == "Youth Preferentialist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($brothelDecoration == "Maturity Preferentialist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($brothelDecoration == "Slimness Enthusiast")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($brothelDecoration == "Asset Expansionist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($brothelDecoration == "Pastoralist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($brothelDecoration == "Physical Idealist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($brothelDecoration == "Chattel Religionist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($brothelDecoration == "Degradationist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($brothelDecoration == "Roman Revivalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($brothelDecoration == "Egyptian Revivalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($brothelDecoration == "Edo Revivalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($brothelDecoration == "Arabian Revivalist")>> + <<set $brothelDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($brothelDecoration == "Chinese Revivalist")>> + <<set $brothelDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $club > 0>> +<<if $clubDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($clubDecoration == "Supremacist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($clubDecoration == "Subjugationist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($clubDecoration == "Gender Radicalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($clubDecoration == "Gender Fundamentalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($clubDecoration == "Paternalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($clubDecoration == "Body Purist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($clubDecoration == "Transformation Fetishist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($clubDecoration == "Youth Preferentialist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($clubDecoration == "Maturity Preferentialist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($clubDecoration == "Slimness Enthusiast")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($clubDecoration == "Asset Expansionist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($clubDecoration == "Pastoralist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($clubDecoration == "Physical Idealist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($clubDecoration == "Chattel Religionist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($clubDecoration == "Degradationist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($clubDecoration == "Roman Revivalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($clubDecoration == "Egyptian Revivalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($clubDecoration == "Edo Revivalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($clubDecoration == "Arabian Revivalist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($clubDecoration == "Chinese Revivalist")>> + <<set $clubDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $dairy > 0>> +<<if $dairyDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($dairyDecoration == "Supremacist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($dairyDecoration == "Subjugationist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($dairyDecoration == "Gender Radicalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($dairyDecoration == "Gender Fundamentalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($dairyDecoration == "Paternalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($dairyDecoration == "Body Purist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($dairyDecoration == "Transformation Fetishist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($dairyDecoration == "Youth Preferentialist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($dairyDecoration == "Maturity Preferentialist")>> + <<set $clubDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($dairyDecoration == "Slimness Enthusiast")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($dairyDecoration == "Asset Expansionist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($dairyDecoration == "Pastoralist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($dairyDecoration == "Physical Idealist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($dairyDecoration == "Chattel Religionist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($dairyDecoration == "Degradationist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($dairyDecoration == "Roman Revivalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($dairyDecoration == "Egyptian Revivalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($dairyDecoration == "Edo Revivalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($dairyDecoration == "Arabian Revivalist")>> + <<set $dairyDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($dairyDecoration == "Chinese Revivalist")>> + <<set $dairyDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $spa > 0>> +<<if $spaDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($spaDecoration == "Supremacist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($spaDecoration == "Subjugationist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($spaDecoration == "Gender Radicalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($spaDecoration == "Gender Fundamentalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($spaDecoration == "Paternalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($spaDecoration == "Body Purist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($spaDecoration == "Transformation Fetishist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($spaDecoration == "Youth Preferentialist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($spaDecoration == "Maturity Preferentialist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($spaDecoration == "Slimness Enthusiast")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($spaDecoration == "Asset Expansionist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($spaDecoration == "Pastoralist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($spaDecoration == "Physical Idealist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($spaDecoration == "Chattel Religionist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($spaDecoration == "Degradationist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($spaDecoration == "Roman Revivalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($spaDecoration == "Egyptian Revivalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($spaDecoration == "Edo Revivalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($spaDecoration == "Arabian Revivalist")>> + <<set $spaDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($spaDecoration == "Chinese Revivalist")>> + <<set $spaDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $clinic > 0>> +<<if $clinicDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($clinicDecoration == "Supremacist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($clinicDecoration == "Subjugationist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($clinicDecoration == "Gender Radicalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($clinicDecoration == "Gender Fundamentalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($clinicDecoration == "Paternalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($clinicDecoration == "Body Purist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($clinicDecoration == "Transformation Fetishist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($clinicDecoration == "Youth Preferentialist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($clinicDecoration == "Maturity Preferentialist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($clinicDecoration == "Slimness Enthusiast")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($clinicDecoration == "Asset Expansionist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($clinicDecoration == "Pastoralist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($clinicDecoration == "Physical Idealist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($clinicDecoration == "Chattel Religionist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($clinicDecoration == "Degradationist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($clinicDecoration == "Roman Revivalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($clinicDecoration == "Egyptian Revivalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($clinicDecoration == "Edo Revivalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($clinicDecoration == "Arabian Revivalist")>> + <<set $clinicDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($clinicDecoration == "Chinese Revivalist")>> + <<set $clinicDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $schoolroom > 0>> +<<if $schoolroomDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($schoolroomDecoration == "Supremacist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($schoolroomDecoration == "Subjugationist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($schoolroomDecoration == "Gender Radicalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($schoolroomDecoration == "Gender Fundamentalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($schoolroomDecoration == "Paternalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($schoolroomDecoration == "Body Purist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($schoolroomDecoration == "Transformation Fetishist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($schoolroomDecoration == "Youth Preferentialist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($schoolroomDecoration == "Maturity Preferentialist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($schoolroomDecoration == "Slimness Enthusiast")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($schoolroomDecoration == "Asset Expansionist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($schoolroomDecoration == "Pastoralist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($schoolroomDecoration == "Physical Idealist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($schoolroomDecoration == "Chattel Religionist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($schoolroomDecoration == "Degradationist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($schoolroomDecoration == "Roman Revivalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($schoolroomDecoration == "Egyptian Revivalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($schoolroomDecoration == "Edo Revivalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($schoolroomDecoration == "Arabian Revivalist")>> + <<set $schoolroomDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($schoolroomDecoration == "Chinese Revivalist")>> + <<set $schoolroomDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $cellblock > 0>> +<<if $cellblockDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($cellblockDecoration == "Supremacist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($cellblockDecoration == "Subjugationist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($cellblockDecoration == "Gender Radicalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($cellblockDecoration == "Gender Fundamentalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($cellblockDecoration == "Paternalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($cellblockDecoration == "Body Purist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($cellblockDecoration == "Transformation Fetishist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($cellblockDecoration == "Youth Preferentialist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($cellblockDecoration == "Maturity Preferentialist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($cellblockDecoration == "Slimness Enthusiast")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($cellblockDecoration == "Asset Expansionist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($cellblockDecoration == "Pastoralist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($cellblockDecoration == "Physical Idealist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($cellblockDecoration == "Chattel Religionist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($cellblockDecoration == "Degradationist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($cellblockDecoration == "Roman Revivalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($cellblockDecoration == "Egyptian Revivalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($cellblockDecoration == "Edo Revivalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($cellblockDecoration == "Arabian Revivalist")>> + <<set $cellblockDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($cellblockDecoration == "Chinese Revivalist")>> + <<set $cellblockDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $servantsQuarters > 0>> +<<if $servantsQuartersDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($servantsQuartersDecoration == "Supremacist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($servantsQuartersDecoration == "Subjugationist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($servantsQuartersDecoration == "Gender Radicalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($servantsQuartersDecoration == "Gender Fundamentalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($servantsQuartersDecoration == "Paternalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($servantsQuartersDecoration == "Body Purist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($servantsQuartersDecoration == "Transformation Fetishist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($servantsQuartersDecoration == "Youth Preferentialist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($servantsQuartersDecoration == "Maturity Preferentialist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($servantsQuartersDecoration == "Slimness Enthusiast")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($servantsQuartersDecoration == "Asset Expansionist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($servantsQuartersDecoration == "Pastoralist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($servantsQuartersDecoration == "Physical Idealist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($servantsQuartersDecoration == "Chattel Religionist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($servantsQuartersDecoration == "Degradationist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($servantsQuartersDecoration == "Roman Revivalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($servantsQuartersDecoration == "Egyptian Revivalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($servantsQuartersDecoration == "Edo Revivalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($servantsQuartersDecoration == "Arabian Revivalist")>> + <<set $servantsQuartersDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($servantsQuartersDecoration == "Chinese Revivalist")>> + <<set $servantsQuartersDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $arcade > 0>> +<<if $arcadeDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($arcadeDecoration == "Supremacist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($arcadeDecoration == "Subjugationist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($arcadeDecoration == "Gender Radicalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($arcadeDecoration == "Gender Fundamentalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($arcadeDecoration == "Paternalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($arcadeDecoration == "Body Purist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($arcadeDecoration == "Transformation Fetishist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($arcadeDecoration == "Youth Preferentialist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($arcadeDecoration == "Maturity Preferentialist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($arcadeDecoration == "Slimness Enthusiast")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($arcadeDecoration == "Asset Expansionist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($arcadeDecoration == "Pastoralist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($arcadeDecoration == "Physical Idealist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($arcadeDecoration == "Chattel Religionist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($arcadeDecoration == "Degradationist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($arcadeDecoration == "Roman Revivalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($arcadeDecoration == "Egyptian Revivalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($arcadeDecoration == "Edo Revivalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($arcadeDecoration == "Arabian Revivalist")>> + <<set $arcadeDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($arcadeDecoration == "Chinese Revivalist")>> + <<set $arcadeDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<<if $masterSuite > 0>> +<<if $masterSuiteDecoration != "standard">> +<<if ($arcologies[0].FSSupremacist == "unset") && ($masterSuiteDecoration == "Supremacist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSSubjugationist == "unset") && ($masterSuiteDecoration == "Subjugationist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderRadicalist == "unset") && ($masterSuiteDecoration == "Gender Radicalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSGenderFundamentalist == "unset") && ($masterSuiteDecoration == "Gender Fundamentalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSPaternalist == "unset") && ($masterSuiteDecoration == "Paternalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSBodyPurist == "unset") && ($masterSuiteDecoration == "Body Purist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSTransformationFetishist == "unset") && ($masterSuiteDecoration == "Transformation Fetishist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSYouthPreferentialist == "unset") && ($masterSuiteDecoration == "Youth Preferentialist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSMaturityPreferentialist == "unset") && ($masterSuiteDecoration == "Maturity Preferentialist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSSlimnessEnthusiast == "unset") && ($masterSuiteDecoration == "Slimness Enthusiast")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSAssetExpansionist == "unset") && ($masterSuiteDecoration == "Asset Expansionist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSPastoralist == "unset") && ($masterSuiteDecoration == "Pastoralist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSPhysicalIdealist == "unset") && ($masterSuiteDecoration == "Physical Idealist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSChattelReligionist == "unset") && ($masterSuiteDecoration == "Chattel Religionist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSDegradationist == "unset") && ($masterSuiteDecoration == "Degradationist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSRomanRevivalist == "unset") && ($masterSuiteDecoration == "Roman Revivalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSEgyptianRevivalist == "unset") && ($masterSuiteDecoration == "Egyptian Revivalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSEdoRevivalist == "unset") && ($masterSuiteDecoration == "Edo Revivalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSArabianRevivalist == "unset") && ($masterSuiteDecoration == "Arabian Revivalist")>> + <<set $masterSuiteDecoration = "standard">> +<<elseif ($arcologies[0].FSChineseRevivalist == "unset") && ($masterSuiteDecoration == "Chinese Revivalist")>> + <<set $masterSuiteDecoration = "standard">> +<</if>> +<</if>> +<</if>> + +<</widget>> /% Call as <<SlaveInteractFucktoy>> @@ -1783,5 +2252,3 @@ This experience <</replace>> <</widget>> - - diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw index 47fe54b998c6c475fe39d7d74c16b8f41ad0cbc7..deafa263c1dff117158319ae8dfee118555085e7 100644 --- a/src/utility/raWidgets.tw +++ b/src/utility/raWidgets.tw @@ -10,12 +10,21 @@ <br> <<if $currentRule.activation == "custom" >> <<textarea "$currentRule.customActivationText" $currentRule.customActivationText>> - <<link "Save activation">> + <<link "Test custom rule">> + <<set State.variables._parseFailed = true>> <<replace #customsave>> - //Activated save link below - remember to save your changes!// + <<script>> + try { + parseAndEvaluate(State.variables.currentRule.customActivationText, State.variables.slaves[0]); + State.variables._parseFailed = false; + } catch (e) { throwError("Failed to parse custom rule. Please check syntax and try again."); } + <</script>> + <<if State.variables._parseFailed == false>> + //Rule parsed successfully. Remember to save your changes using Save rule or Apply rules.// + <<RAChangeSave>> + <<RAChangeApply>> + <</if>> <</replace>> - <<RAChangeSave>> - <<RAChangeApply>> <</link>> <span id="customsave"></span> <<elseif ($currentRule.activation != "none") && ($currentRule.activation != "always")>> @@ -98,10 +107,10 @@ <<if ($currentRule.thresholdLower == "none") && ($currentRule.thresholdUpper == "none")>> <<set $currentRule.activation = "always">> <<elseif ($currentRule.thresholdLower != "none") && ($currentRule.thresholdUpper != "none")>> - <<if (def $currentRule.thresholdLower && $currentRule.thresholdLower > $currentRule.thresholdUpper)>> + <<if (def $currentRule.thresholdLower) && ($currentRule.thresholdLower > $currentRule.thresholdUpper)>> <<set $currentRule.thresholdLower = $currentRule.thresholdUpper>> <</if>> - <<if (def $currentRule.thresholdUpper && $currentRule.thresholdUpper < $currentRule.thresholdLower)>> + <<if (def $currentRule.thresholdUpper) && ($currentRule.thresholdUpper < $currentRule.thresholdLower)>> <<set $currentRule.thresholdUpper = $currentRule.thresholdLower>> <</if>> <</if>> @@ -214,7 +223,7 @@ <<else>> ''Rest'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "rest")>> + <<set $currentRule.assignment.delete("rest")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -235,7 +244,7 @@ <<else>> ''Fucktoy'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "please you")>> + <<set $currentRule.assignment.delete("please you")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -256,7 +265,7 @@ <<else>> ''Subordinate Slave'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "be a subordinate slave")>> + <<set $currentRule.assignment.delete("be a subordinate slave")>> <<RAChangeSetAssignment>> <<RAChangeApplyAssignment>> <<RAChangeSave>> @@ -279,7 +288,7 @@ <<else>> ''House Servant'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "be a servant")>> + <<set $currentRule.assignment.delete("be a servant")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -300,7 +309,7 @@ <<else>> ''Confined'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "stay confined")>> + <<set $currentRule.assignment.delete("stay confined")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -321,7 +330,7 @@ <<else>> ''Whore'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "whore")>> + <<set $currentRule.assignment.delete("whore")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -342,7 +351,7 @@ <<else>> ''Public Servant'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "serve the public")>> + <<set $currentRule.assignment.delete("serve the public")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -363,7 +372,7 @@ <<else>> ''Milking'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "get milked")>> + <<set $currentRule.assignment.delete("get milked")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -384,7 +393,7 @@ <<else>> ''Gloryhole'' <<link Stop>> - <<set removeFromArray($currentRule.assignment, "work a glory hole")>> + <<set $currentRule.assignment.delete("work a glory hole")>> <<RAChangeApplyAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -467,7 +476,7 @@ <<else>> ''Rest'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "rest")>> + <<set $currentRule.excludeAssignment.delete("rest")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -488,7 +497,7 @@ <<else>> ''Fucktoy'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "please you")>> + <<set $currentRule.excludeAssignment.delete("please you")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -509,7 +518,7 @@ <<else>> ''Subordinate Slave'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "be a subordinate slave")>> + <<set $currentRule.excludeAssignment.delete("be a subordinate slave")>> <<RAChangeSetAssignment>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> @@ -531,7 +540,7 @@ <<else>> ''House Servant'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "be a servant")>> + <<set $currentRule.excludeAssignment.delete("be a servant")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -552,7 +561,7 @@ <<else>> ''Confined'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "stay confined")>> + <<set $currentRule.excludeAssignment.delete("stay confined")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -573,7 +582,7 @@ <<else>> ''Whore'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "whore")>> + <<set $currentRule.excludeAssignment.delete("whore")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -594,7 +603,7 @@ <<else>> ''Public Servant'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "serve the public")>> + <<set $currentRule.excludeAssignment.delete("serve the public")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -615,7 +624,7 @@ <<else>> ''Milking'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "get milked")>> + <<set $currentRule.excludeAssignment.delete("get milked")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -636,7 +645,7 @@ <<else>> ''Gloryhole'' <<link Stop>> - <<set removeFromArray($currentRule.excludeAssignment, "work a glory hole")>> + <<set $currentRule.excludeAssignment.delete("work a glory hole")>> <<RAChangeExcludeAssignment>> <<RAChangeSave>> <<RAChangeApply>> @@ -687,7 +696,7 @@ <<else>> ''$HGSuiteNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "hgsuite")>> + <<set _facility.delete("hgsuite")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -711,7 +720,7 @@ <<else>> ''$brothelNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "brothel")>> + <<set _facility.delete("brothel")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -735,7 +744,7 @@ <<else>> ''$clubNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "club")>> + <<set _facility.delete("club")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -759,7 +768,7 @@ <<else>> ''$arcadeNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "arcade")>> + <<set _facility.delete("arcade")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -783,7 +792,7 @@ <<else>> ''$dairyNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "dairy")>> + <<set _facility.delete("dairy")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -807,7 +816,7 @@ <<else>> ''$servantsQuartersNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "servantsquarters")>> + <<set _facility.delete("servantsquarters")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -831,7 +840,7 @@ <<else>> ''$masterSuiteNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "mastersuite")>> + <<set _facility.delete("mastersuite")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -855,7 +864,7 @@ <<else>> ''$schoolroomNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "schoolroom")>> + <<set _facility.delete("schoolroom")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -879,7 +888,7 @@ <<else>> ''$spaNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "spa")>> + <<set _facility.delete("spa")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -903,7 +912,7 @@ <<else>> ''$clinicNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "clinic")>> + <<set _facility.delete("clinic")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -927,7 +936,7 @@ <<else>> ''$cellblockNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.facility, "cellblock")>> + <<set _facility.delete("cellblock")>> <<RAChangeApplyFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -977,7 +986,7 @@ <<else>> ''$HGSuiteNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "hgsuite")>> + <<set _excludeFacility.delete("hgsuite")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1001,7 +1010,7 @@ <<else>> ''$brothelNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "brothel")>> + <<set _excludeFacility.delete("brothel")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1025,7 +1034,7 @@ <<else>> ''$clubNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "club")>> + <<set _excludeFacility.delete("club")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1049,7 +1058,7 @@ <<else>> ''$arcadeNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "arcade")>> + <<set _excludeFacility.delete("arcade")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1073,7 +1082,7 @@ <<else>> ''$dairyNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "dairy")>> + <<set _excludeFacility.delete("dairy")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1097,7 +1106,7 @@ <<else>> ''$servantsQuartersNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "servantsquarters")>> + <<set _excludeFacility.delete("servantsquarters")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1121,7 +1130,7 @@ <<else>> ''$masterSuiteNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "mastersuite")>> + <<set _excludeFacility.delete("mastersuite")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1145,7 +1154,7 @@ <<else>> ''$schoolroomNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "schoolroom")>> + <<set _excludeFacility.delete("schoolroom")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1169,7 +1178,7 @@ <<else>> ''$spaNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "spa")>> + <<set _excludeFacility.delete("spa")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1193,7 +1202,7 @@ <<else>> ''$clinicNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "clinic")>> + <<set _excludeFacility.delete("clinic")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1217,7 +1226,7 @@ <<else>> ''$cellblockNameCaps'' <<link Stop>> - <<set removeFromArray($currentRule.excludeFacility, "cellblock")>> + <<set _excludeFacility.delete("cellblock")>> <<RAChangeExcludeFacility>> <<RAChangeSave>> <<RAChangeApply>> @@ -1250,7 +1259,6 @@ | <<if ($currentRule.setAssignment != "rest")>> <<link "Rest">> - <<set removeFromArray($currentRule.assignment, "rest")>> <<set $currentRule.setAssignment = "rest">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1266,7 +1274,6 @@ | <<if ($currentRule.setAssignment != "please you")>> <<link "Fucktoy">> - <<set removeFromArray($currentRule.assignment, "please you")>> <<set $currentRule.setAssignment = "please you">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1282,7 +1289,6 @@ | <<if ($currentRule.setAssignment != "be a servant")>> <<link "House Servant">> - <<set removeFromArray($currentRule.assignment, "be a servant")>> <<set $currentRule.setAssignment = "be a servant">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1298,7 +1304,6 @@ | <<if ($currentRule.setAssignment != "stay confined")>> <<link "Confined">> - <<set removeFromArray($currentRule.assignment, "stay confined")>> <<set $currentRule.setAssignment = "stay confined">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1314,7 +1319,6 @@ | <<if ($currentRule.setAssignment != "whore")>> <<link "Whore">> - <<set removeFromArray($currentRule.assignment, "whore")>> <<set $currentRule.setAssignment = "whore">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1330,7 +1334,6 @@ | <<if ($currentRule.setAssignment != "serve the public")>> <<link "Public Servant">> - <<set removeFromArray($currentRule.assignment, "serve the public")>> <<set $currentRule.setAssignment = "serve the public">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1346,7 +1349,6 @@ | <<if ($currentRule.setAssignment != "get milked")>> <<link "Milking">> - <<set removeFromArray($currentRule.assignment, "get milked")>> <<set $currentRule.setAssignment = "get milked">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1362,7 +1364,6 @@ | <<if ($currentRule.setAssignment != "work a glory hole")>> <<link "Gloryhole">> - <<set removeFromArray($currentRule.assignment, "work a glory hole")>> <<set $currentRule.setAssignment = "work a glory hole">> <<set $currentRule.assignFacility = "none">> <<set $currentRule.facilityRemove = false>> @@ -1405,7 +1406,6 @@ <<link $HGSuiteNameCaps>> <<set $currentRule.assignFacility = "hgsuite">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "hgsuite")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("hgsuite")>> <<RAChangeExcludeFacility>> @@ -1426,7 +1426,6 @@ <<link $brothelNameCaps>> <<set $currentRule.assignFacility = "brothel">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "brothel")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("brothel")>> <<RAChangeExcludeFacility>> @@ -1447,7 +1446,6 @@ <<link $clubNameCaps>> <<set $currentRule.assignFacility = "club">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "club")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("club")>> <<RAChangeExcludeFacility>> @@ -1468,7 +1466,6 @@ <<link $arcadeNameCaps>> <<set $currentRule.assignFacility = "arcade">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "arcade")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("arcade")>> <<RAChangeExcludeFacility>> @@ -1489,7 +1486,6 @@ <<link $dairyNameCaps>> <<set $currentRule.assignFacility = "dairy">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "dairy")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("dairy")>> <<RAChangeExcludeFacility>> @@ -1510,7 +1506,6 @@ <<link $servantsQuartersNameCaps>> <<set $currentRule.assignFacility = "servantsquarters">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "servantsquarters")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("servantsquarters")>> <<RAChangeExcludeFacility>> @@ -1531,7 +1526,6 @@ <<link $masterSuiteNameCaps>> <<set $currentRule.assignFacility = "mastersuite">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "mastersuite")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("mastersuite")>> <<RAChangeExcludeFacility>> @@ -1552,7 +1546,6 @@ <<link $schoolroomNameCaps>> <<set $currentRule.assignFacility = "schoolroom">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "schoolroom")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("schoolroom")>> <<RAChangeExcludeFacility>> @@ -1573,7 +1566,6 @@ <<link $spaNameCaps>> <<set $currentRule.assignFacility = "spa">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "spa")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("spa")>> <<RAChangeExcludeFacility>> @@ -1594,7 +1586,6 @@ <<link $clinicNameCaps>> <<set $currentRule.assignFacility = "clinic">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "clinic")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("clinic")>> <<RAChangeExcludeFacility>> @@ -1615,7 +1606,6 @@ <<link $cellblockNameCaps>> <<set $currentRule.assignFacility = "cellblock">> <<set $currentRule.setAssignment = "none">> - <<set removeFromArray($currentRule.facility, "cellblock")>> <<if $currentRule.facility.length == 0>> <<set $currentRule.excludeFacility.push("cellblock")>> <<RAChangeExcludeFacility>> @@ -2303,58 +2293,79 @@ Relationship rules: ''$currentRule.relationshipRules.'' <br><br> <<link _text>> <<replace "#saveresult">> - <br><br>//Rule $r saved// - <<for _t = 0; _t < $defaultRules.length; _t++>> - <<if $currentRule.ID == $defaultRules[_t].ID>> - <<if $currentRule.thresholdLower != "none">> - <<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>> - <</if>> - <<if $currentRule.thresholdUpper != "none">> - <<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>> + <br><br> + <<set State.variables._parseFailed = false>> + <<if $currentRule.activation == "custom">> + <<script>> + try { parseAndEvaluate(State.variables.currentRule.customActivationText, State.variables.slaves[0]); + } catch (e) { State.variables._parseFailed = true; throwError("Failed to parse custom rule. Please check syntax and try again."); } + <</script>> + <</if>> + <<if State.variables._parseFailed == false>> + //Rule $r saved// + <<for _t = 0; _t < $defaultRules.length; _t++>> + <<if $currentRule.ID == $defaultRules[_t].ID>> + <<if $currentRule.thresholdLower != "none">> + <<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>> + <</if>> + <<if $currentRule.thresholdUpper != "none">> + <<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>> + <</if>> + <<set $defaultRules[_t] = $currentRule>> + <<break>> <</if>> - <<set $defaultRules[_t] = $currentRule>> - <<break>> - <</if>> - <</for>> + <</for>> + <</if>> <</replace>> <</link>> <</replace>> <</widget>> /% Call as <<RAChangeApply>> -<<RAChangeApply>> %/ <<widget "RAChangeApply">> <<replace #apply>> <span id="applyresult"> <<link "Apply rules">> + <<set State.variables._parseFailed = false>> <<replace "#saveresult">> - <br><br>//Rule $r saved// - <<for _t = 0; _t < $defaultRules.length; _t++>> - <<if $currentRule.ID == $defaultRules[_t].ID>> - <<if $currentRule.thresholdLower != "none">> - <<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>> - <</if>> - <<if $currentRule.thresholdUpper != "none">> - <<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>> + <br><br> + <<if $currentRule.activation == "custom">> + <<script>> + try { parseAndEvaluate(State.variables.currentRule.customActivationText, State.variables.slaves[0]); + } catch (e) { State.variables._parseFailed = true; throwError("Failed to parse custom rule. Please check syntax and try again."); } + <</script>> + <</if>> + <<if State.variables._parseFailed == false>> + //Rule $r saved// + <<for _t = 0; _t < $defaultRules.length; _t++>> + <<if $currentRule.ID == $defaultRules[_t].ID>> + <<if $currentRule.thresholdLower != "none">> + <<set $currentRule.thresholdLower = Number($currentRule.thresholdLower)>> + <</if>> + <<if $currentRule.thresholdUpper != "none">> + <<set $currentRule.thresholdUpper = Number($currentRule.thresholdUpper)>> + <</if>> + <<set $defaultRules[_t] = $currentRule>> + <<break>> <</if>> - <<set $defaultRules[_t] = $currentRule>> - <<break>> - <</if>> - <</for>> - <</replace>> - <<replace "#applied">> - <<for $i = 0; $i < $slaves.length; $i++>> - <<if $slaves[$i].useRulesAssistant == 1>> /* skip RA-exempt slaves */ - <<set $activeSlave = $slaves[$i]>> - <<CheckAutoRulesActivate $activeSlave>> /* does not use or modify $currentRule */ - <<DefaultRules $activeSlave>> /* does not use or modify $currentRule */ - <</if>> - <</for>> - <</replace>> - <<replace "#applyresult">> - //Rules applied.//<br> + <</for>> + <</if>> <</replace>> + <<if State.variables._parseFailed == false>> + <<replace "#applied">> + <<for $i = 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].useRulesAssistant == 1>> /* skip RA-exempt slaves */ + <<set $activeSlave = $slaves[$i]>> + <<CheckAutoRulesActivate $activeSlave>> /* does not use or modify $currentRule */ + <<DefaultRules $activeSlave>> /* does not use or modify $currentRule */ + <</if>> + <</for>> + <</replace>> + <<replace "#applyresult">> + //Rules applied.//<br> + <</replace>> + <</if>> <</link>> </span> <span id="applied"></span> @@ -3080,12 +3091,13 @@ Your brand design is ''$brandDesign.'' <<for _s = 0; _s < $args[0].currentRules.length; _s++>> <<if _currentRule.ID == $args[0].currentRules[_s]>> <<set _dump = $args[0].currentRules.deleteAt(_s)>> + <br>//@@.tan;Rule _rule (_currentRule.name) is no longer applying to $args[0].slaveName, who is assigned to $args[0].assignment.@@// + <<if $args[0].assignmentVisible == 0>> + <<include "Rules Facility Remove">> + <</if>> + <<break>> <</if>> <</for>> - <br>//@@.tan;Rule _rule (_currentRule.name) is no longer applying to $args[0].slaveName, who is assigned to $args[0].assignment.@@// - <<if $args[0].assignmentVisible == 0>> - <<include "Rules Facility Remove">> - <</if>> <</widget>> /% @@ -4732,8 +4744,14 @@ consequences. <<set _currentRule = $defaultRules[_r], _rule = _r+1, _ruleAppliesToThisSlave = true>> /* starting assumption, to be tested below */ <<switch _currentRule.activation>> /* check activation conditions */ + <<case "custom">> /* for betterRA */ - <<if ! parseAndEvaluate(_currentRule.customActivationText, $args[0])>> + <<set State.variables._parseFailed = _currentRule.customActivationText>> + <<script>> + try { if (parseAndEvaluate(State.variables._parseFailed, State.variables.args[0])) { State.variables._parseFailed = -1; } + } catch (e) { throwError("Failed to parse a custom rule. Check your custom rules in the Rules Assistant options."); } + <</script>> + <<if State.variables._parseFailed != -1>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "always">> @@ -4741,43 +4759,43 @@ consequences. <<case "none">> <<set _ruleAppliesToThisSlave = false>> <<case "devotion">> - <<if ! checkThresholds($args[0].devotion, _currentRule)>> + <<if !checkThresholds($args[0].devotion, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "trust">> - <<if ! checkThresholds($args[0].trust, _currentRule)>> + <<if !checkThresholds($args[0].trust, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "health">> - <<if ! checkThresholds($args[0].health, _currentRule)>> + <<if !checkThresholds($args[0].health, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "sex drive">> /* rule can only be applied if slave's sexuality is known */ - <<if ($args[0].attrKnown == 0) || ! checkThresholds($args[0].energy, _currentRule)>> + <<if ($args[0].attrKnown == 0) || !checkThresholds($args[0].energy, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "age">> - <<if ! checkThresholds($args[0].physicalAge, _currentRule)>> + <<if !checkThresholds($args[0].physicalAge, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "weight">> - <<if ! checkThresholds($args[0].weight, _currentRule)>> + <<if !checkThresholds($args[0].weight, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "lactation">> - <<if ! checkThresholds($args[0].lactation, _currentRule)>> + <<if !checkThresholds($args[0].lactation, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "pregnancy week">> - <<if ! checkThresholds($args[0].preg, _currentRule)>> + <<if !checkThresholds($args[0].preg, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "pregnancy foetuses">> /* pregnancy only becomes visible after tenth week */ - <<if $args[0].preg <= 10 || ! checkThresholds($args[0].pregType, _currentRule)>> + <<if $args[0].preg <= 10 || !checkThresholds($args[0].pregType, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <<case "belly implant volume">> - <<if ! checkThresholds($args[0].bellyImplant, _currentRule)>> + <<if !checkThresholds($args[0].bellyImplant, _currentRule)>> <<set _ruleAppliesToThisSlave = false>> <</if>> <</switch>> /* closes activation condition checks */