diff --git a/Changelog.txt b/Changelog.txt index a8c7630dabd040a3660c05f850bac5509e0adf4b..8597fe748d2e666aa4dc773a8d98d3b63bf7be41 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -4,6 +4,11 @@ Pregmod 0.10.7.1-2.5.x +06/27/2019 + + 2 + -fixes + 06/17/2019 1 diff --git a/devTools/FC.d.ts b/devTools/FC.d.ts index 57cfd50b8e97ffcaeda1de83772e646325255930..fe3cc903d631966127416c4d0829d5df7d3d888f 100644 --- a/devTools/FC.d.ts +++ b/devTools/FC.d.ts @@ -77,6 +77,8 @@ declare namespace App { vasectomy: boolean; bellyImplant: string; tummy: number; + earShape: number; + horn: number; } class RuleGrowthSetters { @@ -195,6 +197,7 @@ declare namespace App { inflationType: string; brandTarget: string; brandDesign: string; + hornColor: string; } class Rule { diff --git a/devTools/PreCompile.sh b/devTools/PreCompile.sh index f359b36269fa495617837b45b93d10cbbd9f38d2..00c65c70264e08b5ec35d89303e86f26a2d50ee6 100755 --- a/devTools/PreCompile.sh +++ b/devTools/PreCompile.sh @@ -1,12 +1,12 @@ -#!/bin/sh -mega-login $1 $2;echo 'New clone? 0:y 1:n 2:na';read Opt #U=$1 P=$2 rDir=$3 lDir=$4 repo=$5 Reqs:MEGAcmd,git -while true;do cd $4;gen=0 - if [[ $Opt == 0 ]];then - mkdir -p $4&&git clone -q --depth 1 $5 $4&&cd $4 - if [[ ! `mega-ls $3|cut -c29-32|paste -sd,` =~ `git log|head -1|cut -c8-11` ]];then gen=1;fi #stackoverflow.com/a/15394738 - elif [[ $Opt > 0||$gen < 1 ]];then - git fetch -q - if [ `git rev-list ..origin|wc -l` -gt 0 ];then gen=1&&git pull -q;fi #stackoverflow.com/a/17192101 +#!/bin/ksh +mega-login $1 $2 #U=$1 P=$2 rDir=$3 lDir=$4 repo=$5 Reqs:MEGAcmd,git +while true;do gen=0;cd $4; + if [[ `echo $?` -gt 0 ]];then mkdir -p $4&&git clone -q --depth 1 $5 $4&&cd $4 + if [[ ! `mega-ls $3|cut -c21-24|paste -sd,` =~ `git log|head -1|cut -c8-11` ]];then gen=1;fi #stackoverflow.com/a/15394738 fi - if [[ $Opt > 1||$gen > 0 ]];then rm bin/*;./compile.sh -q&&cd bin/&&mv *.h* FC-`git log -1 --format=%cd --date=format:%m-%d-%Y-%H-%M`-`git log|head -1|cut -c8-11`.html&&mega-put -c *.h* $3&&mega-rm $3`mega-ls GitFC/|head -n 1`;fi -Opt=-1;clear;sleep 15m;done \ No newline at end of file + git fetch -q && if [ `git rev-list ...origin|wc -l` -gt 0 ];then git pull -q&&gen=1;fi #stackoverflow.com/a/17192101 + if [[ $gen > 0 ]];then rm bin/*;./compile.sh -q&&cd bin/ + mv *.h* FC-`git log -1 --format=%cd --date=format:%m-%d-%Y-%H-%M`-`git log|head -1|cut -c8-11`.html + mega-put -c *.h* $3&&mega-rm $3`mega-ls GitFC/|head -n 1` + fi +clear;sleep 15m;done \ No newline at end of file diff --git a/devTools/dictionary_wholeWords.txt b/devTools/dictionary_wholeWords.txt index a16f94e0b9462327723a0506ef02177dbe2eefb6..f1763e84572c29162ba650fd5a29f55300829c22 100644 --- a/devTools/dictionary_wholeWords.txt +++ b/devTools/dictionary_wholeWords.txt @@ -1692,7 +1692,6 @@ Godounov#Godunov goign#going gonig#going Gothenberg#Gothenburg -Gottleib#Gottlieb gouvener#governor govement#government govenment#government diff --git a/devTools/javaSanityCheck/SanityCheck.jar b/devTools/javaSanityCheck/SanityCheck.jar index 06c6b0ece19e53d525504dcafd834995019551ac..540482a7844cc9f9ed59513c96e402d78edb11df 100644 Binary files a/devTools/javaSanityCheck/SanityCheck.jar and b/devTools/javaSanityCheck/SanityCheck.jar differ diff --git a/devTools/javaSanityCheck/ignoredVariables b/devTools/javaSanityCheck/ignoredVariables index 7c373d5de1f3c82be9a6af7fdf974ded6795b23f..eb8c25aa1136e19f13dfbc3c8b9e8b9dcd1db90d 100644 --- a/devTools/javaSanityCheck/ignoredVariables +++ b/devTools/javaSanityCheck/ignoredVariables @@ -59,7 +59,6 @@ raw minDomActionDelay Categorizer rest -new upgrade W;O;L FSCummunismDecoration;FSIncestFetishistDecoration;FSGenderFundamentalistResearch;FSPaternalistResearch;FSDegradationistResearch;FSBodyPuristResearch;FSMaturityPreferentialistResearch;FSPastoralistResearch;FSPhysicalIdealistResearch;FSRepopulationFocusResearch;FSRestartResearchPassed @@ -69,7 +68,6 @@ mixedraceNationalities nationalityPoolSelector bimboSlaveNames ArcologyNamesIntellectualDependency;ArcologyNamesSlaveProfessionalism;ArcologyNamesPetiteAdmiration;ArcologyNamesStatuesqueGlorification -IntellectualDependency;SlaveProfessionalism;PetiteAdmiration;StatuesqueGlorification Him anCup linkHandlers @@ -81,10 +79,11 @@ childSurname;nurseryOldID;nurseryUpgrade facilityRemove boobsWombVolume;emptyDefaultRule;rule;removeImplant;changeImplant assign;commit;sizingProcedures;Agent;thigh;breast;mouth -normalRandInt Std neutral htmlFor +call +storedButton # # ...foo variables - maybe fixed later otherChoices diff --git a/devTools/javaSanityCheck/sources.zip b/devTools/javaSanityCheck/sources.zip index da449ced28926f53134e969a35fa9f7e6f9acaf1..eb5ad85427c7c464b77f4398aace6f4edbf93c93 100644 Binary files a/devTools/javaSanityCheck/sources.zip and b/devTools/javaSanityCheck/sources.zip differ diff --git a/src/004-base/facility.js b/src/004-base/facility.js index 988a76f0b0919eda8f141ae8a32932a0133b3e5c..450d54fffa950ce81d85e83b5064d553d89726d7 100644 --- a/src/004-base/facility.js +++ b/src/004-base/facility.js @@ -77,7 +77,7 @@ App.Entity.Facilities.Job = class { r.push(`${slave.slaveName} is already assigned to ${this.desc.assignment}.`); } if (this.desc.publicSexUse && - (slave.breedingMark === 1 && State.variables.propOutcome === 1)) { + (slave.breedingMark === 1 && State.variables.propOutcome === 1 && State.variables.eugenicsFullControl !== 1 && State.variables.arcologies[0].FSRestart !== "unset")) { r.push(`${slave.slaveName} is for private use only.`); } if (!this.desc.fuckdollAccepted && slave.fuckdoll > 0) { diff --git a/src/SecExp/attackGenerator.tw b/src/SecExp/attackGenerator.tw index bf7a059a49bea862938d6bfadbfef50755109cd4..3d2183b5914dddb4cf084cb34d0ce2fd6ac4865a 100644 --- a/src/SecExp/attackGenerator.tw +++ b/src/SecExp/attackGenerator.tw @@ -70,7 +70,7 @@ <<set _freeCity -= 5>> <<set _free += 15>> <</if>> - /* free cities */ + /* Free Cities */ <<if $arcologies[0].prosperity >= 10 && $arcologies[0].prosperity < 20>> <<set _oldWorld -= 5>> <<set _raider -= 5>> diff --git a/src/SecExp/attackOptions.tw b/src/SecExp/attackOptions.tw index 7e3de01d3905a756330540435cdf886c4184987a..d64ef3bacfaaec25693769e5c3570356201bbfcf 100644 --- a/src/SecExp/attackOptions.tw +++ b/src/SecExp/attackOptions.tw @@ -19,7 +19,7 @@ Some of your citizens saw the disorganized horde of raiders coming towards the city and quickly reported it. To such jackals your arcology surely looks like an appetizing morsel. <</if>> <br> - Raiders are roaming gangs of bandits, preying on the vulnerable supply lines of free cities and old world nations. They are rarely equipped with decent armaments and even more rarely have any formal military training, but they make up for that with high mobility and numbers. + Raiders are roaming gangs of bandits, preying on the vulnerable supply lines of Free Cities and old world nations. They are rarely equipped with decent armaments and even more rarely have any formal military training, but they make up for that with high mobility and numbers. <<elseif $attackType == "free city">> <<if $recon >= 1>> A menacing column of slavers and hired mercenaries is coming to your city. Another free city is ready to use their best tools to hit a dangerous competitor where it hurts. @@ -37,7 +37,7 @@ Some of your citizens saw the dangerous looking army of guerrillas is gathering just outside the arcology. Fanatics and idealists armed with dead men's words and hope, set on erasing your fledgling empire. <</if>> <br> - Freedom Fighters are groups of individuals fighting to rid the planet of "evils" such as the free cities and their way of life. Lacking the strength to assault one directly they fight guerrilla style slowly starving to death their enemies. They are rarely well equipped, but with good training and mobility they are not a threat that can be taken lightly. + Freedom Fighters are groups of individuals fighting to rid the planet of "evils" such as the Free Cities and their way of life. Lacking the strength to assault one directly they fight guerrilla style slowly starving to death their enemies. They are rarely well equipped, but with good training and mobility they are not a threat that can be taken lightly. <<elseif $attackType == "old world">> <<if $recon >= 1>> A disciplined yet dusty, scruffy old world army is approaching the confines of your arcology. There's nothing better than a good war to unite the electorate and your arcology is just the perfect target. @@ -46,33 +46,33 @@ Some of your citizens saw the disciplined yet dusty, scruffy old world army is approaching the confines of your arcology. There's nothing better than a good war to unite the electorate and your arcology is just the perfect target. <</if>> <br> - Old world expeditions are usually sent to secure resources and trade routs for their nation or, more often, to provide their citizens with a bogeyman to be scared of. They are usually decently equipped and trained, which together with their generous numbers make them a tough nut to crack. They however often lack in mobility. + Old world expeditions are usually sent to secure resources and trade routes for their nation or, more often, to provide their citizens with a bogeyman to be scared of. They are usually decently equipped and trained, which together with their generous numbers make them a tough nut to crack. However, they often lack in mobility. <</if>> <<else>> Your assistant interrupted your rest to bring the grim news. You quickly rush to your console, where you can see one of the convoys supplying your arcology has been attacked and looted. It seems a group of desperate looking bandits decided it was a good idea to steal from you. - Due to their great wealth, free cities inevitably become tasty morsels for anyone able to field armed men. Considering the particular needs of arcologies their supply lines tend to be delicate lifelines, often preyed upon by those who stand to gain from the free city downfall. + Due to their great wealth, Free Cities inevitably become tasty morsels for anyone able to field armed men. Considering the particular needs of arcologies their supply lines tend to be delicate lifelines, often preyed upon by those who stand to gain from the free city downfall. <</if>> <<else>> <<if $hasFoughtMajorBattleOnce == 1>> The ominous message dominates the screens of your office, <<print $assistantName>> quickly gathers all information available to prepare for battle. <<if $attackType == "raiders">> <<if $recon >= 1>> - A massive, disorganized horde of raiders is coming to your city. It seems a warlord of the wastelands massed enough men to try and obtain a slice of territory of his own, if he's not defeated there won't be a tomorrow for the arcology. + A massive, disorganized horde of raiders is coming to your city. It seems a warlord of the wastelands amassed enough men to try and obtain a slice of territory of his own; if he's not defeated there won't be a tomorrow for the arcology. Fortunately you knew of their coming, thanks to your recon systems. <<else>> - Some of your citizens saw the massive, disorganized horde of raiders coming towards the city and quickly reported it. It seems a warlord of the wastelands massed enough men to try and obtain a slice of territory of his own, if he's not defeated there won't be a tomorrow for the arcology. + Some of your citizens saw the massive, disorganized horde of raiders coming towards the city and quickly reported it. It seems a warlord of the wastelands amassed enough men to try and obtain a slice of territory of his own; if he's not defeated there won't be a tomorrow for the arcology. <</if>> <br> - Raiders are roaming gangs of bandits, preying on the vulnerable supply lines of free cities and old world nations. They are rarely equipped with decent armaments and even more rarely have any formal military training, but they make up for that with high mobility and numbers. + Raiders are roaming gangs of bandits, preying on the vulnerable supply lines of Free Cities and old world nations. They are rarely equipped with decent armaments and even more rarely have any formal military training, but they make up for that with high mobility and numbers. <<elseif $attackType == "free city">> <<if $recon >= 1>> - A massive, menacing column of slavers and hired mercenaries is coming to your city. The quantity of money invested in this assault is staggering, it seems you made some very powerful enemies. If they're not defeated your story will end this day. + A massive, menacing column of slavers and hired mercenaries is coming to your city. The quantity of money invested in this assault is staggering; it seems you made some very powerful enemies. If they're not defeated your story will end this day. Fortunately you knew of their coming, thanks to your recon systems. <<else>> - Some of your citizens saw the massive, menacing column of slavers and hired mercenaries and rushed to your office to bring the grim news. The quantity of money invested in this assault is staggering, it seems you made some very powerful enemies. If they're not defeated your story will end this day. + Some of your citizens saw the massive, menacing column of slavers and hired mercenaries and rushed to your office to bring the grim news. The quantity of money invested in this assault is staggering; it seems you made some very powerful enemies. If they're not defeated your story will end this day. <</if>> <br> - Free City expeditions are usually composed of mercenaries hired to take down sensible supplies or infrastructure in order to damage the enemies of their contractor. They have on average good equipment and training, together with decent mobility, making them a formidable force. Their biggest weakness however is their low numbers. + Free City expeditions are usually composed of mercenaries hired to take down sensible supplies or infrastructure in order to damage the enemies of their contractor. They have, on average, good equipment and training, together with decent mobility, making them a formidable force. Their biggest weakness, however, is their low numbers. <<elseif $attackType == "freedom fighters">> <<if $recon >= 1>> A massive, dangerous army of guerrillas is gathering just outside the arcology. A huge ocean of fanatics and idealists armed with dead men's words and hope, set on erasing your fledgling empire once and for all. And this time they won't stop until your body is burnt to a crisp. @@ -81,7 +81,7 @@ Some of your citizens saw the massive, dangerous army of guerrillas is gathering just outside the arcology. A huge ocean of fanatics and idealists armed with dead men's words and hope, set on erasing your fledgling empire once and for all. And this time they won't stop until your body is burnt to a crisp. <</if>> <br> - Freedom Fighters are groups of individuals fighting to rid the planet of "evils" such as the free cities and their way of life. Lacking the strength to assault one directly they fight guerrilla style slowly starving to death their enemies. They are rarely well equipped, but with good training and mobility they are not a threat that can be taken lightly. + Freedom Fighters are groups of individuals fighting to rid the planet of "evils" such as the Free Cities and their way of life. Lacking the strength to assault one directly, they fight guerrilla style, slowly starving to death their enemies. They are rarely well equipped, but with good training and mobility they are not a threat that can be taken lightly. <<elseif $attackType == "old world">> <<if $recon >= 1>> A massive, disciplined old world army is approaching the confines of your arcology. It seems one of the nations of the old world is determined to put your arcology to rest once and for all or die trying. @@ -90,7 +90,7 @@ Some of your citizens saw the massive, disciplined old world army is approaching the confines of your arcology. It seems one of the nations of the old world is determined to put your arcology to rest once and for all or die trying. <</if>> <br> - Old world expeditions are usually sent to secure resources and trade routs for their nation or, more often, to provide their citizens with a bogeyman to be scared of. They are usually decently equipped and trained, which together with their generous numbers make them a tough nut to crack. They however often lack in mobility. + Old world expeditions are usually sent to secure resources and trade routes for their nation or, more often, to provide their citizens with a bogeyman to be scared of. They are usually decently equipped and trained, which together with their generous numbers make them a tough nut to crack. However, they often lack in mobility. <</if>> <<else>> Your assistant interrupted your rest to bring the grim news. You quickly rush to your console, where you can see the satellite images coming in of the force about to crash against your arcology. It's not the first time your armies fought for the survival of your empire, but this time it seems it will be a fight for life or death. @@ -98,22 +98,22 @@ <br> <<if $attackType == "raiders">> <<if $recon >= 1>> - A massive, disorganized horde of raiders is coming to your city. It seems a warlord of the wastelands massed enough men to try and obtain a slice of territory of his own, if he's not defeated there won't be a tomorrow for the arcology. + A massive, disorganized horde of raiders is coming to your city. It seems a warlord of the wastelands amassed enough men to try and obtain a slice of territory of his own; if he's not defeated there won't be a tomorrow for the arcology. Fortunately you knew of their coming, thanks to your recon systems. <<else>> - Some of your citizens saw the massive, disorganized horde of raiders coming towards the city and quickly reported it. It seems a warlord of the wastelands massed enough men to try and obtain a slice of territory of his own, if he's not defeated there won't be a tomorrow for the arcology. + Some of your citizens saw the massive, disorganized horde of raiders coming towards the city and quickly reported it. It seems a warlord of the wastelands amassed enough men to try and obtain a slice of territory of his own; if he's not defeated there won't be a tomorrow for the arcology. <</if>> <br> - Raiders are roaming gangs of bandits, preying on the vulnerable supply lines of free cities and old world nations. They are rarely equipped with decent armaments and even more rarely have any formal military training, but they make up for that with high mobility and numbers. + Raiders are roaming gangs of bandits, preying on the vulnerable supply lines of Free Cities and old world nations. They are rarely equipped with decent armaments and even more rarely have any formal military training, but they make up for that with high mobility and numbers. <<elseif $attackType == "free city">> <<if $recon >= 1>> - A massive, menacing column of slavers and hired mercenaries is coming to your city. The quantity of money invested in this assault is staggering, it seems you made some very powerful enemies. If they're not defeated your story will end this day. + A massive, menacing column of slavers and hired mercenaries is coming to your city. The quantity of money invested in this assault is staggering; it seems you made some very powerful enemies. If they're not defeated your story will end this day. Fortunately you knew of their coming, thanks to your recon systems. <<else>> - Some of your citizens saw the massive, menacing column of slavers and hired mercenaries and rushed to your office to bring the grim news. The quantity of money invested in this assault is staggering, it seems you made some very powerful enemies. If they're not defeated your story will end this day. + Some of your citizens saw the massive, menacing column of slavers and hired mercenaries and rushed to your office to bring the grim news. The quantity of money invested in this assault is staggering; it seems you made some very powerful enemies. If they're not defeated your story will end this day. <</if>> <br> - Free City expeditions are usually composed of mercenaries hired to take down sensible supplies or infrastructure in order to damage the enemies of their contractor. They have on average good equipment and training, together with decent mobility, making them a formidable force. Their biggest weakness however is their relatively low numbers. + Free City expeditions are usually composed of mercenaries hired to take down sensible supplies or infrastructure in order to damage the enemies of their contractor. They have, on average, good equipment and training, together with decent mobility, making them a formidable force. Their biggest weakness, however, is their relatively low numbers. <<elseif $attackType == "freedom fighters">> <<if $recon >= 1>> A massive, dangerous army of guerrillas is gathering just outside the arcology. A huge ocean of fanatics and idealists armed with dead men's words and hope, set on erasing your fledgling empire once and for all. And this time they won't stop until your body is burnt to a crisp. @@ -122,7 +122,7 @@ Some of your citizens saw the massive, dangerous army of guerrillas is gathering just outside the arcology. A huge ocean of fanatics and idealists armed with dead men's words and hope, set on erasing your fledgling empire once and for all. And this time they won't stop until your body is burnt to a crisp. <</if>> <br> - Freedom Fighters are groups of individuals fighting to rid the planet of "evils" such as the free cities and their way of life. Lacking the strength to assault one directly they fight guerrilla style slowly starving to death their enemies. They are rarely well equipped, but with good training and mobility they are not a threat that can be taken lightly. + Freedom Fighters are groups of individuals fighting to rid the planet of "evils" such as the Free Cities and their way of life. Lacking the strength to assault one directly, they fight guerrilla style, slowly starving to death their enemies. They are rarely well equipped, but with good training and mobility they are not a threat that can be taken lightly. <<elseif $attackType == "old world">> <<if $recon >= 1>> A massive, disciplined old world army is approaching the confines of your arcology. It seems one of the nations of the old world is determined to put your arcology to rest once and for all or die trying. @@ -131,7 +131,7 @@ Some of your citizens saw the massive, disciplined old world army is approaching the confines of your arcology. It seems one of the nations of the old world is determined to put your arcology to rest once and for all or die trying. <</if>> <br> - Old world expeditions are usually sent to secure resources and trade routs for their nation or, more often, to provide their citizens with a bogeyman to be scared of. They are usually decently equipped and trained, which together with their generous numbers make them a tough nut to crack. They however often lack in mobility. + Old world expeditions are usually sent to secure resources and trade routes for their nation or, more often, to provide their citizens with a bogeyman to be scared of. They are usually decently equipped and trained, which together with their generous numbers make them a tough nut to crack. However, they often lack in mobility. <</if>> <</if>> <</if>> @@ -171,7 +171,7 @@ approximately <strong><<print $estimatedMen>> men</strong> are coming, they seem <<if $expectedEquip <= 0>> <strong>poorly armed</strong>. Old rusty small arms are the norm with just a few barely working civilian vehicles. <<elseif $expectedEquip == 1>> - <strong>lightly armed</strong>, mostly wth small arms and some repurposed civilian vehicles with scattered machine gun support. There's no sign of heavy vehicles, artillery or aircraft. + <strong>lightly armed</strong>, mostly with small arms and some repurposed civilian vehicles with scattered machine gun support. There's no sign of heavy vehicles, artillery or aircraft. <<elseif $expectedEquip == 2>> <strong>decently armed</strong> with good quality small arms, machine guns and a few mortars. There appear to be some heavy military vehicles coming as well. <<elseif $expectedEquip == 3>> diff --git a/src/SecExp/attackReport.tw b/src/SecExp/attackReport.tw index 75cf57ca7c8a2ed31f5f0e23c71f0d41da2c17aa..3a5a0aad145993d2ebd7f15e3956473d5ee9f5d7 100644 --- a/src/SecExp/attackReport.tw +++ b/src/SecExp/attackReport.tw @@ -149,9 +149,9 @@ in the wastelands outside the free city territory, <</if>> <<if $enemyLosses != $attackTroops>> - inflicting <<print num(Math.trunc($enemyLosses))>> casualties, while sustaining <<if $losses > 1>> <<print num(Math.trunc($losses))>> casualties <<elseif $losses > 0>> a casualty <<else>> zero <</if>> themselves. + inflicting <<print num(Math.trunc($enemyLosses))>> casualties, while sustaining <<if $losses > 1>><<print num(Math.trunc($losses))>> casualties<<elseif $losses > 0>>a casualty<<else>>zero<</if>> themselves. <<else>> - completely annihilating their troops, while sustaining <<if $losses > 1>> <<print num(Math.trunc($losses))>> casualties. <<elseif $losses > 0>> a casualty. <<else>> zero casualties.<</if>> + completely annihilating their troops, while sustaining <<if $losses > 1>><<print num(Math.trunc($losses))>> casualties<<elseif $losses > 0>>a casualty<<else>>zero casualties<</if>>. <</if>> <</if>> <<if $battleResult == 3>> @@ -737,7 +737,7 @@ <</if>> <br> <<elseif $battleResult == 1>> - The attackers wisely take the money offered them to leave your territory without further issues. The strength of the free cities was never in their guns but in their dollars and today events are the perfect demonstration of such strength. + The attackers wisely take the money offered them to leave your territory without further issues. The strength of the Free Cities was never in their guns but in their dollars, and today's events are the perfect demonstration of such strength. Your @@.green;reputation slightly increases.@@ <<if $attackType == "raiders">> <<run repX(500 * _majorBattleMod, "war")>> @@ -1435,7 +1435,7 @@ <<if $attackType == "raiders">> Since the bands of raiders are used to be on high alert and on the move constantly, bait and bleed tactics are not effective against them. <<elseif $attackType == "free city">> - The modern armies hired by free cities are decently mobile, which means quick hit and run attacks will be less successful, but their discipline and confidence still make them quite susceptible to this type of attack. + The modern armies hired by Free Cities are decently mobile, which means quick hit and run attacks will be less successful, but their discipline and confidence still make them quite susceptible to this type of attack. <<elseif $attackType == "old world">> While old world armies are tough nuts to crack, their predictability makes them the perfect target for hit and run and harassment tactics. <<elseif $attackType == "freedom fighters">> @@ -1445,7 +1445,7 @@ <<if $attackType == "raiders">> Since the bands of raiders are used to be on high alert and on the move constantly, guerrilla tactics are not effective against them. <<elseif $attackType == "free city">> - The modern armies hired by free cities are highly mobile, which means quick hit and run attacks will be less successful, but their discipline and confidence still make them quite susceptible to this type of attack. + The modern armies hired by Free Cities are highly mobile, which means quick hit and run attacks will be less successful, but their discipline and confidence still make them quite susceptible to this type of attack. <<elseif $attackType == "old world">> While old world armies are tough nuts to crack, their predictability makes them the perfect target for hit and run and harassment tactics. <<elseif $attackType == "freedom fighters">> @@ -1455,7 +1455,7 @@ <<if $attackType == "raiders">> Raiders lack heavy weaponry or armor, so making use of fortified positions is an excellent way to dissipate the otherwise powerful momentum of their assault. <<elseif $attackType == "free city">> - The high tech equipment free cities can afford to give their guns for hire means there's no defensive position strong enough to stop them, still the relatively low numbers means they will have to take a careful approach, slowing them down. + The high tech equipment Free Cities can afford to give their guns for hire means there's no defensive position strong enough to stop them, still the relatively low numbers means they will have to take a careful approach, slowing them down. <<elseif $attackType == "old world">> Old world armies have both the manpower and the equipment to conquer any defensive position, making use of strong fortifications will only bring you this far against them. <<elseif $attackType == "freedom fighters">> @@ -1465,7 +1465,7 @@ <<if $attackType == "raiders">> The highly mobile horde of raiders will not give much room for your troops to maneuver, lowering their tactical superiority. <<elseif $attackType == "free city">> - While decently mobile, free cities forces are not in high enough numbers to risk maintaining prolonged contact, allowing your troops to quickly disengage and redeploy where it hurts. + While decently mobile, Free Cities forces are not in high enough numbers to risk maintaining prolonged contact, allowing your troops to quickly disengage and redeploy where it hurts. <<elseif $attackType == "old world">> Old world armies are not famous for the mobility, which makes them highly susceptible to any tactic that exploits maneuverability and speed. <<elseif $attackType == "freedom fighters">> @@ -1475,7 +1475,7 @@ <<if $attackType == "raiders">> While numerous, the undisciplined masses of raiders are easy prey for encirclements. <<elseif $attackType == "free city">> - While decently mobile, the low number of free cities expedition forces make them good candidates for encirclements. + While decently mobile, the low number of Free Cities expedition forces make them good candidates for encirclements. <<elseif $attackType == "old world">> The discipline and numbers of old world armies make them quite difficult to encircle. <<elseif $attackType == "freedom fighters">> @@ -1485,7 +1485,7 @@ <<if $attackType == "raiders">> While their low discipline makes them prime candidates for an elastic defense type of strategy, their high numbers limit your troops maneuverability. <<elseif $attackType == "free city">> - With their low numbers free cities mercenaries are quite susceptible to this type of tactic, despite their mobility. + With their low numbers Free Cities mercenaries are quite susceptible to this type of tactic, despite their mobility. <<elseif $attackType == "old world">> With their low mobility old world armies are very susceptible to this type of strategy. <<elseif $attackType == "freedom fighters">> @@ -1495,7 +1495,7 @@ <<if $attackType == "raiders">> With their low discipline and lack of heavy equipment, lightning strikes are very effective against raider hordes. <<elseif $attackType == "free city">> - Having good equipment and discipline on their side, free cities expeditions are capable of responding to even strong lightning strikes. + Having good equipment and discipline on their side, Free Cities expeditions are capable of responding to even strong lightning strikes. <<elseif $attackType == "old world">> While disciplined, old world armies low mobility makes them highly susceptible to lightning strikes. <<elseif $attackType == "freedom fighters">> @@ -1505,7 +1505,7 @@ <<if $attackType == "raiders">> The hordes of raiders are much more experienced than your soldiers in executing mass assaults and they also have a lot more bodies to throw in the grinder. <<elseif $attackType == "free city">> - The good equipment and mobility of free cities mercenaries cannot save them from an organized mass assault. + The good equipment and mobility of Free Cities mercenaries cannot save them from an organized mass assault. <<elseif $attackType == "old world">> Unfortunately the discipline and good equipment of old world armies allow them to respond well against a mass assault. <<elseif $attackType == "freedom fighters">> diff --git a/src/SecExp/encyclopediaSecExpMain.tw b/src/SecExp/encyclopediaSecExpMain.tw index f9818bb6fa5d8c6f9d68f3f3dc6ebd98c60af53f..de7772f60983155bc76a82583c4cc42ef97b8159 100644 --- a/src/SecExp/encyclopediaSecExpMain.tw +++ b/src/SecExp/encyclopediaSecExpMain.tw @@ -23,8 +23,8 @@ Both @@.deepskyblue;security@@ and @@.orangered;crime@@ are displayed a 0-100% scale. <br><br>The battles: - <br> Arcologies are sturdy structures, difficult to assault without preparation or overwhelming numbers. [["Security drones"|Encyclopedia][$encyclopedia = "Security Drones"]] can easily handle small incursion and a few well placed mercenary squads can handle the rest. - However, in order for free cities to survive they need many things, many of which expensive. If you want your arcology to survive the tide of times, you'll better prepare your soldiers and defend the vital lifelines that connect your arcology with the rest of the world. + <br> Arcologies are sturdy structures, difficult to assault without preparation or overwhelming numbers. [["Security drones"|Encyclopedia][$encyclopedia = "Security Drones"]] can easily handle small incursions and a few well placed mercenary squads can handle the rest. + However, in order for Free Cities to survive they need many things, many of which are expensive. If you want your arcology to survive the tide of times, you'd better prepare your soldiers and defend the vital lifelines that connect your arcology with the rest of the world. For a detailed outlook of how battles work see the relative page. <br><br>Buildings: diff --git a/src/SecExp/propagandaHub.tw b/src/SecExp/propagandaHub.tw index 74a061e75009e1074cafd57dac7ab53e0c8a63a2..d481853a31261020f972c48b800f1e8158e9c852 100644 --- a/src/SecExp/propagandaHub.tw +++ b/src/SecExp/propagandaHub.tw @@ -6,7 +6,12 @@ <<set _HistoryDiscount = 1>> <</if>> -<<set $nextButton = "Back", $nextLink = "Manage Arcology">> +<<set $nextButton = "Back">> +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> Propaganda Hub <hr> diff --git a/src/SecExp/rebellionGenerator.tw b/src/SecExp/rebellionGenerator.tw index 61528087667b51110d33aee152fe6817404d6305..207880040749afd542b9df22f68dd9b468ec359b 100644 --- a/src/SecExp/rebellionGenerator.tw +++ b/src/SecExp/rebellionGenerator.tw @@ -46,7 +46,7 @@ There are fewer slaves than citizens, making some doubt they would be strong enough to defeat their masters. <<set _slave -= 5>> <<else>> - Citizen and slave population is sufficiently balanced not to cause problems either way. + Citizen and slave populations are sufficiently balanced not to cause problems either way. <<set _slave -= 1>> <</if>> <<if $security <= 10>> @@ -66,7 +66,7 @@ <<set _slave -= 1>> <</if>> <<if $arcologies[0].FSDegradationist != "unset">> - Many slaves are so disgusted by your degradationist society, that are willing to rise up against their masters to escape. + Many slaves are so disgusted by your degradationist society, that they are willing to rise up against their masters to escape. <<set _slave += 30>> <<elseif $arcologies[0].FSPaternalist != "unset">> Many slaves are content to live in your paternalist society. diff --git a/src/SecExp/rebellionReport.tw b/src/SecExp/rebellionReport.tw index 12bc823aa686a1e4827953b64164af6895310e9b..cc3663d7339cf3de1e1b8a22b2aa524093aaf10e 100644 --- a/src/SecExp/rebellionReport.tw +++ b/src/SecExp/rebellionReport.tw @@ -84,9 +84,9 @@ <<if $slaveRebellion == 1>> Today, the _day of _month _year, our arcology was inflamed by the fires of rebellion. <<print num(Math.trunc($attackTroops))>> rebels from all over the structure dared rise up against their owners and conquer their freedom through blood. Our defense force, <<print num(Math.trunc($troopCount))>> strong, fought with them street by street <<if $enemyLosses != $attackTroops>> - inflicting <<print num(Math.trunc($enemyLosses))>> casualties, while sustaining <<if $losses > 1>> <<print num(Math.trunc($losses))>> casualties <<else>> a casualty<</if>> themselves. + inflicting <<print num(Math.trunc($enemyLosses))>> casualties, while sustaining <<if $losses > 1>><<print num(Math.trunc($losses))>> casualties<<elseif $losses > 0>>a casualty<<else>>zero<</if>> themselves. <<else>> - completely annihilating their troops, while sustaining <<if $losses > 1>> <<print num(Math.trunc($losses))>> casualties <<else>> a casualty.<</if>> + completely annihilating their troops, while sustaining <<if $losses > 1>><<print num(Math.trunc($losses))>> casualties<<elseif $losses > 0>>a casualty<<else>>zero casualties<</if>>. <</if>> <<if $SFGear>> More units were able to survive thanks to wearing $SF.Lower's combat armor suits. diff --git a/src/SecExp/riotControlCenter.tw b/src/SecExp/riotControlCenter.tw index 84ddd186a2a9846a10c091ff6baa1fd3f25b3cd9..ad0d2e612621bc8a0833178817dd25d053ed9594 100644 --- a/src/SecExp/riotControlCenter.tw +++ b/src/SecExp/riotControlCenter.tw @@ -1,6 +1,11 @@ :: riotControlCenter [nobr] -<<set $nextButton = "Back", $nextLink = "Manage Arcology">> +<<set $nextButton = "Back">> +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> Riot Control Center <hr> @@ -11,7 +16,7 @@ The riot control center opens its guarded doors to you. The great chamber inside <<if $tension <= 33>> Tensions in the arcology are low. Political and ideological opposition against the arcology owner is almost unheard of. <<elseif $tension <= 66>> - Tensions in the arcology are rising, political and ideological opposition against the arcology owner are becoming a part of the daily life of the arcology. + Tensions in the arcology are rising; political and ideological opposition against the arcology owner are becoming a part of the daily life of the arcology. <<else>> Tensions are high. Opposition to the arcology owner is a sentiment shared by many and armed resistance is on the rise. <</if>> diff --git a/src/SecExp/secBarracks.tw b/src/SecExp/secBarracks.tw index 991df65da21d14599b5d3b54a2940ecd699bc46b..531fbd4de6c404d755104f2c6eccbc1bc85108b1 100644 --- a/src/SecExp/secBarracks.tw +++ b/src/SecExp/secBarracks.tw @@ -1,6 +1,11 @@ :: secBarracks [nobr] -<<set $nextButton = "Back", $nextLink = "Manage Arcology">> +<<set $nextButton = "Back">> +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> The Barracks <hr> diff --git a/src/SecExp/secExpOptions.tw b/src/SecExp/secExpOptions.tw deleted file mode 100644 index e11f72560a22eefbb2a1e03627be06570a7c6aa9..0000000000000000000000000000000000000000 --- a/src/SecExp/secExpOptions.tw +++ /dev/null @@ -1,544 +0,0 @@ -:: secExpOptions [nobr] - -<<set $showEncyclopedia = 1, $encyclopedia = "Security Expansion", $nextButton = "Back to Options", $nextLink = "Options">> - -__Battles__: -<<if $terrain != "oceanic">> - <br><<if $battlesEnabled == 0>> - Battles are @@.red;DISABLED.@@ - <<link "Enable battles" "secExpOptions">> - <<set $battlesEnabled = 1>> - <</link>> - <<else>> - Battles are @@.cyan;ENABLED.@@ - <<link "Disable battles" "secExpOptions">> - <<set $battlesEnabled = 0>> - <</link>> - <</if>> - <br> //Enable/disable battles.// - <<if $battlesEnabled == 1>> - <br> - <<if $majorBattlesEnabled == 0>> - Major battles are @@.red;DISABLED.@@ - <<link "Enable major battles" "secExpOptions">> - <<set $majorBattlesEnabled = 1>> - <<set $battlesEnabled = 1>> - <</link>> - <<else>> - Major battles are @@.cyan;ENABLED.@@ - <<link "Disable major battles" "secExpOptions">> - <<set $majorBattlesEnabled = 0>> - <</link>> - <</if>> - <br> //Enable/disable late game large scale battles.// - <br> - <<if $majorBattleGameOver == 0>> - Major battles can cause gameover is @@.red;FALSE.@@ - <<link "Activate game loss in case of major battle defeat" "secExpOptions">> - <<set $majorBattleGameOver = 1>> - <</link>> - <<else>> - Major battles can cause gameover is @@.cyan;TRUE.@@ - <<link "Deactivate game loss in case of major battle defeat" "secExpOptions">> - <<set $majorBattleGameOver = 0>> - <</link>> - <</if>> - <br> //By default a total defeat in a major battle will cause a gameover.// - <br> - <<if $forceBattle == 0>> - Battle guaranteed this week is @@.red;FALSE.@@ - <<link "Force engagement every week" "secExpOptions">> - <<set $forceBattle = 1>> - <</link>> - - <<else>> - Battle guaranteed this week is @@.cyan;TRUE.@@ - <<link "Do not force engagement every week" "secExpOptions">> - <<set $forceBattle = 0>> - <<set $forceMajorBattle = 0>> - <</link>> - <</if>> - <br> //Will force battles to happen every week.// - <br> - <<if $forceMajorBattle == 0>> - Major battle guaranteed this week is @@.red;FALSE.@@ - <<link "Force major engagement every week" "secExpOptions">> - <<set $forceMajorBattle = 1>> - <<set $forceBattle = 1>> - <</link>> - <<else>> - Major battle guaranteed this week is @@.cyan;TRUE.@@ - <<link "Do not force major engagement every week" "secExpOptions">> - <<set $forceMajorBattle = 0>> - <</link>> - <</if>> - <br> //Will force major battles to happen every week. // - <</if>> -<<else>> - <br>Oceanic arcologies are not by default subject to external attacks. You can however allow them to happen anyway. If you choose to do so please keep in mind that descriptions and mechanics are not intended for naval combat but land combat. - <br> - <<if $battlesEnabled == 0>> - Battles are @@.red;DISABLED.@@ - <<link "Enable battles" "secExpOptions">> - <<set $battlesEnabled = 1>> - <</link>> - <<else>> - Battles are @@.cyan;ENABLED.@@ - <<link "Disable battles" "secExpOptions">> - <<set $battlesEnabled = 0>> - <</link>> - <</if>> - <br> //Enable/disable battles.// - <<if $battlesEnabled == 1>> - <br> - <<if $majorBattlesEnabled == 0>> - Major battles are @@.red;DISABLED.@@ - <<link "Enable major battles" "secExpOptions">> - <<set $majorBattlesEnabled = 1>> - <<set $battlesEnabled = 1>> - <</link>> - <<else>> - Major battles are @@.cyan;ENABLED.@@ - <<link "Disable major battles" "secExpOptions">> - <<set $majorBattlesEnabled = 0>> - <</link>> - <</if>> - <br> //Enable/disable late game large scale battles.// - <br> - <<if $majorBattleGameOver == 0>> - Major battles can cause gameover is @@.red;FALSE.@@ - <<link "Activate game loss in case of major battle defeat" "secExpOptions">> - <<set $majorBattleGameOver = 1>> - <</link>> - <<else>> - Major battles can cause gameover is @@.cyan;TRUE.@@ - <<link "Deactivate game loss in case of major battle defeat" "secExpOptions">> - <<set $majorBattleGameOver = 0>> - <</link>> - <</if>> - <br> //By default a total defeat in a major battle will cause a gameover.// - <br> - <<if $forceBattle == 0>> - Battle guaranteed this week is @@.red;FALSE.@@ - <<link "Force engagement every week" "secExpOptions">> - <<set $forceBattle = 1>> - <</link>> - <<else>> - Battle guaranteed this week is @@.cyan;TRUE.@@ - <<link "Do not force engagement every week" "secExpOptions">> - <<set $forceBattle = 0>> - <</link>> - <</if>> - <br> //Will force battles to happen every week.// - <br> - <<if $forceMajorBattle == 0>> - Major battle guaranteed this week is @@.red;FALSE.@@ - <<link "Force major engagement every week" "secExpOptions">> - <<set $forceMajorBattle = 1>> - <<set $forceBattle = 1>> - <</link>> - <<else>> - Major battle guaranteed this week is @@.cyan;TRUE.@@ - <<link "Do not force major engagement every week" "secExpOptions">> - <<set $forceMajorBattle = 0>> - <</link>> - <</if>> - <br> //Will force major battles to happen every week. // - <</if>> -<</if>> -<br> -<br> -__Rebellions__: - <br> - <<if $rebellionsEnabled == 0>> - Rebellions are @@.red;DISABLED.@@ - <<link "Enable rebellions" "secExpOptions">> - <<set $rebellionsEnabled = 1>> - <</link>> - <<else>> - Rebellions are @@.cyan;ENABLED.@@ - <<link "Disable rebellions" "secExpOptions">> - <<set $rebellionsEnabled = 0>> - <</link>> - <</if>> - <br> //Enable/disable rebellions.// - <br> - <<if $rebellionsEnabled == 1>> - <<if $rebellionGameOver == 0>> - Rebellions can cause gameover is @@.red;FALSE.@@ - <<link "Activate game loss in case of rebellions succeeding" "secExpOptions">> - <<set $rebellionGameOver = 1>> - <</link>> - <<elseif $rebellionGameOver == 1>> - Rebellions can cause gameover is @@.cyan;TRUE.@@ - <<link "Deactivate game loss in case of rebellions succeeding" "secExpOptions">> - <<set $rebellionGameOver = 0>> - <</link>> - <</if>> - <br> //Determines whether a total defeat in a rebellion will cause a gameover.// - <br> - <<if $forceRebellion == 0>> - Rebellions guaranteed this week is @@.red;FALSE.@@ - <<link "Force engagement every week" "secExpOptions">> - <<set $forceRebellion = 1>> - <</link>> - <<else>> - Rebellions guaranteed this week is @@.cyan;TRUE.@@ - <<link "Do not force engagement every week" "secExpOptions">> - <<set $forceRebellion = 0>> - <</link>> - <</if>> - <br> //Will force rebellions to happen every week. Rebellions will take precedence over battles.// - <</if>> - -<<if $showBattleStatistics == 0 &&($battlesEnabled == 1 || $rebellionsEnabled == 1)>> - <br> - <br> - Detailed battle statistics are @@.red;HIDDEN.@@ - <<link "Enable detailed battle statistics" "secExpOptions">> - <<set $showBattleStatistics = 1>> - <</link>> - <br> //Will show detailed statistics and battle turns.// - <br><br> -<<elseif ($battlesEnabled == 1 || $rebellionsEnabled == 1)>> - <br> - <br> - Detailed battle statistics are @@.cyan;SHOWN.@@ - <<link "Disable detailed battle statistics" "secExpOptions">> - <<set $showBattleStatistics = 0>> - <</link>> - <br> //Will show detailed statistics and battle turns.// -<</if>> - -<<if $allowPrestigeFromBattles == 0 && $battlesEnabled == 1>> - <br> - <br> - Battles can give prestige to slaves is @@.red;DISABLED.@@ - <<link "enable prestige from battles for slaves" "secExpOptions">> - <<set $allowPrestigeFromBattles = 1>> - <</link>> - <br> //If enabled, slaves will gain a rank of prestige for every 10 victories scored under their command.// - <br><br> -<<elseif $battlesEnabled == 1>> - <br> - <br> - Battles can give prestige to slaves is @@.cyan;ENABLED.@@ - <<link "Disable prestige from battles for slaves" "secExpOptions">> - <<set $allowPrestigeFromBattles = 0>> - <</link>> - <br> //If enabled, slaves will gain a rank of prestige for every 10 victories scored under their command.// -<</if>> - -<br> -<br> - -__Battles/Rebellions Difficulty__: -<br>Difficulty is set to:<span id="difficulty"> -<<if $difficulty == 0.5>> - @@.green;Very easy@@ -<<elseif $difficulty == 0.75>> - @@.limegreen;Easy@@ -<<elseif $difficulty == 1>> - @@.yellow;Normal@@ -<<elseif $difficulty == 1.25>> - @@.red;Hard@@ -<<else>> - @@.darkred;Very hard@@ -<</if>> -</span> -<br> -<<link "Very easy">> - <<set $difficulty = 0.5>> - <<replace "#difficulty">> - @@.green;Very easy@@ - <</replace>> -<</link>> -| <<link "Easy">> - <<set $difficulty = 0.75>> - <<replace "#difficulty">> - @@.limegreen;Easy@@ - <</replace>> -<</link>> -| <<link "Normal">> - <<set $difficulty = 1>> - <<replace "#difficulty">> - @@.yellow;Normal@@ - <</replace>> -<</link>> -| <<link "Hard">> - <<set $difficulty = 1.25>> - <<replace "#difficulty">> - @@.red;Hard@@ - <</replace>> -<</link>> -| <<link "Very hard">> - <<set $difficulty = 1.5>> - <<replace "#difficulty">> - @@.darkred;Very hard@@ - <</replace>> -<</link>> -<br> -<br> -__Battles frequency__: -<br>Battle frequency is set to:<span id="battleFrequency"> -<<if $battleFrequency == 0.5>> - @@.green;Very infrequent@@ -<<elseif $battleFrequency == 0.75>> - @@.limegreen;Infrequent@@ -<<elseif $battleFrequency == 1>> - @@.yellow;Normal@@ -<<elseif $battleFrequency == 1.25>> - @@.red;Frequent@@ -<<else>> - @@.darkred;Very frequent@@ -<</if>> -</span> -<br> -<<link "Very infrequent">> - <<set $battleFrequency = 0.5>> - <<replace "#battleFrequency">> - @@.green;Very infrequent@@ - <</replace>> -<</link>> -| <<link "Infrequent">> - <<set $battleFrequency = 0.75>> - <<replace "#battleFrequency">> - @@.limegreen;Infrequent@@ - <</replace>> -<</link>> -| <<link "Normal">> - <<set $battleFrequency = 1>> - <<replace "#battleFrequency">> - @@.yellow;Normal@@ - <</replace>> -<</link>> -| <<link "Frequent">> - <<set $battleFrequency = 1.25>> - <<replace "#battleFrequency">> - @@.red;Frequent@@ - <</replace>> -<</link>> -| <<link "Very frequent">> - <<set $battleFrequency = 1.5>> - <<replace "#battleFrequency">> - @@.darkred;Very frequent@@ - <</replace>> -<</link>> -<br> -<br> -__Major battle multiplier__: -<br>Major battle multiplier is set to:<span id="majorBattleMult"> -<<if $majorBattleMult == 0.5>> - @@.green;Very low@@ -<<elseif $majorBattleMult == 0.75>> - @@.limegreen;Low@@ -<<elseif $majorBattleMult == 1>> - @@.yellow;Normal@@ -<<elseif $majorBattleMult == 1.25>> - @@.red;high@@ -<<else>> - @@.darkred;Very high@@ -<</if>> -</span> -<br> -<<link "Very low">> - <<set $majorBattleMult = 0.5>> - <<replace "#majorBattleMult">> - @@.green;Very low@@ - <</replace>> -<</link>> -| <<link "Low">> - <<set $majorBattleMult = 0.75>> - <<replace "#majorBattleMult">> - @@.limegreen;Low@@ - <</replace>> -<</link>> -| <<link "Normal">> - <<set $majorBattleMult = 1>> - <<replace "#majorBattleMult">> - @@.yellow;Normal@@ - <</replace>> -<</link>> -| <<link "High">> - <<set $majorBattleMult = 1.25>> - <<replace "#majorBattleMult">> - @@.red;High@@ - <</replace>> -<</link>> -| <<link "Very high">> - <<set $majorBattleMult = 1.5>> - <<replace "#majorBattleMult">> - @@.darkred;Very high@@ - <</replace>> -<</link>> -<br> -<br> -__Rebellions buildup speed__: -<br>Rebellion speed is set to:<span id="rebellionSpeed"> -<<if $rebellionSpeed == 0.5>> - @@.green;Very slow@@ -<<elseif $rebellionSpeed == 0.75>> - @@.limegreen;Slow@@ -<<elseif $rebellionSpeed == 1>> - @@.yellow;Normal@@ -<<elseif $rebellionSpeed == 1.25>> - @@.red;Fast@@ -<<else>> - @@.darkred;Very fast@@ -<</if>> -</span> -<br> -<<link "Very slow">> - <<set $rebellionSpeed = 0.5>> - <<replace "#rebellionSpeed">> - @@.green;Very slow@@ - <</replace>> -<</link>> -| <<link "Slow">> - <<set $rebellionSpeed = 0.75>> - <<replace "#rebellionSpeed">> - @@.limegreen;Slow@@ - <</replace>> -<</link>> -| <<link "Normal">> - <<set $rebellionSpeed = 1>> - <<replace "#rebellionSpeed">> - @@.yellow;Normal@@ - <</replace>> -<</link>> -| <<link "Fast">> - <<set $rebellionSpeed = 1.25>> - <<replace "#rebellionSpeed">> - @@.red;Fast@@ - <</replace>> -<</link>> -| <<link "Very fast">> - <<set $rebellionSpeed = 1.5>> - <<replace "#rebellionSpeed">> - @@.darkred;Very fast@@ - <</replace>> -<</link>> - - -<br> -<br> - -__Debug/cheats:__ -<<run MenialPopCap()>> -<br> -<<link "Set loyalty high" "secExpOptions">> - <<for _i = 0; _i < $militiaUnits.length; _i++>> - <<set $militiaUnits[_i].loyalty = random(80,100)>> - <</for>> - - <<for _i = 0; _i < $slaveUnits.length; _i++>> - <<set $slaveUnits[_i].loyalty = random(80,100)>> - <</for>> - - <<for _i = 0; _i < $mercUnits.length; _i++>> - <<set $mercUnits[_i].loyalty = random(80,100)>> - <</for>> -<</link>> -| <<link "Set loyalty average" "secExpOptions">> - <<for _i = 0; _i < $militiaUnits.length; _i++>> - <<set $militiaUnits[_i].loyalty = random(40,60)>> - <</for>> - - <<for _i = 0; _i < $slaveUnits.length; _i++>> - <<set $slaveUnits[_i].loyalty = random(40,60)>> - <</for>> - - <<for _i = 0; _i < $mercUnits.length; _i++>> - <<set $mercUnits[_i].loyalty = random(40,60)>> - <</for>> -<</link>> -| <<link "Set loyalty low" "secExpOptions">> - <<for _i = 0; _i < $militiaUnits.length; _i++>> - <<set $militiaUnits[_i].loyalty = random(20)>> - <</for>> - - <<for _i = 0; _i < $slaveUnits.length; _i++>> - <<set $slaveUnits[_i].loyalty = random(20)>> - <</for>> - - <<for _i = 0; _i < $mercUnits.length; _i++>> - <<set $mercUnits[_i].loyalty = random(20)>> - <</for>> -<</link>> -| <<link "Randomize loyalty" "secExpOptions">> - <<for _i = 0; _i < $militiaUnits.length; _i++>> - <<set $militiaUnits[_i].loyalty = random(100)>> - <</for>> - - <<for _i = 0; _i < $slaveUnits.length; _i++>> - <<set $slaveUnits[_i].loyalty = random(100)>> - <</for>> - - <<for _i = 0; _i < $mercUnits.length; _i++>> - <<set $mercUnits[_i].loyalty = random(100)>> - <</for>> -<</link>> -<br><<link "Give Authority" "secExpOptions">> - <<set $authority = Math.clamp($authority + 1000, 0, 20000)>> -<</link>> -| <<link "Remove Authority" "secExpOptions">> - <<set $authority = Math.clamp($authority - 1000, 0, 20000)>> -<</link>> -<br><<link "Raise security" "secExpOptions">> - <<set $security = Math.clamp($security + 5, 0, 100)>> -<</link>> -| <<link "Lower security" "secExpOptions">> - <<set $security = Math.clamp($security - 5, 0, 100)>> -<</link>> -<br><<link "Raise crime" "secExpOptions">> - <<set $crime = Math.clamp($crime + 5, 0, 100)>> -<</link>> -| <<link "Lower crime" "secExpOptions">> - <<set $crime = Math.clamp($crime - 5, 0, 100)>> -<</link>> -<br><<link "Give menial slaves" "secExpOptions">> - <<set $menials = Math.clamp($menials + 30, 0, $PopCap)>> -<</link>> -| <<link "Remove menial slaves" "secExpOptions">> - <<set $menials = Math.clamp($menials - 30, 0, $PopCap)>> -<</link>> -<br><<link "Give militia manpower" "secExpOptions">> - <<set $militiaFreeManpower += 30>> - <<recalcManpower>> -<</link>> -| <<link "Remove militia manpower" "secExpOptions">> - <<set $militiaFreeManpower = Math.clamp($militiaFreeManpower - 30, 0, $militiaFreeManpower)>> - <<recalcManpower>> -<</link>> -<br><<link "Give mercs manpower" "secExpOptions">> - <<set $mercFreeManpower += 30>> - <<recalcManpower>> -<</link>> -| <<link "Remove mercs manpower" "secExpOptions">> - <<set $mercFreeManpower = Math.clamp($mercFreeManpower - 30, 0, $mercFreeManpower)>> - <<recalcManpower>> -<</link>> -<br><<link "Add citizens" "secExpOptions">> /*Will no longer work as intended due to population changes*/ - <<set $lowerClass += 200>> -<</link>> -| <<link "Remove citizens" "secExpOptions">> /*also no longer properly functional*/ - <<set $lowerClass -= 200>> - <<if $lowerClass < 0>> - <<set $lowerClass = 0>> - <</if>> -<</link>> -<br><<link "Add slaves" "secExpOptions">> /*Will work to a limited degree, minimums and maximums for slaves are set through population*/ - <<set $NPCSlaves += 200>> -<</link>> -| <<link "Remove slaves" "secExpOptions">> /*Will work to a limited degree*/ - <<set $NPCSlaves -= 200>> - <<if $NPCSlaves < 0>> - <<set $NPCSlaves = 0>> - <</if>> -<</link>> -<br><<link "Raise prosperity" "secExpOptions">> - <<set $arcologies[0].prosperity = Math.clamp($arcologies[0].prosperity + 10, 0, 1000)>> -<</link>> -| <<link "Lower prosperity" "secExpOptions">> - <<set $arcologies[0].prosperity = Math.clamp($arcologies[0].prosperity - 10, 0, 1000)>> -<</link>> diff --git a/src/SecExp/secExpSmilingMan.tw b/src/SecExp/secExpSmilingMan.tw index bc9a7c5025f688030cf75a642b55a4c28784e634..4d2fc8a2a132267b8541c6d98ddd85c08678d185 100644 --- a/src/SecExp/secExpSmilingMan.tw +++ b/src/SecExp/secExpSmilingMan.tw @@ -6,6 +6,7 @@ <<setAssistantPronouns>> <<if $smilingManProgress == 0>> <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> + <<set $fcnn.push("...encryption techniques: how to protect you and your loved ones from hackers ...")>> <br> /* TODO: fix grammatical errors and clean this block up */ During your morning routine, you come across a peculiar report: it's been several weeks now that your arcology has been the victim of a series of cyber-crimes conducted by a mysterious figure. @@ -62,6 +63,7 @@ </span> <<elseif $smilingManProgress == 1>> <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> + <<set $fcnn.push("...cybersecurity market is booming thanks to a series of recent high-profile attacks...")>> <br> You have just reached your penthouse when your faithful assistant appears in front of you, evidently excited. @@ -131,6 +133,7 @@ </span> <<elseif $smilingManProgress == 2>> <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> + <<set $fcnn.push("...my money safe the old-fashioned way: I store it all underneath my mattress...")>> <br> <<set $smilingManWeek = $week>> @@ -166,25 +169,25 @@ <<for _i = 1; _i < $sectors.length; _i++>> <<if $sectors[_i].ownership == 1>> <<if $sectors[_i].type != "Brothel">> - <<if $sectors[_i].type != "Club">> - <<if $sectors[_i].type != "Arcade">> - <<if $sectors[_i].type != "Dairy">> - <<if $sectors[_i].type != "Pit">> - <<if $sectors[_i].type != "Sweatshops">> - <<if $sectors[_i].type != "Pens">> - <<if $sectors[_i].type != "Barracks">> - <<if random(1,100) >= 66>> - <<set $sectors[_i].ownership = 0>> - Vast amount of data relative to the ownership of the arcology is lost. You lost all legal claims to one of the sectors. - <<break>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> + <<if $sectors[_i].type != "Club">> + <<if $sectors[_i].type != "Arcade">> + <<if $sectors[_i].type != "Dairy">> + <<if $sectors[_i].type != "Pit">> + <<if $sectors[_i].type != "Sweatshops">> + <<if $sectors[_i].type != "Pens">> + <<if $sectors[_i].type != "Barracks">> + <<if random(1,100) >= 66>> + <<set $sectors[_i].ownership = 0>> + Vast amount of data relative to the ownership of the arcology is lost. You lost all legal claims to one of the sectors. + <<break>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> + <</if>> <</if>> <</if>> <</for>> @@ -239,6 +242,7 @@ </span> <<elseif $smilingManProgress == 3>> <<set $nextButton = " ">> + <<set $fcnn.push("...sometimes high-tech problems have low-tech solutions. Back to you in the...")>> <<set $activeSlaveOneTimeMinAge = 16>> <<set $activeSlaveOneTimeMaxAge = 18>> diff --git a/src/SecExp/securityHQ.tw b/src/SecExp/securityHQ.tw index 8f9baa51be804c2840dc03c0530ce083faa5c333..d108018f2572663d66fcb3dd9909ecbe455531d6 100644 --- a/src/SecExp/securityHQ.tw +++ b/src/SecExp/securityHQ.tw @@ -6,7 +6,12 @@ <<set _HistoryDiscount = 1>> <</if>> -<<set $nextButton = "Back", $nextLink = "Manage Arcology">> +<<set $nextButton = "Back">> +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> Security Headquarters <hr> diff --git a/src/SecExp/securityReport.tw b/src/SecExp/securityReport.tw index bd57255876d73167b9d9c5c21f2a430927710c6c..9491178c60e3cd4f9df5586332257d8e12ace3a1 100644 --- a/src/SecExp/securityReport.tw +++ b/src/SecExp/securityReport.tw @@ -248,7 +248,7 @@ The security level of the arcology is <br><br> <strong>Crime</strong>: /* crime modifiers */ -Due to the deterioration of the old world countries, organized crime focuses more and more on the prosperous free cities, yours included. This has a +Due to the deterioration of the old world countries, organized crime focuses more and more on the prosperous Free Cities, yours included. This has a <<if $week < 30>> small <<set _crimeGrowth += 0.5>> diff --git a/src/SecExp/weaponsManufacturing.tw b/src/SecExp/weaponsManufacturing.tw index 20df59471911703944fe218d1806066ecd6efffd..40b68da7ab42ceba0e7dd63192e86f1c90c521ef 100644 --- a/src/SecExp/weaponsManufacturing.tw +++ b/src/SecExp/weaponsManufacturing.tw @@ -6,7 +6,7 @@ This sector of the arcology has been dedicated to weapons manufacturing. These f <<if $militiaUnits.length > 0>> your militia and<</if>> <<if $slaveUnits.length > 0>> your slave soldiers and<</if>> <<if $mercenaries > 0>> your mercenaries and<</if>> -many small old world nations as the advanced technology that free cities have available is hard to come by otherwise. +many small old world nations as the advanced technology that Free Cities have available is hard to come by otherwise. <br> <<if $weapProductivity == 1>> Production is completely manned by human workers. The complex has close to zero automation. @@ -175,13 +175,13 @@ __Markets__: <</if>> <br> <<if $sellTo.FC == 1>> - We are currently selling our weapons to other free cities. + We are currently selling our weapons to other Free Cities. <<link "Forbid">> <<set $sellTo.FC = 0>> <<goto "weaponsManufacturing">> <</link>> <<else>> - We are not selling our weaponry to other free cities. + We are not selling our weaponry to other Free Cities. <<link "Allow">> <<set $sellTo.FC = 1>> <<goto "weaponsManufacturing">> diff --git a/src/SpecialForce/Firebase.tw b/src/SpecialForce/Firebase.tw index 99719e7385c19691bed1e195c6dacaf81a13088a..69fb6b795784a79c2e5a1605b6630e362009149b 100644 --- a/src/SpecialForce/Firebase.tw +++ b/src/SpecialForce/Firebase.tw @@ -10,7 +10,14 @@ <<set _EnvCash2 = 500,_EnvCash3 = 250,_EnvCash4 = 150,_EnvProsp = 5>> <<case 2>> <<set _EnvCash2 = 550,_EnvCash3 = 300,_EnvCash4 = 200,_EnvProsp = 7>> - <</switch>> <<set $nextButton = "Back to Manage Arcology",$nextLink = "Manage Arcology">> + <</switch>> + + <<set $nextButton = "Back">> + <<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> + <<else>> + <<set $nextLink = "Main">> + <</if>> <<if $cheatMode > 0>> [[Cheat edit|CheatEdit][]] <br> <</if>> The firebase of $arcologies[0].name's <<textbox "$SF.Lower" $SF.Lower "Firebase">> is located in the lower levels, occupying unneeded warehouse space. It is not accessible to the general citizenry, but your personal elevator has express service to it. As you step off, two soldiers in combat armor manning the entry checkpoint tense before recognizing their Marshal and stepping aside with a sharp salute.<br> diff --git a/src/cheats/PCCheatMenu.tw b/src/cheats/PCCheatMenu.tw index 71f5e5c7a8d2cfe4065ae148e820781dc2f20c03..4f92d8b66370701ec2b3b19d60c2788f63fd1756 100644 --- a/src/cheats/PCCheatMenu.tw +++ b/src/cheats/PCCheatMenu.tw @@ -71,8 +71,6 @@ Sex: ''$tempSlave.genes'' <br>''Boobs Implant'': <<textbox "$tempSlave.boobsImplant" $tempSlave.boobsImplant>> //do you have breast implants - 0: no, 1: yes// <br>''Lactation'': <<textbox "$tempSlave.lactation" $tempSlave.lactation>> //are you lactating - 0: no, 1: yes// <br> -<br>''Belly'': <<textbox "$tempSlave.belly" $tempSlave.belly>> -<br> <br>''Butt Size'': <<textbox "$tempSlave.butt" $tempSlave.butt>> //0: normal, 1: big, 2: huge, 3: enormous// <br>''Butt Implant'': <<textbox "$tempSlave.buttImplant" $tempSlave.buttImplant>> //do you have butt implants - 0: no, 1: yes// <br> diff --git a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw index e13e86908279c93bbc3a4a85e65eec3f3b5e4a6f..ae92b59b7f8142076525b567a7312d35664fe4a0 100644 --- a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw +++ b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw @@ -1,6 +1,11 @@ :: MOD_Edit Arcology Cheat Datatype Cleanup [nobr] -<<set $nextButton = "Continue", $nextLink = "Manage Arcology">> +<<set $nextButton = "Continue">> +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> <<if $customEvalCode>> <<if $customEvalCode.charAt(0) != "(" || $nextLink == ")">> /* second condition is only there for sanityCheck */ diff --git a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw index b4963b908dbebaba21b6f747226e3bbd9fe88fba..b935d57d6efe6242e91accd84cdbfc4cfd77b660 100644 --- a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw +++ b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw @@ -175,7 +175,7 @@ <<print "Slave's physical age is equal to or higher than male puberty age, puberty set to 1 (post-puberty)" >><br> <<set $tempSlave.pubertyXY = 1>> <</if>> -<<if $tempSlave.breedingMark == 1 && ["be a subordinate slave", "be confined in the arcade", "be the DJ", "be the Madam", "live with your Head Girl", "serve in the club", "serve the public", "whore", "work a glory hole", "work in the brothel", "work in the dairy"].includes($tempSlave.assignment)>> +<<if $tempSlave.breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset" && ["be a subordinate slave", "be confined in the arcade", "be the DJ", "be the Madam", "live with your Head Girl", "serve in the club", "serve the public", "whore", "work a glory hole", "work in the brothel", "work in the dairy"].includes($tempSlave.assignment)>> <<print "Eugenics breeding marked slave detected in questionable use, defaulting slave assignment to 'rest'">><br> <<= assignJob($tempSlave, "rest")>> <</if>> diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js index b6adeb7c28b83df5f014888d62021fb95757702b..b68143949e3fd27625b646698e491de3569034e6 100644 --- a/src/endWeek/saWhore.js +++ b/src/endWeek/saWhore.js @@ -1236,7 +1236,7 @@ window.saWhore = (function saWhore() { break; case "painal queen": if (canDoAnal(slave)) { - r += ` {He}'s a favorite among customers who like to assrape a struggling whore.`; + r += ` ${He}'s a favorite among customers who like to assrape a struggling whore.`; } break; case "strugglefuck queen": diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw index 1189556739d53aafe5293f7caba0144f3124b80f..fa265d3fd044ef02d2161dcbe192bbb4dc88527b 100644 --- a/src/events/intro/introSummary.tw +++ b/src/events/intro/introSummary.tw @@ -592,8 +592,8 @@ __''Player Character''__ <br> <<options $PC.title>> You are a $PCCreationSex. Change to: - <<option 1 "masculine Master" "$PC.genes = 'XY', $PCCreationSex = \"masculine ''Master''\"">> - <<option 0 "feminine Mistress" "$PC.genes = 'XX', $PCCreationSex = \"feminine ''Mistress''\"">> + <<option 1 "Masculine Master" "$PC.genes = 'XY', $PCCreationSex = \"masculine ''Master''\"">> + <<option 0 "Feminine Mistress" "$PC.genes = 'XX', $PCCreationSex = \"feminine ''Mistress''\"">> <</options>> <br> diff --git a/src/facilities/dairy/dairyFramework.js b/src/facilities/dairy/dairyFramework.js index 0aaf95e3fa6459219f0717b9f5aafdaa5ded4a61..25e92e35c815c3c2713e90b1c767dcf7c6697511 100644 --- a/src/facilities/dairy/dairyFramework.js +++ b/src/facilities/dairy/dairyFramework.js @@ -43,7 +43,7 @@ App.Entity.Facilities.DairyCowJob = class extends App.Entity.Facilities.Facility if ((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) { r.push(`${slave.slaveName}'s indenture allows only free range milking.`); } - if (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestraintsSetting > 0) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset" && V.dairyRestraintsSetting > 0) { r.push(`${slave.slaveName} may only be a free range cow.`); } if ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0))) { diff --git a/src/facilities/farmyard/food/foodMarket.tw b/src/facilities/farmyard/food/foodMarket.tw index 09fd3aed69631540da6305721b7990eb2d25a52f..dd8d988dd097eb8de838f19694eced7d43269cd9 100644 --- a/src/facilities/farmyard/food/foodMarket.tw +++ b/src/facilities/farmyard/food/foodMarket.tw @@ -6,58 +6,64 @@ <<set _foodValue = $foodStored*$foodCost>> /* FIXME: currently costs 25 / kg, will need tweaking */ The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage, valued at a total of @@.yellowgreen;<<print cashFormat(_foodValue)>>.@@ +<<if $sideBarOptions.compact > 0>> + <<set _link = "Manage Arcology">> +<<else>> + <<set _link = "Main">> +<</if>> + /* TODO: allow for the buying and selling of food */ <br> -<<link "Buy <<= massFormat(1)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*1), "farmyard"), $foodStored += 1>><</link>> -| <<link "<<= massFormat(10)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*10), "farmyard"), $foodStored += 10>><</link>> -| <<link "<<= massFormat(100)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*100), "farmyard"), $foodStored += 100>><</link>> -| <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*1000), "farmyard"), $foodStored += 1000>><</link>> -| <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set cashX(forceNeg($foodCost*10000), "farmyard"), $foodStored += 10000>><</link>> +<<link "Buy <<= massFormat(1)>>" _link>><<set cashX(forceNeg($foodCost*1), "farmyard"), $foodStored += 1>><</link>> +| <<link "<<= massFormat(10)>>" _link>><<set cashX(forceNeg($foodCost*10), "farmyard"), $foodStored += 10>><</link>> +| <<link "<<= massFormat(100)>>" _link>><<set cashX(forceNeg($foodCost*100), "farmyard"), $foodStored += 100>><</link>> +| <<link "<<= massFormat(1000)>>" _link>><<set cashX(forceNeg($foodCost*1000), "farmyard"), $foodStored += 1000>><</link>> +| <<link "<<= massFormat(10000)>>" _link>><<set cashX(forceNeg($foodCost*10000), "farmyard"), $foodStored += 10000>><</link>> <<if $foodStored > 0>> <br> - <<link "Sell <<= massFormat(1)>>" "Manage Arcology">><<set cashX(($foodCost*1), "farmyard"), $foodStored -= 1>><</link>> + <<link "Sell <<= massFormat(1)>>" _link>><<set cashX(($foodCost*1), "farmyard"), $foodStored -= 1>><</link>> <</if>> <<if $foodStored >= 10>> - | <<link "<<= massFormat(10)>>" "Manage Arcology">><<set cashX(($foodCost*10), "farmyard"), $foodStored -= 10>><</link>> + | <<link "<<= massFormat(10)>>" _link>><<set cashX(($foodCost*10), "farmyard"), $foodStored -= 10>><</link>> <</if>> <<if $foodStored >= 100>> - | <<link "<<= massFormat(100)>>" "Manage Arcology">><<set cashX(($foodCost*100), "farmyard"), $foodStored -= 100>><</link>> + | <<link "<<= massFormat(100)>>" _link>><<set cashX(($foodCost*100), "farmyard"), $foodStored -= 100>><</link>> <</if>> <<if $foodStored >= 1000>> - | <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set cashX(($foodCost*1000), "farmyard"), $foodStored -= 1000>><</link>> + | <<link "<<= massFormat(1000)>>" _link>><<set cashX(($foodCost*1000), "farmyard"), $foodStored -= 1000>><</link>> <</if>> <<if $foodStored >= 10000>> - | <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set cashX(($foodCost*10000), "farmyard"), $foodStored -= 10000>><</link>> + | <<link "<<= massFormat(10000)>>" _link>><<set cashX(($foodCost*10000), "farmyard"), $foodStored -= 10000>><</link>> <</if>> <<if $food > 0>> <br> - <<link "Store <<= massFormat(1)>>" "Manage Arcology">><<set $foodStored += 1, $food -= 1>><</link>> + <<link "Store <<= massFormat(1)>>" _link>><<set $foodStored += 1, $food -= 1>><</link>> <</if>> <<if $food >= 10>> - | <<link "<<= massFormat(10)>>" "Manage Arcology">><<set $foodStored += 10, $food -= 10>><</link>> + | <<link "<<= massFormat(10)>>" _link>><<set $foodStored += 10, $food -= 10>><</link>> <</if>> <<if $food >= 100>> - | <<link "<<= massFormat(100)>>" "Manage Arcology">><<set $foodStored += 100, $food -= 100>><</link>> + | <<link "<<= massFormat(100)>>" _link>><<set $foodStored += 100, $food -= 100>><</link>> <</if>> <<if $food >= 1000>> - | <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set $foodStored += 1000, $food -= 1000>><</link>> + | <<link "<<= massFormat(1000)>>" _link>><<set $foodStored += 1000, $food -= 1000>><</link>> <</if>> <<if $food >= 10000>> - | <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set $foodStored += 10000, $food -= 10000>><</link>> + | <<link "<<= massFormat(10000)>>" _link>><<set $foodStored += 10000, $food -= 10000>><</link>> <</if>> <<if $foodStored > 0>> <br> - <<link "Retrieve <<= massFormat(1)>>" "Manage Arcology">><<set $food += 1, $foodStored -= 1>><</link>> + <<link "Retrieve <<= massFormat(1)>>" _link>><<set $food += 1, $foodStored -= 1>><</link>> <</if>> <<if $foodStored >= 10>> - | <<link "<<= massFormat(10)>>" "Manage Arcology">><<set $food += 10, $foodStored -= 10>><</link>> + | <<link "<<= massFormat(10)>>" _link>><<set $food += 10, $foodStored -= 10>><</link>> <</if>> <<if $foodStored >= 100>> - | <<link "<<= massFormat(100)>>" "Manage Arcology">><<set $food += 100, $foodStored -= 100>><</link>> + | <<link "<<= massFormat(100)>>" _link>><<set $food += 100, $foodStored -= 100>><</link>> <</if>> <<if $foodStored >= 1000>> - | <<link "<<= massFormat(1000)>>" "Manage Arcology">><<set $food += 1000, $foodStored -= 1000>><</link>> + | <<link "<<= massFormat(1000)>>" _link>><<set $food += 1000, $foodStored -= 1000>><</link>> <</if>> <<if $foodStored >= 10000>> - | <<link "<<= massFormat(10000)>>" "Manage Arcology">><<set $food += 10000, $foodStored -= 10000>><</link>> + | <<link "<<= massFormat(10000)>>" _link>><<set $food += 10000, $foodStored -= 10000>><</link>> <</if>> diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw index f304faa51f8446f6fed87b98336e10c72b4d750e..b27c31a13f3812120dd00e6650033d14be694334 100644 --- a/src/facilities/nursery/childInteract.tw +++ b/src/facilities/nursery/childInteract.tw @@ -869,7 +869,7 @@ <<replace "#bellyAccessory">> $activeChild.bellyAccessory<</replace>> <</link>> -<<if ($activeChild.breedingMark != 1 || !$propOutcome)>> +<<if ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> | <<link "Extreme corset">> <<set $activeChild.bellyAccessory = "an extreme corset">> <<replace "#bellyAccessory">> @@ -921,7 +921,7 @@ <<replace "#buttplug">> $activeChild.buttplug<</replace>> <</link>> -<<if isItemAccessible("long plug") && ($activeChild.breedingMark != 1 || !$propOutcome)>> +<<if isItemAccessible("long plug") && ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> | <<link "Long">> <<set $activeChild.buttplug = "long plug">> <<replace "#buttplug">> @@ -933,7 +933,7 @@ <<replace "#buttplug">> $activeChild.buttplug<</replace>> <</link>> -<<if isItemAccessible("long, large plug") && ($activeChild.breedingMark != 1 || !$propOutcome)>> +<<if isItemAccessible("long, large plug") && ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> | <<link "Long and large">> <<set $activeChild.buttplug = "long, large plug">> <<replace "#buttplug">> @@ -946,7 +946,7 @@ $activeChild.buttplug<</replace>> <</link>><</if>> <<if isItemAccessible("long, huge plug")>> - <<if ($activeChild.breedingMark != 1 || !$propOutcome) && $activeChild.anus >= 2>> + <<if ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl) && $activeChild.anus >= 2>> | <<link "Long and huge">> <<set $activeChild.buttplug = "long, huge plug">> <<replace "#buttplug">> @@ -990,7 +990,7 @@ <<replace "#vaginalAccessory">> $activeChild.vaginalAccessory<</replace>> <</link>> - <<if isItemAccessible("long dildo") && ($activeChild.breedingMark != 1 || !$propOutcome)>> + <<if isItemAccessible("long dildo") && ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> | <<link "Long dildo">> <<set $activeChild.vaginalAccessory = "long dildo">> <<replace "#vaginalAccessory">> @@ -1002,7 +1002,7 @@ <<replace "#vaginalAccessory">> $activeChild.vaginalAccessory<</replace>> <</link>> - <<if isItemAccessible("long, large dildo") && ($activeChild.breedingMark != 1 || !$propOutcome)>> + <<if isItemAccessible("long, large dildo") && ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> | <<link "Large and long dildo">> <<set $activeChild.vaginalAccessory = "long, large dildo">> <<replace "#vaginalAccessory">> @@ -1014,7 +1014,7 @@ <<replace "#vaginalAccessory">> $activeChild.vaginalAccessory<</replace>> <</link>><</if>> - <<if isItemAccessible("long, huge dildo") && ($activeChild.breedingMark != 1 || !$propOutcome)>> + <<if isItemAccessible("long, huge dildo") && ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> <<if $activeChild.vagina >= 2>>| <<link "Huge and long dildo">> <<set $activeChild.vaginalAccessory = "long, huge dildo">> <<replace "#vaginalAccessory">> @@ -1299,7 +1299,7 @@ | Weight loss pills <</if>> <</if>> - <<if $precociousPuberty && $pubertyHormones && ($activeChild.breedingMark != 1 || !$propOutcome)>> + <<if $precociousPuberty && $pubertyHormones && ($activeChild.breedingMark != 1 || !$propOutcome || $eugenicsFullControl)>> <<if ($activeChild.ovaries || $activeChild.mpreg) && $activeChild.pubertyXX == 0>> | <<link "Female hormone injections">> <<set $activeChild.drugs = "female hormone injections">><<SlaveInteractDrugs>><</link>> diff --git a/src/facilities/pit/pitFramework.js b/src/facilities/pit/pitFramework.js index 9280cc191ff4eb0c73c592d467a81e2106e53526..8694f2301c70d6d893799f9d97b5e05e233abca3 100644 --- a/src/facilities/pit/pitFramework.js +++ b/src/facilities/pit/pitFramework.js @@ -21,7 +21,7 @@ App.Entity.Facilities.PitFighterJob = class extends App.Entity.Facilities.Facili */ canEmploy(slave) { let r = super.canEmploy(slave); - if (slave.breedingMark === 1 && State.variables.propOutcome === 1) { + if (slave.breedingMark === 1 && State.variables.propOutcome === 1 && State.variables.eugenicsFullControl !== 1 && State.variables.arcologies[0].FSRestart !== "unset") { r.push(`${slave.slaveName} may not participate in combat.`); } if (slave.indentureRestrictions > 1) { diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index 9d5436bc54b168962bd021faa7755bb9fb729ded..47781b5c246d7d9f0bc3111659d747fb817b3b6e 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -2591,7 +2591,7 @@ LORE: INTERVIEWS <br>''hexall90'' for height growth drugs, incubator organ farm support and detailing, the dispensary cleanup, the joint Eugenics bad end rework with ''SFanon (blank)'', the Hippolyta Academy, and the Security Expansion Mod. <br>''sensei'' for coding in support for commas and an excellent family tree rework. <br>''laziestman'' for sexy spats. - <br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary rewrite, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''. + <br>''SFanon (blank)'' for SF related work, passive player skill gain, fulfillment order, player into summary and options rewriting, general fixes, storyCaption overhauling, updating and re-organizing the in-game wiki in addition to the joint Eugenics bad end rework with ''hexall90''. <br>''anon'' for extending FCGudder's economy reports to the other facilities. <br>''MilkAnon'' for his contributions to FCTV and the FC world in general. <br>''valen102938'' for dealing with vector art, both creating new art and utilizing unused art. diff --git a/src/init/setupVars.tw b/src/init/setupVars.tw index 20be846515bd044bc4356305e0d99501a227c8e7..8b327839f79af68e8f9a5e687faef0ca290c80a1 100644 --- a/src/init/setupVars.tw +++ b/src/init/setupVars.tw @@ -5,7 +5,8 @@ */ /* prosthetic stuff */ -<<set setup.prostheticIDs = ["basicL", "beautyL", "cochlear", "combatL", "combatT", "cyberneticL", "electrolarynx", "erectile", "interfaceP1", "interfaceP2", "interfaceTail", "modT", "ocular", "sexL", "sexT"]>> +/* do not change order, order = display order */ +<<set setup.prostheticIDs = ["interfaceP1", "interfaceP2", "basicL", "sexL", "beautyL", "combatL", "cyberneticL", "ocular", "cochlear", "electrolarynx", "interfaceTail", "modT", "sexT", "combatT", "erectile"]>> /* .name is expected to be singular and uncapitalized; 10 = 1 week without upgrades */ <<set setup.prosthetics = { diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 57548f9702d3d9657344b2b568ebdaef507e10b6..243abdd51914de8676c4e101a301fa6d6cbfaa12 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -1521,7 +1521,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $postSexCleanUp = 1>> -<<set $sideBarOptions = {Cash:1, Upkeep:1, SexSlaveCount:1, roomPop:1, Rep:1, GSP:1, Authority:1, Security:1, Crime:1}>> +<<set $sideBarOptions = {compact:1, Cash:1, Upkeep:1, SexSlaveCount:1, roomPop:1, Rep:1, GSP:1, Authority:1, Security:1, Crime:1}>> <<set $DefaultBirthDestination = "individually decided fates">> <<set $abbreviateHormoneBalance = 2>> diff --git a/src/interaction/main/toychest.js b/src/interaction/main/toychest.js index 2b35b8db014fc8ecefc2a2e5e47958aba5a59cdd..78965d47422e33624452f829ec24309ee1fc3a2e 100644 --- a/src/interaction/main/toychest.js +++ b/src/interaction/main/toychest.js @@ -132,11 +132,11 @@ App.Interact.ToyChest = function(slave) { break; case "a succubus outfit": r += `${He}'s dressed to look like a succubus. There is a demon`; - if ($PC.title === 0) { + if (V.PC.title === 0) { r += `ess`; } r += `in this office, and ${he} serves `; - if ($PC.title === 0) { + if (V.PC.title === 0) { r += `her.`; } else { r += `him.`; diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw index aa86a2c4eb6f30b7d71c77564fa6e1180ee19b55..10b0338b53822110cfd50cb3ab7f2f6a80725250 100644 --- a/src/interaction/prostheticConfig.tw +++ b/src/interaction/prostheticConfig.tw @@ -421,7 +421,7 @@ Fit prosthetics to $him: <<case "detachTail">> <<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Config">> - <<set $activeSlave.tail = "none", $activeSlave.tailShape = "none", set $activeSlave.tailColor = "none">> + <<set $activeSlave.tail = "none", $activeSlave.tailShape = "none", $activeSlave.tailColor = "none">> You send the release signal and the mechanical lock disengages allowing the artificial tail to pop right off. <<case "attachTail">> diff --git a/src/interaction/prothesticLab.tw b/src/interaction/prothesticLab.tw index 3eae836a64384884cedcf2b6aa95c6420f775f68..a1310dd8b4b1fa52bf2a915b767778bcb6e90b2a 100644 --- a/src/interaction/prothesticLab.tw +++ b/src/interaction/prothesticLab.tw @@ -190,7 +190,7 @@ Prosthetic Lab <</capture>> //Costs <<= cashFormat(setup.prosthetics[_p].costs)>> of initial investment.// <<else>> - //You need better contracts to get the needed research material for researching <<= capFirstChar(setup.prosthetics[_p].name)>>.// + //You need better contracts to get the required research material for reverse engineering <<= capFirstChar(setup.prosthetics[_p].name)>>.// <</if>> <br> <</if>> diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index c199a8fe389264ff516ca23df376ce001fba7a47..5371e9ca59ec9fa27f7e523a58472403face10d9 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -117,7 +117,7 @@ window.DefaultRules = (function() { break; case "be confined in the arcade": - if ((V.arcadeSlaves < V.arcade && slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0))) { + if ((V.arcadeSlaves < V.arcade && slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset"))) { break; } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment @@ -162,7 +162,7 @@ window.DefaultRules = (function() { break; case "work in the brothel": - if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) { + if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset"))) { break; } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment @@ -171,7 +171,7 @@ window.DefaultRules = (function() { break; case "serve in the club": - if ((V.clubSlaves < V.club && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) { + if ((V.clubSlaves < V.club && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset"))) { break; } else { RAFacilityRemove(slave, rule); // before deleting rule.setAssignment @@ -183,7 +183,7 @@ window.DefaultRules = (function() { if ((V.dairy > V.dairySlaves + V.bioreactorsXY + V.bioreactorsXX + V.bioreactorsHerm + V.bioreactorsBarren)) { if ((slave.indentureRestrictions > 0) && (V.dairyRestraintsSetting > 1)) { break; - } else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestraintsSetting > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0)))) { + } else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset" && V.dairyRestraintsSetting > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0)))) { break; } else { if ((slave.lactation > 0 || ((V.dairySlimMaintainUpgrade === 0 || V.dairySlimMaintain === 0) && (slave.boobs > 300 || slave.dick === 0 || V.dairyImplantsSetting === 1) && V.dairyImplantsSetting !== 2)) || (slave.balls > 0)) { @@ -285,7 +285,7 @@ window.DefaultRules = (function() { break; case "work a glory hole": - if (slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0)) { + if (slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl == 1 || V.arcologies[0].FSRestart === "unset")) { break; } else { delete rule.setAssignment; @@ -295,7 +295,7 @@ window.DefaultRules = (function() { case "whore": case "serve the public": case "stay confined": - if ((slave.fuckdoll === 0) && (slave.breedingMark !== 1 || V.propOutcome === 0)) { + if ((slave.fuckdoll === 0) && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl == 1 || V.arcologies[0].FSRestart === "unset")) { break; } else { delete rule.setAssignment; @@ -615,21 +615,21 @@ window.DefaultRules = (function() { break; case "long dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length dildo for ${his} pussy.`; slave.vaginalAccessory = "dildo"; } break; case "long, large dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length large dildo for ${his} pussy.`; slave.vaginalAccessory = "large dildo"; } break; case "long, huge dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length huge dildo for ${his} pussy.`; slave.vaginalAccessory = "huge dildo"; } else { @@ -676,21 +676,21 @@ window.DefaultRules = (function() { break; case "long dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length dildo for ${his} pussy.`; slave.vaginalAccessory = "dildo"; } break; case "long, large dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length large dildo for ${his} pussy.`; slave.vaginalAccessory = "large dildo"; } break; case "long, huge dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length huge dildo for ${his} pussy.`; slave.vaginalAccessory = "huge dildo"; } else { @@ -737,21 +737,21 @@ window.DefaultRules = (function() { break; case "long dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length dildo for ${his} pussy.`; slave.vaginalAccessory = "dildo"; } break; case "long, large dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length large dildo for ${his} pussy.`; slave.vaginalAccessory = "large dildo"; } break; case "long, huge dildo": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length huge dildo for ${his} pussy.`; slave.vaginalAccessory = "huge dildo"; } else { @@ -989,21 +989,21 @@ window.DefaultRules = (function() { break; case "long plug": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length plug for ${his} anus.`; slave.buttplug = "plug"; } break; case "long, large plug": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length large plug for ${his} anus.`; slave.buttplug = "large plug"; } break; case "long, huge plug": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length huge plug for ${his} anus.`; slave.buttplug = "huge plug"; } else { @@ -1050,21 +1050,21 @@ window.DefaultRules = (function() { break; case "long plug": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length plug for ${his} anus.`; slave.buttplug = "plug"; } break; case "long, large plug": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length large plug for ${his} anus.`; slave.buttplug = "large plug"; } break; case "long, huge plug": - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.eugenicsFullControl !== 1 && V.arcologies[0].FSRestart !== "unset") { r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length huge plug for ${his} anus.`; slave.buttplug = "huge plug"; } else { @@ -1495,13 +1495,13 @@ window.DefaultRules = (function() { break; case "female hormone injections": - if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) { + if (!((slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset") && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) { flag = false; } break; case "male hormone injections": - if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && slave.balls > 0 && slave.pubertyXY === 0)) { + if (!((slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset") && slave.balls > 0 && slave.pubertyXY === 0)) { flag = false; } break; @@ -1567,7 +1567,7 @@ window.DefaultRules = (function() { break; case "super fertility drugs": - if (!(slave.indentureRestrictions < 1 && (slave.breedingMark !== 1 || V.propOutcome === 0))) { + if (!(slave.indentureRestrictions < 1 && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset"))) { flag = false; } break; @@ -1968,7 +1968,7 @@ window.DefaultRules = (function() { * @param {object} rule */ function ProcessPregnancyDrugs(slave, rule) { - if (slave.pregKnown === 1 && rule.pregSpeed !== null && (slave.breedingMark !== 1 || V.propOutcome === 0) && slave.indentureRestrictions < 1 && slave.broodmother === 0) { + if (slave.pregKnown === 1 && rule.pregSpeed !== null && (slave.breedingMark !== 1 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset") && slave.indentureRestrictions < 1 && slave.broodmother === 0) { if (rule.pregSpeed === "slow" && slave.preg < slave.pregData.minLiveBirth) { slave.pregControl = "slow gestation"; r += `<br>${slave.slaveName} is pregnant, so ${he} has been put on the gestation slowing agents.`; @@ -2312,6 +2312,16 @@ window.DefaultRules = (function() { } } } + + if (rule.hornColor !== undefined && (rule.hornColor !== null)) { + if (slave.horn !== "none") { + if ((slave.hornColor !== rule.hornColor)) { + slave.hornColor = rule.hornColor; + cashX(forceNeg(V.modCost), "slaveMod", slave); + r += `<br>${slave.slaveName}'s horns has been dyed ${rule.hornColor}.`; + } + } + } if (rule.hStyle !== undefined && (rule.hStyle !== null)) { if (slave.bald !== 1) { diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index bf21ac6e685b060be72fe87b638637a0f32c05e7..97b806e8e4fe396e756e36f4920b146507089a58 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -2385,6 +2385,7 @@ App.Entity.SlaveState = class SlaveState { static makeSkeleton() { return { counter: {}, + brand: {}, porn: { fame: {} }, diff --git a/src/js/assayJS.js b/src/js/assayJS.js index 6aa3d37989c6bf75b91e7b8d777a05105bfb764f..05752850be0c008c3977994196455f06389ee6e9 100644 --- a/src/js/assayJS.js +++ b/src/js/assayJS.js @@ -1884,7 +1884,7 @@ window.DegradingName = function DegradingName(slave) { if (slave.labia > 1) { suffixes.push("Curtains", "Flower", "Lips"); } - if (slave.breedingMark === 1 && V.propOutcome === 1) { + if (slave.breedingMark === 1 && V.propOutcome === 1 && V.arcologies[0].FSRestart !== "unset") { suffixes.push("Breeder", "Oven", "Womb"); } if (slave.butt > 5) { diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js index 57be013faddd41b8e9f7fe44b9220ccc69f7db4d..02b750b9f48250a36e1149d7a6ba1384f115c00e 100644 --- a/src/js/generateGenetics.js +++ b/src/js/generateGenetics.js @@ -10,7 +10,9 @@ window.generateGenetics = (function() { let V; // intelligence and face parameters are the same so we can use the same distribution for both values - const fuzzy = (a, b) => normalRandInt((a+b)/2, 20, -100, 100); + // clamping makes edge values (-100, 100) more likely; this is expected behaviour + // please see https://gitgud.io/pregmodfan/fc-pregmod/issues/852 + const fuzzy = (a, b) => Math.clamp(normalRandInt((a+b)/2, 20), -100, 100); function generateGenetics(actor1, actor2, x) { V = State.variables; @@ -1756,6 +1758,11 @@ window.generateChild = function(mother, ova, destination) { } child.premature = 1; } + if (child.geneticQuirks.dwarfism === 2 && child.geneticQuirks.gigantism !== 2) { + child.height = Height.random(child, {limitMult: [-4, -1], spread: 0.15}); + } else if (child.geneticQuirks.gigantism === 2 && child.geneticQuirks.dwarfism !== 2) { + child.height = Height.random(child, {limitMult: [3, 10], spread: 0.15}); + } child.face = genes.face; child.underArmHStyle = genes.underArmHStyle; child.pubicHStyle = genes.pubicHStyle; diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js index b1ed14d3311e6030e8255296f4ff462a9dbba61e..f9f5f011fa08abb4baed98c8cad7eda885df3e42 100644 --- a/src/js/rulesAssistant.js +++ b/src/js/rulesAssistant.js @@ -296,6 +296,7 @@ App.RA.newRule = function() { makeup: null, nails: null, hColor: null, + hornColor: null, hLength: null, haircuts: null, hStyle: null, @@ -412,6 +413,8 @@ App.RA.newRule = function() { hair: null, bodyhair: null, vasectomy: null, + earShape: null, + horn: null, bellyImplant: null }; } diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 26fc203c8b9359711d15e25580028c60b1f0fd3f..475c176bab55f9c31f1acc557767473e25b72a5a 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1594,6 +1594,7 @@ window.rulesAssistantOptions = (function() { this.appendChild(new ArmpitHairStyleList()); this.appendChild(new SkinColorList()); this.appendChild(new MarkingsList()); + this.appendChild(new HornColorList()); } } @@ -1658,6 +1659,8 @@ window.rulesAssistantOptions = (function() { if (V.bellyImplants > 0) { this.appendChild(new BellyImplantList()); } + this.appendChild(new EarShapeSurgeryList()); + this.appendChild(new HornSurgeryList()); } } @@ -3010,6 +3013,40 @@ window.rulesAssistantOptions = (function() { } } + class HornColorList extends ListSelector { + constructor() { + const pairs = [ + ["golden"], + ["copper"], + ["red"], + ["deep red"], + ["green"], + ["pink"], + ["dark brown"], + ["brown"], + ["burgundy"], + ["jet black"], + ["black"], + ["grey"], + ["silver"], + ["white"], + ["blue-violet"], + ["purple"], + ["dark orchid"], + ["sea green"], + ["green-yellow"], + ["dark blue"], + ["blazing red"], + ["neon green"], + ["neon blue"], + ["neon pink"] + ]; + super("Horn color", pairs); + this.setValue(current_rule.set.hornColor); + this.onchange = (value) => current_rule.set.hornColor = value; + } + } + class HairStyleList extends ListSelector { constructor() { const pairs = [ @@ -3904,7 +3941,6 @@ window.rulesAssistantOptions = (function() { } } - class BodyHairSurgeryList extends RadioSelector { constructor() { const items = [ @@ -3929,6 +3965,37 @@ window.rulesAssistantOptions = (function() { } } + class EarShapeSurgeryList extends RadioSelector { + constructor() { + const items = [ + ["normal ears", 1], + ["small eflin ears", 2], + ["long elfin ears", 3], + ["bovine ears", 4], + ]; + super("Ear Shape", items, true); + this.setValue(current_rule.set.surgery.earShape); + this.onchange = (value) => current_rule.set.surgery.earShape = value; + } + } + + class HornSurgeryList extends RadioSelector { + constructor() { + const items = [ + ["none", 1], + ["curved succubus horns", 2], + ["backswept horns", 3], + ["cow horns", 4], + ["one long oni horn", 5], + ["two long oni horns", 6], + ["small horns", 7], + ]; + super("Horn Implants", items, true); + this.setValue(current_rule.set.surgery.horn); + this.onchange = (value) => current_rule.set.surgery.horn = value; + } + } + class AutomaticAssignmentList extends ListSelector { constructor() { const items = [ diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js index 2d4d1700d844f3431852a25774284e43a1a754a1..c19f52da1ba8c255230e732f14b50523e8975cef 100644 --- a/src/js/rulesAutosurgery.js +++ b/src/js/rulesAutosurgery.js @@ -435,6 +435,44 @@ window.rulesAutosurgery = (function() { V.surgeryType = "bellyOut"; } } + if(slave.health > 20 && surgeries.length < 3) { + if (slave.horn !== "none" && thisSurgery.horn === 1) { + commitProcedure(`surgery to remove ${his} implanted horns`, s => { s.horn = "none"; }); + } + else if (slave.horn !== "curved succubus horns" && thisSurgery.horn === 2) { + commitProcedure(`surgery to implant ${his} with curved succubus horns`, s => { s.horn = "curved succubus horns"; s.hornColor = "white"; }); + } + else if (slave.horn !== "backswept horns" && thisSurgery.horn === 3) { + commitProcedure(`surgery to implant ${his} with backswept horns`, s => { s.horn = "backswept horns"; s.hornColor = "white"; }); + } + else if (slave.horn !== "cow horns" && thisSurgery.horn === 4) { + commitProcedure(`surgery to implant ${his} with cow horns`, s => { s.horn = "cow horns"; s.hornColor = "white"; }); + } + else if (slave.horn !== "one long oni horn" && thisSurgery.horn === 5) { + commitProcedure(`surgery to implant ${his} with one long oni horn`, s => { s.horn = "one long oni horn"; s.hornColor = "white"; }); + } + else if (slave.horn !== "two long oni horns" && thisSurgery.horn === 6) { + commitProcedure(`surgery to implant ${his} with two long oni horns`, s => { s.horn = "two long oni horns"; s.hornColor = "white"; }); + } + else if (slave.horn !== "small horns" && thisSurgery.horn === 7) { + commitProcedure(`surgery to implant ${his} with small horns`, s => { s.horn = "small horns"; s.hornColor = "white"; }); + } + } + if(slave.health > 20 && surgeries.length < 3) { + if (slave.earShape !== "normal" && thisSurgery.earShape === 1) { + commitProcedure(`surgery to restore ${his} modified ears`, s => { s.earShape = "normal"; }); + } + else if (slave.earShape !== "pointy" && thisSurgery.earShape === 2) { + commitProcedure(`surgery to modify ${his} ears into a pair of small pointy ears`, s => { s.earShape = "pointy"; }); + } + else if (slave.earShape !== "elven" && thisSurgery.earShape === 3) { + commitProcedure(`surgery to modify ${his} ears into a pair of elven ears`, s => { s.earShape = "elven"; }); + } + else if (slave.earShape !== "ushi" && thisSurgery.earShape === 4) { + commitProcedure(`surgery to modify ${his} ears into a pair of bovine-like ears`, s => { s.earShape = "ushi"; }); + } + } + } /** diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js index e820129cbca9539a4741ccc7f3fc1f7ba172ae08..56e765743f9c09382adfd28888604f40d1ee633b 100644 --- a/src/js/slaveCostJS.js +++ b/src/js/slaveCostJS.js @@ -1289,7 +1289,7 @@ window.Beauty = (function() { beauty += 0.1 * beauty; } if (slave.breedingMark === 1) { - if (V.propOutcome === 1) { + if (V.propOutcome === 1 && V.arcologies[0].FSRestart !== "unset") { beauty = 2 * beauty; } else { beauty += 2; diff --git a/src/js/storyJS.js b/src/js/storyJS.js index b69371553a42fde3f8bbae7bd32e682ebbb53843..ebb7bddb9c94fb9d3a3f9e5f59f977a5810654bb 100644 --- a/src/js/storyJS.js +++ b/src/js/storyJS.js @@ -30,7 +30,7 @@ window.isSexuallyPure = function(slave) { if (!slave) { return null; } - return (slave.vagina < 1 && slave.anus < 1 && !slave.counter.anal && !slave.counter.vaginal && !slave.counter.oral && !slave.counter.mammary && !slave.counter.penetrative); + return (slave.vagina < 1 && slave.anus < 1 && !slave.counter.anal && !slave.counter.vaginal && !slave.counter.oral && !slave.counter.mammary && !slave.counter.penetrative && !slave.counter.publicUse); }; if (typeof interpolate === "undefined") { diff --git a/src/js/surgery.js b/src/js/surgery.js index 8a0065fcb97c8c82abb78ebf6e861ccee6a02b4f..874fc407656d9e6e35015361fab1a1bc6d45a9f7 100644 --- a/src/js/surgery.js +++ b/src/js/surgery.js @@ -358,7 +358,7 @@ App.Medicine.Surgery.sizingProcedures = function() { r.push(helper.reduce("slightly reduce", 25)); } } - if ((slave.boobsImplant === 0) && slave.indentureRestrictions < 2 && (slave.breedingMark !== 1 || V.propOutcome !== 1)) { + if ((slave.boobsImplant === 0) && slave.indentureRestrictions < 2 && (slave.breedingMark !== 1 || V.propOutcome !== 1 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) { if (slave.boobs >= 7000) { r.push(App.Medicine.Surgery.makeOption(types.reduction, "Mastectomy", 300 - slave.boobs, "perform mastectomy", diff --git a/src/npc/agent/agentSelect.tw b/src/npc/agent/agentSelect.tw index cbf4d513f7618cd35c6f9add72293838ea1939c1..52490fc1de9f0f07911259f03e780f88a4ad2d1d 100644 --- a/src/npc/agent/agentSelect.tw +++ b/src/npc/agent/agentSelect.tw @@ -4,7 +4,7 @@ ''Appoint an Agent from your devoted slaves:'' <<= App.UI.SlaveList.slaveSelectionList( - s => (s.fuckdoll === 0 && s.devotion > 20 && s.intelligence + s.intelligenceImplant > 15 && s.intelligenceImplant >= 15 && canWalk(s) && canSee(s) && canHear(s) && canTalk(s) && s.broodmother < 2 && (s.breedingMark !== 1 || State.variables.propOutcome === 0)), + s => (s.fuckdoll === 0 && s.devotion > 20 && s.intelligence + s.intelligenceImplant > 15 && s.intelligenceImplant >= 15 && canWalk(s) && canSee(s) && canHear(s) && canTalk(s) && s.broodmother < 2 && (s.breedingMark !== 1 || State.variables.propOutcome === 0 || State.variables.eugenicsFullControl !== 1 || State.variables.arcologies[0].FSRestart === "unset")), (slave, index) => App.UI.passageLink(SlaveFullName(slave), 'Agent Workaround', `$i = ${index}`), s => App.Entity.facilities.arcologyAgent.manager.slaveHasExperience(s) )>> diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw index 9211d5c1c9df1a2e7cb75b6b27630fa7985060a9..a4564a350dbeea94807cac764ba71315d327d447 100644 --- a/src/npc/databases/dSlavesDatabase.tw +++ b/src/npc/databases/dSlavesDatabase.tw @@ -467,7 +467,7 @@ <<set $heroSlaves.push(_HS)>> <<set _HS = App.Entity.SlaveState.makeSkeleton()>> -<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He was once a rising free cities politician who argued for compulsory female enslavement, but $he became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.genes = "XY", _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.ovaryAge = 44, _HS.health = 60, _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.race = "white", _HS.nationality = "French", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.skin = "spray tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.custom.desc = "Since becoming a slave $he has been turned into a little bimbo.">> +<<set _HS.slaveName = "Caroline", _HS.birthName = "Carl", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He was once a rising Free Cities politician who argued for compulsory female enslavement, but $he became an addict, fell into debt, and was subsequently enslaved.", _HS.birthWeek = random(0,51), _HS.genes = "XY", _HS.actualAge = 44, _HS.physicalAge = 44, _HS.visualAge = 44, _HS.ovaryAge = 44, _HS.health = 60, _HS.devotion = 90, _HS.height = 145, _HS.heightImplant = -1, _HS.race = "white", _HS.nationality = "French", _HS.eyeColor = "blue", _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.skin = "spray tanned", _HS.hLength = 70, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.heels = 1, _HS.boobs = 1100, _HS.boobsImplant = 400, _HS.nipplesPiercing = 1, _HS.areolae = 1, _HS.butt = 4, _HS.buttImplant = 2, _HS.face = 55, _HS.faceImplant = 65, _HS.lips = 55, _HS.lipsImplant = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.preg = -2, _HS.anus = 2, _HS.anusTat = "bleached", _HS.makeup = 3, _HS.nails = 1, _HS.earPiercing = 1, _HS.navelPiercing = 1, _HS.legsTat = "degradation", _HS.stampTat = "degradation", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.skill.entertainment = 35, _HS.drugs = "breast injections", _HS.addict = 1, _HS.clothes = "slutty jewelry", _HS.collar = "tight steel", _HS.intelligence = -90, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "humiliation", _HS.behavioralFlaw = "arrogant", _HS.custom.tattoo = "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", _HS.custom.desc = "Since becoming a slave $he has been turned into a little bimbo.">> <<set $heroSlaves.push(_HS)>> <<if $seePreg != 0>> diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw index 6c9e5dc31defa5979d70a8d468eab46691ad9c08..e62ba4484cecbdf87e343dbc966f688b928d5259 100644 --- a/src/npc/fFeelings.tw +++ b/src/npc/fFeelings.tw @@ -1397,7 +1397,7 @@ My favorite part of my body i<<s>> <<if $arcologies[0].FSSlimnessEnthusiast >= 10>> <<if ($activeSlave.weight > 30)>> I know I'm an ugly fat <<s>>lut. I wi<<sh>> I were <<s>>lim. - <<elseif $activeSlave.belly >= 1500 && $arcologies[0].FSRepopulationFocus == "unset" && $activeSlave.breedingMark == 0>> + <<elseif $activeSlave.belly >= 1500 && $arcologies[0].FSRepopulationFocus != "unset" && $propOutcome == 0 && $activeSlave.breedingMark == 0>> I know I'm an ugly fat <<s>>lut. I wi<<sh>> my belly wa<<s>>n't <<s>>o big. <<elseif $activeSlave.butt > 3>> I know I'm an ugly, fat a<<ss>>ed <<s>>lut. I wi<<sh>> it wa<<s>> <<s>>maller. diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw index 4573e031fc304f50af867023e33ed6c39c174979..4b1ce967d7bc5cf3d39b3568df02e05628c7a167 100644 --- a/src/pregmod/analyzePregnancy.tw +++ b/src/pregmod/analyzePregnancy.tw @@ -236,7 +236,7 @@ <br><br> Rename: <<textbox "_tempName" _tempName >> [[Apply | Analyze Pregnancy][$activeSlave.womb[_ap].genetics.name = _tempName]] - <<if $activeSlave.womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($activeSlave.breedingMark == 0 && $propOutcome == 1) || ($activeSlave.womb[_ap].fatherID != -1 && $activeSlave.womb[_ap].fatherID != -6))>> + <<if $activeSlave.womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || $activeSlave.breedingMark == 0 || $propOutcome == 0 || ($activeSlave.womb[_ap].fatherID != -1 && $activeSlave.womb[_ap].fatherID != -6))>> <br> <<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus($activeSlave, _ap)>><</link>> <<if $surgeryUpgrade == 1>> diff --git a/src/pregmod/forceFeeding.tw b/src/pregmod/forceFeeding.tw index 6388bc9e467216b2fe350c8d39dce006abb72407..e79afdc10097e4c8108112667648e8e8a8db9cad 100644 --- a/src/pregmod/forceFeeding.tw +++ b/src/pregmod/forceFeeding.tw @@ -278,11 +278,11 @@ and a little jiggle from $his gut. <<elseif $activeSlave.devotion < -20>> struggles to down every sip you give $him and pants heavily whenever $he gets the chance. <<elseif $activeSlave.fetish == "submissive">> - struggles to down every sip you give $him and pants heavily when ever $he gets the chance. + struggles to down every sip you give $him and pants heavily whenever $he gets the chance. <<elseif $activeSlave.behavioralFlaw == "gluttonous">> forces down every sip you give $him and pants heavily when $his mouth isn't full. <<elseif $activeSlave.devotion <= 20>> - struggles to down every sip you give $him and pants heavily when ever $he gets the chance. + struggles to down every sip you give $him and pants heavily whenever $he gets the chance. <<elseif $activeSlave.devotion <= 50>> obediently downs every gulp you give $him and pants heavily between helpings. <<else>> diff --git a/src/pregmod/huskSlave.tw b/src/pregmod/huskSlave.tw index 4650ab634533650e0b8c5f0bf2ac8ca380e5aa39..586b18cb4e8f9b6fe4c81ed1d0e97e700f72a41e 100644 --- a/src/pregmod/huskSlave.tw +++ b/src/pregmod/huskSlave.tw @@ -39,6 +39,7 @@ Nationality: | [[Pacific Islander|Husk Slave][$huskSlave.race = "pacific islander"]] | [[Malay|Husk Slave][$huskSlave.race = "malay"]] | [[Mixed Race|Husk Slave][$huskSlave.race = "mixed race"]] +| [[Not Important|Husk Slave][$huskSlave.race = "not important"]] <br><br> Virginity: @@ -49,7 +50,7 @@ Virginity: | [[Not Important|Husk Slave][$huskSlave.virgin = 1]] <br><br><br> -Reserving a body will cost <<print cashFormat(10000)>> up front. Canceling an order will refund your money, however if a delivered body is rejected; your money will not be refunded. +Reserving a body will cost <<print cashFormat(10000)>> up front. Canceling an order will refund your money; however, if a delivered body is rejected, your money will not be refunded. <<if $huskSlaveOrdered == 1>> [[Withdraw body order|Main][$huskSlaveOrdered = 0, cashX(10000, "slaveTransfer")]] <<elseif $cash < 10000>> diff --git a/src/pregmod/seFCNNstation.tw b/src/pregmod/seFCNNstation.tw index 5194e518edab270ef42cad3ddc15e621c5218aaf..2d612161de1f33168a9e6819530518765bc3802a 100644 --- a/src/pregmod/seFCNNstation.tw +++ b/src/pregmod/seFCNNstation.tw @@ -21,6 +21,7 @@ and the price certainly seems outrageous, accepting the offer would likely be a <<replace "#result">> You accept the FCNN president's offer. He looks like he's about to burst into tears after hearing this, especially since you offer no caveats as well, but struggles to maintain a professional composure regardless. Before the week is over, FCNN has established their new headquarters in $arcologies[0].name. <<set cashX(forceNeg(100000), "capEx"), $arcologies[0].prosperity += 2, $FCNNstation = 1>> + <<set $fcnn.push("...is FCNN, broadcasting live from its international headquarters within...")>> <</replace>> <</link>> <br><<link "Decline">> diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/seFCTVshows.tw index 78eddb9e752b8e8508253c733790ddaa3c77fc04..d16bb65f664bc1aa97d8b66d465e69bb404f7f97 100644 --- a/src/pregmod/seFCTVshows.tw +++ b/src/pregmod/seFCTVshows.tw @@ -164,7 +164,7 @@ <<if $masterSuiteSlaves > 1 && $Concubine != 0>> <<setLocalPronouns $Concubine 2>> You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has @@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. Of course, the same could be said for the other eager slaves living in your bedroom, and the situation quickly devolves into a lust-filled orgy. - <<elseif $masterSuiteSlaves == 1 && $Concubine != 0>> + <<elseif $masterSuiteSlaves > 0 && $Concubine != 0>> <<setLocalPronouns $Concubine 2>> You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has @@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. Of course, the same could be said for the other eager slave living in your bedroom, and the situation quickly devolves into a lust-filled threesome. <<elseif $masterSuiteSlaves == 0 && $Concubine != 0>> @@ -172,7 +172,7 @@ You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has @@.pink;$Concubine.slaveName@@ eager for some attention from _his2 own arcology owner. You've trained _him2 well, and _he2 knows exactly how to please you. You spend the rest of the evening doing something a lot more fun than watching reality TV. <<elseif $masterSuiteSlaves > 1 && $Concubine == 0>> You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has the pleasure slaves in your bed eager for some attention from their own arcology owner. You spend the rest of the evening doing something a lot more fun than watching reality TV. - <<else>> + <<elseif $masterSuiteSlaves > 0>> You don't spend very much time actually watching the show; the randy opening, perverted competitions, and constant talk of creampies quickly has the pleasure slave in your bed eager for some attention from her own arcology owner. You spend the rest of the evening doing something a lot more fun than watching reality TV. <</if>> <<case 2>> @@ -214,7 +214,7 @@ <</if>> <<case 3 4>> - /* NOTE: These slaves are meant to be high quality and expensive, they are the product of the combined slave markets of all the free cities. Additionally, they won't follow the player's slave selling policies because they aren't being sold in the PC's arcology. Because they are purchased, it shouldn't be a balance issue or impact the game like a slave gift. */ + /* NOTE: These slaves are meant to be high quality and expensive, they are the product of the combined slave markets of all the Free Cities. Additionally, they won't follow the player's slave selling policies because they aren't being sold in the PC's arcology. Because they are purchased, it shouldn't be a balance issue or impact the game like a slave gift. */ <<set $showFour += 1, $lastShow = 4>> <<if $seeDicks == 0>> <<if $seePreg == 0>> @@ -739,8 +739,8 @@ </div> </div> <</if>> - a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the free cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV programming, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without. - <br><br>The woman makes two main points during the course of the documentary. The first is that the combined population of the free cities needs to grow explosively for 'Free City Society' to become stable. She points out several economic reasons, including the drive to invest in research and infrastructure. She has interviews with experts explaining the need for independence; that the Free Cities are still dependent on the old world industrially and financially, and that the population must expand dramatically to avoid going down with the metaphorical ship. The more Free Cities there are, the more they become free and independent of the old world. + a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the Free Cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV programming, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without. + <br><br>The woman makes two main points during the course of the documentary. The first is that the combined population of the Free Cities needs to grow explosively for 'Free City Society' to become stable. She points out several economic reasons, including the drive to invest in research and infrastructure. She has interviews with experts explaining the need for independence; that the Free Cities are still dependent on the old world industrially and financially, and that the population must expand dramatically to avoid going down with the metaphorical ship. The more Free Cities there are, the more they become free and independent of the old world. <br><br>The second point concerns the source of the new citizens and slaves that the Free Cities need. Her arguments concerning citizens focus on the unique culture of the Free Cities, and the direction that the future society will take. She points out that immigrants from the old world are rooted in its decaying culture. She asks her viewers how long it took them to adapt to their new lives, and how often they find themselves doubting their new home subconsciously. She admits that even she sometimes finds something wrong or repulsive, until she realizes that it's the ghost of her past life clinging to her. A noted psychologist talks about the strong hold people's earlier lives has on them, and how developing the promise of the Free Cities will need a generation untainted by the old world. The documentary's argument for slaves largely comes down to the fact that second-generation slaves are happier, better adjusted, and simply better slaves. <<if $IntelligenceEugenicsSMR != 0 || $HeightEugenicsSMR != 0 || $FaceEugenicsSMR != 0>> It also points out the practical problems that the mass importation of slaves will cause in the gene pool. @@ -895,8 +895,8 @@ </div> </div> <</if>> - a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the free cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV programming, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without. - <br><br>The woman makes two main points during the course of the documentary. The first is that the combined population of the free cities needs to grow explosively for 'Free City Society' to become stable. She points out several economic reasons, including the drive to invest in research and infrastructure. She has interviews with experts explaining the need for independence; that the Free Cities are still dependent on the old world industrially and financially, and that the population must expand dramatically to avoid going down with the metaphorical ship. The more Free Cities there are, the more they become free and independent of the old world. + a documentary on the surging Repopulation movement: "Continuing the Dream". After the opening credits, the documentary introduces a young and extremely pregnant woman as the commentator. The program makes an impassioned argument about the need for a new generation of citizens and slaves that were born into the dream of the Free Cities. The woman is wearing semi-conservative business attire, and has on elegant makeup. She looks somewhat plain when compared to the hyper-sexualized style of other FCTV programming, though she does make it plain over the course of the program that she loves sex more than ever. She tends to use herself as an example to show that pregnancy no longer means limitations or sacrifice, instead emphasizing that she's on her fifth pregnancy and would rather be with child than without. + <br><br>The woman makes two main points during the course of the documentary. The first is that the combined population of the Free Cities needs to grow explosively for 'Free City Society' to become stable. She points out several economic reasons, including the drive to invest in research and infrastructure. She has interviews with experts explaining the need for independence; that the Free Cities are still dependent on the old world industrially and financially, and that the population must expand dramatically to avoid going down with the metaphorical ship. The more Free Cities there are, the more they become free and independent of the old world. <br><br>The second point concerns the source of the new citizens and slaves that the Free Cities need. Her arguments concerning citizens focus on the unique culture of the Free Cities, and the direction that the future society will take. She points out that immigrants from the old world are rooted in its decaying culture. She asks her viewers how long it took them to adapt to their new lives, and how often they find themselves doubting their new home subconsciously. She admits that even she sometimes finds something wrong or repulsive, until she realizes that it's the ghost of her past life clinging to her. A noted psychologist talks about the strong hold people's earlier lives has on them, and how developing the promise of the Free Cities will need a generation untainted by the old world. The documentary's argument for slaves largely comes down to the fact that second-generation slaves are happier, better adjusted, and simply better slaves. <<if $IntelligenceEugenicsSMR != 0 || $HeightEugenicsSMR != 0 || $FaceEugenicsSMR != 0>> It also points out the practical problems that the mass importation of slaves will cause in the gene pool. diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw index 0fe578e2686ac7466f599d5f10e78b2f2e5bedd9..39cd7e6b8fe76124803f697a7391b92736dc86fd 100644 --- a/src/pregmod/seHuskSlaveDelivery.tw +++ b/src/pregmod/seHuskSlaveDelivery.tw @@ -7,7 +7,9 @@ <<set $one_time_age_overrides_pedo_mode = 1>> <<set $ageAdjustOverride = 1>> <<set $fixedNationality = $huskSlave.nationality>> -<<set $fixedRace = $huskSlave.race>> +<<if $huskSlave.race != "not important">> + <<set $fixedRace = $huskSlave.race>> +<</if>> <<if $huskSlave.sex == 2>> <<set $activeSlave = GenerateNewSlave("XY")>> <<set $activeSlave.boobs = 0>> diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw index 0e728709a6d1236a30aa693db2c6f74d181d11ed..d49a1646e24034a966428e16452b3f1ef98faffb 100644 --- a/src/pregmod/sePlayerBirth.tw +++ b/src/pregmod/sePlayerBirth.tw @@ -310,7 +310,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin $HeadGirl.slaveName cuts the cords, swaddles your children, and hands you @@.lime;your new <<print pregNumberName(_curBabies, 2)>>.@@ <</if>> <<elseif _concubinePresent == 1>> - $Concubine.slaveName alternates between calming your nerves and driving your to orgasm. It works fairly well, as your child rapidly enters the world alongside a particularly powerful climax. You reach down and draw @@.lime;your new baby <<if _gender == "XX">>girl<<else>>boy<</if>>@@ into your arms, while $Concubine.slaveName shifts to eagerly "clean" your crotch with _his2 tongue.<<if $PC.pregType > 1>> _His2 over-stimulation of you quickly has _him2 licking the crowning head of your second child. _He2 diligently works you over until all of your children are born, making sure you are thoroughly exhausted; both from the birth and from _his2 ministrations.<<if canPenetrate($Concubine) && canImpreg($PC, $Concubine)>> $Concubine.slaveName eyes your spread pussy hungrily as _his2 erection bobs with anticipation. But you're too tired right now and _he2 realizes it.<</if>> _He2 helps gather your child<<if $PC.pregType > 1>>ren<</if>> to<<if $Concubine.lactation > 0>> _his2 and <</if>> your breasts with the hope that you'll reward _him2 when you recover.<</if>> + $Concubine.slaveName alternates between calming your nerves and driving your to orgasm. It works fairly well, as your child rapidly enters the world alongside a particularly powerful climax. You reach down and draw @@.lime;your new baby <<if _gender == "XX">>girl<<else>>boy<</if>>@@ into your arms, while $Concubine.slaveName shifts to eagerly "clean" your crotch with _his2 tongue.<<if $PC.pregType > 1>> _His2 over-stimulation of you quickly has _him2 licking the crowning head of your second child. _He2 diligently works you over until all of your children are born, making sure you are thoroughly exhausted; both from the birth and from _his2 ministrations.<<if canPenetrate($Concubine) && canImpreg($PC, $Concubine)>> $Concubine.slaveName <<if canSee($Concubine)>>eyes<<else>>faces<</if>> your spread pussy hungrily as _his2 erection bobs with anticipation. But you're too tired right now and _he2 realizes it.<</if>> _He2 helps gather your child<<if $PC.pregType > 1>>ren<</if>> to<<if $Concubine.lactation > 0>> _his2 and <</if>> your breasts with the hope that you'll reward _him2 when you recover.<</if>> <<else>> You keep pushing and pushing, your child slowly working its way from your body. With the last of your strength, you bear down, freeing your child from your body at last. Panting, you gather @@.lime;your new baby <<if _gender == "XX">>girl<<else>>boy<</if>>@@ <<if $PC.pregType > 1>>as another contraction ushers your next child into your birth canal<<else>>and drift off into a much deserved rest<</if>>. <<if $PC.pregType >= 2>> diff --git a/src/pregmod/theHippolytaAcademy.tw b/src/pregmod/theHippolytaAcademy.tw index 63d2b45c30ad5834e4b647c0417c48cc40862a10..43c12e34288a87102c7ad6e0abafd67c34ca32d6 100644 --- a/src/pregmod/theHippolytaAcademy.tw +++ b/src/pregmod/theHippolytaAcademy.tw @@ -8,7 +8,7 @@ <</if>> // -The Hippolyta Academy is one of the most famous slave bodyguarding schools in all free cities. Its business model is to offer very high quality, highly trained girls. Their renowned amazonian maids are some of the best combatants in the world and can be often found at the side of the wealthiest citizens. +The Hippolyta Academy is one of the most famous slave bodyguarding schools in all the Free Cities. Its business model is to offer very high quality, highly trained girls. Their renowned amazonian maids are some of the best combatants in the world and can be often found at the side of the wealthiest citizens. <<if $HA.schoolUpgrade == 1>> Recently the school was able to enhance its educational programs thanks to your generous donation. Their slaves are now some of the most well trained and educated on the market. <<elseif $HA.schoolUpgrade == 2>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 8a03ebc7a564eac0b4e42350981e61f4b290faeb..6dda2a44335ac36161c394dba7831146790e95f5 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2887,14 +2887,10 @@ Setting missing slave variables: <</switch>> <<switch _Slave.origSkin>> -<<case "red dyed">> - <<set _Slave.origSkin = "dyed red">> -<<case "green dyed">> - <<set _Slave.origSkin = "dyed green">> -<<case "blue dyed">> - <<set _Slave.origSkin = "dyed blue">> -<<case "tanned">> +<<case "blue dyed" "dyed blue" "dyed green" "dyed red" "green dyed" "red dyed">> <<set _Slave.origSkin = randomRaceSkin(_Slave.origRace)>> +<<case "tanned">> + <<set _Slave.origSkin = "tan">> <<case "lightened">> <<set _Slave.origSkin = "light">> <<case "bronzed">> @@ -3936,11 +3932,12 @@ Done<br> <<set $upgradeMultiplierTrade = upgradeMultiplierTrade()>> <<if ndef $sideBarOptions>> - <<set $sideBarOptions = {Cash:1, Upkeep:1, SexSlaveCount:1, roomPop:1, Rep:1, GSP:1, Authority:1, Security:1, Crime:1}>> + <<set $sideBarOptions = {compact:1, Cash:1, Upkeep:1, SexSlaveCount:1, roomPop:1, Rep:1, GSP:1, Authority:1, Security:1, Crime:1}>> <</if>> <<if ndef $sideBarOptions.roomPop>> <<set $sideBarOptions.roomPop = 1>> <</if>> +<<if ndef $sideBarOptions.compact>> <<set $sideBarOptions.compact = 1>> <</if>> <<set $JobIDArray = resetJobIDArray()>> diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index f453451804598393ee260910286486fe4182f981..eddbb4338e40909f995a320b86ecc2fb90095460 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -16976,7 +16976,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He It may be for the best to not disturb $his unpeaceful slumber, you decide. Admiring the attractive view for just a moment longer, you turn back and head to your own bed. The next morning, it appears as though $activeSlave.slaveName doesn't even remember this nightmare. <</replace>> <</link>> -<<link "Hug $him">> +<br><<link "Hug $him">> <<EventNameDelink $activeSlave>> <<replace "#result">> You reach out to hug $him, but as soon as your hand touches $his shoulder, $he writhes instinctively away. <<if canSee($activeSlave)>>$His eyes fly open, searching frantically for $his assailant. Seeing that it's you, $he screams and scrabbles away even harder. After making it a few feet, $he collects $his wits enough to bring $himself to a stop and stop screaming, though $he continues to sob, staring at you in terror<<else>>$He gropes frantically for $his assailant, before making contact with you. $He screams and scrabbles away, only stopping when $he collides with the nearest solid object. <<if canHear($activeSlave)>>Only after several call outs that it is you does $he stop screaming, though $he continues to sob, listening to your every breath in terror<<else>>After screaming $himself hoarse, $he realizes that $his assault has abruptly ended, and gently feels around $his surroundings with a shaking hand to discover $himself back in $his room<</if>><</if>>. $He remains frozen in place as you slowly advance on $him and give $him a light embrace. $His tears gradually stop, but $he does not relax, <<if canSee($activeSlave)>>remaining dumbly stiff<<else>>continuing to quake in fear<</if>> within your arms. Eventually you let $him go, and $he crawls pathetically back under $his sheet, still weeping softly. It seems $he is @@.gold;more afraid of you@@ than ever, and if you thought that a simple hug could win $him over, you were wrong. diff --git a/src/uncategorized/assistantEvents.tw b/src/uncategorized/assistantEvents.tw index 4a6c58deecde0e19c98ece42c3f349edf0084738..aa6583df5a10216ef0fcc7825e6c829a08461cd3 100644 --- a/src/uncategorized/assistantEvents.tw +++ b/src/uncategorized/assistantEvents.tw @@ -1573,7 +1573,7 @@ __Personal Assistant and Market Assistant relationship styles:__ <<case "monstergirl">> is very pretty. $assistantName turns to the market assistant's avatar, introducing _himselfA. The _girlM gapes at $assistantName's ivory skin, horns, and tentacle hair, and blushes when _heM sees _hisM cocks. "Look all you like," $assistantName's avatar says. "You can taste them later." The market assistant's avatar blushes harder, but doesn't look away. <<case "shemale">> - an appropriate fuckbuddy. $assistantName laughs throatily and turns to the market assistant's avatar. The younger dickgirl tries to introduce _himselfM, but is cut off by the senior assistant's lascivious kiss. They start rubbing their dicks against each over, giggling into each others' mouths. + is an appropriate fuckbuddy. $assistantName laughs throatily and turns to the market assistant's avatar. The younger dickgirl tries to introduce _himselfM, but is cut off by the senior assistant's lascivious kiss. They start rubbing their dicks against each over, giggling into each others' mouths. <<case "schoolgirl">> looks pretty cute. $assistantName giggles, and the new _girlM giggles too. "Hey," $assistantName says to the market assistant's avatar, "Wanna be my <<= _girlM>>friend?" The market assistant's avatar nods cutely and says "Sure!" $assistantName's avatar kisses _himM girlishly, and goes a whole two seconds before sliding a hand down the front of the market assistant's avatar's skirt. <<case "goddess">> diff --git a/src/uncategorized/changeLanguage.tw b/src/uncategorized/changeLanguage.tw index a93f3ba2fcaefb6b3cc8700ce0da3988eb429741..478bb3aa6e03114cc7ac698e371f153ea3d3fbb9 100644 --- a/src/uncategorized/changeLanguage.tw +++ b/src/uncategorized/changeLanguage.tw @@ -1,6 +1,11 @@ :: Change Language [nobr] -<<set $nextButton = "Confirm changes", $nextLink = "Manage Arcology">> +<<set $nextButton = "Confirm changes">> +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> <<set $revivalistLanguage = 0>> <<if $arcologies[0].FSRomanRevivalist != "unset">> diff --git a/src/uncategorized/costsBudget.tw b/src/uncategorized/costsBudget.tw index 8241dc87680175c38dd202df1ca089ad996dc88f..d498355ed048cf49d0794d249e81de124513fd18 100644 --- a/src/uncategorized/costsBudget.tw +++ b/src/uncategorized/costsBudget.tw @@ -161,7 +161,7 @@ for (var i = 0; i < State.variables.lastWeeksCashIncome.length; i++){ <<print budgetLine("masterSuite", "<<if $masterSuite>>[[Master Suite][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]]<<else>>Master Suite<</if>> ($masterSuiteSlaves slaves)")>> - <<print budgetLine("school", "<<if $school>>[[$schoolroomNameCaps|Schoolroom][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]]<<else>>$schoolroomNameCaps<</if>> ($schoolroomSlaves slaves)")>> + <<print budgetLine("school", "<<if $schoolroom>>[[$schoolroomNameCaps|Schoolroom][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]]<<else>>$schoolroomNameCaps<</if>> ($schoolroomSlaves slaves)")>> <<print budgetLine("spa", "<<if $spa>>[[$spaNameCaps|Spa][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]]<<else>>$spaNameCaps<</if>> ($spaSlaves slaves)")>> diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw index 60afdc1ae75f995feec527bd398cdea37a96c588..fbaefa33f067a928d36fc38c01fdc5dda91fd696 100644 --- a/src/uncategorized/dairy.tw +++ b/src/uncategorized/dairy.tw @@ -184,6 +184,14 @@ The screens there alternate live views of the fashionably slim cows in their stalls with brief infomercials on the specialized techniques and equipment $dairyName uses to extract milk from such modest udders. <<case "Hedonistic">> The gallery is placed for a good view of each slave's fattened body and the undulations running through them from the force of the milkers<<if $dairyPregSetting || $dairyFeedersSetting || $dairyStimulatorsSetting>> and other assorted tubes and dildos<</if>>. + <<case "Intellectual Dependency">> + The screens there feature an active scan showcasing each slave's diminishing brain activity. + <<case "Slave Professionalism">> + It serves as a dire warning to what happens to unskilled, moronic slaves. + <<case "Petite Admiration">> + The gallery is placed for a good view of each slave's petite body. Those that don't fit in a standard milking unit are kept well out of sight. + <<case "Statuesque Glorification">> + The gallery is placed for a good view of each slave's body. Fascinated visitors may peruse each slave's productivity statistics contrasted against their height on a corresponding touchscreen. <<default>> Fascinated visitors may peruse each slave's productivity statistics on a corresponding touchscreen. <</switch>> @@ -240,6 +248,11 @@ is quite unusual. Since the cows it milks may not necessarily have gigantic boobs, the milking machines here can adapt to drain cream from any body. <<case "Hedonistic">> is comfortable and fun. The stalls are filled with thick, soft pillows to lounge on while hooked to the milking machines and with plenty of toys to make use of while getting milked. Cows here are expected to binge eat between milkings, since the best milk comes from cattle who are immobile, stuffed with food and hugely fat. + <<case "Intellectual Dependency">> + is simple and fun. Getting situated for milking is easy enough for even the dumbest cow to figure out and there are all sorts of activities to keep the cows amused between milkings. + <<case "Slave Professionalism">> + <<case "Petite Admiration">> + <<case "Statuesque Glorification">> <<default>> is comfortable and well-kept. It features nice rest areas for cows to lounge in after a milking, and exercise equipment to keep them healthy. <</switch>> diff --git a/src/uncategorized/labReport.tw b/src/uncategorized/labReport.tw index 0763ea7577f6558b381a51c54c806404658ce0c3..890243e08203db34e4c7f7932ec0ba89de2217d2 100644 --- a/src/uncategorized/labReport.tw +++ b/src/uncategorized/labReport.tw @@ -4,7 +4,7 @@ <br> <<if ($researchLab.hired + $researchLab.menials) > 0>> <<if $researchLab.tasks.length == 0>> - Since the lab is currently not working on any projects it takes contract work and earns you @@.yellowgreen;<<= cashFormat($researchLab.speed * 20)>>.@@ + Since the lab is currently not working on any projects it takes contract work and earns you @@.yellowgreen;<<= cashFormat($researchLab.speed * 90)>>.@@ <<set _cashX = ($researchLab.speed * 90)>> <<run cashX(_cashX, "lab")>> <<else>> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 663d8a3cde4b70aec1b2cbfb6933020f83c2ff2e..8a97e38d49c5b3cf6b5e00160ca68955a41fc13c 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -2225,7 +2225,7 @@ $He is $He can do nothing but writhe in agony at the pain of $his priapismic erection trapped in $his chastity cage. <<else>> <<if ($activeSlave.dick > 8)>> - $His oversized dick is painfulled engorged to a state of semi-hardness due to the priapism agents. + $His oversized dick is painfully engorged to a state of semi-hardness due to the priapism agents. <<elseif ($activeSlave.dick > 6)>> $He sports a painful, oversized erection due to the priapism agents. <<else>> diff --git a/src/uncategorized/matchmaking.tw b/src/uncategorized/matchmaking.tw index 4d74afbc1aece7e9d68a35b81b633f5f8deb7534..b5429aaca992e70e2438c094e4c519b5eea503d5 100644 --- a/src/uncategorized/matchmaking.tw +++ b/src/uncategorized/matchmaking.tw @@ -348,7 +348,7 @@ Despite $his devotion and trust, $he is still a slave, and probably knows that $ <<run cashX(-10000, "event")>> <</replace>> <</link>> - <<if ($eventSlave.vagina != 0) && ($eventSlave.anus != 0) && ($eventSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if ($eventSlave.vagina != 0) && ($eventSlave.anus != 0) && ($eventSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> <br> <<link "Orgiastic ceremony">> <<replace "#result2">> You order $assistantName to invite deserving citizens to an orgiastic ceremony for a slave being married to a slaveowner, and to make the arrangements. The wedding orgy will take place during the upcoming week. diff --git a/src/uncategorized/neighborInteract.tw b/src/uncategorized/neighborInteract.tw index 98e4ee74fc9cfddb6d7d4e44482fcb7da34ea724..7376a62617d12f12433a3803298cc3a79afa6e40 100644 --- a/src/uncategorized/neighborInteract.tw +++ b/src/uncategorized/neighborInteract.tw @@ -21,7 +21,13 @@ <<if $cheatMode == 1>> [[Cheat Edit Neighboring Arcologies|MOD_Edit Neighbor Arcology Cheat]]<br><br> <</if>> -<<set $nextLink = "Manage Arcology", $nextButton = "Back">> + +<<if $sideBarOptions.compact > 0>> + <<set $nextLink = "Manage Arcology">> +<<else>> + <<set $nextLink = "Main">> +<</if>> +<<set $nextButton = "Back">> You have <<print $arcologies.length-1>> neighbors. <br><br> <<if $arcologies[0].embargoTarget == -1>> diff --git a/src/uncategorized/neighborsDevelopment.tw b/src/uncategorized/neighborsDevelopment.tw index 2174ce8e87948a350e9644db4bcacba8f6faae6b..77fd15f84f3163a2fb0cf3055f7cf101f5e0ea61 100644 --- a/src/uncategorized/neighborsDevelopment.tw +++ b/src/uncategorized/neighborsDevelopment.tw @@ -523,14 +523,14 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(_prosperity)>><<if $sh <</if>> <<set _weekModifier = Math.max(1, (100-($week*2)))>> <<set $arcologies[$i].prosperity -= $arcologies[0].CyberEconomic*2, _WarSpoils = Math.ceil(10+Math.max(((100/_weekModifier)*$arcologies[$i].prosperity*$arcologies[0].CyberEconomic),0))>> - <<set $arcologies[$i].prosperity = Math.clamp($arcologies[$i].prosperity, 1, 300)>> + <<set $arcologies[$i].prosperity = Math.clamp($arcologies[$i].prosperity, 1, $AProsperityCap)>> <<if random(0,100) >= _Catchchance-(10*$arcologies[0].CyberEconomic)>> <<set $arcologies[0].prosperity -= $arcologies[0].CyberEconomic*3, _redHanded = 1>> <<run repX(forceNeg(random(100,200)), "war")>> <<if $secExp == 1>> <<set $authority -= random(100,500)*$arcologies[0].CyberEconomic, $crime += random(10,25)>> <</if>> - <<set $arcologies[0].prosperity = Math.clamp($arcologies[0].prosperity, 1, 300)>> + <<set $arcologies[0].prosperity = Math.clamp($arcologies[0].prosperity, 1, $AProsperityCap)>> <</if>> You target $arcologies[$i].name for @@.yellow;digital economic warfare,@@ successfully raiding its coffers for @@.yellowgreen;<<print cashFormat(_WarSpoils)>>@@ this week. <<run cashX(_WarSpoils, "war")>> @@ -2732,43 +2732,43 @@ has an estimated GSP of @@.yellowgreen;<<print cashFormat(_prosperity)>><<if $sh /* PEACEKEEPERS */ <<if $plot>> -<<if $peacekeepers != 0>> - <br> - <<if $peacekeepers.strength >= 50>> - <<set _prisoners = Math.trunc($peacekeepers.attitude/10)+random(0,10)>> - General $peacekeepers.generalName's little empire near the arcology - <<if $peacekeepers.attitude >= 100>> - offers _prisoners menial slaves as tribute; having the area as an avowed client state @@.green;improves your reputation.@@ - <<set $peacekeepers.attitude = 100>> - <<run repX(100, "peacekeepers")>> - <<else>> - delivers _prisoners menial slaves to you in payment for your past support. - <</if>> - <<set $menials += _prisoners>> - <<elseif $peacekeepers.strength < 0>> - @@.yellow;The peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City has been withdrawn.@@ - <<if $peacekeepers.undermining>> - Your misinformation campaign against it in the old world media was successful. Before long, everyone in the Free City is confident that you're somehow responsible, @@.green;greatly improving your reputation.@@ - <<set $peacekeepers = 0, $peacekeepersGone = 1>> - <<run repX(2000, "peacekeepers")>> - <<else>> - The cost was ultimately too high. The time when old world countries could afford to waste billions on military adventurism is gone. It will not return. - <<set $peacekeepers = 0, $peacekeepersGone = 1>> - <</if>> - <<else>> - There's a peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City. - <<if $peacekeepers.undermining>> - You're paying for a media misinformation campaign in the old world country that sent him. It - <<set $peacekeepers.strength -= $peacekeepers.undermining/10000>> - <<if $peacekeepers.strength < 10>> - has had a significant impact; one of the nation's two major political parties now favors withdrawing the peacekeepers. + <<if $peacekeepers != 0>> + <br> + <<if $peacekeepers.strength >= 50>> + <<set _prisoners = Math.trunc($peacekeepers.attitude/10)+random(0,10)>> + General $peacekeepers.generalName's little empire near the arcology + <<if $peacekeepers.attitude >= 100>> + offers _prisoners menial slaves as tribute; having the area as an avowed client state @@.green;improves your reputation.@@ + <<set $peacekeepers.attitude = 100>> + <<run repX(100, "peacekeepers")>> <<else>> - has not had a significant impact yet; only a few fringe figures are arguing against the mission. + delivers _prisoners menial slaves to you in payment for your past support. + <</if>> + <<set $menials += _prisoners>> + <<elseif $peacekeepers.strength < 0>> + @@.yellow;The peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City has been withdrawn.@@ + <<if $peacekeepers.undermining>> + Your misinformation campaign against it in the old world media was successful. Before long, everyone in the Free City is confident that you're somehow responsible, @@.green;greatly improving your reputation.@@ + <<set $peacekeepers = 0, $peacekeepersGone = 1>> + <<run repX(2000, "peacekeepers")>> + <<else>> + The cost was ultimately too high. The time when old world countries could afford to waste billions on military adventurism is gone. It will not return. + <<set $peacekeepers = 0, $peacekeepersGone = 1>> + <</if>> + <<else>> + There's a peacekeeping force led by General $peacekeepers.generalName in the troubled area near the Free City. + <<if $peacekeepers.undermining>> + You're paying for a media misinformation campaign in the old world country that sent him. It + <<set $peacekeepers.strength -= $peacekeepers.undermining/10000>> + <<if $peacekeepers.strength < 10>> + has had a significant impact; one of the nation's two major political parties now favors withdrawing the peacekeepers. + <<else>> + has not had a significant impact yet; only a few fringe figures are arguing against the mission. + <</if>> <</if>> + Unfortunately, the presence of so much old world military power near the Free City causes @@.red;public concern.@@ + <<run repX(-100, "peacekeepers")>> <</if>> - Unfortunately, the presence of so much old world military power near the Free City causes @@.red;public concern.@@ - <<run repX(-100, "peacekeepers")>> + <br> <</if>> - <br> -<</if>> <</if>> diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw index 1327ac46d4f46262682a8b2b7a2d454a8e7efd15..eeb24b707882148c837bd3648323200e432f6d9c 100644 --- a/src/uncategorized/options.tw +++ b/src/uncategorized/options.tw @@ -1,5 +1,33 @@ :: Options [nobr] +<style> +.active { + background-color: grey; +} +.subHeading { + width: 85%; + text-align: center +} +.rebellionOption { + margin-top: -30px; + width: 75%; + text-align: right +} +.rebellionOption2 { + margin-top: -30px; + width: 63.2%; + text-align: right +} +.scLink { + width: 85%; + text-align: center +} +.scLink2 { + width: 73%; + text-align: center +} +</style> + <<if lastVisited("Slave Interact") === 1>> <<set $storedLink = "Slave Interact">> <<else>> @@ -8,7 +36,13 @@ <<set $showEncyclopedia = 0>> <<set $nextButton = "Back", $nextLink = $storedLink>> -''SAVES'' + +<<options $autosave>> + End of week autosaving is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> +<</options>> + <br> This save was created using FC version $ver build $releaseID. <br> [[Apply Backwards Compatibility Update|Backwards Compatibility]] @@ -22,12 +56,14 @@ This save was created using FC version $ver build $releaseID. <<goto "Options">> <</link>> <</if>> - -<br> -<<if ($autosave == 0)>> - End of week autosaving is currently @@.red;DISABLED.@@ [[Enable|Options][$autosave = 1]] -<<else>> - End of week autosaving is currently @@.cyan;ENABLED.@@ [[Disable|Options][$autosave = 0]] +<<if $familyTesting == 1>> + <br><<link "Reset extended family mode controllers">><<goto "family panic">><</link>> //Clears and rebuilds .sister and .daughter tracking.// +<</if>> +<<if isNaN($rep)>> + <br>[[Reset Reputation|Options][$rep = 0]] +<</if>> +<<if isNaN($cash)>> + <br>[[Reset Money|Options][$cash = 500]] <</if>> <<if ($releaseID >= 1000) || $ver.startsWith("0.9") || $ver.startsWith("0.8") || $ver.startsWith("0.7") || $ver.startsWith("0.6")>> @@ -41,644 +77,881 @@ This save was created using FC version $ver build $releaseID. <<else>> //New Game Plus is not available because this game was not started with a compatible version.// <</if>> - <br> -<<if $familyTesting == 1>> - <br><<link "Reset extended family mode controllers">><<goto "family panic">><</link>> //Clears and rebuilds .sister and .daughter tracking.// -<</if>> - -<<if isNaN($rep)>> - <br>[[Reset Reputation|Options][$rep = 0]] -<</if>> -<<if isNaN($cash)>> - <br>[[Reset Money|Options][$cash = 500]] -<</if>> - -<br> -''COLOR CONTROL'' -<br> -<<link "flip lighting">><<run flipColors(setup.lightColorMap)>><<goto "Options">><</link>> +<<run App.UI.tabbar.handlePreSelectedTab($tabChoice.Options)>> + +<br> +<button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'Display')" id="tab Display">Display</button> +<button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'CONTENT&FLAVOR')" id="tab CONTENT&FLAVOR">Content & flavour</button> +<button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'MODS')" id="tab MODS">Mods</button> +<button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'DEBUG/CHEATING')" id="tab DEBUG/CHEATING">Debug/cheating</button> +<br> + +<div id="Display" class="tabcontent"> + <div class="content"> + <div class="subHeading"> + ''Reports'' + </div> + + <<options $showEWD>> + End week report descriptive details are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showEWM>> + End week report performance modifier descriptions are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $verboseDescriptions>> + Master Suite report details such as slave changes are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $useAccordion>> + Accordion effects on weekly reports are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $useTabs>> + Economic Tabs on weekly reports are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showEconomicDetails>> + Economic detail sheets for facilities are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showNeighborDetails>> + Economic report neighbor details such as trade impacts on culture are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $formatNumbers>> + Numeric formatting is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + This will comma-format numbers in some areas. + <</options>> + + <div class="subHeading"> + ''General'' + </div> + + <div class="scLink"> + ''COLOR CONTROL'' + <<link "Flip lighting">><<run flipColors(setup.lightColorMap)>><<goto "Options">><</link>> + </div> + + <<options $positionMainLinks>> + Main menu leadership controls displayed + <<option 1 "Above">> + <<option 0 "Above and below">> + <<option -1 "Below">> + <</options>> + + <div class="subHeading"> + <<options $newModelUI>> + New Model UI + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + </div> + + <<options $seeArcology>> + Main menu arcology description + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seeDesk>> + Main menu desk description + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seeFCNN>> + Main menu newsfeed + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showTipsFromEncy>> + Tips from the Encyclopedia are + <<option true "Enabled">> + <<option false "Disabled">> + <</options>> + + <<options $useSummaryCache>> + Slave summary caching is + <<option true "Enabled">> + <<option false "Disabled">> + <</options>> + + <<options $useSlaveSummaryTabs>> + Main menu slave tabs are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $useSlaveListInPageJSNavigation>> + The slave Quick list in-page scroll-to is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<if $useSlaveSummaryTabs > 0>> + <br> + <<options $useSlaveSummaryOverviewTab>> + Condense special slaves into an overview tab + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + <</if>> -<br><br> -''IMAGES'' -<br> -Image display -<<if $seeImages == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeImages = 0]] - <br> - <<if $imageChoice == 1>> - @@.yellow;Vector art by NoX/Deepmurk@@ is selected. [[Switch to rendered imagepack|Options][$imageChoice = 0]] | [[Switch to non-embedded vector art|Options][$imageChoice = 2]] | [[Switch to revamped embedded vector art|Options][$imageChoice = 3]] - <br> - Face artwork is - <<if $seeFaces > 0>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeFaces = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeFaces = 1]] - <</if>><br> - Highlights on shiny clothing - <<if $seeVectorArtHighlights == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeVectorArtHighlights = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeVectorArtHighlights = 1]] - <</if>><br> - Height scaling - <<if $seeHeight == 1>> - @@.yellow;ENABLED@@ on small images. [[Disable|Options][$seeHeight = 0]] | [[Enable for all images|Options][$seeHeight = 2]] - <<elseif $seeHeight == 2>> - @@.cyan;ENABLED@@ on all images. [[Disable|Options][$seeHeight = 0]] | [[Enable only for small images|Options][$seeHeight = 1]] - <<else>> - @@.red;DISABLED.@@ [[Enable only for small images|Options][$seeHeight = 1]] | [[Enable for all images|Options][$seeHeight = 2]] - <</if>><br> - Clothing erection bulges - <<if $showClothingErection>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showClothingErection = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$showClothingErection = 1]] + <div class="subHeading"> + ''Sidebar'' + </div> + + <div class="subHeading"> + <<if ndef $sideBarOptions.compact>> <<set $sideBarOptions.compact = 1>> <</if>> + <<options $sideBarOptions.compact>> + The side bar is very compact: + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + </div> + + <<options $sideBarOptions.Cash>> + Cash is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.Upkeep>> + Upkeep is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.SexSlaveCount>> + Sex slave count is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.roomPop>> + Room population is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.GSP>> + GSP is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.Rep>> + Rep is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<if $secExp > 0>> + <<options $sideBarOptions.Authority>> + Authority is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.Security>> + Security is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + + <<options $sideBarOptions.Crime>> + Crime is + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> <</if>> - <br>@@.red;Git compiled only, no exceptions.@@ - <<elseif $imageChoice == 2>> - @@.yellow;Vector art by NoX/Deepmurk - non-embed version@@ is selected. [[Switch to rendered imagepack|Options][$imageChoice = 0]] | [[Switch to embedded vector art|Options][$imageChoice = 1]] | [[Switch to revamped embedded vector art|Options][$imageChoice = 3]] - <<elseif $imageChoice == 3>> - @@.yellow;Vector art revamp@@ is selected. [[Switch to rendered imagepack|Options][$imageChoice = 0]] | [[Switch to embedded vector art|Options][$imageChoice = 1]] | [[Switch to non-embedded vector art|Options][$imageChoice = 2]] - <br> - Highlights on shiny clothing - <<if $seeVectorArtHighlights == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeVectorArtHighlights = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeVectorArtHighlights = 1]] + + <br><br> + <<options $seeImages>> + Images are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<if $seeImages > 0>> + <div style="position:relative;width:200px;height:200px;margin:0 auto;"> + <<= SlaveArt(BaseSlave(), 0, 0)>> + </div> + + <<options $imageChoice>> + <<option 3 "Revamped embedded vector art">> + <<option 2 "Non-embedded vector art">> + <<option 1 "NoX/Deepmurk's vector art">> + <<option 0 "Shokushu's rendered imagepack">> + <</options>> + + <<if $seeImages === 1>> + <<options $seeFaces>> + Face artwork is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seeVectorArtHighlights>> + Highlights on shiny clothing + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seeHeight>> + Height scaling + <<option 2 "All images">> + <<option 1 "Small images">> + <<option 0 "Disabled">> + <</options>> + + <<options $showClothingErection>> + Clothing erection bulges + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + <<elseif $seeImages === 0>> + <<options $seeMainFetishes>> + Slave summary fetish images + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + <<elseif $seeImages === 3>> + <<options $showClothingErection>> + Clothing erection bulges + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + @@.red;Git compiled only, no exceptions.@@ + <</options>> + <</if>> + + <<options $seeAvatar>> + PA avatar art is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seeSummaryImages>> + Slave images in lists are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seeReportImages>> + Slave images in the weekly report are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> <</if>> - <br>@@.red;Git compiled only, no exceptions.@@ - <<elseif $imageChoice == 0>> - @@.yellow;Rendered imagepack by Shokushu@@ is selected. [[Switch to vector art|Options][$imageChoice = 1]] + </div> +</div> + +<div id="CONTENT&FLAVOR" class="tabcontent"> + <div class="content"> + <div class="subHeading"> + ''Content'' + </div> + <<options $seeExtreme>> + Extreme content like amputation is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Will not affect extreme surgeries already applied in-game. + <</options>> + <div align="center"> + //More granular control of what appears is in// [[Description Options]]. + </div> <br> - Slave summary fetish images - <<if $seeMainFetishes == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeMainFetishes = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeMainFetishes = 1]] + <<options $seeBestiality>> + Bestiality related content is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seePee>> + Watersports related content is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $seePreg>> + Pregnancy related content is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Will not affect existing pregnancies already in-game. + <</options>> + + <<options $seeDicksAffectsPregnancy>> + Child gender to be generated based off dick content settings + <<option 1 "Enabled">> + <<comment>> + Currently <<print $seeDicks>>% of children will be born male. + <<option 0 "Disabled">> + <<comment>> + Will not affect existing pregnancies already in-game. + <</options>> + + <<if $seeDicksAffectsPregnancy == 0>> + <<options $seePreg>> + XX slaves can have sons + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Will not affect existing pregnancies already in-game. + <</options>> <</if>> - <</if>> - <br> - PA avatar art is - <<if $seeAvatar == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeAvatar = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeAvatar = 1]] - <</if>> - <br> - Slave images in lists are - <<if $seeSummaryImages == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeSummaryImages = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeSummaryImages = 1]] - <</if>> - <br> - Slave images in the weekly report are - <<if $seeReportImages == 1>> - @@.cyan;ENABLED.@@ [[Disable|Options][$seeReportImages = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeReportImages = 1]] - <</if>> -<<else>> - @@.red;DISABLED.@@ [[Enable|Options][$seeImages = 1]] -<</if>> - -<br><br> -''MAIN ARCOLOGY SCREEN OPTIONS'' -<br> -<<if $newModelUI != 0>> - New Model UI @@.cyan;ENABLED.@@ [[Disable|Options][$newModelUI = 0]] -<<else>> - New Model UI @@.red;DISABLED.@@ [[Enable|Options][$newModelUI = 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]] -<</if>> - -<br> - -<<if ($seeDesk == 0)>> - Main menu desk description @@.red;DISABLED.@@ [[Enable|Options][$seeDesk = 1]] -<<else>> - Main menu desk description @@.cyan;ENABLED.@@ [[Disable|Options][$seeDesk = 0]] -<</if>> - -<br> - -<<if ($seeFCNN == 0)>> - Main menu newsfeed @@.red;DISABLED.@@ [[Enable|Options][$seeFCNN = 1]] -<<else>> - Main menu newsfeed @@.cyan;ENABLED.@@ [[Disable|Options][$seeFCNN = 0]] -<</if>> - -<br> - -Main menu leadership controls displayed -<<if ($positionMainLinks == 1)>> - @@.cyan;ABOVE@@ slave list. - [[Below|Options][$positionMainLinks = -1]] | - [[Both|Options][$positionMainLinks = 0]] -<<elseif ($positionMainLinks == -1)>> - @@.cyan;BELOW@@ slave list. - [[Above|Options][$positionMainLinks = 1]] | - [[Both|Options][$positionMainLinks = 0]] -<<else>> - @@.cyan;ABOVE AND BELOW@@ slave list. - [[Above|Options][$positionMainLinks = 1]] | - [[Below|Options][$positionMainLinks = -1]] -<</if>> - -<br> - -Main menu slave tabs are -<<if $useSlaveSummaryTabs != 1>> - @@.red;DISABLED.@@ [[Enable|Options][$useSlaveSummaryTabs = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$useSlaveSummaryTabs = 0, $useSlaveSummaryOverviewTab = 0]] -<</if>> - - -<<if $useSlaveSummaryTabs == 1>> - <br> - - Condense special slaves into an overview tab - <<if $useSlaveSummaryOverviewTab != 1>> - @@.red;DISABLED.@@ [[Enable|Options][$useSlaveSummaryOverviewTab = 1]] - <<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$useSlaveSummaryOverviewTab = 0]] - <</if>> -<</if>> - -<br> - -The slave Quick list in-page scroll-to is -<<if $useSlaveListInPageJSNavigation != 1>> - @@.red;DISABLED.@@ [[Enable|Options][$useSlaveListInPageJSNavigation = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$useSlaveListInPageJSNavigation = 0]] -<</if>> - -<br> -Slave summary caching is <<if $useSummaryCache>>@@.cyan;ENABLED.@@ [[Disable|Options][$useSummaryCache = false]]<<else>>@@.red;DISABLED.@@ [[Enable|Options][$useSummaryCache = true]]<</if>> - -<br> -Tips from the Encyclopedia are -<<if ($showTipsFromEncy == 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$showTipsFromEncy = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showTipsFromEncy = 0]] -<</if>> - -<br><br> -''REPORTS'' -<br> -End week report descriptive details are -<<if ($showEWD == 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$showEWD = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showEWD = 0]] -<</if>> - -<br> - -End week report performance modifier descriptions are -<<if ($showEWM == 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$showEWM = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showEWM = 0]] -<</if>> - -<br> - -Economic report neighbor details such as trade impacts on culture are -<<if ($showNeighborDetails != 0)>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showNeighborDetails = 0]] -<<else>> - @@.red;DISABLED.@@ [[Enable|Options][$showNeighborDetails = 1]] -<</if>> - -<br> - -Master Suite report details such as slave changes are -<<if ($verboseDescriptions == 1)>> - @@.cyan;ENABLED.@@ [[Disable|Options][$verboseDescriptions = 0]] -<<else>> - @@.red;DISABLED.@@ [[Enable|Options][$verboseDescriptions = 1]] -<</if>> - -/* Accordion 000-250-006 */ -<br> - Accordion effects on weekly reports are -<<if ($useAccordion != 1)>> - @@.red;DISABLED.@@ [[Enable|Options][$useAccordion = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$useAccordion = 0]] -<</if>> -/* Accordion 000-250-006 */ - -<br> - -Economic Tabs on weekly reports are -<<if $useTabs == 0>> - @@.red;DISABLED.@@ [[Enable|Options][$useTabs = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$useTabs = 0]] -<</if>> - -<br> - -Economic detail sheets for facilities are -<<if ($showEconomicDetails != 0)>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showEconomicDetails = 0]] -<<else>> - @@.red;DISABLED.@@ [[Enable|Options][$showEconomicDetails = 1]] -<</if>> - -<br> - -<<if ($formatNumbers == 1)>> - Numeric formatting is currently @@.cyan;ENABLED.@@ [[Disable|Options][$formatNumbers = 0]] -<<else>> - Numeric formatting is currently @@.red;DISABLED.@@ [[Enable|Options][$formatNumbers = 1]] - //This will comma-format numbers in some areas.// -<</if>> - -<br><br> -''FLAVOR SCENES'' -<br> -Slave reactions to facility assignments are -<<if ($showAssignToScenes == 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$showAssignToScenes = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showAssignToScenes = 0]] -<</if>> - -<br> -Post sex clean up -<<if $postSexCleanUp < 1>> - @@.cyan;is not@@ displayed. [[Display|Options][$postSexCleanUp = 1]] -<<else>> - @@.cyan;is @@ displayed. [[Do not display|Options][$postSexCleanUp = 0]] -<</if>> - -<br> -Appraisal miniscenes on slave sale are -<<if ($showAppraisal == 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$showAppraisal = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showAppraisal = 0]] -<</if>> - -<br> - -Assignment performance vignettes on the end week report are -<<if ($showVignettes == 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$showVignettes = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$showVignettes = 0]] -<</if>> - -<br> -<<if $newDescriptions == 1>> - Slaves @@.cyan;will@@ have alternate titles. - [[Disable|Options][$newDescriptions = 0]] -<<else>> - Slaves @@.cyan;will not@@ have alternate titles. - [[Enable|Options][$newDescriptions = 1]] -<</if>> - -<br> - -<<if $familyTesting == 1>> - <<if $allowFamilyTitles == 1>> - Your relatives @@.cyan;will@@ use family titles. - [[Disable family titles|Options][$allowFamilyTitles = 0]] - <<else>> - Your relatives @@.cyan;will not@@ use family titles. - [[Enable family titles|Options][$allowFamilyTitles = 1]] - <</if>> -<</if>> - -<br> - -<<if $familyTesting == 1>> - <<if (def $showDistantRelatives) && $showDistantRelatives == 1>> - Distant relatives such as aunts, nieces and cousins ''are'' shown - [[Hide distant relatives|Options][$showDistantRelatives = 0]] - <<else>> - Distant relatives such as aunts, nieces and cousins ''are not'' shown - [[Show distant relatives|Options][$showDistantRelatives = 1]] - <</if>> -<</if>> - -<br><br> -''CONTENT'' -<br> -<<if ($seeExtreme == 0)>> - Extreme content like amputation is currently @@.red;DISABLED.@@ [[Enable|Options][$seeExtreme = 1]] -<<else>> - Extreme content like amputation is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seeExtreme = 0]] -<</if>> -<br> //Will not affect extreme surgeries already applied already in-game. -<br> More granular control of what appears is in// [[Description Options]]. - -<br> -<<if ($seeBestiality == 0)>> - Bestiality related content is currently @@.red;DISABLED.@@ [[Enable|Options][$seeBestiality = 1]] -<<else>> - Bestiality related content is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seeBestiality = 0]] //Will not remove existing facilities, but will block content from appearing.// -<</if>> - -<br> -<<if ($seePee == 0)>> - Watersports related content is currently @@.red;DISABLED.@@ [[Enable|Options][$seePee = 1]] -<<else>> - Watersports related content is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seePee = 0]] -<</if>> - -<br> -<<if ($seePreg == 0)>> - Pregnancy related content is currently @@.red;DISABLED.@@ [[Enable|Options][$seePreg = 1]] -<<else>> - Pregnancy related content is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seePreg = 0]] -<</if>> //Will not affect existing pregnancies already in-game.// - -<br> -<<if ($seeDicksAffectsPregnancy == 1)>> - Child gender ''will'' be generated based off dick content settings. Currently <<print $seeDicks>>% of children will be born male. [[Disable|Options][$seeDicksAffectsPregnancy = 0]] -<<else>> - Child gender ''will not'' be generated based off dick content settings. [[Enable|Options][$seeDicksAffectsPregnancy = 1]] -<</if>> - -<<if $seeDicksAffectsPregnancy == 0>> - <br> - <<if $adamPrinciple == 1>> - XX slaves ''cannot'' have sons. [[Disable Adam Principle|Options][$adamPrinciple = 0]] - <<else>> - XX slaves ''can'' have sons. [[Enable Adam Principle|Options][$adamPrinciple = 1]] - <</if>> //Will not affect existing pregnancies already in-game.// -<</if>> - -<br> -<<if ($seeHyperPreg == 0)>> - Extreme pregnancy content like broodmothers is currently @@.red;DISABLED.@@ [[Enable|Options][$seeHyperPreg = 1]] -<<else>> - Extreme pregnancy content like broodmothers is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seeHyperPreg = 0]] -<</if>> -//Will not affect existing hyperpregnancies already in-game.// - -<br> -<<if ($dangerousPregnancy == 0)>> - Pregnancy complications due to multiples and body size are currently @@.red;DISABLED.@@ [[Enable|Options][$dangerousPregnancy = 1]] -<<else>> - Pregnancy complications due to multiples and body size are currently @@.cyan;ENABLED.@@ [[Disable|Options][$dangerousPregnancy = 0]] -<</if>> - -<br> -<<if $precociousPuberty == 0>> - Girls ''will not'' experience precocious puberty. (Not able to become pregnant younger than normal age - $fertilityAge). - [[Enable precocious puberty|Options][$precociousPuberty = 1]] -<<else>> - Girls ''will'' experience precocious puberty. (In certain conditions they will can become pregnant younger then normal age - $fertilityAge). - [[Disable precocious puberty|Options][$precociousPuberty = 0]] -<</if>> //Will not affect existing precocious puberty cases already in-game.// - -<br> - -/% Begin mod section: toggle whether slaves lisp. %/ - -<<if $disableLisping>> - Lisping: ''slaves will not lisp''. - [[Enable Lisping|Options][$disableLisping = 0]] -<<else>> - Lisping: ''slaves with fat lips or heavy oral piercings will lisp''. - [[Disable Lisping|Options][$disableLisping = 1]] -<</if>> - -/% End mod section: toggle whether slaves lisp. %/ - -<br> -<<if ($diversePronouns == 1)>> - Experimental male pronouns are currently @@.cyan;ENABLED.@@ [[Disable|Options][$diversePronouns = 0]] -<<else>> - Experimental male pronouns are currently @@.red;DISABLED.@@ [[Enable|Options][$diversePronouns = 1]] -<</if>> -<br> //Apply Backwards Compatibility after changing to update slave's pronouns. Not all scenes support male pronouns and this is not yet incorporated into the lore or mechanics.// - -<br> -<<if $allowMaleSlaveNames>> - Male slave names are currently @@.cyan;PERMITTED.@@ [[Deny|Options][$allowMaleSlaveNames = false]] -<<else>> - Male slave names are currently @@.red;FORBIDDEN.@@ [[Allow|Options][$allowMaleSlaveNames = true]] -<</if>> -//This only affects slave generation and not your ability to name your slaves.// - -<br> -<<if $showMissingSlaves>> - Missing slave names are currently @@.cyan;SHOWN.@@ [[Hide|Options][$showMissingSlaves = 0]] -<<else>> - Missing slave names are currently @@.red;HIDDEN.@@ [[Show|Options][$showMissingSlaves = 1]] -<</if>> - -<br><br> -''INTERSECTING MECHANICS'' -<br> -<<if ($weightAffectsAssets != 0)>> - Slave assets affected by weight is @@.cyan;ENABLED.@@ [[Disable|Options][$weightAffectsAssets = 0]] -<<else>> - Slave assets affected by weight is @@.red;DISABLED.@@ [[Enable|Options][$weightAffectsAssets = 1]] -<</if>> //Diet will still affect asset size.// - -<br> -<<if ($curativeSideEffects != 0)>> - Curative side effects are @@.cyan;ENABLED.@@ [[Disable|Options][$curativeSideEffects = 0]] -<<else>> - Curative side effects are @@.red;DISABLED.@@ [[Enable|Options][$curativeSideEffects = 1]] -<</if>> //If enabled, curatives have a chance to give slaves harmful side effects.// - -<br><br> -''MODS'' -<br>The Special Force Mod is currently -<<if ($SF.Toggle === 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$SF.Toggle = 1]] -<<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$SF.Toggle = 0]] - /*<br> The support facility is - <<if ($SF.Facility.Toggle === 0)>> - @@.red;DISABLED.@@ [[Enable|Options][$SF.Facility.Toggle = 1]] - <<else>> - @@.cyan;ENABLED.@@ [[Disable|Options][$SF.Facility.Toggle = 0]] - <</if>> //Prep for future content.*/ -<</if>> //Will not affect mod content that has already been encountered.// + <<options $seeHyperPreg>> + Extreme pregnancy content like broodmothers is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Will not affect existing hyperpregnancies already in-game. + <</options>> + + <<options $dangerousPregnancy>> + Pregnancy complications due to multiples and body size are currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $precociousPuberty>> + Girls can experience precocious puberty. + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Will not affect existing precocious puberty cases already in-game. + <</options>> + <div align="center"> + <<if $precociousPuberty == 1>> + //(In certain conditions they will can become pregnant younger then normal age - $fertilityAge).// + <<elseif $precociousPuberty == 0>> + //(Not able to become pregnant younger than normal age - $fertilityAge).// + <</if>> + </div> + + <br><br> + <<options $disableLisping>> + Slaves with fat lips or heavy oral piercings can lisp + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $diversePronouns>> + Experimental male pronouns are currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + <div align="center"> + //Apply Backwards Compatibility after changing to update slave's pronouns. Not all scenes support male pronouns and this is not yet incorporated into the lore or mechanics.// + </div> + <br> + <<options $allowMaleSlaveNames>> + Male slave names are currently + <<option true "Enabled">> + <<option false "Disabled">> + <<comment>> + This only affects slave generation and not your ability to name your slaves. + <</options>> + -<br> + <br> + <<options $showMissingSlaves>> + Missing slave names are currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> -<<if $secExp == 0>> - The Security Expansion mod is @@.red;DISABLED.@@ - <<link "Enable">> - <<set $secExp = 1>> - <<include "SecExpBackwardCompatibility">> - <<if $wasToggledBefore == 0>> - <<set $wasToggledBefore = 1>> + <br> + <div class="subHeading"> + ''Intersecting mechanics'' + </div> + + <<options $weightAffectsAssets>> + Slave assets affected by weight is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Diet will still affect asset size. + <</options>> + + <<options $curativeSideEffects>> + Curative side effects are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + If enabled, curatives have a chance to give slaves harmful side effects. + <</options>> + + <div class="subHeading"> + ''Flavour'' + </div> + + <<options $showAssignToScenes>> + Slave reactions to facility assignments are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $postSexCleanUp>> + Post sex clean up + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showAppraisal>> + Appraisal miniscenes on slave sale are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showVignettes>> + Assignment performance vignettes on the end week report are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $newDescriptions>> + Slaves can have alternate titles + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<if $familyTesting > 0>> + <<options $allowFamilyTitles>> + Relatives use family titles. + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $showDistantRelatives>> + Distant relatives such as aunts, nieces and cousins are + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> <</if>> - <<goto "Options">> - <</link>> -<<elseif ndef $secExp>> - <<set $secExp = 0>> - The Security Expansion mod is @@.red;DISABLED.@@ - <<link "Enable">> - <<set $secExp = 1>> - <<include "SecExpBackwardCompatibility">> - <<if $wasToggledBefore == 0>> - <<set $wasToggledBefore = 1>> + </div> +</div> + +<div id="MODS" class="tabcontent"> + <div class="content"> + <<options $SF.Toggle>> + The Special Force Mod is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + /* + <<if $SF.Toggle > 0>> + <<options $SF.Facility.Toggle>> + <br> The support facility is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + <</if>> //Prep for future content.// + */ + + <<options $secExp>> + The Security Expansion mod is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + The mod can be activated in any moment, but it may result in unbalanced gameplay if activated very late in the game. + <</options>> + + <<if $secExp > 0>> + <div class="subHeading"> + ''Security Expansion mod options'' + </div> + + <<if $terrain === "oceanic">> + <br>Oceanic arcologies are not by default subject to external attacks. You can however allow them to happen anyway. If you choose to do so please keep in mind that descriptions and mechanics are not intended for naval combat but land combat. + <</if>> + + <<if $battlesEnabled > 0 || $rebellionsEnabled > 0>> + <<options $showBattleStatistics>> + Detailed battle statistics are + <<option 1 "Shown">> + <<option 0 "Hidden">> + <<comment>> + Visability of detailed statistics and battle turns. + <</options>> + + <<options $difficulty>> + Difficulty is + <<option 1.5 "Very hard">> + <<option 1.25 "Hard">> + <<option 0.75 "Easy">> + <<option 0.5 "Very easy">> + <</options>> + <br><br> + <</if>> + + <<options $battlesEnabled>> + Battles are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<options $rebellionsEnabled>> + Rebellions are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> + + <<if $battlesEnabled > 0>> + <<options $battleFrequency>> + Frequency + <<option 1.5 "Very high">> + <<option 1.25 "High">> + <<option 1 "Normal">> + <<option 0.75 "Low">> + <<option 0.5 "Very low">> + <</options>> + <</if>> + + <<if $rebellionsEnabled > 0>> + <<options $rebellionSpeed>> + Buildup + <<option 1.5 "Very fast">> + <<option 1.25 "Fast">> + <<option 1 "Normal">> + <<option 0.75 "Slow">> + <<option 0.5 "Very slow">> + <</options>> + <</if>> + + <<if $battlesEnabled > 0>> <br> + <<options $allowPrestigeFromBattles>> + For every 10 victories a slave commander + <<option 1 "Gains">> + <<option 0 "Does not gain">> + <</options>> + a prestige rank. + <</if>> + + <br><br> + <div class="subHeading"> + //Force the chosen option to happen every week. <<if $rebellionsEnabled > 0>> Rebellions will take precedence over battles.<</if>>// + </div> + + <<if $battlesEnabled > 0>> + <<options $forceBattle>> + Force battles + <<option 1 "Yes">> + <<option 0 "No">> + <</options>> + <</if>> + <<if $rebellionsEnabled > 0>> + <<options $forceRebellion>> + Force rebellions + <<option 1 "Yes">> + <<option 0 "No">> + <</options>> + <</if>> + + <<if $battlesEnabled > 0>> + <br><br> + <<options $majorBattlesEnabled>> + Major battles are + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + Enable/disable late game large scale battles. + <</options>> + <</if>> + + <<if $battlesEnabled > 0 && $majorBattlesEnabled > 0>> <br> + <<options $majorBattleMult>> + Multiplier is + <<option 1.5 "Very high">> + <<option 1.25 "High">> + <<option 1 "Normal">> + <<option 0.75 "Low">> + <<option 0.5 "Very low">> + <</options>> + + <br> + <<options $forceMajorBattle>> + A major battle is + <<option 1 "Guaranteed">> + <<option 0 "Not guaranteed">> + <</options>> + this week. + <</if>> + + <<if $battlesEnabled > 0 && $majorBattlesEnabled > 0>> + <br> + <<options $majorBattleGameOver>> + Gameover on battle loss + <<option 1 "Yes">> + <<option 0 "No">> + <</options>> + <</if>> + + <<if $rebellionsEnabled > 0>> + <<options $rebellionGameOver>> + Gameover on rebellion loss + <<option 1 "Yes">> + <<option 0 "No">> + <</options>> + <</if>> + + <br> + <div class="subHeading"> + ''Debug/cheat'' + </div> + <<run MenialPopCap()>> + + <style> + table.invisible { + table-layout: fixed; + border-collapse: separate; + border-spacing: 5px; + margin:1em auto; + } + </style> + + <table class="invisible"> + <tr style="text-align:center"><td colspan="2" > + <<link "Set loyalty high" "Options">> + <<for _i = 0; _i < $militiaUnits.length; _i++>> + <<set $militiaUnits[_i].loyalty = random(80,100)>> + <</for>> + + <<for _i = 0; _i < $slaveUnits.length; _i++>> + <<set $slaveUnits[_i].loyalty = random(80,100)>> + <</for>> + + <<for _i = 0; _i < $mercUnits.length; _i++>> + <<set $mercUnits[_i].loyalty = random(80,100)>> + <</for>> + <</link>> + | <<link "Set loyalty average" "Options">> + <<for _i = 0; _i < $militiaUnits.length; _i++>> + <<set $militiaUnits[_i].loyalty = random(40,60)>> + <</for>> + + <<for _i = 0; _i < $slaveUnits.length; _i++>> + <<set $slaveUnits[_i].loyalty = random(40,60)>> + <</for>> + + <<for _i = 0; _i < $mercUnits.length; _i++>> + <<set $mercUnits[_i].loyalty = random(40,60)>> + <</for>> + <</link>> + | <<link "Set loyalty low" "Options">> + <<for _i = 0; _i < $militiaUnits.length; _i++>> + <<set $militiaUnits[_i].loyalty = random(20)>> + <</for>> + + <<for _i = 0; _i < $slaveUnits.length; _i++>> + <<set $slaveUnits[_i].loyalty = random(20)>> + <</for>> + + <<for _i = 0; _i < $mercUnits.length; _i++>> + <<set $mercUnits[_i].loyalty = random(20)>> + <</for>> + <</link>> + | <<link "Randomize loyalty" "Options">> + <<for _i = 0; _i < $militiaUnits.length; _i++>> + <<set $militiaUnits[_i].loyalty = random(100)>> + <</for>> + + <<for _i = 0; _i < $slaveUnits.length; _i++>> + <<set $slaveUnits[_i].loyalty = random(100)>> + <</for>> + + <<for _i = 0; _i < $mercUnits.length; _i++>> + <<set $mercUnits[_i].loyalty = random(100)>> + <</for>> + <</link>> + </td></tr> + + <tr style="text-align:center"> + <td colspan="2"> + <<link "Give Authority" "Options">> + <<set $authority = Math.clamp($authority + 1000, 0, 20000)>> + <</link>> + | <<link "Remove Authority" "Options">> + <<set $authority = Math.clamp($authority - 1000, 0, 20000)>> + <</link>> + </td> + </tr> + + <tr> + <td style="text-align:right"> + <<link "Raise security" "Options">> + <<set $security = Math.clamp($security + 5, 0, 100)>> + <</link>> + | <<link "Lower security" "Options">> + <<set $security = Math.clamp($security - 5, 0, 100)>> + <</link>> + </td> + + <td style="text-align:left"> + <<link "Raise crime" "Options">> + <<set $crime = Math.clamp($crime + 5, 0, 100)>> + <</link>> + | <<link "Lower crime" "Options">> + <<set $crime = Math.clamp($crime - 5, 0, 100)>> + <</link>> + </td> + </tr> + + <tr> + <td style="text-align:right"> + <<link "Give menial slaves" "Options">> + <<set $menials = Math.clamp($menials + 30, 0, $PopCap)>> + <</link>> + | <<link "Remove menial slaves" "Options">> + <<set $menials = Math.clamp($menials - 30, 0, $PopCap)>> + <</link>> + </td> + + <td style="text-align:left"> + <<link "Add slaves" "Options">> /*Will work to a limited degree, minimums and maximums for slaves are set through population*/ + <<set $NPCSlaves += 200>> + <</link>> + | <<link "Remove slaves" "Options">> /*Will work to a limited degree*/ + <<set $NPCSlaves -= 200>> + <<if $NPCSlaves < 0>> + <<set $NPCSlaves = 0>> + <</if>> + <</link>> + </td> + </tr> + + <tr> + <td style="text-align:right"> + <<link "Give militia manpower" "Options">> + <<set $militiaFreeManpower += 30>> + <<recalcManpower>> + <</link>> + | <<link "Remove militia manpower" "Options">> + <<set $militiaFreeManpower = Math.clamp($militiaFreeManpower - 30, 0, $militiaFreeManpower)>> + <<recalcManpower>> + <</link>> + </td> + + <td style="text-align:left"> + <<link "Give mercs manpower" "Options">> + <<set $mercFreeManpower += 30>> + <<recalcManpower>> + <</link>> + | <<link "Remove mercs manpower" "Options">> + <<set $mercFreeManpower = Math.clamp($mercFreeManpower - 30, 0, $mercFreeManpower)>> + <<recalcManpower>> + <</link>> + </td> + </tr> + + <tr> + <td style="text-align:right"> + <<link "Add citizens" "Options">> /*Will no longer work as intended due to population changes*/ + <<set $lowerClass += 200>> + <</link>> + | <<link "Remove citizens" "Options">> /*also no longer properly functional*/ + <<set $lowerClass -= 200>> + <<if $lowerClass < 0>> + <<set $lowerClass = 0>> + <</if>> + <</link>> + </td> + + <td style="text-align:left"> + <<link "Raise prosperity" "Options">> + <<set $arcologies[0].prosperity = Math.clamp($arcologies[0].prosperity + 10, 0, 1000)>> + <</link>> + | <<link "Lower prosperity" "Options">> + <<set $arcologies[0].prosperity = Math.clamp($arcologies[0].prosperity - 10, 0, 1000)>> + <</link>> + </td> + </tr> + </table> + <</if>> /* closes SecExp check*/ + </div> +</div> + +<div id="DEBUG/CHEATING" class="tabcontent"> + <div class="content"> + <div class="subHeading"> + ''Debug'' + </div> + <<options $debugMode>> + DebugMode is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + This will add a Display Variables and Bug Report passage to the sidebar. + <</options>> + + <<if $debugMode > 0>> + <<if ndef $debugModeCustomFunction>> <<set $debugModeCustomFunction = 0>> <</if>> + <<options $debugModeCustomFunction>> + The custom function part of debug mode is currently + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <</options>> <</if>> - <<goto "Options">> - <</link>> -<<else>> - The Security Expansion Mod is currently @@.cyan;ENABLED.@@ [[Disable|Options][$secExp = 0]] -<</if>> -//The mod can be activated in any moment, but it may result in unbalanced gameplay if activated very late in the game.// -<<if def $secExp>> - <<if $secExp == 1>> - <br> [[Security Expansion Options|secExpOptions]] - <</if>> -<</if>> - -<br><br> -''CHEATING OPTIONS'' -<br> -<<if ($cheatMode == 1)>> - Cheatmode is currently @@.cyan;ENABLED.@@ [[Disable|Options][$cheatMode = 0]] - <br> - <<if ($cheatModeM == 1)>> - Sidebar Cheats are currently @@.cyan;SHOWN.@@ [[Disable|Options][$cheatModeM = 0]] - <<else>> - Sidebar Cheats are currently @@.red;HIDDEN.@@ [[Enable|Options][$cheatModeM = 1]] - <</if>> -<<else>> - Cheatmode is currently @@.red;DISABLED.@@ [[Enable|Options][$cheatMode = 1]] - //This will allow manual selection of events and unlock some options that would usually be restricted by progress// -<</if>> -<br> -<<if ($cheatMode == 1)>> - [[Add 100000 money|Options][$cheater = 1, cashX(100000, "cheating")]] | [[Add 10000 rep|Options][$cheater = 1, repX(10000, "cheating")]] //Cheating will be flagged in your save// - <br> -<</if>> - -<<if ($cheatMode == 1)>> - <<if $seeAge == 1>> - Slaves will ''age'' - [[Disable aging|Options][$seeAge = 0]] | - [[Semi aging|Options][$seeAge = 2]] - <<elseif $seeAge == 2>> - Slaves ''will'' celebrate birthdays, but ''not age.'' - [[Enable aging fully|Options][$seeAge = 1]] | - [[Disable aging|Options][$seeAge = 0]] - <<else>> - Slaves will ''not age'' - [[Enable aging|Options][$seeAge = 1]] | - [[Semi aging|Options][$seeAge = 2]] - <</if>> - <br> -<</if>> -<br> -''DEVELOPER OPTIONS'' -<br> -<<if ($debugMode == 1)>> - Debug Mode is currently @@.cyan;ENABLED.@@ [[Disable|Options][$debugMode = 0]] - <<if ndef $debugModeCustomFunction>> <<set $debugModeCustomFunction = 0>> <</if>> - <br>The custom function part of debug mode is currently - <<if $debugModeCustomFunction > 0>> - @@.cyan;ENABLED.@@ [[Disable|Options][$debugModeCustomFunction = 0]] - <<else>> - @@.red;DISABLED.@@ [[Enable|Options][$debugModeCustomFunction = 1]] - <</if>> - <br> -<<else>> - Debug Mode is currently @@.red;DISABLED.@@ [[Enable|Options][$debugMode = 1]] - //This will add a Display Variables and Bug Report passage to the sidebar.// -<</if>> - -<br> -Genetics array test: -<<link "Run Test">><<goto "test genetics">><</link>><<if $cheatMode == 1>> | [[Edit Genetics]]<<else>> | @@.gray;Edit Genetics@@ (Enable cheat mode)<</if>> -<br><<link "Reset RA Rules">><<include "Init Rules">><<goto "Rules Assistant">><</link>> - -<br><br> -''SIDE BAR'' -<br>Cash is -<<if $sideBarOptions.Cash < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.Cash = 1]]// -<<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.Cash = 0]]// -<</if>> - -<br>Upkeep is -<<if $sideBarOptions.Upkeep < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.Upkeep = 1]]// -<<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.Upkeep = 0]]// -<</if>> - -<br>Sex slave count is -<<if $sideBarOptions.SexSlaveCount < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.SexSlaveCount = 1]]// -<<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.SexSlaveCount = 0]]// -<</if>> - -<br>Room population is -<<if $sideBarOptions.roomPop < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.roomPop = 1]]// -<<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.roomPop = 0]]// -<</if>> - -<br>Rep is -<<if $sideBarOptions.Rep < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.Rep = 1]]// -<<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.Rep = 0]]// -<</if>> - -<br>GSP is -<<if $sideBarOptions.GSP < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.GSP = 1]]// -<<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.GSP = 0]]// -<</if>> - -<<if $secExp == 1>> - <br>Authority is - <<if $sideBarOptions.Authority < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.Authority = 1]]// - <<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.Authority = 0]]// - <</if>> - - <br>Security is - <<if $sideBarOptions.Security < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.Security = 1]]// - <<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.Security = 0]]// - <</if>> - - <br>Crime is - <<if $sideBarOptions.Crime < 1>> - @@.red;HIDDEN.@@ //[[Show|Options][$sideBarOptions.Crime = 1]]// - <<else>> - @@.cyan;SHOWN.@@ //[[Hide|Options][$sideBarOptions.Crime = 0]]// - <</if>> -<</if>> -/* -<br><br> -[[Enable backwards compatibility|Backwards Compatibility]] -<br> //Select this option to make saves older than 0.9 compatible. If you see a lot of red error messages after loading a save file, using this option may make it possible to continue. Untested for saves earlier than 0.6.// -*/ + <br> + <div class="scLink2"> + Genetics array test: + <<link "Run Test">><<goto "test genetics">><</link>><<if $cheatMode == 1>> | [[Edit Genetics]]<<else>> | @@.gray;Edit Genetics@@ (Enable cheat mode)<</if>> + <br><<link "Reset RA Rules">><<include "Init Rules">><<goto "Rules Assistant">><</link>> + </div> + + <div class="subHeading"> + ''Cheating'' + </div> + + <<options $cheatMode>> + CheatMode is + <<option 1 "Enabled">> + <<option 0 "Disabled">> + <<comment>> + This will allow manual selection of events and unlock some options that would usually be restricted by progress + <</options>> + + <<if $cheatMode > 0>> + <br> + <<options $cheatModeM>> + Sidebar Cheats are currently + <<option 1 "Shown">> + <<option 0 "Hidden">> + <</options>> + <br> + <div class="scLink2"> + [[Add 100000 money|Options][$cheater = 1, cashX(100000, "cheating")]] | [[Add 10000 rep|Options][$cheater = 1, repX(10000, "cheating")]] //Cheating will be flagged in your save// + </div> + <<options $seeAge>> + <<option 2 "Slaves will celebrate birthdays, but not age.">> + <<option 1 "Enable slave aging">> + <<option 0 "Disable slave aging">> + <</options>> + <</if>> + </div> +</div> diff --git a/src/uncategorized/pBombing.tw b/src/uncategorized/pBombing.tw index ac6ab8a82b8502cf60a398b789eb667b14f04bd5..35c9e360646382c75168a9091987253620f748dc 100644 --- a/src/uncategorized/pBombing.tw +++ b/src/uncategorized/pBombing.tw @@ -17,6 +17,7 @@ /* 000-250-006 */ </span> <</if>> +<<set $fcnn.push("...new report on advances in security screening designed to sniff out small explosives like...")>> One fine day, you're strolling down the main promenade, making your usual combined inspection and public rounds. These walks are triply useful, since they allow you to keep a finger on the pulse of your demesne, identify any problems, and display yourself to the population. <<if $Bodyguard != 0>>$Bodyguard.slaveName is walking with you, of course; $his presence protection, intimidation, and ostentation, all in one.<</if>> @@ -27,52 +28,52 @@ The implant is small, and went off too far ahead to do anything more than stun. <br><br> <<if $Bodyguard != 0>> -<<if $Bodyguard.amp <= -4>> - $Bodyguard.slaveName glances at you to check that $his principal is alive, $his P-Limbs already entering combat mode. $He becomes more inhuman by the moment, - <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>> - $his calves unfolding to reveal stabilizers that slide down and broaden $his ground contact. The targeting programs in $his arms allow $him to fire $his light machine gun from the hip, and $he places a precise burst in each target. - <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>> - the arm that holds $his battle rifle extending to lock to its foregrip and stock. With it fully attached to $him, $he raises that arm at each attacker in turn. - <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>> - stabilizers extending from the forearm that holds $his submachine gun. $He fires it one-handed, the weapons barely moving at all as $he flicks from target to target. - <<else>> - $his hand extending fully around $his machine pistol even as $he brings it up to meet the first target. When its first magazine is expended, $his forearm unfolds to reveal another. - <</if>> - Your bodyguard's enhancements are not exactly secret, however, and the attackers are numerous, sent to overwhelm $him. $He drops $his weapon, ammunition expended, producing a scream of triumph from one of the few remaining assailants. Nothing daunted, $he swings $his dominant hand down to $his thigh on that side. It unfolds and places a pistol in $his grip, which $he brings up and uses to end the engagement. - <br><br> - After reloading $his pistol from the ammunition compartment in $his other thigh, $he strides mechanically from body to body, a few of which are still moving. Stopping by each one, $he places $his palm against the base of each head with obscene care before extending the blade in $his forearm through it. This done, $he scans for further threats. There are none, and due to $his terrifying display there is @@.green;an increase in confidence in the security of $arcologies[0].name@@ and @@.green;public applause for your skill in training $him.@@ There is some @@.red;minor damage@@ to repair, but no lasting harm. - <<run cashX(-1000, "event", $Bodyguard)>> - <<run repX(2500, "event", $Bodyguard)>> - <<set $arcologies[0].prosperity += 1>> + <<if $Bodyguard.amp <= -4>> + $Bodyguard.slaveName glances at you to check that $his principal is alive, $his P-Limbs already entering combat mode. $He becomes more inhuman by the moment, + <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>> + $his calves unfolding to reveal stabilizers that slide down and broaden $his ground contact. The targeting programs in $his arms allow $him to fire $his light machine gun from the hip, and $he places a precise burst in each target. + <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>> + the arm that holds $his battle rifle extending to lock to its foregrip and stock. With it fully attached to $him, $he raises that arm at each attacker in turn. + <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>> + stabilizers extending from the forearm that holds $his submachine gun. $He fires it one-handed, the weapons barely moving at all as $he flicks from target to target. + <<else>> + $his hand extending fully around $his machine pistol even as $he brings it up to meet the first target. When its first magazine is expended, $his forearm unfolds to reveal another. + <</if>> + Your bodyguard's enhancements are not exactly secret, however, and the attackers are numerous, sent to overwhelm $him. $He drops $his weapon, ammunition expended, producing a scream of triumph from one of the few remaining assailants. Nothing daunted, $he swings $his dominant hand down to $his thigh on that side. It unfolds and places a pistol in $his grip, which $he brings up and uses to end the engagement. + <br><br> + After reloading $his pistol from the ammunition compartment in $his other thigh, $he strides mechanically from body to body, a few of which are still moving. Stopping by each one, $he places $his palm against the base of each head with obscene care before extending the blade in $his forearm through it. This done, $he scans for further threats. There are none, and due to $his terrifying display there is @@.green;an increase in confidence in the security of $arcologies[0].name@@ and @@.green;public applause for your skill in training $him.@@ There is some @@.red;minor damage@@ to repair, but no lasting harm. + <<run cashX(-1000, "event", $Bodyguard)>> + <<run repX(2500, "event", $Bodyguard)>> + <<set $arcologies[0].prosperity += 1>> -<<elseif $Bodyguard.skill.combat > 0>> - $Bodyguard.slaveName glances at you to check that $his principal is alive for the moment, already - <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>> - getting $his light machine gun into action. Since they're so close, $he doesn't even bother to shoulder the weapon, simply using $his weapon's firepower to dump rounds into each attacker. - <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>> - bringing $his battle rifle up. $He swivels from target to target, placing a single round in each, using the weapon's devastating stopping power to good effect. - <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>> - bringing $his submachine gun up. $He cradles the compact weapon in both hands and swivels from target to target, placing a long burst of fire in each, using the weapon's large ammunition capacity to good effect. - <<else>> - drawing $his machine pistol. $He cradles the diminutive weapon in both hands and swivels from target to target, placing a disciplined burst of fire in each at its center of mass. - <</if>> - None of them gets within five <<if $showInches == 2>>yards<<else>>meters<</if>>. $Bodyguard.slaveName dispassionately places a round in the head of each body, reloads, and takes up a position from which $he can watch for further threats. There are none, and due to $his sterling conduct there is @@.green;an increase in confidence in the security of $arcologies[0].name@@ and @@.green;public applause for your skill in training $him.@@ There is some @@.red;minor damage@@ to repair, but no lasting harm. - <<run cashX(-1000, "event", $Bodyguard)>> - <<run repX(2500, "event", $Bodyguard)>> - <<set $arcologies[0].prosperity += 1>> + <<elseif $Bodyguard.skill.combat > 0>> + $Bodyguard.slaveName glances at you to check that $his principal is alive for the moment, already + <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>> + getting $his light machine gun into action. Since they're so close, $he doesn't even bother to shoulder the weapon, simply using $his weapon's firepower to dump rounds into each attacker. + <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>> + bringing $his battle rifle up. $He swivels from target to target, placing a single round in each, using the weapon's devastating stopping power to good effect. + <<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>> + bringing $his submachine gun up. $He cradles the compact weapon in both hands and swivels from target to target, placing a long burst of fire in each, using the weapon's large ammunition capacity to good effect. + <<else>> + drawing $his machine pistol. $He cradles the diminutive weapon in both hands and swivels from target to target, placing a disciplined burst of fire in each at its center of mass. + <</if>> + None of them gets within five <<if $showInches == 2>>yards<<else>>meters<</if>>. $Bodyguard.slaveName dispassionately places a round in the head of each body, reloads, and takes up a position from which $he can watch for further threats. There are none, and due to $his sterling conduct there is @@.green;an increase in confidence in the security of $arcologies[0].name@@ and @@.green;public applause for your skill in training $him.@@ There is some @@.red;minor damage@@ to repair, but no lasting harm. + <<run cashX(-1000, "event", $Bodyguard)>> + <<run repX(2500, "event", $Bodyguard)>> + <<set $arcologies[0].prosperity += 1>> -<<elseif $Bodyguard.muscles > 5>> - $Bodyguard.slaveName hurriedly <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>>gets $his light machine gun firing. The weapon's high rate of fire tears through the first enemy but rapidly pulls $his aim off target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>>brings up $his battle rifle. $He hits the nearest assailant with $his first round and then fires again, but the weapon's powerful recoil sends it over $his target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>>brings up $his submachine gun. $He points it at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<<else>>draws $his machine pistol. $He points it one-handed at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<</if>> By the time $he pulls the muzzle back down the others are on $him. Fortunately, $he is equal to the challenge, getting $his sword into gory action. $He is physically powerful but unskilled, so the result is simple, unlovely butcher's work. This spectacle produces @@.green;an increase in confidence in the security of $arcologies[0].name.@@ There is some @@.red;minor property damage@@ to repair, but no lasting harm. - <<run cashX(-1000, "event", $Bodyguard)>> - <<set $arcologies[0].prosperity += 1>> + <<elseif $Bodyguard.muscles > 5>> + $Bodyguard.slaveName hurriedly <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>>gets $his light machine gun firing. The weapon's high rate of fire tears through the first enemy but rapidly pulls $his aim off target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>>brings up $his battle rifle. $He hits the nearest assailant with $his first round and then fires again, but the weapon's powerful recoil sends it over $his target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>>brings up $his submachine gun. $He points it at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<<else>>draws $his machine pistol. $He points it one-handed at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<</if>> By the time $he pulls the muzzle back down the others are on $him. Fortunately, $he is equal to the challenge, getting $his sword into gory action. $He is physically powerful but unskilled, so the result is simple, unlovely butcher's work. This spectacle produces @@.green;an increase in confidence in the security of $arcologies[0].name.@@ There is some @@.red;minor property damage@@ to repair, but no lasting harm. + <<run cashX(-1000, "event", $Bodyguard)>> + <<set $arcologies[0].prosperity += 1>> -<<else>> - $Bodyguard.slaveName hurriedly <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>>gets $his light machine gun firing. The weapon's high rate of fire tears through the first enemy but rapidly pulls $his aim off target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>>brings up $his battle rifle. $He hits the nearest assailant with $his first round and then fires again, but the weapon's powerful recoil sends it over $his target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>>brings up $his submachine gun. $He points it at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<<else>>draws $his machine pistol. $He points it one-handed at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<</if>> By the time $he pulls the muzzle back down the others are on $him. $His sword is very sharp, but so are $his assailants' weapons, and everyone is unskilled. As often happens with bladed fights between unarmored novices, everyone dies, and so fast that you cannot intervene. $Bodyguard.slaveName expires gasping in agony over multiple deep wounds to $his abdomen, but still manages to lock eyes with you as $he does. There is some @@.red;minor property damage@@ to repair, but no lasting harm. - <<run cashX(-1000, "event", $Bodyguard)>> - <<set $Bodyguard.health -= 1000>> - <<set $activeSlave = $Bodyguard>> - <<= removeActiveSlave() >> -<</if>> /* closes $Bodyguard != 0 */ + <<else>> + $Bodyguard.slaveName hurriedly <<if ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 5>>gets $his light machine gun firing. The weapon's high rate of fire tears through the first enemy but rapidly pulls $his aim off target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 4>>brings up $his battle rifle. $He hits the nearest assailant with $his first round and then fires again, but the weapon's powerful recoil sends it over $his target.<<elseif ($Bodyguard.muscles+$Bodyguard.height-100)/25 > 3>>brings up $his submachine gun. $He points it at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<<else>>draws $his machine pistol. $He points it one-handed at the nearest assailant and pulls the trigger; the weapon's high rate of fire tears through the enemy but rapidly pulls $his aim off target.<</if>> By the time $he pulls the muzzle back down the others are on $him. $His sword is very sharp, but so are $his assailants' weapons, and everyone is unskilled. As often happens with bladed fights between unarmored novices, everyone dies, and so fast that you cannot intervene. $Bodyguard.slaveName expires gasping in agony over multiple deep wounds to $his abdomen, but still manages to lock eyes with you as $he does. There is some @@.red;minor property damage@@ to repair, but no lasting harm. + <<run cashX(-1000, "event", $Bodyguard)>> + <<set $Bodyguard.health -= 1000>> + <<set $activeSlave = $Bodyguard>> + <<= removeActiveSlave() >> + <</if>> /* closes $Bodyguard != 0 */ <<elseif $personalArms > 0>> You are prepared for this exigency. Your handsome clothing conceals a small but very powerful pistol. This fact comes slowly back to you as your ears and mind shake off the blast effects. There is something important about this fact, but you are having trouble thinking of it. Eventually, you remember, and groggily draw and level the weapon. Its rocket-assisted slugs detonate on contact, assisting your impaired marksmanship by causing fatal damage regardless of shot placement. You are alive, and not permanently damaged, which is more than can be said for your assailants, who have, with the assistance of your weapon, redecorated this area of the club in red tones. There is some @@.red;minor property damage@@ to repair, but no lasting harm. diff --git a/src/uncategorized/pHackerSupport.tw b/src/uncategorized/pHackerSupport.tw index 636cee40d4ccbc7b8aaa9fee901955e0d824df97..591dd0ef84efe00cd8a5f3ce5766a6eedcdf62bb 100644 --- a/src/uncategorized/pHackerSupport.tw +++ b/src/uncategorized/pHackerSupport.tw @@ -3,6 +3,7 @@ <<set $nextButton = "End Call", $nextLink = "Random Nonindividual Event", $hackerSupport = 0>> <<setAssistantPronouns>> +<<set $fcnn.push("...the Daughters of Liberty as 'cyberterrorists', after an attempted...")>> While you are reviewing your information security posture in light of the Daughters of Liberty and their apparent ability to get into your systems, you receive yet another well-secured message unannounced. To your surprise, it isn't the Daughters. It's a video call from a rather interesting individual. She is quite pretty, and has a variety of facial tattoos and piercings; her face is androgynous enough that you aren't entirely sure what gender (probably) she considers herself. Her pale skin is illuminated by the diffuse glow from what's clearly a huge bank of monitors, and the clacking sound of a traditional mechanical keyboard can be heard over the line. diff --git a/src/uncategorized/pPeacekeepersIndependence.tw b/src/uncategorized/pPeacekeepersIndependence.tw index b0f41e4dee1ef42cdff0269ba17fa7bd832d715a..27e3b954c24cab41a692382da71beb5d1888929e 100644 --- a/src/uncategorized/pPeacekeepersIndependence.tw +++ b/src/uncategorized/pPeacekeepersIndependence.tw @@ -27,6 +27,7 @@ General $peacekeepers.generalName contacts you again, looking more tired and bat <br><br> "You have my thanks," he says formally. "We'll be in control here soon enough. The one thing we'll have an almost limitless supply of is people. I don't think anyone's likely to notice a few menial slaves transferred into the Free City. I'm sure a regular trade already exists; we'll just be adding a few undesirables to it." He ends the call, looking determined. Despite his confidence, he has his work cut out for him. <<set cashX(-100000, "peacekeepers"), $peacekeepers.strength = 50, $peacekeepers.attitude += 5, $peacekeepers.undermining = 0>> + <<set $fcnn.push("...asking: how many will follow the precedent set by the peacekeeping force in...")>> <</replace>> <</link>> //This will cost <<print cashFormat(100000)>>// <<else>> @@ -39,12 +40,13 @@ General $peacekeepers.generalName contacts you again, looking more tired and bat <br><br> "That's extremely generous of you," he says, with an undertone of relief. "This is going to go much more smoothly than I'd originally thought. And I see that we're going to have friends and allies out here, as we establish ourselves. We're going to have quite a few undesirables to rid ourselves of, here, and the menial slave trade between this area and the Free City seems like an opportune way to do that." He ends the call, looking confident. <<set cashX(-250000, "peacekeepers"), $peacekeepers.strength = 50, $peacekeepers.attitude += 25, $peacekeepers.undermining = 0>> + <<set $fcnn.push("...asking: how many will follow the precedent set by the peacekeeping force in...")>> <</replace>> <</link>> //This will cost <<print cashFormat(250000)>>// <</if>> <br><<link "Decline to support him">> <<replace "#result">> - You inform General $peacekeepers.generalName that you will not be providing assistance. He does not falter, but he looks suddenly older, as though the prospect of a decisive stroke was giving him the strength to carry on. He expresses his regrets dully, and then ends the call. + You inform General $peacekeepers.generalName that you will not be providing assistance. He does not falter, but he looks suddenly older, as though the prospect of a decisive strike was giving him the strength to carry on. He expresses his regrets dully, and then ends the call. <</replace>> <</link>> </span> diff --git a/src/uncategorized/pPeacekeepersInfluence.tw b/src/uncategorized/pPeacekeepersInfluence.tw index ead885aa7f6b80234f38f9ab484cf094ec678901..6828f92f5339bee3766227d5d9d3aa53b01cb809 100644 --- a/src/uncategorized/pPeacekeepersInfluence.tw +++ b/src/uncategorized/pPeacekeepersInfluence.tw @@ -5,7 +5,7 @@ <<set $peacekeepers.influenceAnnounced = 1>> <<setAssistantPronouns>> -General $peacekeepers.generalName has successfully declared his independence from his mother country. That nation recruited, trained, and commanded him and all his men and women, but then it sent him to keep the peace in a war-torn region, failed to give him the support he needed, and then tried to withdraw him when the costs of what support they were willing to send overtopped what weak political will the old world still has. In truth, it was only a half-step from peacekeeping force to government, for General $peacekeepers.generalName and his troops. They were already the only source of public order in that area. +General $peacekeepers.generalName has successfully declared his independence from his mother country. That nation recruited, trained, and commanded him and all his men and women, but then it sent him to keep the peace in a war-torn region, failed to give him the support he needed, and then tried to withdraw him when the costs of what support they were willing to send overtopped what weak political will the old world still has. In truth, it was only a half-step from peacekeeping force to government for General $peacekeepers.generalName and his troops. They were already the only source of public order in that area. <br><br> diff --git a/src/uncategorized/pUndergroundRailroad.tw b/src/uncategorized/pUndergroundRailroad.tw index cf3b57ec6cdbac3fe8b0790aff3c1b594b5cbf70..b82c0bc3cb580bb21a4aef674b4b5538ce72b5d9 100644 --- a/src/uncategorized/pUndergroundRailroad.tw +++ b/src/uncategorized/pUndergroundRailroad.tw @@ -22,6 +22,7 @@ <</if>> <</if>> <<setAssistantPronouns>> +<<set $fcnn.push("...you believe a slave has been contacted by the Daughters of Liberty, please call...")>> <<set $traitorType = "standard">> /* diff --git a/src/uncategorized/persBusiness.tw b/src/uncategorized/persBusiness.tw index 4f7ce5a0608a093dda9a549d86066aea3010c90d..32db170feff27022ddc899f41425bd0c38b7951c 100644 --- a/src/uncategorized/persBusiness.tw +++ b/src/uncategorized/persBusiness.tw @@ -845,7 +845,7 @@ Routine upkeep of your demesne costs @@.yellow;<<print cashFormat($costs)>>.@@ <<set _income += Math.round($week / 3 * _price * 10 * _factoryMod)>> <</if>> <<if $sellTo.raiders == 1>> - A share of our weapons production is sold to other free cities. + A share of our weapons production is sold to other Free Cities. <<set _income += Math.round($week / 3 * _price * 10 * _factoryMod)>> <</if>> <<if $peacekeepers.strength >= 50>> diff --git a/src/uncategorized/personalAssistantAppearance.tw b/src/uncategorized/personalAssistantAppearance.tw index 99d4667cf074403d40835e2292b2ad0cfa8780b0..5cc805d0f2d09f2044b7111934ede38dece99801 100644 --- a/src/uncategorized/personalAssistantAppearance.tw +++ b/src/uncategorized/personalAssistantAppearance.tw @@ -1177,58 +1177,58 @@ _HeA's a cute little <<if $arcologies[0].FSSupremacist != "unset" && $assistantF <<case "imp">> _HeA's a cute little <<if $arcologies[0].FSSupremacist != "unset" && $assistantFSAppearance != "subjugationist">>$arcologies[0].FSSupremacistRace <<elseif $assistantFSAppearance == "subjugationist">>$arcologies[0].FSSubjugationistRace <</if>> imp with black hair and comically tiny bat-like wings. <<if $assistantFSOptions>> - <<switch $assistantFSAppearance>> - <<case "paternalist">> - _HeA has swapped to wearing much more, relatively speaking, modest clothing; extremely tight jeans and a top so small and taut you swear _heA's about to pop out of it. - <<case "degradationist">> - _HeA has replaced _hisA loincloth with a chastity belt containing an immense dildo; it is clearly seen distending _hisA belly. Countless scars line _hisA back and ass from the frequent lashings _heA enjoys. - <<case "supremacist">> - _HeA's taken to carrying a cat o' nine tails whip at all times so that _heA's ready to lash a <<if $arcologies[0].FSSupremacistRace == "mixed race">>pureblooded<<else>>non-$arcologies[0].FSSupremacistRace<</if>> slave at a moment's notice. - <<case "subjugationist">> - _HisA cartoonishly exaggerated $arcologies[0].FSSubjugationistRace body is just begging for a whipping, even when _heA isn't doing something mischievous and sneaky, which is rare. - <<case "roman revivalist">> - _HeA'd fit in perfectly tormenting the condemned in Tartarus. - <<case "aztec revivalist">> - _HeA's taken to carrying a pair of ceremonial daggers perfect for bloodletting and even an impromptu sacrifice. Two things _heA really enjoys performing. - <<case "egyptian revivalist">> - _HeA has recently adjusted _hisA appearance to resemble an Egyptian slave; that combined with a manufactured rebellious streak are sure to earn _himA a whipping. - <<case "edo revivalist">> - _HeA has tightly bound _himselfA in shibari ropes, although they don't achieve much given _heA can still fly freely. - <<case "arabian revivalist">> - _HeA has donned the skimpiest, sluttiest outfit _heA could think of. _HeA's just begging to get stoned. - <<case "chinese revivalist">> - _HeA has added a number of piercings to _hisA body to allow _himA to be suspended by hooks rather than flying. - <<case "chattel religionist">> - _HeA has chosen to go fully naked, exposing the symbols of your religion pierced through _hisA nipples and clit. - <<case "physical idealist">> - _HeA has adjusted _hisA appearance to be rather muscular. Not only can _heA crack a whip harder than ever, but when _heA flexes, _heA nearly pops the belt around _hisA chest. - <<case "hedonistic decadence">> - _HeA has become rather chubby lately. _HeA may want to change up _hisA routine of tormenting the hungry by devouring food before them. - <<case "repopulation focus">> - _HeA's added a pair of tight belts across _hisA stomach recently. The taut material painfully digs into _hisA growing pregnancy. - <<case "eugenics">> - _HeA has an iron chastity belt under _hisA loincloth and two large bulges in _hisA middle. You don't have to guess _heA has a pair of enormous dildos locked inside _himA. - <<case "gender radicalist">> - _HeA's recently begun rendering _himselfA more androgynous. Something can be seen commonly tenting _hisA loincloth; when ever if shifts to the side, you catch sight of a thumb sized and heavily pierced clitoris. - <<case "gender fundamentalist">> - _HeA's recently increased the size of _hisA breasts and width of _hisA hips. The belt around _hisA chest tightly binds _hisA new bust and causes its flesh to bulge and jiggle delightfully. - <<case "asset expansionist">> - _HeA's had to let out _hisA chest belt to accommodate _hisA new excessive bust, but only a little; the belt creates a deep canyon across _hisA chest with plenty of flesh bulging above and below the straining leather. - <<case "transformation fetishist">> - _HeA's had to let out _hisA chest belt to accommodate _hisA new excessive bust, but only a little; the belt creates a deep canyon across _hisA fake chest and threatens to painfully pop the underlying implants. - <<case "pastoralist">> - _HeA's exchanged _hisA chest belt for a pair of rings with leather straps. _HeA wears them so tightly every motion _heA makes forces a gush of milk from _hisA painfully swollen breasts. - <<case "maturity preferentialist">> - _HeA has recently updated _hisA appearance to be more mature; an air of experience follows _himA as _heA flies around. You can hear _himA plotting tortures, many you've never heard of. - <<case "youth preferentialist">> - _HeA has recently updated _hisA appearance to be more youthful. _HeA frequently flutters by, enjoying _hisA youthful vigor. _HeA looks so innocent, but looks can be deceiving! - <<case "slimness enthusiast">> - _HisA new, thinner body gives _himA plenty of excuses to pull _hisA straps even tighter. - <<case "body purist">> - _HeA has forgone covering _himselfA to allow _hisA sinful, pure body to be visible to all. - <<default>> - _HeA wears only a belt, tightly bound, over _hisA tiny breasts and a simple loincloth over _hisA crotch, leaving most of _hisA body in plain, but arousing, sight. - <</switch>> + <<switch $assistantFSAppearance>> + <<case "paternalist">> + _HeA has swapped to wearing much more, relatively speaking, modest clothing; extremely tight jeans and a top so small and taut you swear _heA's about to pop out of it. + <<case "degradationist">> + _HeA has replaced _hisA loincloth with a chastity belt containing an immense dildo; it is clearly seen distending _hisA belly. Countless scars line _hisA back and ass from the frequent lashings _heA enjoys. + <<case "supremacist">> + _HeA's taken to carrying a cat o' nine tails whip at all times so that _heA's ready to lash a <<if $arcologies[0].FSSupremacistRace == "mixed race">>pureblooded<<else>>non-$arcologies[0].FSSupremacistRace<</if>> slave at a moment's notice. + <<case "subjugationist">> + _HisA cartoonishly exaggerated $arcologies[0].FSSubjugationistRace body is just begging for a whipping, even when _heA isn't doing something mischievous and sneaky, which is rare. + <<case "roman revivalist">> + _HeA'd fit in perfectly tormenting the condemned in Tartarus. + <<case "aztec revivalist">> + _HeA's taken to carrying a pair of ceremonial daggers perfect for bloodletting and even an impromptu sacrifice. Two things _heA really enjoys performing. + <<case "egyptian revivalist">> + _HeA has recently adjusted _hisA appearance to resemble an Egyptian slave; that combined with a manufactured rebellious streak are sure to earn _himA a whipping. + <<case "edo revivalist">> + _HeA has tightly bound _himselfA in shibari ropes, although they don't achieve much given _heA can still fly freely. + <<case "arabian revivalist">> + _HeA has donned the skimpiest, sluttiest outfit _heA could think of. _HeA's just begging to get stoned. + <<case "chinese revivalist">> + _HeA has added a number of piercings to _hisA body to allow _himA to be suspended by hooks rather than flying. + <<case "chattel religionist">> + _HeA has chosen to go fully naked, exposing the symbols of your religion pierced through _hisA nipples and clit. + <<case "physical idealist">> + _HeA has adjusted _hisA appearance to be rather muscular. Not only can _heA crack a whip harder than ever, but when _heA flexes, _heA nearly pops the belt around _hisA chest. + <<case "hedonistic decadence">> + _HeA has become rather chubby lately. _HeA may want to change up _hisA routine of tormenting the hungry by devouring food before them. + <<case "repopulation focus">> + _HeA's added a pair of tight belts across _hisA stomach recently. The taut material painfully digs into _hisA growing pregnancy. + <<case "eugenics">> + _HeA has an iron chastity belt under _hisA loincloth and two large bulges in _hisA middle. You don't have to guess _heA has a pair of enormous dildos locked inside _himA. + <<case "gender radicalist">> + _HeA's recently begun rendering _himselfA more androgynous. Something can be seen commonly tenting _hisA loincloth; whenever it shifts to the side, you catch sight of a thumb sized and heavily pierced clitoris. + <<case "gender fundamentalist">> + _HeA's recently increased the size of _hisA breasts and width of _hisA hips. The belt around _hisA chest tightly binds _hisA new bust and causes its flesh to bulge and jiggle delightfully. + <<case "asset expansionist">> + _HeA's had to let out _hisA chest belt to accommodate _hisA new excessive bust, but only a little; the belt creates a deep canyon across _hisA chest with plenty of flesh bulging above and below the straining leather. + <<case "transformation fetishist">> + _HeA's had to let out _hisA chest belt to accommodate _hisA new excessive bust, but only a little; the belt creates a deep canyon across _hisA fake chest and threatens to painfully pop the underlying implants. + <<case "pastoralist">> + _HeA's exchanged _hisA chest belt for a pair of rings with leather straps. _HeA wears them so tightly every motion _heA makes forces a gush of milk from _hisA painfully swollen breasts. + <<case "maturity preferentialist">> + _HeA has recently updated _hisA appearance to be more mature; an air of experience follows _himA as _heA flies around. You can hear _himA plotting tortures, many you've never heard of. + <<case "youth preferentialist">> + _HeA has recently updated _hisA appearance to be more youthful. _HeA frequently flutters by, enjoying _hisA youthful vigor. _HeA looks so innocent, but looks can be deceiving! + <<case "slimness enthusiast">> + _HisA new, thinner body gives _himA plenty of excuses to pull _hisA straps even tighter. + <<case "body purist">> + _HeA has forgone covering _himselfA to allow _hisA sinful, pure body to be visible to all. + <<default>> + _HeA wears only a belt, tightly bound, over _hisA tiny breasts and a simple loincloth over _hisA crotch, leaving most of _hisA body in plain, but arousing, sight. + <</switch>> <<else>> _HeA wears only a belt, tightly bound, over _hisA tiny breasts and a simple loincloth over _hisA crotch, leaving most of _hisA body in plain, but arousing, sight. <</if>> @@ -1487,7 +1487,7 @@ _HeA's a cute little <<if $arcologies[0].FSSupremacist != "unset" && $assistantF <<case "repopulation focus">> _HisA belly is round with child and is in a constant struggle with _hisA erect cock over which gets to protrude out _hisA front. <<case "eugenics">> - _HeA's become even more irresistible lately; <<if $PC.vagina == 1>>you can help but think of that perfect cock cumming deep in your pussy and your belly rounding with a gorgeous child<<else>>the children sired by such a stud are unimaginable<</if>>. + _HeA's become even more irresistible lately; <<if $PC.vagina == 1>>you can't help but think of that perfect cock cumming deep in your pussy and your belly rounding with a gorgeous child<<else>>the children sired by such a stud are unimaginable<</if>>. <<case "gender radicalist">> <<if $arcologies[0].FSGenderRadicalistLawFuta == 1>> _HeA is wearing nothing at all and has recently rendered _himselfA slightly more feminine. _HeA makes sure to make exaggerated motions to show off the pussy hidden beneath _hisA swinging nuts. diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw index 6f36e6ae36979e00306a882f572163a2ee03c941..a51d460551c236c8b7f0c3878446a1f318cd7258 100644 --- a/src/uncategorized/personalAssistantOptions.tw +++ b/src/uncategorized/personalAssistantOptions.tw @@ -64,8 +64,8 @@ __Appearance settings:__ <br> _HeA is currently using the ''$assistantAppearance'' avatar. <<if $PAPublic == 1>> -<<set _seed = []>> -<<switch $assistantAppearance>> + <<set _seed = []>> + <<switch $assistantAppearance>> <<case "businesswoman">> <<if $arcologies[0].FSSubjugationist != "unset">> <<set _seed.push($arcologies[0].FSSubjugationistRace + " subjugation")>> <</if>> <<if $arcologies[0].FSDegradationist != "unset">> <<set _seed.push("degradationism")>> <</if>> @@ -229,23 +229,23 @@ _HeA is currently using the ''$assistantAppearance'' avatar. <<if $arcologies[0].FSChattelReligionist != "unset">> <<set _seed.push("chattel religionism")>> <</if>> <<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">> <<if $arcologies[0].FSTransformationFetishist != "unset">> <<set _seed.push("transformation fetishism")>> <</if>> -<</switch>> -<<if _seed.length > 0>> - <<set _desc = "">> - <<for _i = 0; _i < _seed.length; _i++>> - <<set _desc = (_desc + _seed[_i])>> - <<if (_i < _seed.length-2)>> - <<set _desc = (_desc + ", ")>> - <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> - <<set _desc = (_desc + ", and ")>> - <<elseif (_seed.length == 2) && (_i == 0)>> - <<set _desc = (_desc + " and ")>> - <</if>> - <</for>> - This appearance bolsters _desc. -<<else>> - It has no impact on public opinion. -<</if>> + <</switch>> + <<if _seed.length > 0>> + <<set _desc = "">> + <<for _i = 0; _i < _seed.length; _i++>> + <<set _desc = (_desc + _seed[_i])>> + <<if (_i < _seed.length-2)>> + <<set _desc = (_desc + ", ")>> + <<elseif (_seed.length > 2) && (_i == _seed.length-2)>> + <<set _desc = (_desc + ", and ")>> + <<elseif (_seed.length == 2) && (_i == 0)>> + <<set _desc = (_desc + " and ")>> + <</if>> + <</for>> + This appearance bolsters _desc. + <<else>> + It has no impact on public opinion. + <</if>> <</if>> <br> @@ -857,111 +857,111 @@ __Downloadable Appearances:__ /* Choose _hisA FS appearance */ <<if $assistantFSOptions != 0 && $assistantAppearance != "normal">> -<br> -__Society-specific appearance settings:__ -<br> -_HeA can further refine _hisA avatar to match the arcology's social profile<<if $assistantFSAppearance != "default">>; _hisA current variation shows ''$assistantFSAppearance'' touches.<<else>>, though no details stand out right now.<</if>> -<br> -<<if $assistantFSAppearance != "default">> - [[Default|Personal assistant options][$assistantFSAppearance = "default"]] - <br> -<</if>> -<<if $assistantFSAppearance != "gender radicalist" && $arcologies[0].FSGenderRadicalistDecoration > 20>> - [[Gender Radicalist|Personal assistant options][$assistantFSAppearance = "gender radicalist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "gender fundamentalist" && $arcologies[0].FSGenderFundamentalistDecoration > 20>> - [[Gender Fundamentalist|Personal assistant options][$assistantFSAppearance = "gender fundamentalist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "paternalist" && $arcologies[0].FSPaternalistDecoration > 20>> - [[Paternalist|Personal assistant options][$assistantFSAppearance = "paternalist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "degradationist" && $arcologies[0].FSDegradationistDecoration > 20>> - [[Degradationist|Personal assistant options][$assistantFSAppearance = "degradationist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "repopulation focus" && $arcologies[0].FSRepopulationFocusDecoration > 20>> - [[Repopulation Focus|Personal assistant options][$assistantFSAppearance = "repopulation focus"]] - <br> -<</if>> -<<if $assistantFSAppearance != "eugenics" && $arcologies[0].FSRestartDecoration > 20>> - [[Eugenics|Personal assistant options][$assistantFSAppearance = "eugenics"]] - <br> -<</if>> -<<if $assistantFSAppearance != "body purist" && $arcologies[0].FSBodyPuristDecoration > 20>> - [[Body Purist|Personal assistant options][$assistantFSAppearance = "body purist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "transformation fetishist" && $arcologies[0].FSTransformationFetishistDecoration > 20>> - [[Transformation Fetishist|Personal assistant options][$assistantFSAppearance = "transformation fetishist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "youth preferentialist" && $arcologies[0].FSYouthPreferentialistDecoration > 20>> - [[Youth Preferentialist|Personal assistant options][$assistantFSAppearance = "youth preferentialist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "maturity preferentialist" && $arcologies[0].FSMaturityPreferentialistDecoration > 20>> - [[Maturity Preferentialist|Personal assistant options][$assistantFSAppearance = "maturity preferentialist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "slimness enthusiast" && $arcologies[0].FSSlimnessEnthusiastDecoration > 20>> - [[Slimness Enthusiast|Personal assistant options][$assistantFSAppearance = "slimness enthusiast"]] - <br> -<</if>> -<<if $assistantFSAppearance != "asset expansionist" && $arcologies[0].FSAssetExpansionistDecoration > 20>> - [[Asset Expansionist|Personal assistant options][$assistantFSAppearance = "asset expansionist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "pastoralist" && $arcologies[0].FSPastoralistDecoration > 20>> - [[Pastoralist|Personal assistant options][$assistantFSAppearance = "pastoralist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "physical idealist" && $arcologies[0].FSPhysicalIdealistDecoration > 20>> - [[Physical Idealist|Personal assistant options][$assistantFSAppearance = "physical idealist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "hedonistic decadence" && $arcologies[0].FSHedonisticDecadenceDecoration > 20>> - [[Hedonistic Decadence|Personal assistant options][$assistantFSAppearance = "hedonistic decadence"]] - <br> -<</if>> -<<if $assistantFSAppearance != "supremacist" && $arcologies[0].FSSupremacistDecoration > 20>> - [[Supremacist|Personal assistant options][$assistantFSAppearance = "supremacist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "subjugationist" && $arcologies[0].FSSubjugationistDecoration > 20>> - [[Subjugationist|Personal assistant options][$assistantFSAppearance = "subjugationist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "chattel religionist" && $arcologies[0].FSChattelReligionistDecoration > 20>> - [[Chattel Religionist|Personal assistant options][$assistantFSAppearance = "chattel religionist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "roman revivalist" && $arcologies[0].FSRomanRevivalistDecoration > 20>> - [[Roman Revivalist|Personal assistant options][$assistantFSAppearance = "roman revivalist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "aztec revivalist" && $arcologies[0].FSAztecRevivalistDecoration > 20>> - [[Aztec Revivalist|Personal assistant options][$assistantFSAppearance = "aztec revivalist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "egyptian revivalist" && $arcologies[0].FSEgyptianRevivalistDecoration > 20>> - [[Egyptian Revivalist|Personal assistant options][$assistantFSAppearance = "egyptian revivalist"]] - <br> -<</if>> -<<if $assistantFSAppearance != "edo revivalist" && $arcologies[0].FSEdoRevivalistDecoration > 20>> - [[Edo Revivalist|Personal assistant options][$assistantFSAppearance = "edo revivalist"]] <br> -<</if>> -<<if $assistantFSAppearance != "arabian revivalist" && $arcologies[0].FSArabianRevivalistDecoration > 20>> - [[Arabian Revivalist|Personal assistant options][$assistantFSAppearance = "arabian revivalist"]] + __Society-specific appearance settings:__ <br> -<</if>> -<<if $assistantFSAppearance != "chinese revivalist" && $arcologies[0].FSChineseRevivalistDecoration > 20>> - [[Chinese Revivalist|Personal assistant options][$assistantFSAppearance = "chinese revivalist"]] + _HeA can further refine _hisA avatar to match the arcology's social profile<<if $assistantFSAppearance != "default">>; _hisA current variation shows ''$assistantFSAppearance'' touches.<<else>>, though no details stand out right now.<</if>> <br> -<</if>> + <<if $assistantFSAppearance != "default">> + [[Default|Personal assistant options][$assistantFSAppearance = "default"]] + <br> + <</if>> + <<if $assistantFSAppearance != "gender radicalist" && $arcologies[0].FSGenderRadicalistDecoration > 20>> + [[Gender Radicalist|Personal assistant options][$assistantFSAppearance = "gender radicalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "gender fundamentalist" && $arcologies[0].FSGenderFundamentalistDecoration > 20>> + [[Gender Fundamentalist|Personal assistant options][$assistantFSAppearance = "gender fundamentalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "paternalist" && $arcologies[0].FSPaternalistDecoration > 20>> + [[Paternalist|Personal assistant options][$assistantFSAppearance = "paternalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "degradationist" && $arcologies[0].FSDegradationistDecoration > 20>> + [[Degradationist|Personal assistant options][$assistantFSAppearance = "degradationist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "repopulation focus" && $arcologies[0].FSRepopulationFocusDecoration > 20>> + [[Repopulation Focus|Personal assistant options][$assistantFSAppearance = "repopulation focus"]] + <br> + <</if>> + <<if $assistantFSAppearance != "eugenics" && $arcologies[0].FSRestartDecoration > 20>> + [[Eugenics|Personal assistant options][$assistantFSAppearance = "eugenics"]] + <br> + <</if>> + <<if $assistantFSAppearance != "body purist" && $arcologies[0].FSBodyPuristDecoration > 20>> + [[Body Purist|Personal assistant options][$assistantFSAppearance = "body purist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "transformation fetishist" && $arcologies[0].FSTransformationFetishistDecoration > 20>> + [[Transformation Fetishist|Personal assistant options][$assistantFSAppearance = "transformation fetishist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "youth preferentialist" && $arcologies[0].FSYouthPreferentialistDecoration > 20>> + [[Youth Preferentialist|Personal assistant options][$assistantFSAppearance = "youth preferentialist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "maturity preferentialist" && $arcologies[0].FSMaturityPreferentialistDecoration > 20>> + [[Maturity Preferentialist|Personal assistant options][$assistantFSAppearance = "maturity preferentialist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "slimness enthusiast" && $arcologies[0].FSSlimnessEnthusiastDecoration > 20>> + [[Slimness Enthusiast|Personal assistant options][$assistantFSAppearance = "slimness enthusiast"]] + <br> + <</if>> + <<if $assistantFSAppearance != "asset expansionist" && $arcologies[0].FSAssetExpansionistDecoration > 20>> + [[Asset Expansionist|Personal assistant options][$assistantFSAppearance = "asset expansionist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "pastoralist" && $arcologies[0].FSPastoralistDecoration > 20>> + [[Pastoralist|Personal assistant options][$assistantFSAppearance = "pastoralist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "physical idealist" && $arcologies[0].FSPhysicalIdealistDecoration > 20>> + [[Physical Idealist|Personal assistant options][$assistantFSAppearance = "physical idealist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "hedonistic decadence" && $arcologies[0].FSHedonisticDecadenceDecoration > 20>> + [[Hedonistic Decadence|Personal assistant options][$assistantFSAppearance = "hedonistic decadence"]] + <br> + <</if>> + <<if $assistantFSAppearance != "supremacist" && $arcologies[0].FSSupremacistDecoration > 20>> + [[Supremacist|Personal assistant options][$assistantFSAppearance = "supremacist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "subjugationist" && $arcologies[0].FSSubjugationistDecoration > 20>> + [[Subjugationist|Personal assistant options][$assistantFSAppearance = "subjugationist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "chattel religionist" && $arcologies[0].FSChattelReligionistDecoration > 20>> + [[Chattel Religionist|Personal assistant options][$assistantFSAppearance = "chattel religionist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "roman revivalist" && $arcologies[0].FSRomanRevivalistDecoration > 20>> + [[Roman Revivalist|Personal assistant options][$assistantFSAppearance = "roman revivalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "aztec revivalist" && $arcologies[0].FSAztecRevivalistDecoration > 20>> + [[Aztec Revivalist|Personal assistant options][$assistantFSAppearance = "aztec revivalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "egyptian revivalist" && $arcologies[0].FSEgyptianRevivalistDecoration > 20>> + [[Egyptian Revivalist|Personal assistant options][$assistantFSAppearance = "egyptian revivalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "edo revivalist" && $arcologies[0].FSEdoRevivalistDecoration > 20>> + [[Edo Revivalist|Personal assistant options][$assistantFSAppearance = "edo revivalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "arabian revivalist" && $arcologies[0].FSArabianRevivalistDecoration > 20>> + [[Arabian Revivalist|Personal assistant options][$assistantFSAppearance = "arabian revivalist"]] + <br> + <</if>> + <<if $assistantFSAppearance != "chinese revivalist" && $arcologies[0].FSChineseRevivalistDecoration > 20>> + [[Chinese Revivalist|Personal assistant options][$assistantFSAppearance = "chinese revivalist"]] + <br> + <</if>> <</if>> <</if>> /* CLOSES PERSONALITY ACTIVE REQUIREMENT */ diff --git a/src/uncategorized/reNickname.tw b/src/uncategorized/reNickname.tw index 3292471ac3d1ca68e00b73434b4667ea374a57d4..9162e6d7f88f120c65cb76d15554eb177ff62df6 100644 --- a/src/uncategorized/reNickname.tw +++ b/src/uncategorized/reNickname.tw @@ -203,7 +203,7 @@ <<if ($activeSlave.voice == 0)>> <<set $qualifiedNicknames.push("mute")>> <</if>> -<<if $activeSlave.breedingMark == 1 && $propOutcome == 1>> +<<if $activeSlave.breedingMark == 1 && $propOutcome == 1 && $arcologies[0].FSRestart != "unset">> <<set $qualifiedNicknames.push("mark")>> <</if>> <<if ($activeSlave.broodmother > 1) && ($activeSlave.preg >= 37)>> diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw index b9a73a65ebd9c3f44bf5d290c763589a104488c8..683a7485f16c7383cc90b3058a7c207ce1a87bad 100644 --- a/src/uncategorized/reRecruit.tw +++ b/src/uncategorized/reRecruit.tw @@ -273,7 +273,7 @@ <<set $activeSlave.intelligenceImplant = 15>> <<set $activeSlave.intelligence = 100>> <<set $activeSlave.prestige = 3>> -<<set $activeSlave.prestigeDesc = "$He was a famous young musical prodigy known throughout both the old world and the free cities.">> +<<set $activeSlave.prestigeDesc = "$He was a famous young musical prodigy known throughout both the old world and the Free Cities.">> <<set $activeSlave.accent = 1>> <<case "desperate milf">> @@ -1768,6 +1768,7 @@ <<if $activeSlave.vagina < 1>> <<set $activeSlave.vagina = 1>> <</if>> +<<set $activeSlave.pubertyXX = 1>> <<set $activeSlave.preg = 20>> <<set $activeSlave.pregWeek = 20>> <<set $activeSlave.pregKnown = 1>> @@ -1843,6 +1844,7 @@ <<set $activeSlave.trueVirgin = 1>> <<set $activeSlave.vaginaLube = 2>> <<set $activeSlave.ovaries = 1>> +<<set $activeSlave.pubertyXX = 1>> <<set $activeSlave.preg = 40>> <<set $activeSlave.pregWeek = 40>> <<set $activeSlave.pregType = 1>> @@ -1880,6 +1882,7 @@ <<set $activeSlave.vagina = 10>> <<set $activeSlave.vaginaLube = 2>> <<set $activeSlave.ovaries = 1>> +<<set $activeSlave.pubertyXX = 1>> <<set $activeSlave.preg = 43>> <<set $activeSlave.pregWeek = 40>> <<set $activeSlave.pregType = 50>> @@ -1992,6 +1995,7 @@ <<set $activeSlave.shoulders = random(-2,0)>> <<set $activeSlave.boobs += 100>> <<set $activeSlave.canRecruit = 0>> +<<set $activeSlave.pubertyXX = 1>> <<set $activeSlave.preg = 20>> <<set $activeSlave.pregWeek = 20>> <<set $activeSlave.pregType = 1>> @@ -2061,7 +2065,7 @@ Not every day in the arcology is calm and this one is most certainly more energe <</if>> so happens to be such a force. -Recently, a young musical prodigy has taken both the old world and the free cities by storm. Their rising popularity has gained them quite a following and the attention of some very powerful people. You look at the schedule of events for citizens tonight and, sure enough, they are to appear, live in concert, tonight. You tell $assistantName to set up a live feed of the performance for you so as not to interrupt your work. Several hours later, the young artist comes out on stage to a full house. They perform their latest hits and some fan favorites, but it's the crowd suddenly going silent that disturbs you from your paperwork. You look at the feed to see the artist standing there, a sullen expression on their face, tears streaming down their cheeks, and their body jerking, obviously wracked by occasional sobbing. They take a very quick bow and run off stage, before the feed gets cut. You shrug — artists have breakdowns — and return to your tasks. Surprisingly, $assistantName chimes in to tell you that an unexpected guest has arrived. You have them sent in and are surprised to see the young, visibly distressed prodigy. +Recently, a young musical prodigy has taken both the old world and the Free Cities by storm. Their rising popularity has gained them quite a following and the attention of some very powerful people. You look at the schedule of events for citizens tonight and, sure enough, they are to appear, live in concert, tonight. You tell $assistantName to set up a live feed of the performance for you so as not to interrupt your work. Several hours later, the young artist comes out on stage to a full house. They perform their latest hits and some fan favorites, but it's the crowd suddenly going silent that disturbs you from your paperwork. You look at the feed to see the artist standing there, a sullen expression on their face, tears streaming down their cheeks, and their body jerking, obviously wracked by occasional sobbing. They take a very quick bow and run off stage, before the feed gets cut. You shrug — artists have breakdowns — and return to your tasks. Surprisingly, $assistantName chimes in to tell you that an unexpected guest has arrived. You have them sent in and are surprised to see the young, visibly distressed prodigy. "I wa<<s>> told by my produ<<c>>er to come here; they <<s>>ay I have earned enough of a debt to be en<<s>>laved. I heard that <<s>>lave<<s>> <<s>>eem to be treated well here and thought that, ju<<s>>t maybe, if I convin<<c>>ed them to let my final performan<<c>>e be here, I would have a chan<<c>>e at a better life than at another arcology owned by a crueler ma<<s>>ter. Plea<<s>>e, would you con<<s>>ider taking me in?" <<case "desperate milf">> @@ -2283,7 +2287,7 @@ The current sale offer by the company was taken from a college frat-house — ap Coming to your desk in the morning, you see that your assistant has flagged an interesting offer for you to check out in the newsletter of a professional repossession company. Life in the Free Cities being what it is, there are winners and losers of the ever-changing local and global realities... and when someone falls upon hard times, the repo-men and repo-women start their work. Grim-faced and unmoved by sympathy, they go in to seize the debtor's assets to pay off their debts — which does at times include some quite interesting pieces of merchandise, like a nice slave or two. <br><br> -The current sale offer by the company was taken from a businesswoman's apartment — one of the higher income strata of the arcology, she's recently had fortune turn from her due to some unfortunate occurrences outside your demesne of the free cities. The file doesn't say exactly which — some natural catastrophe, raiders, competing business or whatnot — one thing is for sure though, she's in a financial pinch right now. All of which meant that her slave nanny was fair game to be taken and is now awaiting re-sale. As $his mistress never had any sexual interest in the slave, the young $woman is actually a virgin and used to the relatively cushy life of just watching children. The fact that all of that ended from one day to the next has made $him quite afraid for $his future... +The current sale offer by the company was taken from a businesswoman's apartment — one of the higher income strata of the arcology, she's recently had fortune turn from her due to some unfortunate occurrences outside your demesne of the Free Cities. The file doesn't say exactly which — some natural catastrophe, raiders, competing business or whatnot — one thing is for sure though, she's in a financial pinch right now. All of which meant that her slave nanny was fair game to be taken and is now awaiting re-sale. As $his mistress never had any sexual interest in the slave, the young $woman is actually a virgin and used to the relatively cushy life of just watching children. The fact that all of that ended from one day to the next has made $him quite afraid for $his future... <br><br> //The repo-company doesn't hold on to assets long, they just want to get new cash pretty quickly — which makes this a nice opportunity, as the price for the young $woman is set pretty low. It'll just take <<print cashFormat(2500)>> to buy $him off their hands.// @@ -2569,7 +2573,7 @@ He explains that one of his servant <<= $girl>>s was impregnated by his fool of <<case "blind homeless">> $He cooperates as the biometric scanners scrupulously record $his every particular as belonging not to a person but to a piece of human property. $He willingly places $his biometric signature in testament to the truth of $his voluntary enslavement. The process is completed with a distinct anticlimax: $he is one of your slaves now. $He gives you a smile, knowing $he'll have a belly full of food before long. <<case "paternalist swan song">> - $He thanks you profusely for purchasing $him, and $he means it. $He's relieved to have been bought by a kind master and promises to give you a private performance when ever you want. + $He thanks you profusely for purchasing $him, and $he means it. $He's relieved to have been bought by a kind master and promises to give you a private performance whenever you want. <<set $swanSongWeek = $week, $swanSong = 2>> <<case "tg addict">> When $he awakes from surgery, $he slowly realizes that whatever $he programmed the remote surgery to do wasn't done; instead, $he's a young woman with a flat chest and a new virgin pussy. It takes a while for you to get $him to understand, through $his tears, that $he is now obliged to accept enslavement due to $his extreme debts. Eventually $he figures it out and glares daggers at you as $he signs $his life away. diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw index 2aa660cffe71814af654414394b96939395e2e8e..c5212358b6f45777bb4e26e7cc7eb0c7dcb37412 100644 --- a/src/uncategorized/recETS.tw +++ b/src/uncategorized/recETS.tw @@ -1412,7 +1412,7 @@ A matronly $woman comes to your penthouse in tears. It seems $he is a tenant of <br><br> -//Enslaving $him will cost <<print cashFormat($contractCost)>>. Alternatively, you could sell your rights to $him. Less costs, this will bring in <<print cashFormat($slaveCost)>>. As a third option, for <<print cashFormat(($contractCost*2))>> you could manipulate $him to bind both mother and daughter, but you wouldn't be able to examine the daughter first.// +//Enslaving $him will cost <<print cashFormat($contractCost)>>. Alternatively, you could sell your rights to $him. Including costs, this will bring in <<print cashFormat($slaveCost - $contractCost)>>. As a third option, for <<print cashFormat(($contractCost*2))>> you could manipulate $him to bind both mother and daughter, but you wouldn't be able to examine the daughter first.// <<case "posh mother daughter">> @@ -1420,7 +1420,7 @@ An older $woman comes to see you representing $his family business. $He's pretty <br><br> -//Enslaving the mother will cost <<print cashFormat($contractCost)>>. Alternatively, you could sell your rights to $him. Less costs, this will bring in <<print cashFormat($slaveCost)>>. As a third option, for <<print cashFormat(($contractCost*2))>> you could enslave both mother and daughter, but you wouldn't be able to examine the daughter first.// +//Enslaving the mother will cost <<print cashFormat($contractCost)>>. Alternatively, you could sell your rights to $him. Including costs, this will bring in <<print cashFormat($slaveCost - $contractCost)>>. As a third option, for <<print cashFormat(($contractCost*2))>> you could enslave both mother and daughter, but you wouldn't be able to examine the daughter first.// <<case "incest mother son">> @@ -1526,7 +1526,7 @@ You bring up a video feed of the one-room apartment they share. A man, clearly a <br><br> -//Enslaving the younger, sissy sister will cost <<print cashFormat($contractCost)>>. Alternatively, you could sell your rights to $him. Less costs, this will bring in <<print cashFormat($slaveCost)>>. As a third option, for <<print cashFormat(($contractCost*2))>> you could enslave both sisters, but you wouldn't be able to examine the older one first. _He2'll likely be very rebellious and sexually unskilled.// +//Enslaving the younger, sissy sister will cost <<print cashFormat($contractCost)>>. Alternatively, you could sell your rights to $him. Including costs, this will bring in <<print cashFormat($slaveCost - $contractCost)>>. As a third option, for <<print cashFormat(($contractCost*2))>> you could enslave both sisters, but you wouldn't be able to examine the older one first. _He2'll likely be very rebellious and sexually unskilled.// <<case "matched pair">> @@ -1670,11 +1670,11 @@ This call is coming from a public kiosk, which is usually an indication that the <<switch $RecETSevent>> <<case "addict mother daughter" "mismatched pair" "posh mother daughter">> <br><<link "Sell $him immediately">> - <<run cashX($contractCost, "slaveTransfer", $activeSlave)>> + <<run cashX(($slaveCost - $contractCost), "slaveTransfer", $activeSlave)>> <<replace "#result">> $activeSlave.slaveName accepts being resold without much fuss. $He's merely exchanged one unknown owner for another. For all $he knows $his new buyer will be less abusive than you would have been. $He would be less complacent if $he knew who $his buyers are; $he'll be immured in an arcade within the hour. <</replace>> -<</link>> //This will bring in <<print cashFormat($contractCost)>>// +<</link>> //This will bring in <<print cashFormat($slaveCost - $contractCost)>>// <<case "desperate broodmother" "identical herm pair" "identical pair" "incest brother brother" "incest brother sister" "incest father daughter" "incest father son" "incest mother daughter" "incest mother son" "incest sister sister" "incest twin brother" "incest twin sister" "incest twins mixed" "matched pair">> <<default>> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 93adc33bb2e13d1b52244432a01f25137dbb143f..92687c30e64f9079b876b68ecc09422aa3a8f55a 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -700,7 +700,7 @@ waist. <</if>> <</if>> <<if ($activeSlave.waist >= -95) && ($activeSlave.waist < -75) && ($seeExtreme == 1)>> - <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> [["Remove ribs to severely narrow " + $his + " waist"|Surgery Degradation][$activeSlave.waist = -100,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 40,$surgeryType = "ribs"]] <</if>> <</if>> @@ -747,7 +747,7 @@ $He's <<if $activeSlave.indentureRestrictions >= 2>> //$His indenture forbids elective surgery// -<<elseif $activeSlave.breedingMark == 1 && $propOutcome == 1>> +<<elseif $activeSlave.breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset">> //You are forbidden from affecting $his fertility// <<elseif $activeSlave.preg > 0 || $activeSlave.inflation > 0 || $activeSlave.broodmother > 0>> //$He is unable to support an abdominal implant at this time// @@ -968,7 +968,7 @@ Work on $his sex: <</if>> <<if ($activeSlave.preg > -2) && ($activeSlave.preg < 1) && ($activeSlave.ovaries != 0 || $activeSlave.mpreg != 0)>> - <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> [[Sterilize|Surgery Degradation][$activeSlave.preg = -2,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10,$surgeryType = "ster"]] <</if>> <<elseif ($activeSlave.preg < 1) && ($activeSlave.ovaries != 0 || $activeSlave.mpreg != 0) && ($activeSlave.preg != -3)>> @@ -1005,7 +1005,7 @@ Work on $his sex: <</if>> <</if>> - <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> <br> <<if $activeSlave.ovaries == 1>> <<if $activeSlave.preg > 0>> @@ -1041,7 +1041,7 @@ Work on $his sex: The implant firmware has already been adjusted. <</if>> <</if>> - <<elseif $activeSlave.indentureRestrictions > 0 || ($activeSlave.breedingMark == 1 && $propOutcome == 1)>> + <<elseif $activeSlave.indentureRestrictions > 0 || ($activeSlave.breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset")>> //$He is protected from extreme surgery// <<elseif isFertile($activeSlave) && $activeSlave.ovaryAge <= 46>> $He could be made into a broodmother. @@ -1098,12 +1098,12 @@ Work on $his sex: <</if>> <<if $activeSlave.vagina > -1>> - <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | [[Remove pussy|Surgery Degradation][surgeryAmp($activeSlave, "vagina"), $surgeryType = "vaginaRemoval", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)]] <<if $activeSlave.ovaries == 1>>//This will remove $his ovaries as well//<</if>> <</if>> <</if>> -<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> +<<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> <<if ($activeSlave.vagina == -1) && ($activeSlave.dick != 0)>> | [[Convert genitalia to female|Surgery Degradation][$activeSlave.dick = 0,$activeSlave.dickAccessory = "none",$activeSlave.chastityPenis = 0,$activeSlave.dickTat = 0,$activeSlave.foreskin = 0,$activeSlave.scrotum = 0,$activeSlave.balls = 0,$activeSlave.ballType = "human",$activeSlave.vasectomy = 0,$activeSlave.vagina = 0,$activeSlave.preg = -2,$activeSlave.skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 40, $surgeryType = "mtf"]] <</if>> @@ -1746,7 +1746,7 @@ Work on $him structurally: <<if $seeExtreme == 1>> <<if $activeSlave.fuckdoll == 0>> <br>$He is a normal sex slave, not a living sex toy. - <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> [[Encase in a Fuckdoll suit|Surgery Degradation][beginFuckdoll($activeSlave), $surgeryType = "fuckdoll"]] //This will greatly restrict $him// <</if>> <<else>> @@ -1761,7 +1761,7 @@ Work on $him structurally: <<elseif $activeSlave.fetish == "mindbroken">> <br>$His mind is gone; $he has either been chemically lobotomized, or has lost $his mind due to extreme abuse. <</if>> - <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> <<if $activeSlave.fetish != "mindbroken">> [[Chemically lobotomize|Surgery Degradation][$activeSlave.fetish = "mindbroken",$activeSlave.fetishKnown = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "mindbreak"]] //Warning: this is permanent and irreversible. It will destroy $his will and $his ability to remember anything but the simplest skills.// diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index 60206d51e722e1383ec69f3f0f1c9725288e850c..5658d856b67eb0c595352f7ba1f063bd5988360a 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -425,7 +425,7 @@ On formal occasions, you are announced as $PCTitle. <<run repX(-50, "PCactions")>> <<if isPlayerFertile($PC)>> That's not all that leaks out of you, considering all your shoots are rubber free. - <<= knockMeUp($PC, 20, 0, 0, 1)>> + <<= knockMeUp($PC, 20, 0, -5, 1)>> <</if>> <</if>> diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw index 8615f2485e71bae02fae22ec5ef0cded9feca51b..d6ae7dd863b1b4d6c8938a8ba37a066066d68c94 100644 --- a/src/uncategorized/saDrugs.tw +++ b/src/uncategorized/saDrugs.tw @@ -1132,7 +1132,7 @@ <<if $slaves[$i].assignment == "be your concubine">> Before bed and when you awake, you take the time sensually @@.coral;massage sag-B-gone into $his breasts,@@ which, while enjoyable to the both of you, doesn't seem to be doing much. <<elseif $slaves[$i].assignment == "please you">> - When ever you have a free moment you take that time to @@.coral;massage sag-B-gone into $his breasts,@@ which, while enjoyable, doesn't seem to be doing much. + Whenever you have a free moment you take that time to @@.coral;massage sag-B-gone into $his breasts,@@ which, while enjoyable, doesn't seem to be doing much. <<else>> $He is required to frequently @@.coral;massage sag-B-gone into $his breasts,@@ which, while enjoyable to watch, doesn't seem to be doing much. <</if>> diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw index 4cdf572d300621c2d6bfe9c0bd6e42f2601df605..c8b1c315cdd5a10a8a6ceed67fe91c4de3c51cad 100644 --- a/src/uncategorized/saRules.tw +++ b/src/uncategorized/saRules.tw @@ -2687,7 +2687,7 @@ <<if (_release == "restrictive" || _release == "chastity")>> willingly begs you to <<saRulesPlayerFetishPlay>> - in front of $his class when ever $he crosses paths with you. + in front of $his class whenever $he crosses paths with you. <<saRulesPlayerEnergy>> <<saRulesPlayerDiscoversFetish>> <<saRulesPlayerDrugEffects>> diff --git a/src/uncategorized/schoolroom.tw b/src/uncategorized/schoolroom.tw index 196bae8b0d36d0d096bda9e644ff4c588719155b..67036468637189be350c4c764c19a0d99e5b89be 100644 --- a/src/uncategorized/schoolroom.tw +++ b/src/uncategorized/schoolroom.tw @@ -56,13 +56,13 @@ $schoolroomNameCaps is well-equipped, with wallscreens to display lessons. These <<case "Hedonistic">> exposing slaves to new, fascinating forms of pleasure; both for others and for themselves. <<case "Intellectual Dependency">> - + reviewing various sexual positions, and the students are practicing with each other. <<case "Slave Professionalism">> - + reviewing a complex lesson on social cues and when to act on them to better shift things in <<= properTitle()>>'s favor. <<case "Petite Admiration">> - + exploring methods to pleasure a partner far taller than oneself. <<case "Statuesque Glorification">> - + reviewing the reasons why tall individuals are widely considered more attractive. <<default>> reviewing the often complex subject of how to address citizens other that one's owner. <</switch>> diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw index afc00fd28d13480f2cc2a8c8eda7013bd590e1d7..5025e1466cd47d410c75eb8c0347347f7d99e5ef 100644 --- a/src/uncategorized/sellSlave.tw +++ b/src/uncategorized/sellSlave.tw @@ -41,7 +41,7 @@ You prepare $him for sale. $His response to being put up for purchase is <<set $slaveCost = slaveCost($activeSlave)>> <<set $slaveCost = (random(70,80)*Math.trunc($slaveCost/100))>> -<<if $activeSlave.breedingMark == 1 && $propOutcome == 1>> +<<if $activeSlave.breedingMark == 1 && $propOutcome == 1 && $arcologies[0].FSRestart != "unset">> Since you are selling a breeding slave, $he will be sent to auction before other members of the Societal Elite. <<else>> <<if $showAppraisal == 1>> @@ -705,7 +705,7 @@ __Financial Records__ <br><br> -<<if $activeSlave.breedingMark == 1 && $propOutcome == 1>> +<<if $activeSlave.breedingMark == 1 && $propOutcome == 1 && $arcologies[0].FSRestart != "unset">> <<set $buyer = 0>> <<set _Price = 500*Math.trunc(($slaveCost*1.1)/500)>> <br>The current offer for $him stands at ''<<print cashFormat(_Price)>>''. diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index a695c4a2a1316e7412bb6634ed6c622cf0429c8c..9b7b5128402fe01015393c40b13f8308ae178e8b 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -392,7 +392,7 @@ <</if>> <</if>> <<set _activeSlaveRepSacrifice = repGainSacrifice($activeSlave, $arcologies[0])>> -<<if _activeSlaveRepSacrifice > 0 && $arcologies[0].FSPaternalist == "unset" && ($activeSlave.breedingMark == 0 || $propOutcome == 0)>> +<<if _activeSlaveRepSacrifice > 0 && $arcologies[0].FSPaternalist == "unset" && ($activeSlave.breedingMark == 0 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Sacrifice $him on the altar" "Aztec Slave Sacrifice">><<set $sacrificeType = "life">><</link>>//This will kill $him and gain you _activeSlaveRepSacrifice reputation// <</if>> @@ -872,7 +872,7 @@ <br>Torso accessory: ''<span id="bellyAccessory">$activeSlave.bellyAccessory</span>.'' <<link "None">><<set $activeSlave.bellyAccessory = "none">><<replace "#bellyAccessory">>$activeSlave.bellyAccessory<</replace>><</link>> | <<link "Tight corset">><<set $activeSlave.bellyAccessory = "a corset">><<replace "#bellyAccessory">>$activeSlave.bellyAccessory<</replace>><</link>> - <<if ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Extreme corset">><<set $activeSlave.bellyAccessory = "an extreme corset">><<replace "#bellyAccessory">>$activeSlave.bellyAccessory<</replace>><</link>> <</if>> <<if ($activeSlave.belly > 10000)>> @@ -892,17 +892,17 @@ <br>Anal accessory: ''<span id="buttplug">$activeSlave.buttplug</span>.'' <<link "None">><<set $activeSlave.buttplug = "none", $activeSlave.buttplugAttachment = "none">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> | <<link "Normal">><<set $activeSlave.buttplug = "plug">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> - <<if isItemAccessible("long plug") && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if isItemAccessible("long plug") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Long">><<set $activeSlave.buttplug = "long plug">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> <</if>> | <<link "Large">><<set $activeSlave.buttplug = "large plug">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> - <<if isItemAccessible("long, large plug") && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if isItemAccessible("long, large plug") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Long and large">><<set $activeSlave.buttplug = "long, large plug">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> <</if>> <<if $activeSlave.anus >= 2>> | <<link "Huge">><<set $activeSlave.buttplug = "huge plug">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> <<if isItemAccessible("long, huge plug")>> - <<if ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Long and huge">><<set $activeSlave.buttplug = "long, huge plug">><<replace "#buttplug">>$activeSlave.buttplug<</replace>><</link>> <</if>> <</if>> @@ -929,16 +929,16 @@ | <<link "Smart bullet vibrator">><<set $activeSlave.vaginalAccessory = "smart bullet vibrator">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> <</if>> | <<link "Dildo">><<set $activeSlave.vaginalAccessory = "dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <<if isItemAccessible("long dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if isItemAccessible("long dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Long dildo">><<set $activeSlave.vaginalAccessory = "long dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> <</if>> | <<link "Large dildo">><<set $activeSlave.vaginalAccessory = "large dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <<if isItemAccessible("long, large dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if isItemAccessible("long, large dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Large and long dildo">><<set $activeSlave.vaginalAccessory = "long, large dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> <</if>> <<if $activeSlave.vagina >= 2>> | <<link "Huge dildo">><<set $activeSlave.vaginalAccessory = "huge dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> - <<if isItemAccessible("long, huge dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if isItemAccessible("long, huge dildo") && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Huge and long dildo">><<set $activeSlave.vaginalAccessory = "long, huge dildo">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>> <</if>> <</if>> @@ -1086,7 +1086,7 @@ <</if>> <</if>> | <<link "Fertility">><<set $activeSlave.drugs = "fertility drugs">><<SlaveInteractDrugs>><</link>> - <<if ($seeHyperPreg == 1) && ($activeSlave.indentureRestrictions < 1) && ($superFertilityDrugs == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if ($seeHyperPreg == 1) && ($activeSlave.indentureRestrictions < 1) && ($superFertilityDrugs == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Fertility+">><<set $activeSlave.drugs = "super fertility drugs">><<SlaveInteractDrugs>><</link>> <</if>> <<if ($activeSlave.dick > 0)>> @@ -1161,7 +1161,7 @@ | Weight loss pills <</if>> <</if>> - <<if $precociousPuberty == 1 && $pubertyHormones == 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $precociousPuberty == 1 && $pubertyHormones == 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> <<if ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1) && $activeSlave.pubertyXX == 0>> | <<link "Female hormone injections">><<set $activeSlave.drugs = "female hormone injections">><<SlaveInteractDrugs>><</link>> <</if>> @@ -1251,7 +1251,7 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 <</if>> <</if>> <</if>> -<<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0) && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>> +<<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset") && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>> <br> __Pregnancy control__: <<if $activeSlave.pregControl == "labor suppressors">>Labor is suppressed<<elseif $activeSlave.pregControl == "slow gestation">>Slowed gestation speed<<elseif $activeSlave.pregControl == "speed up">>Faster gestation speed, staffed clinic recommended<<else>>Normal gestation and birth<</if>>. <<if ($activeSlave.preg >= $activeSlave.pregData.minLiveBirth)>> diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw index cfb66549938bd258833351cfe41c5e2cb0e3ad1e..58348076404b12596cc5dac5b18318903b8055d3 100644 --- a/src/uncategorized/spa.tw +++ b/src/uncategorized/spa.tw @@ -55,6 +55,14 @@ $spaNameCaps is comfortable, with waterproof cushions lining the pools. Everything is designed for the slaves' comfort; there are even special mud baths to perfect skin clarity. <<case "Hedonistic">> is comfortable, with waterproof cushions lining the pools. It is equipped with all sorts of devices to aid hefty slaves, including lifts to help them in and out of the water, specialized moisturizers to keep their skin healthy and smooth, and all around showers to help clean difficult to reach spots and between folds. <<if $arcologies[0].FSHedonisticDecadenceResearch == 1>>Platters of food and treats are readily available around the tubs so that relaxing slaves never have to strain to grab a bite to eat<<else>>Feeders connected to the slave food reserves line the pools so that so that relaxing slaves never have to strain to suck down their fill of food<</if>>. +<<case "Intellectual Dependency">> + is comfortable, fun and, most importantly, safe; even the dumbest slave can enjoy the pools without worrying their <<= properTitle()>>. There are screens on the walls showing simple entertainment designed to arouse more than titillate. +<<case "Slave Professionalism">> + is comfortable, with waterproof cushions lining the pools. It is a place where a weary slave can rest their mind after a hards day's work. There are screens on the walls showing documentaries intended for smart, skilled slaves. +<<case "Petite Admiration">> + is comfortable, but designed with short slaves in mind. The pools are shallow and easy to slip in and out of; taller slaves are likely to find them more frustrating than enjoyable. +<<case "Statuesque Glorification">> + is comfortable, but designed with tall slaves in mind. The pools are deep; too deep for a short slave to find relaxing. <<default>> is well-appointed, with massage tables, hot tubs, and a cold pool. <</switch>> diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index c18436642d6c0fe33e3cc92e8edfa5d04dd13615..73666985b548a612ca478cd1ebf58c1887e854c4 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -28,29 +28,30 @@ <</if>> <</if>> -<<if $ui != "start">> +<<if $ui !== "start" || _Pass === "Encyclopedia">> <<if $nextButton === " ">> <span id="nextButton"> /* Hide the button until the player makes a choice */ </span> <<else>> - <<if $nextButton === "END WEEK">> <br><br> + <<if _Pass !== "Encyclopedia">> <br><br> <</if>> + <<if $nextButton === "END WEEK">> <span id="endWeekButton"><strong> <<link [[($nextButton)|($nextLink)]]>><</link>> </strong></span> @@.cyan;[Ent]@@ <<if $rulesError && $rulesAssistantAuto == 1>><br>@@.yellow; WARNING: some custom rules will change slave variables@@<</if>> - <br> <<else>> <span id="nextButton"><strong> <<if _Pass !== "Encyclopedia">> /* must use link so spacebar shortcut will work */ - <br><br> <<link "$nextButton">> <<set $ui = "main">> <<goto $nextLink>> <</link>> + <<link "$nextButton">> <<set $ui = "main">> <<goto $nextLink>> <</link>> <<else>> <<link [[($nextButton)|($nextLink)]]>><</link>> <</if>> </strong></span> - <<if _Pass === "Encyclopedia">> to Free Cities.<</if>> @@.cyan;[Space]@@<br><br> + <<if _Pass === "Encyclopedia">> to Free Cities.<</if>> @@.cyan;[Space]@@ <</if>> + <br><br> <</if>> <</if>> @@ -80,7 +81,7 @@ <</if>> <<if $ui != "start" && _Pass !== "Encyclopedia">> - <<if $sideBarOptions.Cash > 0>> <br> + <<if $sideBarOptions.Cash > 0>> <<set $cash = Math.trunc($cash)>> <span id="cash"> <<if $cash > 0>> @@ -489,22 +490,23 @@ <</if>> <</if>> /* Closes secExp check and associated sideBarOptions options */ - <</if>> /* Closes Pass !== "Manage Penthouse" || Pass === "Main"*/ + <</if>> /* Closes Pass !== "Manage Penthouse""*/ - <<if $nextButton !== "Continue" && $nextButton !== " ">> - <br> - <<if _Pass !== "Manage Arcology">> - <span id="manageArcology"> <br> - <<link [[Manage Arcology]]>><</link>> - </span> - @@.cyan;[C]@@ - <</if>> - <<if _Pass !== "Manage Penthouse">> - <span id="managePenthouse"> <br> + <<if $nextButton !== "Continue" && $nextButton !== " ">> <br> + <<if _Pass !== "Manage Penthouse">> <br> + <span id="managePenthouse"> <<link [[Manage Penthouse]]>><</link>> </span> @@.cyan;[P]@@ <</if>> + <<if $sideBarOptions.compact > 0>> + <<if _Pass !== "Manage Arcology">> <br> + <span id="manageArcology"> + <<link [[Manage Arcology]]>><</link>> + </span> + @@.cyan;[C]@@ + <</if>> + <</if>> <<if _Pass !== "Manage Personal Affairs">> <span id="managePerson"> <br> @@ -531,8 +533,9 @@ <<link [[Personal Assistant|Personal assistant options]]>><</link>> </span> @@.cyan;[T]@@ + <</if>> - <<if $newModelUI === 0 && _Pass === "Main">> <br> + <<if _Pass === "Main" && $newModelUI === 0>> <<if ($HGSuite)>> <br> <<link "$HGSuiteNameCaps""Head Girl Suite">><</link>> <<if $abbreviateSidebar == 2>> @@ -671,19 +674,18 @@ <br> <</if>> - <</if>> /* Closes UI state check */ - <</if>> /* _Pass === "Main" || _Pass === "Manage Arcology"*/ + <</if>> - <<if _Pass === "Manage Arcology">> - <span id="Security"> - <span id="policyButton"> <br><br> - <<link [[Policies][$nextButton = "Back", $nextLink = "Manage Arcology"]]>><</link>> + <<if $sideBarOptions.compact === 0 && _Pass === "Main" || _Pass === "Manage Arcology">> + <<if $sideBarOptions.compact > 0>> <br> <</if>> + <span id="policyButton"> <br> + <<link [[Policies]]>><</link>> </span> @@.cyan;[Y]@@ <<if $secExp == 1>> <span id="edictButton"> <br> - <<link [[Edicts|edicts][$nextButton = "Back", $nextLink = "Manage Arcology"]]>><</link>> + <<link [[Edicts|edicts]]>><</link>> </span> @@.cyan;[D]@@ <</if>> @@ -691,6 +693,7 @@ [[Diplomacy|Neighbor Interact]] <</if>> + <span id="Security"> <<if $secExp > 0 || $SF.Toggle && $SF.Active >= 1>> <br> <<link "Manage Security">> <<replace "#Security">> <br> <<if $SF.Toggle && $SF.Active >= 1 && _Pass !== "Firebase">> @@ -728,8 +731,9 @@ <</replace>> <</link>> <</if>> </span> + <</if>> - <<elseif _Pass === "Manage Penthouse">> + <<if _Pass === "Manage Penthouse">> <span id="URButton"> <br><br> <<link [[Universal Rules]]>><</link>> </span> @@ -760,7 +764,6 @@ [[Rules Assistant Summary]] <<elseif ["Firebase", "propagandaHub", "securityHQ", "secBarracks", "riotControlCenter"].includes(_Pass)>> - <br> <<if $SF.Toggle && $SF.Active >= 1 && _Pass !== "Firebase">> <span id="SFMButton"> <br> <<link "$SF.Caps's firebase""Firebase">><</link>> @@ -847,4 +850,4 @@ <br> <<link "Dump Game State">><<run App.Debug.dumpGameState()>><</link>> <</if>> -<</if>> /* Closes ui != "start" */ +<</if>> \ No newline at end of file diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw index a93168de81216ffb99586e759e54162a015bf9b2..7dffadc095f041329828486eb07ddda64338fd9b 100644 --- a/src/utility/miscWidgets.tw +++ b/src/utility/miscWidgets.tw @@ -200,7 +200,7 @@ Call as <<SlaveInteractDrugs>> <</if>> <</if>> | <<link "Fertility">><<set $activeSlave.drugs = "fertility drugs">><<SlaveInteractDrugs>><</link>> - <<if ($seeHyperPreg == 1) && ($activeSlave.indentureRestrictions < 1) && ($superFertilityDrugs == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if ($seeHyperPreg == 1) && ($activeSlave.indentureRestrictions < 1) && ($superFertilityDrugs == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> | <<link "Fertility+">><<set $activeSlave.drugs = "super fertility drugs">><<SlaveInteractDrugs>><</link>> <</if>> <<if ($activeSlave.dick > 0)>> @@ -275,7 +275,7 @@ Call as <<SlaveInteractDrugs>> | Weight loss pills <</if>> <</if>> - <<if $precociousPuberty == 1 && $pubertyHormones == 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> + <<if $precociousPuberty == 1 && $pubertyHormones == 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>> <<if ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1) && $activeSlave.pubertyXX == 0>> | <<link "Female hormone injections">><<set $activeSlave.drugs = "female hormone injections">><<SlaveInteractDrugs>><</link>> <</if>> @@ -344,7 +344,7 @@ Call as <<SlaveInteractFertility>> <</if>> <</if>> <</if>> -<<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0) && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>> +<<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset") && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>> <br> __Pregnancy control__: <<if $activeSlave.pregControl == "labor suppressors">>Labor is suppressed<<elseif $activeSlave.pregControl == "slow gestation">>Slowed gestation speed<<elseif $activeSlave.pregControl == "speed up">>Faster gestation speed, staffed clinic recommended<<else>>Normal gestation and birth<</if>>. <<if ($activeSlave.preg >= $activeSlave.pregData.minLiveBirth)>>