diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index b141fc4fc44a6d931ae03aaf0e0ffc012ebd09a0..0328e4f4fdea745167cad591b43fb7a96f12399f 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -5,6 +5,7 @@ 0 -dispensary broken down into pharm fabricator, organ farm, implant manufactory and gene lab -lots of SF work + -better naming support in childgen -fixes -cleaning diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index d8bdf37d2ac5e986dfcc149838c9053cdc7dc38b..18908eecd9fae2c8c702735fbd22a8b1a0efff22 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -2124,6 +2124,10 @@ window.getCost = function(array) { costs += mercCosts; } + if(State.variables.citizenRetirementMenials == 1) { + costs += State.variables.helots * 2; + } + costs += State.variables.FSSpending; //slave expenses @@ -2521,6 +2525,10 @@ window.getSlaveCost = function(s) { } // Retirement account + if(State.variables.citizenRetirementMenials === 1 && State.variables.CitizenRetirement === 0) { + cost += 2; + } + if(State.variables.CitizenRetirement === 1) { cost += 250; } @@ -10648,7 +10656,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } else { child.genes = "XY"; @@ -10691,7 +10746,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } @@ -10792,7 +10894,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } else { GenerateNewSlave("XY"); @@ -10836,7 +10985,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } @@ -11463,6 +11659,7 @@ window.WombRemoveFetus = function(actor, fetusNum) let ft = actor.womb[fetusNum]; actor.womb.splice(fetusNum, 1); WombSort(actor); + actor.pregType = actor.womb.length; return ft; } else @@ -11519,6 +11716,7 @@ window.WombCleanYYFetuses = function(actor) i--; } + actor.pregType = actor.womb.length; return reserved; } @@ -19092,6 +19290,7 @@ window.rulesAssistantOptions = (function() { ["chocolate"], ["chestnut"], ["hazel"], + ["jet black"], ["black"], ["grey"], ["silver"], @@ -19165,6 +19364,7 @@ window.rulesAssistantOptions = (function() { ["chocolate"], ["chestnut"], ["hazel"], + ["jet black"], ["black"], ["grey"], ["silver"], @@ -19247,6 +19447,7 @@ window.rulesAssistantOptions = (function() { ["chocolate"], ["chestnut"], ["hazel"], + ["jet black"], ["black"], ["grey"], ["silver"], @@ -19307,6 +19508,7 @@ window.rulesAssistantOptions = (function() { ["chocolate"], ["chestnut"], ["hazel"], + ["jet black"], ["black"], ["grey"], ["silver"], @@ -35409,6 +35611,10 @@ window.BadOutcome = function() { V.researchLab.hired = 0, V.fuckdolls = 0,V.menialBioreactors = 0, V.activeUnits = 0,V.secBots.troops = 0, V.createdSlavesUnits = 0, V.createdMilitiaUnits = 0, V.createdMercUnits = 0; + r+=`<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; + break; + case "Cruel and Psychopathic": + V.SF.BadOutcome = "Revolt",V.trinkets.push("${t} dog tags"),V.Rep = 0; r += `<br>Finally fed up with your constant intrusions into her territory and crew, The Colonel riles up her people for an utterly ferocious rebellion. The promises of rape and plunder and dominion over some of the wealthiest tenants in the entire Free City (and their world-class slaves) are all thats needed to give the selfish lot of them a nearly unshakable resolve in the task of delivering their overlord Her most coveted prize: You.`; r += `<br>It is now Midnight. The lights are the first thing they disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens start panicking almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Things like this were never supposed to happen again. You had promised them that you'd create an army that would protect them...`; r += `<br>Her army vanguard strikes fast and hard throughout the main Plaza, cutting through your security personnel, defensive platoons, and drones with an ease that stinks of months of careful planning and study. Your defensive platoons, veterans of many Battles, are outmanuvered at every turn; their hidden ammunition caches are found empty, their communications networks are mysteriously scrambled, and key chokepoints are found to be booby-trapped before your men can even get to them; their well-rehearsed arcology defense routines have gone to ash. Assuming you ever get a chance to speak to The Colonel again, you would ask if her betrayal was actually inevitable rather than something you triggered.`; diff --git a/src/SpecialForce/JS.js b/src/SpecialForce/JS.js index 160971a94cc94a1bde28c15c3749308013685594..c4703d40e87199558115c26242cd62e71a830375 100644 --- a/src/SpecialForce/JS.js +++ b/src/SpecialForce/JS.js @@ -664,7 +664,7 @@ window.BadOutcome = function() { V.researchLab.hired = 0, V.fuckdolls = 0,V.menialBioreactors = 0, V.activeUnits = 0,V.secBots.troops = 0, V.createdSlavesUnits = 0, V.createdMilitiaUnits = 0, V.createdMercUnits = 0; - r+=`<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You recieve no money from their exploits, and their total defiance and independance of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; + r+=`<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; break; case "Cruel and Psychopathic": V.SF.BadOutcome = "Revolt",V.trinkets.push("${t} dog tags"),V.Rep = 0; diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 40421b794aaff4cafeb7aa9d91bb6cf8b42a4982..efddedd89edc95f567cc5be0b129f96cd4c44387 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with thi <<set $returnTo = "init", $nextButton = "Continue", $nextLink = "Alpha disclaimer">> <<unset $releaseID>> -<<set $ver = "0.10.7", $pmodVer = "1.3.X", $releaseID = 1036>> -<<if ndef $pmodVer>><<set $pmodVer = "1.3.X">><</if>> +<<set $ver = "0.10.7", $pmodVer = "1.4.X", $releaseID = 1037>> +<<if ndef $pmodVer>><<set $pmodVer = "1.4.X">><</if>> /* This needs to be broken down into individual files that can be added to StoryInit instead. */ @@ -337,6 +337,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $retirementAge = 45>> <<set $customRetirementAge = 45>> + <<set $customMenialRetirementAge = 65>> <<set $FSCreditCount = 5>> <<set $FSCreditCountString = "five">> @@ -1007,6 +1008,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $prostheticsUpgrade = 0>> <<set $geneticMappingUpgrade = 0>> <<set $pregnancyMonitoringUpgrade = 0>> +<<set $cloningSystem = 0>> <<set $surgeryUpgrade = 0>> @@ -1190,7 +1192,8 @@ You should have received a copy of the GNU General Public License along with thi <<set $BioreactorRetirement = 0>> <<set $ArcadeRetirement = 0>> <<set $CitizenRetirement = 0>> -<<set $CitizenRetirementTrigger = 0>> +<<set $citizenRetirementMenials = 0>> +<<set $citizenRetirementTrigger = 0>> <<set $FSSupLawTrigger = 0>> <<set $FSSubLawTrigger = 0>> <<set $SexMilestoneRetirement = 0>> diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw index 6ef2b127b9da8acf0e296ae72fda8a0c543fd247..1bf2e3c29056c546aa732f3c6cf84af1ef89b1f6 100644 --- a/src/js/economyJS.tw +++ b/src/js/economyJS.tw @@ -150,6 +150,10 @@ window.getCost = function(array) { costs += mercCosts; } + if(State.variables.citizenRetirementMenials == 1) { + costs += State.variables.helots * 2; + } + costs += State.variables.FSSpending; //slave expenses @@ -547,6 +551,10 @@ window.getSlaveCost = function(s) { } // Retirement account + if(State.variables.citizenRetirementMenials === 1 && State.variables.CitizenRetirement === 0) { + cost += 2; + } + if(State.variables.CitizenRetirement === 1) { cost += 250; } diff --git a/src/js/generateGenetics.tw b/src/js/generateGenetics.tw index 87987638965a41da15fdd0d97fd67cd9fba03392..7de1243a7b0049d50d69f4a2ea2141229a78a6a5 100644 --- a/src/js/generateGenetics.tw +++ b/src/js/generateGenetics.tw @@ -574,7 +574,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } else { child.genes = "XY"; @@ -617,7 +664,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } @@ -718,7 +812,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } else { GenerateNewSlave("XY"); @@ -762,7 +903,54 @@ window.generateChild = function(mother, ova, destination) { } } } else { - child.slaveName = genes.name; + let childName = genes.name; + if (childName.indexOf("ovum") == 0) { + if (genes.mother == -1) { + if (genes.father <= 0) { + child.slaveName = "Your son"; + } else { + child.slaveName = `Your and ${genes.fatherName}'s son`; + } + } else { + if (genes.father == -1) { + child.slaveName = `${genes.motherName} and your son`; + } else if (genes.father > 0) { + child.slaveName = `${genes.motherName} and ${genes.fatherName}'s son`; + } else { + child.slaveName = `${genes.motherName}'s bastard son`; + } + } + } else { + child.slaveName = genes.name; + } + if (genes.mother == -1) { + child.slaveSurname = V.PC.surname; + } else { + if (genes.father == -1) { + child.slaveSurname = V.PC.surname; + } else if (genes.father > 0) { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } else { + let currentFather = getSlave(genes.father); + if (currentFather !== undefined) { + if (currentFather.slaveSurname !== 0 && currentFather.slaveSurname !== "") { + child.slaveSurname = currentFather.slaveSurname; + } + } + } + } else { + let currentMother = getSlave(genes.mother); + if (currentMother !== undefined) { + if (currentMother.slaveSurname !== 0 && currentMother.slaveSurname !== "") { + child.slaveSurname = currentMother.slaveSurname; + } + } + } + } } } diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw index 108bcdb2b310085a92650ad2b18e3e99938d8c0d..ef5f378bf9dcd9e607256481c27611f966b7de1a 100644 --- a/src/js/wombJS.tw +++ b/src/js/wombJS.tw @@ -491,6 +491,7 @@ window.WombRemoveFetus = function(actor, fetusNum) let ft = actor.womb[fetusNum]; actor.womb.splice(fetusNum, 1); WombSort(actor); + actor.pregType = actor.womb.length; return ft; } else @@ -547,6 +548,7 @@ window.WombCleanYYFetuses = function(actor) i--; } + actor.pregType = actor.womb.length; return reserved; } diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index bc9fa5881f2f1710191fb24009f8d86ff6e13551..89f29527b3bf2888f4706a11105a562bcd773f46 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -444,7 +444,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu Reproduction management systems are offline; $he will undergo normal puberty. <</if>> <</if>> - <br>Rename $him: <<textbox "_tempName" _tempName >> [[Apply |incubator][$tanks[$i].slaveName = _tempName]] // Given name only // + <br>Rename $him: <<textbox "_tempName" _tempName >> [[Apply |Incubator][$tanks[$i].slaveName = _tempName]] // Given name only // <<if $cheatMode == 1>> <br>''Cheatmode:'' <<link "Retrieve immediately">> diff --git a/src/pregmod/manageEconomy.tw b/src/pregmod/manageEconomy.tw index c05eac6f5f480d73f15c3d1caa82d9c21f8521c7..5deaff7027d1b2b0c607ea0b1fb029300f262824 100644 --- a/src/pregmod/manageEconomy.tw +++ b/src/pregmod/manageEconomy.tw @@ -71,7 +71,7 @@ _percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 1 _percMiddleClass = Math.trunc(($middleClass / ($ACitizens + $ASlaves)) * 1000) / 10, _percUpperClass = Math.trunc(($upperClass / ($ACitizens + $ASlaves)) * 1000) / 10, _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> -<br>Lower Class Citizens | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent)>>@@ +<br>Lower Class Citizens | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent / 25)>>@@ <<if $LCRent > 30>> //Very High// | [[Decrease|Manage Economy][$LCRent = 30, $rentEffectL = 0.94]] <<elseif $LCRent > 20>> @@ -83,7 +83,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> <<else>> //Free// | [[Increase|Manage Economy][$LCRent = 10, $rentEffectL = 1.04]] <</if>> -<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent)>>@@ +<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent / 25)>>@@ <<if $MCRent > 75>> //Very High// | [[Decrease|Manage Economy][$MCRent = 75, $rentEffectM = 0.94]] <<elseif $MCRent > 50>> @@ -95,7 +95,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> <<else>> //Free// | [[Increase|Manage Economy][$MCRent = 25, $rentEffectM = 1.04]] <</if>> -<br>Upper Class Citizens | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent)>>@@ +<br>Upper Class Citizens | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent / 25)>>@@ <<if $UCRent > 270>> //Very High// | [[Decrease|Manage Economy][$UCRent = 270, $rentEffectU = 0.94]] <<elseif $UCRent > 180>> @@ -107,7 +107,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> <<else>> //Free// | [[Increase|Manage Economy][$UCRent = 90, $rentEffectU = 1.04]] <</if>> -<br>Millionaires | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent)>>@@ +<br>Millionaires | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent / 25)>>@@ <<if $TCRent > 975>> //Very High// | [[Decrease|Manage Economy][$TCRent = 975, $rentEffectT = 0.94]] <<elseif $TCRent > 650>> @@ -119,7 +119,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>> <<else>> //Free// | [[Increase|Manage Economy][$TCRent = 325, $rentEffectT = 1.04]] <</if>> -<br>Slaves | $ASlaves | <<print _percASlaves>>% /*should probably include player owned slaves of all types*/ +<br>Slaves | $ASlaves | <<print _percASlaves>>% <<if $secExp == 0>> <<if $weatherAwareness > 0>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index f5a8dde7d09eb32f1a2f1e41cafd3e628bc1ae48..b50246fa1a65327133489ccd9c65842ed8b65bb9 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2263,6 +2263,9 @@ Setting missing global variables: <<if ndef $animalMpreg>> <<set $animalMpreg = 0>> <</if>> +<<if ndef $cloningSystem>> + <<set $cloningSystem = 0>> +<</if>> <<if ndef $pregInventor>> <<set $pregInventor = 0>> @@ -2528,6 +2531,9 @@ Setting missing global variables: <<if ndef $customRetirementAge>> <<set $customRetirementAge = 45>> <</if>> +<<if ndef $customMenialRetirementAge>> + <<set $customMenialRetirementAge = 65>> +<</if>> <<if ndef $retirementCum>> <<set $retirementCum = 500000>> <</if>> @@ -2549,8 +2555,12 @@ Setting missing global variables: <<if ndef $CitizenRetirement>> <<set $CitizenRetirement = 0>> <</if>> -<<if ndef $CitizenRetirementTrigger>> -<<set $CitizenRetirementTrigger = 0>> +<<if ndef $citizenRetirementMenials>> + <<set $citizenRetirementMenials = 0>> +<</if>> +<<if ndef $citizenRetirementTrigger>> + <<set $citizenRetirementTrigger = $CitizenRetirementTrigger || 0>> + <<unset $CitizenRetirementTrigger>> <</if>> <<if ndef $FSSupLawTrigger>> <<set $FSSupLawTrigger = 0>> diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw index 79f5d2c9d1118e9dca9dc98075a88a7c9110a73b..5ad4908932bd3ed60baadb20710ddd214defa3e1 100644 --- a/src/uncategorized/arcmgmt.tw +++ b/src/uncategorized/arcmgmt.tw @@ -308,7 +308,7 @@ _topClassP = 1>> <</if>> /*policies*/ -<<if $CitizenRetirement == 1>> +<<if $citizenRetirementMenials == 1>> <<set _slaveDemandU *= 0.8, _slaveDemandT *= 0.75, _slaveProductivity += 0.05, @@ -321,48 +321,6 @@ _topClassP = 1>> _upperClassP *= 0.98, _topClass += -5, _topClassP *= 0.98>> - <<if $MilkMilestoneRetirement == 1>> /*additional conditional retirement options are each half as strong as base retirement*/ - <<set _slaveDemandU *= 0.9, - _slaveDemandT *= 0.875, - _slaveProductivity += 0.025, - _expirationFS *= 0.9, - _lowerClass += 100, - _lowerClassP *= 1.01, - _middleClass += 40, - _middleClassP *= 1.01, - _upperClass += -13.5, - _upperClassP *= 0.99, - _topClass += -2.5, - _topClassP *= 0.99>> - <</if>> - <<if $CumMilestoneRetirement == 1>> - <<set _slaveDemandU *= 0.9, - _slaveDemandT *= 0.875, - _slaveProductivity += 0.025, - _expirationFS *= 0.9, - _lowerClass += 100, - _lowerClassP *= 1.01, - _middleClass += 40, - _middleClassP *= 1.01, - _upperClass += -13.5, - _upperClassP *= 0.99, - _topClass += -2.5, - _topClassP *= 0.99>> - <</if>> - <<if $BirthsMilestoneRetirement == 1>> - <<set _slaveDemandU *= 0.9, - _slaveDemandT *= 0.875, - _slaveProductivity += 0.025, - _expirationFS *= 0.9, - _lowerClass += 100, - _lowerClassP *= 1.01, - _middleClass += 40, - _middleClassP *= 1.01, - _upperClass += -13.5, - _upperClassP *= 0.99, - _topClass += -2.5, - _topClassP *= 0.99>> - <</if>> <</if>> <<if $ProRefugees == 1>> <<set _slaveDemandU *= 1.1, @@ -581,37 +539,27 @@ _topClassP = 1>> _middleClass *= 1 + ($TSS.subsidize + $GRI.subsidize + $SCP.subsidize + $LDE.subsidize + $TGA.subsidize + $TCR.subsidize + $TFS.subsidize + $HA.subsidize) * 0.01>> /*Slave retirement trigger pulled (one time only)*/ -<<if $CitizenRetirementTrigger == 1>> - <<if $arcologies[0].FSSupremacistLawME < 1 && $arcologies[0].FSSubjugationistLawME < 1>> - <<set $lowerClass += Math.trunc(($NPCSlaves + $helots + $fuckdolls + $menialBioreactors) * 0.2)>> - <<elseif $arcologies[0].FSSubjugationistLawME == 1>> - <<set $lowerClass += Math.trunc(($NPCSlaves + $helots + $fuckdolls + $menialBioreactors) * 0.15)>> - <</if>> - <<set _helotsRetirement = Math.trunc($helots * 0.2), - $helots = Math.trunc($helots * 0.8), - _fuckdollsRetirement = Math.trunc($fuckdolls * 0.2), - $fuckdolls = Math.trunc($fuckdolls * 0.8), - _menialBioreactorsRetirement = Math.trunc($menialBioreactors * 0.2), - $menialBioreactors = Math.trunc($menialBioreactors * 0.8), - _ASlavesRetirement = Math.trunc($NPCSlaves * 0.2), - $NPCSlaves = Math.trunc($NPCSlaves * 0.8), - $CitizenRetirementTrigger = 2>> +<<if $citizenRetirementTrigger == 1>> + <<if $customMenialRetirementAge >= 65>> + <<set _citizenRetirementImpact = 0.475 - Math.clamp($customMenialRetirementAge / 200, 0.325, 0.475)>> + <<else>> + <<set _citizenRetirementImpact = 0.9 - Math.clamp($customMenialRetirementAge / 100, 0.2, 0.65)>> + <</if>> + <<if $arcologies[0].FSSupremacistLawME + $arcologies[0].FSSubjugationistLawME > 0>> + <<set _citizenRetirementImpact *= 2 / 3>> + <</if>> + <<set $lowerClass += Math.trunc(($NPCSlaves + $helots) * (0.05 + _citizenRetirementImpact)), + _helotsRetirement = Math.trunc($helots * (0.05 + _citizenRetirementImpact)), + $helots = Math.trunc($helots * (0.95 - _citizenRetirementImpact)), + _ASlavesRetirement = Math.trunc($NPCSlaves * (0.05 + _citizenRetirementImpact)), + $NPCSlaves = Math.trunc($NPCSlaves * (0.95 - _citizenRetirementImpact)), + $citizenRetirementTrigger = 2>> You have enacted citizen retirement, the slaves of eligible age are granted freedom. <<if _helotsRetirement > 1>> @@.red;<<print _helotsRetirement>> of your menial slaves@@ were retired. <<elseif _helotsRetirements > 0>> @@.red;One of your menial slaves@@ was retired. <</if>> - <<if _fuckdollsRetirement > 1>> - @@.red;<<print _fuckdollsRetirement>> of your fuckdolls@@ were retired. - <<elseif _fuckdollsRetirements > 0>> - @@.red;One of your fuckdolls@@ was retired. - <</if>> - <<if _menialBioreactorsRetirement > 1>> - @@.red;<<print _menialBioreactorsRetirement>> of your bioreactors@@ were retired. - <<elseif _menialBioreactorsRetirements > 0>> - @@.red;One of your bioreactors@@ was retired. - <</if>> <<if _ASlavesRetirement > 1>> @@.red;<<print _ASlavesRetirement>> slaves@@ in your arcology were given a citizen retirement. <</if>> /*I could bother with a single slave retirement message, but that's never going to get used*/ @@ -641,8 +589,23 @@ $menialBioreactors -= _expirationBR>> <</if>> /*Citizens turning into slaves*/ -<<set _enslaved = Math.trunc($lowerClass * ($welfare * _welfareFS)), -$lowerClass -= _enslaved>> +<<if $citizenRetirementMenials == 1>> + <<if $customMenialRetirementAge >= 65>> + <<set _banishedRatio = 0.475 - Math.clamp($customMenialRetirementAge / 200, 0.325, 0.475)>> + <<else>> + <<set _banishedRatio = 0.9 - Math.clamp($customMenialRetirementAge / 100, 0.2, 0.65)>> + <</if>> + <<if $arcologies[0].FSSupremacistLawME + $arcologies[0].FSSubjugationistLawME > 0>> + <<set _banishedRatio *= 2 / 3>> + <</if>> + <<set _banished = Math.trunc(($lowerClass * ($welfare * _welfareFS)) * (0.05 + _banishedRatio)), + _enslaved = Math.trunc($lowerClass * ($welfare * _welfareFS)) - _banished, + $lowerClass -= _banished>> + <br>@@.red;<<print _banished>> citizens were banished@@ from your arcology, they committed enslavable offenses but were too old to be enslaved. +<<else>> + <<set _enslaved = Math.trunc($lowerClass * ($welfare * _welfareFS))>> +<</if>> +<<set $lowerClass -= _enslaved>> /*Bad weather switch*/ <<if $weatherToday.severity > 3>> @@ -730,9 +693,51 @@ $lowerClass -= _enslaved>> <<set _honeymoon = 10 * $arcologies[0].honeymoon>> <</if>> <<set $visitors = Math.trunc((($arcologies[0].prosperity + _FSScore * 5 + _honeymoon) * _transportHub * _terrain * _crime) * ($localEcon / 100))>> -<br>@@.green;<<print $visitors>> Traders and tourists@@ visited your arcology this week. +<br>@@.green;<<print $visitors>> traders and tourists@@ visited your arcology this week. /*slaves*/ +/*Slaves getting retired*/ +<<if $citizenRetirementMenials == 1>> + <<set _weeklyRetiredHelots = $helots / (($customMenialRetirementAge - 15) * 52), + _weeklyRetiredNPCMenials = $NPCSlaves / (($customMenialRetirementAge - 15) * 52)>> /*This implies a minimum menial age of 15. Even if the player sets minimum ages lower, there's no point having a 3 year old menial slave. 15 seems alright while being nice and round. This also implies ages are distributed evenly, no easy way around that.*/ + <<if _weeklyRetiredHelots > 1>> + <<set _weeklyRetiredHelots = Math.trunc(_weeklyRetiredHelots)>> + <<if _weeklyRetiredHelots > 1>> + <br>@@.red;<<print _weeklyRetiredHelots>> of your menial slaves@@ retired as free citizens this week. + <<else>> + <br>@@.red;One of your menial slaves@@ retired as a free citizen this week. + <</if>> + <<else>> + <<set _weeklyRetiredHelots *= 100, + _retirementChance = random(1,100)>> + <<if _weeklyRetiredHelots > _retirementChance>> + <<set _weeklyRetiredHelots = 1>> + <br>@@.red;One of your menial slaves@@ retired as a free citizen this week. + <<else>> + <<set _weeklyRetiredHelots = 0>> + <</if>> + <</if>> + <<if _weeklyRetiredNPCMenials > 1>> + <<set _weeklyRetiredNPCMenials = Math.trunc(_weeklyRetiredNPCMenials)>> + <<if _weeklyREtiredNPCMenials > 1>> + <br>@@.red;<<print _weeklyRetiredNPCMenials>> menial slaves@@ were retired as free citizens by other slave owners in your arcology this week. + <<else>> + <br>@@.red;One menial slave@@ was retired as a free citizen by another slave owner in your arcology this week. + <</if>> + <<else>> + <<set _weeklyRetiredNPCMenials *= 100, + _retirementChance2 = random(1,100)>> + <<if _weeklyRetiredNPCMenials > _retirementChance2>> + <<set _weeklyRetiredNPCMenials = 1>> + <br>@@.red;One menial slave@@ was retired as a free citizen by another slave owner in your arcology this week. + <<else>> + <<set _weeklyRetiredNPCMenials = 0>> + <</if>> + <</if>> + <<set $helots -= _weeklyRetiredHelots, + $NPCSlaves -= _weeklyRetiredNPCMenials, + $lowerClass += _weeklyRetiredHelots + _weeklyRetiredNPCMenials>> +<</if>> /*Demand for simple labor*/ <<set _LSCD = Math.trunc(($LSCBase * ($localEcon / 100)) + ($arcologies[0].prosperity * 4) + (($middleClass + $visitors * 0.6) * 1.5) + (($upperClass + $visitors * 0.2) * 3.5) + ($topClass * 18)), /*Demand for owning slaves*/ @@ -810,9 +815,13 @@ _SCD = Math.trunc(($upperClass * ($slaveDemandU + _slaveDemandU)) + ($topClass * <br>@@.green;One lower class citizen@@ moved to your arcology. <</if>> <<elseif $lowerClass > _LCD>> - <<set _LCEmigration = Math.trunc(($lowerClass - _LCD) * 0.6) + 1, - _enslavedEmigrants = Math.trunc((($lowerClass - _LCD) * 0.6) * $enslaveChance), - $lowerClass -= _LCEmigration, + <<set _LCEmigration = Math.trunc(($lowerClass - _LCD) * 0.6) + 1>> + <<if $citizenRetirementMenials == 1>> + <<set _enslavedEmigrants = Math.trunc((($lowerClass - _LCD) * 0.6) * $enslaveChance * (0.05 + _banishedRatio))>> + <<else>> + <<set _enslavedEmigrants = Math.trunc((($lowerClass - _LCD) * 0.6) * $enslaveChance)>> + <</if>> + <<set $lowerClass -= _LCEmigration, _enslaved += _enslavedEmigrants>> <<if _LCEmigration > 1>> <br>@@.red;<<print _LCEmigration>> lower class citizens@@ had no work and tried to leave your arcology. @@ -933,8 +942,12 @@ _SCD = Math.trunc(($upperClass * ($slaveDemandU + _slaveDemandU)) + ($topClass * <</if>> <</if>> <</if>> /*ends _weatherFreeze*/ +<<if $secExp == 1>> + <<set $ASlaves = $NPCSlaves + $helots + $fuckdolls + $menialBioreactors + $secHelots + $slavesEmployedManpower>> +<<else>> + <<set $ASlaves = $NPCSlaves + $helots + $fuckdolls + $menialBioreactors>> +<</if>> <<set $ACitizens = $lowerClass + $middleClass + $upperClass + $topClass, -$ASlaves = $NPCSlaves + $helots + $fuckdolls + $menialBioreactors, _percACitizens = Math.trunc(($ACitizens / ($ACitizens + $ASlaves)) * 1000) / 10, _percASlaves = Math.trunc(($ASlaves / ($ACitizens + $ASlaves)) * 1000) / 10, _percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 10, diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw index 8a598e7e5f48d11f7b7f17698b3b7894a94c9a0b..6b455534295ca78ccb0ed0828f1eeadc8713615e 100644 --- a/src/uncategorized/buySlaves.tw +++ b/src/uncategorized/buySlaves.tw @@ -314,7 +314,7 @@ The parts of your arcology you own can house a total of $PopCap menial slaves. <</if>> The market price of menials is <<print cashFormat(_menialPrice)>>. <<set _optionsBreak = 0>> -<<if _bulkMax > 0>> +<<if _bulkMax > 0 && $cash > _menialPrice>> [[Buy|Buy Slaves][$helots+=1,$menialSupplyFactor-=1,$cash-=_menialPrice]] <<if $cash > (menialSlaveCost(10))*10>> [[(x10)|Buy Slaves][$helots+=10,$menialSupplyFactor-=10,$cash-=(menialSlaveCost(10))*10]] @@ -324,7 +324,7 @@ The market price of menials is <<print cashFormat(_menialPrice)>>. <</if>> <<if $cash > (_menialPrice+1)*2>> <<set _menialBulkPremium = Math.trunc(1 + Math.clamp($cash/_menialPrice,0,_bulkMax)/400)>> - [[(max)|Buy Slaves][$helots+=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)*(_menialPrice+_menialBulkPremium))]] + [[(max)|Buy Slaves][$helots+=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice+_menialBulkPremium),0,_bulkMax))*(_menialPrice+_menialBulkPremium)]] <</if>> //Bulk transactions may require offering a premium.// <<set _optionsBreak = 1>> @@ -380,7 +380,7 @@ The market price of menials is <<print cashFormat(_menialPrice)>>. The market price of standard fuckdolls is <<print cashFormat(_menialPrice*2)>>. <<set _optionsBreak = 0>> <<if _bulkMax > 0>> -<<if $arcologies[0].FSPaternalist == "unset">> +<<if $arcologies[0].FSPaternalist == "unset" && $cash > _menialPrice*2>> [[Buy|Buy Slaves][$fuckdolls+=1,$menialSupplyFactor-=1,$cash-=(_menialPrice*2)]] <<if $cash > (menialSlaveCost(10)*2)*10>> [[(x10)|Buy Slaves][$fuckdolls+=10,$menialSupplyFactor-=10,$cash-=(menialSlaveCost(10)*2)*20]] @@ -390,14 +390,13 @@ The market price of standard fuckdolls is <<print cashFormat(_menialPrice*2)>>. <</if>> <<if $cash > ((_menialPrice+1)*4)>> <<set _fuckdollBulkPremium = Math.trunc(1 + Math.clamp($cash/(_menialPrice*2),0,_bulkMax)/400)>> - [[(max)|Buy Slaves][$fuckdolls+=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)*(_menialPrice*2+_fuckdollBulkPremium))]] + [[(max)|Buy Slaves][$fuckdolls+=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice*2+_fuckdollBulkPremium),0,_bulkMax))*(_menialPrice*2+_fuckdollBulkPremium)]] <</if>> //Bulk transactions may require offering a premium.// <<set _optionsBreak = 1>> <</if>> <</if>> <<if $fuckdolls >= 1>> - <br> <<if _optionsBreak>>|<</if>> [[Sell|Buy Slaves][$fuckdolls-=1,$menialDemandFactor-=1,$cash+=_menialPrice*2]] <<if $fuckdolls >= 10>> @@ -421,7 +420,7 @@ The market price of standard fuckdolls is <<print cashFormat(_menialPrice*2)>>. The market price of standard bioreactors is <<print cashFormat((_menialPrice-100))>>. <<set _optionsBreak = 0>> <<if _bulkMax > 0>> -<<if $arcologies[0].FSPaternalist == "unset">> +<<if $arcologies[0].FSPaternalist == "unset" && $cash > _menialPrice+100>> [[Buy|Buy Slaves][$menialBioreactors+=1,$menialSupplyFactor-=1,$cash-=(_menialPrice+100)]] <<if $cash > (menialSlaveCost(10)-100)*10>> [[(x10)|Buy Slaves][$menialBioreactors+=10,$menialSupplyFactor-=10,$cash-=(menialSlaveCost(10)-100)*10]] @@ -431,7 +430,7 @@ The market price of standard bioreactors is <<print cashFormat((_menialPrice-100 <</if>> <<if $cash > (_menialPrice-99)*2>> <<set _bioreactorBulkPremium = Math.trunc(1+ Math.clamp($cash/(_menialPrice-99),0,_bulkMax)/400)>> - [[(max)|Buy Slaves][$menialBioreactors+=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)*(_menialPrice-99+_bioreactorBulkPremium))]] + [[(max)|Buy Slaves][$menialBioreactors+=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$menialSupplyFactor-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax)),$cash-=Math.trunc(Math.clamp($cash/(_menialPrice-99+_bioreactorBulkPremium),0,_bulkMax))*(_menialPrice-99+_bioreactorBulkPremium)]] <</if>> //Bulk transactions may require offering a premium.// <<set _optionsBreak = 1>> diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw index db8b8fe239992d28a6cfd833af8b5f677b4c828e..43e3d91aca89ed16ccbb839f1ee14d856ef7f321 100644 --- a/src/uncategorized/costsReport.tw +++ b/src/uncategorized/costsReport.tw @@ -101,6 +101,17 @@ your __personal living expenses__ are <<print cashFormat(Math.trunc($girls*(250+ <<set _archologyCosts += _mercCosts>> <</if>> +<<if $citizenRetirementMenials == 1>> + <br>__Menial Slave Retirement Premiums__: + <<if $CitizenRetirement == 1>> + <<set _citizenRetirementMenialsCost = $helots * 2>> + <<else>> + <<set _citizenRetirementMenialsCost = ($helots + $slaves.length) * 2>> + <</if>> + <<set _archologyCosts += _citizenRetirementMenialsCost>> + <<print cashFormat(_citizenRetirementMenialsCost)>> +<</if>> + <<if $brothel > 0 || $club > 0 || $arcade > 0 || $dairy > 0 || $farmyard > 0>> <br>__Archology building maintenance__: <<if $brothel > 0>> diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw index 6c5f3e87fbeaa525a6864ec1de781c4229ebeed1..766519761593bcc503bb001ade97e4b6bbdd62da 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -18,7 +18,7 @@ <<if $SF.Toggle && $SF.Active >= 1>> <<link "Take your express elevator down to $SF.Lower""Firebase">> <</link>> <br><br> -<<elseif $SF.BadOutcome === "lockdown">>> +<<elseif $SF.BadOutcome === "lockdown">> The thick wall of rubble in front of the entrance to $SF.Lower's firebase would make the trip worthless. <</if>> diff --git a/src/uncategorized/policies.tw b/src/uncategorized/policies.tw index 64e7f41100b188d8dd807f4d4bbd58654ab6887f..5c5cf0cecf75421cea18e599b06c97a354468a63 100644 --- a/src/uncategorized/policies.tw +++ b/src/uncategorized/policies.tw @@ -10,7 +10,15 @@ <</if>> <<set $showEncyclopedia = 1>><<set $encyclopedia = "Future Societies">> <<if $rep < 0>><<set $rep = 0>><</if>> -<<set $customRetirementAge = Math.clamp($customRetirementAge, 20, 120)>> +<<set $customMenialRetirementAge = Math.clamp($customMenialRetirementAge, 20, 120)>> +<<if $citizenRetirementMenials == 1>> + <<set $customRetirementAge = Math.clamp($customRetirementAge, 20, $customMenialRetirementAge)>> + <<if $customMenialRetirementAge < 45>> + <<set $retirementAge = $customMenialRetirementAge>> + <</if>> +<<else>> + <<set $customRetirementAge = Math.clamp($customRetirementAge, 20, 120)>> +<</if>> <<if $CustomRetirementAgePolicy == 1>><<set $retirementAge = $customRetirementAge>><</if>> <<if $PhysicalRetirementAgePolicy == 1>><<set $retirementAge = $customRetirementAge>><</if>> <<set $retirementSex = Math.clamp($retirementSex, 1, 10000000)>> @@ -109,6 +117,13 @@ <</if>> <br><br>__Slave Retirement Planning__ +<<if $citizenRetirementMenials == 1>> + <br>''Mandatory Menial Retirement Age:'' you have set your arcology's retirement age for menial slaves at $customMenialRetirementAge. + [[Repeal|Policies][$citizenRetirementMenials = 0, $retirementAge = 45]] +<<else>> + <br>''No Menial Retirement Plan:'' without defining a retirement age for menial slaves they will remain slaves until death or freed otherwise. +<</if>> + <<if $CustomRetirementAgePolicy == 1 && $PhysicalRetirementAgePolicy != 1>> <br>''Redefined Mandatory Retirement Age:'' you have set your arcology's standard retirement age for sex slaves at $retirementAge. [[Repeal|Policies][$CustomRetirementAgePolicy = 0, $retirementAge = 45]] @@ -840,6 +855,22 @@ <br><br>__Slave Retirement Planning__ + <<if $citizenRetirementMenials == 0>> + <br>''Redefined Mandatory Menial Retirement Age:'' you will set your arcology's retirement age for menial slaves at age + <br> <<textbox "$customMenialRetirementAge" $customMenialRetirementAge "Policies">> + <<if $arcologies[0].FSDegradationist == "unset">> + <<if $citizenRetirementTrigger == 0>> + <br>''Menial Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. + [[Implement|Policies][$citizenRetirementMenials = 1, $cash -= 5000, $rep -= 1000, $citizenRetirementTrigger = 1]] + <br> //Will add upkeep to all menial slaves// + <<else>> + <br>''Menial Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. + [[Implement|Policies][$citizenRetirementMenials = 1, $cash -= 5000, $rep -= 1000]] + <br> //Will add upkeep to all menial slaves// + <</if>> + <</if>> + <</if>> + <<if $CustomRetirementAgePolicy == 0>> <br>''Redefined Mandatory Retirement Age:'' you will set your arcology's standard retirement age for sex slaves at age <br> <<textbox "$customRetirementAge" $customRetirementAge "Policies">> @@ -856,15 +887,9 @@ <<if $ArcadeRetirement == 0>> <<if $CitizenRetirement == 0>> <<if $arcologies[0].FSDegradationist == "unset">> - <<if $CitizenRetirementTrigger == 0>> - <br>''Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. - [[Implement|Policies][$CitizenRetirement = 1, $cash -=5000, $rep -= 1000, $CitizenRetirementTrigger = 1]] - <br> //Will add upkeep to all slaves// - <<else>> - <br>''Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. - [[Implement|Policies][$CitizenRetirement = 1, $cash -=5000, $rep -= 1000]] - <br> //Will add upkeep to all slaves// - <</if>> + <br>''Sex Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. + [[Implement|Policies][$CitizenRetirement = 1, $cash -=5000, $rep -= 1000]] + <br> //Will add upkeep to all sex slaves// <</if>> <<if $arcologies[0].FSPaternalist == "unset">> <br>''Public Arcade Retirement:'' once reaching mandatory retirement age, slaves will be placed in cheap public arcades to be used until useless. diff --git a/src/uncategorized/seRetirement.tw b/src/uncategorized/seRetirement.tw index 1803976f02728e88bc006dfa330509d423486454..68b78c27d7ff39455fd18cbaed74cf0f2fa2be6d 100644 --- a/src/uncategorized/seRetirement.tw +++ b/src/uncategorized/seRetirement.tw @@ -202,8 +202,8 @@ When you return to your desk you realize something. <</if>> <br><br> -Your arcology has gained a citizen. -<<set $ACitizens += 1>> +Your arcology has gained a well-off citizen. +<<set $upperClass += 1>> <<elseif $BioreactorRetirement == 1>> @@ -318,6 +318,23 @@ and, a disturbingly short time later, there is a new Fuckdoll, a humanoid figure You have @@.yellowgreen;gained a fuckdoll.@@ <<set $fuckdolls += 1>> +<<elseif $citizenRetirementMenials == 1>> + <<if $customMenialRetirementAge == $customRetirementAge || $customMenialRetirementAge == $retirementAge>> + + in a way that fills your other slaves with @@.mediumaquamarine;trust@@ after seeing one of their own gain freedom. + <<for $i = 0; $i < $slaves.length; $i++>> + <<set $slaves[$i].trust += 2>> + <</for>> + <<if $activeSlave.relationship > 3>> + $slaves[_sr].slaveName, for _his2 part, is @@.hotpink;happy,@@ though also a bit sad. _He2 looks forward to joining $activeSlave.slaveName one day. + <<set $slaves[_sr].devotion += 5>> + <</if>> + + <br><br> + You have @@.yellowgreen;gained a citizen.@@ + <<set $lowerClass += 1>> + <</if>> + <<else>> into a life of menial drudgery. This has little impact on your other human property. diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index 8e560c9273c1c6fd9ec845d560bd3a6d5df026cc..413e1fd9442178afd537a9c47d2e791b61379fbe 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -15125,7 +15125,7 @@ $He has <<elseif $activeSlave.bellyPreg >= 1500>> Your breeding focused society finds a developing pregnancy very fashionable. <</if>> - <<elseif $arcologies[0].FSRepopulationFocusPregPolicy == 1>> + <<elseif $arcologies[0].FSRepopulationFocusPregPolicy == 1 && $activeSlave.bellyPreg >= 1500>> Thanks to your trendsetting policies, society finds $his pregnant belly fashionable. <<elseif $arcologies[0].FSRestart != "unset">> <<if $activeSlave.belly >= 1000000>>