diff --git a/js/002-config/fc-js-init.js b/js/002-config/fc-js-init.js index c5c8c5e63e3daa5774f6cbb578156c0da08d0ea8..25c52a87a62ced70f885e16e7fedf779bad9c3aa 100644 --- a/js/002-config/fc-js-init.js +++ b/js/002-config/fc-js-init.js @@ -18,6 +18,8 @@ App.Art = {}; App.Corporate = {}; App.Data = {}; App.Data.HeroSlaves = {}; +App.Data.Policies = {}; +App.Data.Policies.Selection = {}; App.Data.Weather = {}; App.Debug = {}; App.Desc = {}; diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js new file mode 100644 index 0000000000000000000000000000000000000000..14a088c70f1ee2fc530dadbc6f46ca3882a77865 --- /dev/null +++ b/js/003-data/policiesData.js @@ -0,0 +1,1852 @@ +/** + * @typedef {object} PolicySelector + * @property {string} title The title of the policy as displayed in the UI, "Health Inspection SMR" + * @property {string} [titleClass] The class to apply to the title: "lime" + * @property {string} [activatedTitle] The title of the policy if the policy is active. Param "title" is used as a fallback. + * @property {string} text Text that describes the policy in detail. No initial cap, ends with punctuation. + * @property {string} [activatedText] Text that describes an active policy in detail. Uses param "text" as a fallback. + * @property {function(void):boolean} [requirements] Function to determine if a policy can be enabled. + * @property {function(void):void} [onImplementation] Beyond applying the policy itself and billing the player, are there other values to change? This allows a shortstack FS policy to revoke some generic tall policies, for example. + * @property {function(void):void} [onRepeal] same as onImplementation, but fires when a policy is repealed. + * @property {number|string} [enable] Value to enable a policy. Defaults to 1 if not defined. + * @property {object} [hide] Object controlling special hide settings that can hide parts of the policy if needed. + * @property {number} [hide.button] Hides the appeal/repeal button if 1 + * @property {number} [hide.ifActivated] Hides the entire policy if the policy is applied. 1 to enable. + * @property {string} [note] Note that appears at the end of the policy display in italics to present further information. Starts with cap, no punctuation at end. + * @property {string} [activatedNote] Note that appears if policy is activated. Please note that unlike the other "activated" categories, "note" is only displayed on deactivated policies. There is no fallback. + */ +/** + * @typedef {Object<string, PolicySelector[]>} PolicySelectorGroup + * Key names represent a piece of the variable. "policies.SMR.basicSMR" will be checked against "V.policies.SMR.basicSMR". "arcologies[0].FSEgyptianRevivalistIncestPolicy" will be checked against "V.arcologies[0].FSEgyptianRevivalistIncestPolicy". + */ + +/** @type {Object<string, PolicySelectorGroup>} */ +App.Data.Policies.Selection = { + SMR: { + "policies.SMR.basicSMR": [ + { + title: "Basic SMR", + text: "the slave market is subject to very basic regulations designed to offer buyers some confidence.", + note: "Will help your reputation and affect slaves in the markets" + } + ], + + "policies.SMR.healthInspectionSMR": [ + { + title: "Health Inspection SMR", + text: "in order to be sold in the slave market, chattel must pass a straightforward health inspection.", + note: "Will improve the health of slaves in the markets" + } + ], + + "policies.SMR.educationSMR": [ + { + title: "Basic Education SMR", + text: "in order to be sold in the slave market, chattel must be put through a straightforward course of slave education.", + note: "Will cause all slaves who pass through the markets to become educated" + } + ], + + "policies.SMR.frigiditySMR": [ + { + title: "Frigidity SMR", + text: "in order to be sold in the slave market, slaves must have their sex drives reduced until they're virtually gone.", + note: "Will reduce the sex drive of slaves in the markets and annoy those looking for sex slaves" + } + ], + + "policies.SMR.eugenics.intelligenceSMR": [ + { + title: "Intelligence Eugenics SMR", + text: "in order to be sold in the slave market, chattel must either pass a challenging intelligence test or be sterilized.", + get note() { + let text = "Will "; + if (V.seeDicks === 0) { + text += "sterilize "; + } else if (V.seeDicks === 100) { + if (V.seeExtreme === 0) { + text += "chemically castrate "; + } else { + text += "geld "; + } + } else { + text += "sterilize or "; + if (V.seeExtreme === 0) { + text += "chemically castrate "; + } else { + text += "geld "; + } + } + text += " all market slaves below the maximum intelligence level."; + return text; + } + } + ], + + "policies.SMR.eugenics.heightSMR": [ + { + title: "Height Eugenics SMR", + text: "in order to be sold in the slave market, chattel must either be taller than a very tall minimum height or be sterilized.", + get note() { + let text = "Will "; + if (V.seeDicks === 0) { + text += "sterilize "; + } else if (V.seeDicks === 100) { + if (V.seeExtreme === 0) { + text += "chemically castrate "; + } else { + text += "geld "; + } + } else { + text += "sterilize or "; + if (V.seeExtreme === 0) { + text += "chemically castrate "; + } else { + text += "geld "; + } + } + text += " all market slaves below the maximum height."; + return text; + } + } + ], + + "policies.SMR.eugenics.faceSMR": [ + { + title: "Facial Eugenics SMR", + text: "in order to be sold in the slave market, chattel must either pass a rigorous facial exam or be sterilized.", + get note() { + let text = "Will "; + if (V.seeDicks === 0) { + text += "sterilize "; + } else if (V.seeDicks === 100) { + if (V.seeExtreme === 0) { + text += "chemically castrate "; + } else { + text += "geld "; + } + } else { + text += "sterilize or "; + if (V.seeExtreme === 0) { + text += "chemically castrate "; + } else { + text += "geld "; + } + } + text += " all market slaves below the maximum facial beauty."; + return text; + } + } + ], + + "policies.SMR.honestySMR": [ + { + title: "Gingering Prohibition SMR", + text: "slave sellers must contract to provide slaves honestly and without drugging to improve their behavior.", + note: "Will prevent dishonest adulteration of slaves in the markets" + } + ], + + "policies.SMR.beauty.basicSMR": [ + { + title: "Basic Beauty Standards", + text: "no unattractive slaves may be sold in the slave markets.", + requirements: function() { if (V.policies.SMR.beauty.qualitySMR === 0) { return true; } else { return false; } }, + note: "This will raise the price of slaves" + } + ], + + "policies.SMR.beauty.qualitySMR": [ + { + title: "Quality Beauty Standards", + text: "only attractive slaves may be sold in the slave markets.", + requirements: function() { if (V.policies.SMR.beauty.basicSMR === 0) { return true; } else { return false; } }, + note: "This will raise the price of slaves" + } + ], + + "policies.SMR.weightSMR": [ + { + title: "Basic Weight Standards", + text: "no obese slaves may be sold in the slave markets.", + note: "This will raise the price of slaves" + } + ], + + "policies.SMR.height.basicSMR": [ + { + title: "Basic Height Standards (Tall)", + text: "tall slaves will be favored in the slave markets and those not quite tall enough will undergo height increasing surgery. This will not preclude the sale of short slaves, just the care of them.", + activatedText: "tall slaves are favored in the slave market, short slaves capable of meeting height standards via surgery must undergo it.", + requirements: function() { if (V.policies.SMR.height.advancedSMR === 0) { return true; } else { return false; } }, + note: "This will raise the price of slaves" + }, + { + title: "Basic Height Standards (Short)", + text: "short slaves are favored in the slave market, tall slaves capable of meeting height standards via surgery must undergo it.", + activatedText: "short slaves will be favored in the slave markets and those just above the cut off will undergo height reducing surgery. This will not preclude the sale of tall slaves, just the care of them.", + requirements: function() { if (V.policies.SMR.height.advancedSMR === 0) { return true; } else { return false; } }, + enable: -1, + note: "This will raise the price of slaves" + } + ], + + "policies.SMR.height.advancedSMR": [ + { + title: "Quality Height Standards (Tall)", + text: "only slaves of above average height for their age may be sold in the slave markets.", + activatedText: "no slaves of below average height for their age may be sold in the slave markets.", + requirements: function() { if (V.policies.SMR.height.basicSMR === 0 && V.arcologies[0].FSPetiteAdmirationSMR === 0 && V.arcologies[0].FSStatuesqueGlorificationSMR === 0) { return true; } else { return false; } }, + note: "This will raise the price of slaves" + }, + { + title: "Quality Height Standards (Short)", + text: "no slaves of above average height for their age may be sold in the slave markets.", + activatedText: "no slaves of average average height for their age may be sold in the slave markets.", + requirements: function() { if (V.policies.SMR.height.basicSMR === 0 && V.arcologies[0].FSPetiteAdmirationSMR === 0 && V.arcologies[0].FSStatuesqueGlorificationSMR === 0) { return true; } else { return false; } }, + enable: -1, + note: "This will raise the price of slaves" + } + ], + + "policies.SMR.intelligence.basicSMR": [ + { + title: "Basic Intelligence Standards", + text: "no stupid slaves may be sold in the slave markets.", + requirements: function() { if (V.arcologies[0].FSIntellectualDependencySMR === 0 && V.policies.SMR.intelligence.qualitySMR === 0) { return true; } else { return false; } }, + note: "This will raise the price of slaves and exclude quality standards" + } + ], + + "policies.SMR.intelligence.qualitySMR": [ + { + title: "Quality Intelligence Standards", + text: "only intelligent slaves may be sold in the slave markets.", + requirements: function() { if (V.arcologies[0].FSIntellectualDependencySMR === 0 && V.policies.SMR.intelligence.basicSMR === 0) { return true; } else { return false; } }, + note: "This will raise the price of slaves significantly" + } + ], + }, + SexualTrendsetting: { + "policies.oralAppeal": [ + { + title: "Oral Sex Encouragement", + text: "you will use your personal influence to make blowjobs the most fashionable sex act in the arcology.", + activatedText: "you are using your personal influence to make blowjobs the most fashionable sex act in the arcology..", + note: "Will increase the weight on slaves' oral skills" + }, + { + title: "Anti-Oral Campaign", + text: "you will use your personal influence to denigrate oral sex.", + activatedText: "you are using your personal influence to denigrate oral sex.", + enable: -1, + note: "Will decrease the weight on slaves' oral skills" + } + ], + "policies.vaginalAppeal": [ + { + title: "Vaginal Sex Encouragement", + text: "you will use your personal influence to keep pussies the most fashionable holes in the arcology.", + activatedText: "you are using your personal influence to keep pussies the most fashionable holes in the arcology.", + note: "Will increase the weight on slaves' vaginal skills" + }, + { + title: "Anti-Vaginal Campaign", + text: "you will use your personal influence to communicate disapproval of vaginal sex.", + activatedText: "you are using your personal influence to communicate disapproval of vaginal sex.", + enable: -1, + note: "Will decrease the weight on slaves' vaginal skills" + } + ], + "policies.analAppeal": [ + { + title: "Anal Sex Encouragement", + text: "you will use your personal influence to communicate disgust with putting things up the butt.", + activatedText: "you are using your personal influence to communicate disgust with putting things up the butt.", + note: "Will increase the weight on slaves' anal skills" + }, + { + title: "Anti-Anal Campaign", + text: "you will use your personal influence to communicate disgust with putting things up the butt.", + activatedText: "you are using your personal influence to communicate disgust with putting things up the butt.", + enable: -1, + note: "Will decrease the weight on slaves' anal skills" + } + ], + "policies.sexualOpeness": [ + { + title: "Penetrative Sex Campaign", + text: "you will use your personal influence and interest in being penetrated to make slave based penetration fashionable and acceptable.", + activatedText: "you are using your personal influence and interest in being penetrated to make slave based penetration fashionable and acceptable.", + note: "Will not be well received, but will head off potentially damaging rumors. This policy assumes you wish to be penetrated" + } + ], + "policies.childProtectionAct": [ + { + title: "Child Protection Act", + text: "underage slaves enjoy protections only against penetrative sex.", + activatedText: "underage slaves enjoy protections against molestation and rape.", + requirements: function() { if (V.extremeUnderage === 1) { return true; } else { return false; } }, + } + ], + "arcologies[0].FSEgyptianRevivalistIncestPolicy": [ + { + title: "Incest Encouragement", + text: "you will use your personal influence to spur interest in incest.", + activatedText: "you are using your personal influence to spur interest in incest.", + requirements: function() { + if (V.arcologies[0].FSEgyptianRevivalist === "unset") { return true; } else { return false; } + }, + } + ], + }, + PopulationPolicies: { + "policies.proRefugees": [ + { + title: "Encourage Refugee Servitude", + text: "the image of slavery in your arcology will be softened, encouraging old world refugees to consider slavery.", + activatedText: "the image of slavery in your arcology is being softened, encouraging old world refugees to consider becoming menial slaves.", + requirements: function() { if (V.arcologies[0].FSDegradationist === "unset") { return true; } else { return false; } }, + note: "Will increase immigration of refugees to become menial slaves" + } + ], + "policies.proRecruitment": [ + { + title: "Encourage Self-Enslavement", + text: "your image as a slaveowner will be softened, encouraging the desperate to consider coming to you for enslavement.", + activatedText: "soften your image as a slaveowner, encouraging the desperate to consider coming to you for enslavement.", + note: "Will increase the chances of desperate people offering themselves to you for enslavement" + } + ], + "policies.immmigrationCash": [ + { + title: "Immigration Promotion", + text: "you will offer citizen immigrants a generous promotion.", + activatedText: "you are offering citizen immigrants a generous promotion.", + get note() { return `Will cost ${cashFormat(policies.cost())} weekly to maintain, and increase the citizen population`; } + }, + { + title: "Immigrant Information Brokerage", + text: "you will covertly sell information on troubled potential immigrants to your arcology to their old world enemies.", + activatedText: "you are covertly selling information on troubled potential immigrants to your arcology.", + enable: -1, + get note() { return `Will produce ${cashFormat(policies.cost())} weekly, and slow growth of the citizen population`; } + } + ], + "policies.immmigrationRep": [ + { + title: "Welcome Program", + text: "you will use your personal influence to encourage wealthy people to immigrate.", + activatedText: "you are using your personal influence to encourage wealthy people to immigrate.", + note: `Will annoy some longstanding citizens, and increase the citizen population` + }, + { + title: "Citizen Input on Immigration", + text: "you will selectively turn away potential immigrants to the arcology based on the recommendations of citizens.", + activatedText: "you are selectively turning away potential immigrants to the arcology based on the recommendations of citizens.", + enable: -1, + note: `Will produce a small amount of reputation weekly, and slow growth of the citizen population` + } + ], + "policies.enslavementCash": [ + { + title: "Enslavement Kickbacks", + text: "you will take kickbacks in return for turning a blind eye to enslavement of poor citizens.", + activatedText: "you are taking kickbacks in return for turning a blind eye to enslavement of poor citizens.", + get note() { return `Will produce ${cashFormat(policies.cost())} weekly, and reduce the population of citizens`; } + }, + { + title: "Poor Citizen Relief", + text: "you will offer limited emergency assistance to poor citizens in danger of being enslaved.", + activatedText: "you are offering limited emergency assistance to poor citizens in danger of being enslaved.", + policy: "policies.enslavementCash", + enable: -1, + get note() { return `Will cost ${cashFormat(policies.cost())} weekly to maintain, and slow population movement from citizens to slaves`; } + } + ], + "policies.enslavementRep": [ + { + title: "Covert Upstart Enslavement", + text: "you will offer prominent citizens your tacit assistance in enslaving rivals.", + activatedText: "you are offering prominent citizens your tacit assistance in enslaving rivals.", + note: "Will produce a small amount of reputation weekly, and reduce the population of citizens" + }, + { + title: "Charity Promotion Efforts", + text: "you will use your personal influence to discourage enslavement of citizens.", + activatedText: "you are using your personal influence to discourage enslavement of citizens.", + enable: -1, + note: "Will annoy some prominent citizens, and slow population movement from citizens to slaves" + } + ] + }, + DomesticPolicies: { + "policies.alwaysSubsidizeGrowth": [ + { + title: "Economic Growth Subsidy", + text: "offer promising new businesses generous subsidies, driving arcology prosperity.", + get note() { return `Will cost ${cashFormat(policies.cost())} weekly to maintain, and improve arcology prosperity`; } + } + ], + "policies.alwaysSubsidizeRep": [ + { + title: "Self-Promotion Program", + text: "communicate your good side to the public via subtle paid advertising. This will also ease any potential rumors.", + get note() { return `Will cost ${cashFormat(policies.cost())} weekly to maintain, and improve your reputation`; } + } + ], + "policies.cashForRep": [ + { + title: "Business Generosity", + text: "you will do your best to help your citizens, even when it disadvantages you personally.", + activatedText: "you are doing your best to help your citizens, even when it disadvantages you personally.", + get note() { return `Will cost ${cashFormat(policies.cost())} weekly, and improve your reputation`; } + }, + { + title: "Business Selfishness", + text: "you will leverage your position as arcology owner for money, even when it disadvantages citizens.", + activatedText: "you are leveraging your position as arcology owner for money, even when it disadvantages citizens.", + enable: -1, + get note() { return `Will produce ${cashFormat(policies.cost())} weekly, and cost some reputation`; } + }, + ], + "policies.cash4Babies": [ + { + title: "Free Trade of Slave Babies", + text: "you will legalize slave children to be sold after birth rather than put into slave orphanages.", + activatedText: "newborn slave children are now eligible to be sold rather than entrusted to a slave orphanage.", + note: `Can supply easy money, but will harm your reputation` + } + ], + "policies.goodImageCampaign": [ + { + title: "Good Image Campaign", + text: "positive rumors will be spread throughout the arcology regarding you.", + activatedText: "positive rumors are being spread about you.", + get note() { return `Will cost ${cashFormat(policies.cost())} weekly to maintain, and lessen any potential rumors about you while giving a small boost to your reputation`; } + } + ], + "policies.regularParties": [ + { + title: "Regular Entertainments", + text: "you will host regular parties for prominent citizens, an expected social duty of an arcology owner.", + activatedText: "you are hosting regular parties for prominent citizens, an expected social duty of an arcology owner.", + get note() { + if (V.rep > 18000) { + return `Will damage your reputation`; + } else { + return ``; + } + }, + get activatedNote() { + let text = `Will cost ${cashFormat(policies.cost())} weekly`; + if (V.rep > 18000) { + text += `, and prevent damage to your reputation`; + } + return text; + } + } + ], + "policies.publicPA": [ + { + title: "Public Personal Assistant", + get text() { return `${V.assistant.name} is part of your public image.`; }, + get activatedText() { return `${V.assistant.name} is part of your public image.`; }, + get note() { return `May improve cultural development if ${V.assistant.name}'s appearance is fashionable`; } + } + ], + "policies.coursingAssociation": [ + { + title: "Coursing Association", + text: "you will sponsor a Coursing Association that will hold monthly races.", + get activatedText() { + const el = new DocumentFragment; + el.append(`you are sponsoring a `); + el.append(App.UI.DOM.link( + "Coursing Association", + () => { }, + [], + "Coursing Association" + )); + el.append(` that will hold monthly races.`); + return el; + }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain`; }, + get activatedNote() { + if (V.LurcherID !== 0) { + return `Your current lurcher is ${App.UI.slaveDescriptionDialog(getSlave(V.LurcherID))}`; + } else { + return ``; + } + } + } + ], + "mercenariesHelpCorp": [ + { + title: "Raiding Mercenaries", + text: "you will allow your mercenaries to occasionally conduct a raid directly for your benefit.", + activatedText: "you are allowing your mercenaries to occasionally raid for your direct benefit.", + get note() { return `Will cost ${cashFormat(policies.cost())} weekly to maintain`; } + } + ], + "policies.publicFuckdolls": [ + { + title: "Free Fuckdolls", + text: "you will no longer charge money for restrained slave holes in your arcology, ranging from Fuckdolls to the arcade.", + activatedText: "you are providing Fuckdolls free of charge, such generosity increases your standing.", + note: `Slaves assigned to these jobs will stop making money, while Fuckdolls will start costing money` + } + ], + "policies.mixedMarriage": [ + { + title: "Marriage between Owners and Slaves", + text: "you will provide a legal basis for citizens to marry their slaves without impacting their rights as slaveowners.", + activatedText: "you are providing a legal basis for citizens to marry their slaves without impacting their rights as slaveowners.", + requirements: function() { if (V.arcologies[0].FSDegradationist === "unset") { return true; } else { return false; } }, + get note() { + if (V.arcologies[0].FSPaternalist >= 60) { + return `Will not damage your reputation due to your arcology's advanced Paternalism`; + } else { + return `Will damage your reputation`; + } + } + } + ], + }, + EducationPolicies: { + "TSS.subsidize": [ + { + title: "The Slave School subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.TSS.schoolProsperity < 10 && V.TSS.schoolProsperity < 10) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine The Slave School", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.TSS.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "GRI.subsidize": [ + { + title: "The Growth Research Institute subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.GRI.schoolProsperity < 10 && V.GRI.schoolProsperity < 10) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine the Growth Research Institute", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.GRI.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "SCP.subsidize": [ + { + title: "St. Claver Preparatory subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.SCP.schoolProsperity < 10 && V.SCP.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine St. Claver Preparatory", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.SCP.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "LDE.subsidize": [ + { + title: "L'École des Enculées subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.LDE.schoolProsperity < 10 && V.LDE.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine L'École des Enculées", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.LDE.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "TGA.subsidize": [ + { + title: "The Gymnasium-Academy subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.TGA.schoolProsperity < 10 && V.TGA.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine the Gymnasium-Academy", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.TGA.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "TCR.subsidize": [ + { + title: "The Cattle Ranch subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.TCR.schoolProsperity < 10 && V.TCR.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine The Cattle Ranch", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.TCR.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "TFS.subsidize": [ + { + title: "Futanari Sisters subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.TFS.schoolProsperity < 10 && V.TFS.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine the Futanari Sisters", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.TFS.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "HA.subsidize": [ + { + title: "Hippolyta Academy subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.HA.schoolProsperity < 10 && V.HA.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine the Hippolyta Academy", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.HA.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + "NUL.subsidize": [ + { + title: "Nueva Universidad de Libertad subsidy", + text: "you will subsidize this school's branch campus in your arcology.", + activatedText: "you are subsidizing this school's branch campus in your arcology.", + requirements: function() { if (V.NUL.schoolProsperity < 10 && V.NUL.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + }, + { + title: "Undermine Nueva Universidad de Libertad", + text: "you will covertly hurt this school's branch campus in your arcology.", + activatedText: "you are covertly hurting this school's branch campus in your arcology.", + requirements: function() { if (V.NUL.schoolPresent === 1) { return true; } else { return false; } }, + get note() { return `Will cost ${cashFormat(1000)} weekly to maintain; does not cost reputation to start`; }, + } + ], + }, + RetirementPolicies: { + "policies.retirement.customAgePolicy": [ + { + title: "Redefined Mandatory Retirement Age", + get text() { + const el = new DocumentFragment; + el.append(`you will set your arcology's standard retirement age for sex slaves at age `); + el.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.customRetirementAge, + v => { + V.customRetirementAge = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + return el; + }, + get activatedText() { return `you have set your arcology's standard retirement age for sex slaves at ${V.retirementAge}.`; }, + onRepeal: function() { V.retirementAge = 45; } + + } + ], + "policies.retirement.physicalAgePolicy": [ + { + title: "Physical Retirement Age", + get text() { + const el = new DocumentFragment; + el.append(`you will set your arcology's standard retirement age for sex slaves once their bodies reach age `); + el.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.customRetirementAge, + v => { + V.customRetirementAge = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + return el; + }, + get activatedText() { return `you have set your arcology's standard retirement age for sex slaves at ${V.retirementAge}.`; }, + onRepeal: function() { V.retirementAge = 45; } + } + ], + "policies.retirement.fate": [ + { + title: "Public Fluid Production Retirement", + get text() { + let text = `once reaching mandatory retirement age, slaves will be converted for full-time milk`; + if (V.seeDicks === 1) { + text += `, vaginal secretion, and semen`; + } + text += `production.`; + return text; + }, + get activatedText() { + let text = `once reaching mandatory retirement age, slaves are converted for full-time milk`; + if (V.seeDicks === 1) { + text += `, vaginal secretion, and semen`; + } + text += `production.`; + return text; + }, + requirements: function() { if (V.arcologies[0].FSPaternalist === "unset") { return true; } else { return false; } }, + enable: "bioreactor" + }, + { + title: "Public Arcade Retirement", + text: "once reaching mandatory retirement age, slaves will be placed in cheap public arcades to be used until useless.", + activatedText: "once reaching mandatory retirement age, slaves are placed in cheap public arcades to be used until useless.", + requirements: function() { if (V.arcologies[0].FSPaternalist === "unset") { return true; } else { return false; } }, + enable: "arcade" + }, + { + title: "Sex Slave Citizen Retirement", + activatedTitle: "Citizen Retirement", + text: "all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.", + activatedText: "all slaveowners are required to pay into accounts to support their slaves as lower-class citizens in retirement.", + note: `Will add upkeep to all sex slaves`, + enable: "citizen" + }, + ], + "policies.retirement.sex": [ + { + title: "Sexual Milestone Retirement", + get text() { return `slaves will be rewarded with their freedom once they have been fucked ${num(V.policies.retirement.sex)} times.`; }, + get activatedText() { + const el = new DocumentFragment; + let div = document.createElement('div'); + el.append(`slaves are rewarded with their freedom once they have been fucked ${num(V.policies.retirement.sex)} times.`); + div.append(`Set a new retirement requirement:`); + div.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.policies.retirement.sex, + v => { + V.policies.retirement.sex = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + el.append(div); + return el; + }, + enable: 10000, + requirements: function() { if (V.policies.retirement.fate === "citizen") { return true; } else { return false; } }, + } + ], + "policies.retirement.milk": [ + { + title: "Productive Cow Retirement", + get text() { return `slaves will be rewarded with their freedom once they have been fucked ${num(V.policies.retirement.milk)} times.`; }, + get activatedText() { + const el = new DocumentFragment; + let div = document.createElement('div'); + el.append(`slaves are rewarded with their freedom once they have been fucked ${num(V.policies.retirement.milk)} times.`); + div.append(`Set a new retirement requirement:`); + div.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.policies.retirement.milk, + v => { + V.policies.retirement.milk = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + el.append(div); + return el; + }, + enable: 50000, + requirements: function() { if (V.policies.retirement.fate === "citizen") { return true; } else { return false; } }, + } + ], + "policies.retirement.cum": [ + { + title: "Productive Bull Retirement", + get text() { return `slaves will be rewarded with their freedom once they have given ${num(V.policies.retirement.cum)} deciliters of cum.`; }, + get activatedText() { + const el = new DocumentFragment; + let div = document.createElement('div'); + el.append(`slaves are rewarded with their freedom once they have given ${num(V.policies.retirement.cum)} deciliters of cum.`); + div.append(`Set a new retirement requirement:`); + div.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.policies.retirement.cum, + v => { + V.policies.retirement.cum = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + el.append(div); + return el; + }, + enable: 500000, + requirements: function() { if (V.policies.retirement.fate === "citizen" && (V.seeDicks > 0 || V.makeDicks)) { return true; } else { return false; } }, + } + ], + "policies.retirement.births": [ + { + title: "Fertile Breeder Retirement", + get text() { return `slaves will be rewarded with their freedom once they add ${num(V.policies.retirement.births)} new slaves to the population of ${V.arcologies[0].name}.`; }, + get activatedText() { + const el = new DocumentFragment; + let div = document.createElement('div'); + el.append(`slaves are rewarded with their freedom once they add ${num(V.policies.retirement.births)} new slaves to the population of ${V.arcologies[0].name}. `); + div.append(`Set a new retirement requirement:`); + div.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.policies.retirement.births, + v => { + V.policies.retirement.births = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + el.append(div); + return el; + }, + enable: 5, + requirements: function() { if (V.policies.retirement.fate === "citizen") { return true; } else { return false; } }, + } + ], + "policies.retirement.kills": [ + { + title: "Champion Gladiatrix Retirement", + get text() { return `slaves will be rewarded with their freedom once they have killed ${num(V.policies.retirement.kills)} of their fellow slaves in the pit.`; }, + get activatedText() { + const el = new DocumentFragment; + let div = document.createElement('div'); + el.append(`slaves are rewarded with their freedom once they have killed ${num(V.policies.retirement.kills)} of their fellow slaves in the pit.`); + div.append(`Set a new retirement requirement:`); + div.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.policies.retirement.kills, + v => { + V.policies.retirement.kills = v; + policy("RetirementPolicies"); + }, + true + ), + "indent" + ) + ); + el.append(div); + return el; + }, + enable: 3, + requirements: function() { if (V.policies.retirement.fate === "citizen") { return true; } else { return false; } }, + } + ], + }, + MenialRetirementPolicies: { + "policies.retirement.menial2Citizen": [ + { + get title() { + const el = new DocumentFragment; + if (V.policies.retirement.menial2Citizen !== 1) { + let div = document.createElement("div"); + let span = document.createElement("span"); + span.style.fontWeight = "bold"; + span.textContent = `No Menial Retirement Plan`; + div.append(span); + + span = document.createElement("span"); + span.style.fontWeight = "normal"; + span.textContent = `: without defining a retirement age for menial slaves they will remain slaves until death or freed otherwise`; + div.append(span); + el.append(div); + } + el.append("Redefined Mandatory Menial Retirement Age"); + return el; + }, + get text() { + const el = new DocumentFragment; + el.append(`you will set your arcology's retirement age for menial slaves at age`); + el.append( + App.UI.DOM.makeElement( + "div", + App.UI.DOM.makeTextBox( + V.customMenialRetirementAge, + v => { + V.customMenialRetirementAge = v; + policy("MenialRetirementPolicies"); + }, + true + ), + "indent" + ) + ); + return el; + }, + hide: {button: 1} + }, + { + title: "Menial Slave Citizen Retirement", + activatedTitle: "Mandatory Menial Retirement Age", + text: `all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement.`, + get activatedText() { return `you have set your arcology's retirement age for menial slaves at ${V.customMenialRetirementAge}.`; }, + requirements: function() { if (V.arcologies[0].FSDegradationist === "unset") { return true; } else { return false; } }, + note: `Will add upkeep to all menial slaves`, + onImplementation: function() { if (V.citizenRetirementTrigger === 0) { V.citizenRetirementTrigger = 1; } }, + onRepeal: function() { V.customMenialRetirementAge = 45; } + } + ], + }, + FutureSocietiesTab: { + "policies.culturalOpenness": [ + { + title: "Cultural Openness", + text: "you will promote the exchange of ideas between arcologies, increasing cultural crossover between your arcology and its neighbors.", + activatedText: "you are promoting the exchange of ideas between arcologies, increasing cultural crossover between your arcology and its neighbors.", + requirements: function() { if (V.arcologies.length > 1) { return true; } else { return false; } }, + }, + { + title: "Cultural Defensiveness", + text: "you will do your best to suppress the exchange of ideas between arcologies, reducing cultural crossover between your arcology and its neighbors.", + activatedText: " you are doing your best to suppress the exchange of ideas between arcologies, reducing cultural crossover between your arcology and its neighbors.", + requirements: function() { if (V.arcologies.length > 1) { return true; } else { return false; } }, + enable: -1, + }, + ], + }, + FSGenderFundamentalist: { + "arcologies[0].FSGenderFundamentalistLawBeauty": [ + { + title: "Fashionable Feminine Ideal", + titleClass: "lime", + text: "you will do your best to start a fashion for elegant girls with just the right amount of T&A.", + activatedText: "you are doing your best to maintain a fashion for elegant girls with just the right amount of T&A.", + requirements: function() { if (V.arcologies[0].FSSlimnessEnthusiastLaw === 0 && V.arcologies[0].FSHedonisticDecadenceLaw2 === 0 && V.arcologies[0].FSPhysicalIdealistLaw === 0) { return true; } else { return false; } }, + } + ], + "arcologies[0].FSGenderFundamentalistLawBimbo": [ + { + title: "Traditional Education", + titleClass: "lime", + text: "you will do your best to remind society that a woman does not need an education to serve her man.", + activatedText: "women do not need to be educated to serve their role in society.", + } + ], + "arcologies[0].FSGenderFundamentalistSMR": [ + { + title: "Mandatory Feminization SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves with dicks must have their balls removed.", + requirements: function() { if (V.arcologies[0].FSGenderFundamentalist >= 40) { return true; } else { return false; } }, + note: `Will help advance Gender Fundamentalism` + } + ], + }, + FSGenderRadicalist: { + "arcologies[0].FSGenderRadicalistLawBeauty": [ + { + title: "Fashionable Feminine Aspiration", + titleClass: "lime", + text: "you will do your best to start a fashion for turning slaves into elegant girls with just the right amount of T&A.", + activatedText: "you are doing your best to maintain a fashion for turning slaves into elegant girls with just the right amount of T&A.", + requirements: function() { if (V.arcologies[0].FSSlimnessEnthusiastLaw === 0 && V.arcologies[0].FSHedonisticDecadenceLaw2 === 0 && V.arcologies[0].FSPhysicalIdealistLaw === 0) { return true; } else { return false; } }, + } + ], + "arcologies[0].FSGenderRadicalistLawFuta": [ + { + title: "Futanari Focused Radicalism", + titleClass: "lime", + text: "you will encourage veneration of slaves with both dicks and pussies.", + activatedText: "you are encouraging Gender Radicalism towards veneration of slaves with both dicks and pussies.", + enable: 1, + requirements: function() { if (V.seeDicks !== 0) { return true; } else { return false; } }, + note: `Will affect citizens' appreciation of futas` + }, + { + title: "Cock and Balls Focused Radicalism", + titleClass: "lime", + text: "you will encourage an appreciation for stiff dicks and swinging balls.", + activatedText: "you are encouraging Gender Radicalism towards an appreciation for stiff dicks and swinging balls.", + enable: 2, + requirements: function() { if (V.seeDicks !== 0) { return true; } else { return false; } }, + note: `Will affect slaves' attractiveness to citizens` + }, + { + title: "Bottom Heavy Radicalism", + titleClass: "lime", + text: "you will encourage an appreciation for broad hips, plush asses, big buttholes, and skilled sphincters.", + activatedText: "you are encouraging an appreciation for broad hips, plush asses, big buttholes, and skilled sphincters.", + enable: 3, + requirements: function() { if (V.seeDicks !== 0) { return true; } else { return false; } }, + note: `Will affect slaves' attractiveness to citizens` + }, + { + title: "Femboy Focused Radicalism", + titleClass: "lime", + text: "you will encourage an appreciation for cute, flat chested slaves with small male genitals and no vagina.", + activatedText: "you are encouraging an appreciation for cute, flat chested slaves with small male genitals and no vagina.", + enable: 4, + requirements: function() { if (V.seeDicks !== 0) { return true; } else { return false; } }, + note: `Will affect slaves' attractiveness to citizens` + }, + ], + }, + FSPaternalist: { + "arcologies[0].FSPaternalistSMR": [ + { + title: "Human Dignity SMR", + titleClass: "lime", + text: "the slave markets will be required to treat incoming slaves reasonably well.", + activatedText: "the slave markets are required to treat incoming slaves reasonably well.", + requirements: function() { if (V.arcologies[0].FSDegradationistSMR === 0) { return true; } else { return false; } }, + note: `Will reduce the arcology's prosperity and help advance Paternalism` + } + ], + "arcologies[0].FSPaternalistLaw": [ + { + title: "Good Treatment Subsidy", + titleClass: "lime", + text: "slaveowners who treat their slaves well will be offered reduced rent.", + activatedText: "slaveowners who treat their slaves well are offered reduced rent.", + requirements: function() { if (V.arcologies[0].FSPaternalist >= 60) { return true; } else { return false; } }, + note: `Will reduce your rental income` + } + ], + }, + FSDegradationist: { + "arcologies[0].FSDegradationistSMR": [ + { + title: "Agonizing Induction SMR", + titleClass: "lime", + text: "slave markets will be required to punish new slaves severely simply to introduce them to pain.", + activatedText: "slave markets are required to punish new slaves severely simply to introduce them to pain.", + requirements: function() { if (V.arcologies[0].FSPaternalistSMR === 0) { return true; } else { return false; } }, + note: `Will help advance Degradationism` + } + ], + "arcologies[0].FSDegradationistLaw": [ + { + title: "Universal Arcade Access Mandat", + titleClass: "lime", + text: "slaveowners will be required to allow their menial slaves to use the sex arcades.", + activatedText: "slaveowners are required to allow their menial slaves to use the sex arcades.", + requirements: function() { if (V.arcologies[0].FSDegradationist >= 90) { return true; } else { return false; } }, + note: `Will reduce labor efficiency, damaging the arcology's prosperity and adds a cost to each menial slave` + } + ], + }, + FSIntellectualDependency: { + "arcologies[0].FSIntellectualDependencySMR": [ + { + title: "Dependency SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will need to fail a simple intelligence test.", + activatedText: "in order to be sold in the arcology, slaves must fail a simple intelligence test.", + requirements: function() { if (V.arcologies[0].FSSlaveProfessionalismSMR === 0) { return true; } else { return false; } }, + onImplementation: function() { + V.policies.SMR.intelligence.basicSMR = 0; + V.policies.SMR.intelligence.qualitySMR = 0; + }, + get note() { + let t = `Will help advance Intellectual Dependency`; + if (V.policies.SMR.intelligence.basicSMR !== 0 || V.policies.SMR.intelligence.qualitySMR !== 0) { + t += ` and will repeal interfering intelligence regulations`; + } + return t; + } + } + ], + "arcologies[0].FSIntellectualDependencyLawBeauty": [ + { + title: "Bimbo Body Complement", + titleClass: "lime", + text: "you will do your best to start an appreciation for stereotypical bimbo bodies.", + activatedText: "you are encouraging an appreciation for the stereotypical bimbo body.", + requirements: function() { if (V.arcologies[0].FSIntellectualDependency >= 60) { return true; } else { return false; } }, + note: `Will greatly affect society's views on slave beauty` + } + ], + "arcologies[0].FSIntellectualDependencyLaw": [ + { + title: "Invalid Protection Act", + titleClass: "lime", + text: "by law, anyone unable to pass a standardized test of intelligence and not already a dependant will be enslaved for their own well being.", + requirements: function() { if (V.arcologies[0].FSIntellectualDependency >= 80) { return true; } else { return false; } }, + note: `Will convert some immigrants to menial slaves and give a small boost to reputation` + } + ], + }, + FSSlaveProfessionalism: { + "arcologies[0].FSSlaveProfessionalismSMR": [ + { + title: "Head Start SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves must pass a rigorous course designed to bring their skills and poise up to standard.", + requirements: function() { if (V.arcologies[0].FSIntellectualDependencySMR) { return true; } else { return false; } }, + note: `Will help advance Slave Professionalism` + } + ], + "arcologies[0].FSSlaveProfessionalismLaw": [ + { + title: "Mandatory Intelligence Screening", + titleClass: "lime", + text: "citizens will be required to pass regular intelligence tests or face expulsion from the arcology.", + activatedText: "citizens must pass regular intelligence tests or face expulsion from the arcology.", + requirements: function() { if (V.arcologies[0].FSSlaveProfessionalism >= 90) { return true; } else { return false; } }, + onImplementation: function() { + if (V.FSSlaveProfLawTrigger === 0) { + V.FSSlaveProfLawTrigger = 1; + } + }, + note: `Will thin citizen numbers and reduce immigration, but what remains will empower the arcology's prosperity` + } + ], + }, + FSBodyPurist: { + "arcologies[0].FSBodyPuristSMR": [ + { + title: "Body Purity SMR", + titleClass: "lime", + text: "in order to be sold in your arcology, slaves will be stripped of implants and body modifications.", + activatedText: "in order to be sold in your arcology, slaves must be stripped of implants and body modifications.", + note: `Will help advance Body Purism` + } + ], + "arcologies[0].FSBodyPuristLaw": [ + { + title: "Drug Purity Mandate", + titleClass: "lime", + text: "all drugs in the arcology will be subjected to rigorous testing for purity.", + activatedText: "all drugs in the arcology must pass rigorous testing for purity.", + requirements: function() { if (V.arcologies[0].FSBodyPurist >= 90) { return true; } else { return false; } }, + note: `Will reduce slaving profits, damaging the arcology's prosperity` + } + ], + }, + FSTransformationFetishist: { + "arcologies[0].FSTransformationFetishistSMR": [ + { + title: "Mandatory Bimbofication SMR", + titleClass: "lime", + text: "in order to be sold in your arcology, slaves must be given a set of fake tits and ass.", + activatedText: "in order to be sold in your arcology, slaves must be given a set of fake tits and ass.", + note: `Will help advance Transformation Fetishism` + } + ], + }, + FSYouthPreferentialist: { + "arcologies[0].FSYouthPreferentialistSMR": [ + { + title: "Respect for Youth SMR", + titleClass: "lime", + text: " slave markets in your arcology are required to treat younger slaves carefully.", + activatedText: "slave markets in your arcology are required to treat younger slaves carefully.", + note: `Will help advance Youth Preferentialism` + } + ], + "arcologies[0].FSYouthPreferentialistLaw": [ + { + title: "Youthful Citizen Subsidy", + titleClass: "lime", + text: "young citizens will be offered reduced rent.", + activatedText: "young citizens are offered reduced rent.", + requirements: function() { if (V.arcologies[0].FSYouthPreferentialist >= 90) { return true; } else { return false; } }, + note: `Will reduce your rental income` + } + ], + }, + FSMaturityPreferentialist: { + "arcologies[0].FSMaturityPreferentialistSMR": [ + { + title: "Respect for Maturity SMR", + titleClass: "lime", + text: "slave markets in your arcology will be required to treat mature slaves properly.", + activatedText: "slave markets in your arcology are required to treat mature slaves properly.", + note: `Will help advance Maturity Preferentialism` + } + ], + "arcologies[0].FSMaturityPreferentialistLaw": [ + { + title: "Mature Citizen Subsidy", + titleClass: "lime", + text: "older citizens will be offered reduced rent.", + activatedText: "older citizens are offered reduced rent.", + requirements: function() { if (V.arcologies[0].FSMaturityPreferentialist >= 90) { return true; } else { return false; } }, + note: `Will reduce your rental income` + } + ], + }, + FSPetiteAdmiration: { + "arcologies[0].FSPetiteAdmirationSMR": [ + { + title: "Small Details SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will have to pass height requirements.", + activatedText: "in order to be sold in the arcology, slaves must pass height requirements.", + requirements: function() { if (V.arcologies[0].FSStatuesqueGlorificationSMR === 0) { return true; } else { return false; } }, + onImplementation: function() { + if (V.policies.SMR.height.advancedSMR > 0) { + V.policies.SMR.height.advancedSMR = 0; + } + if (V.policies.SMR.height.basicSMR > 0) { + V.policies.SMR.height.basicSMR = 0; + } + }, + get note() { + let t = `Will help advance Petite Admiration`; + if (V.policies.SMR.height.basicSMR > 0 || V.policies.SMR.height.advancedSMR !== 0) { + t += ` and will repeal interfering height regulations`; + } + return t; + } + } + ], + "arcologies[0].FSPetiteAdmirationLaw2": [ + { + title: "Relative Height Clause", + titleClass: "lime", + text: "you will do your best to push a taste for relative height rather than a strict cut-off.", + activatedText: "beauty standards are based off of relative expected height as opposed to a strict cutoff.", + requirements: function() { if (V.arcologies[0].FSPetiteAdmiration >= 60) { return true; } else { return false; } }, + note: `Will weaken beauty standards by making them more easily attainable but may flush out cheaters` + } + ], + "arcologies[0].FSPetiteAdmirationLaw": [ + { + title: "Big & Small Subsidy", + titleClass: "lime", + text: "citizens will be offered reduced rent for keeping slaves and taking partners far shorter than themselves.", + activatedText: "citizens are offered reduced rent for keeping slaves far shorter than themselves.", + requirements: function() { if (V.arcologies[0].FSPetiteAdmiration >= 90) { return true; } else { return false; } }, + note: `Will reduce your rental income` + } + ], + }, + FSStatuesqueGlorification: { + "arcologies[0].FSStatuesqueGlorificationSMR": [ + { + title: "You Must Be This Tall SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves must pass height requirements.", + activatedText: "in order to be sold in the arcology, slaves must be able to pass height requirements.", + onImplementation: function() { + if (V.policies.SMR.height.advancedSMR < 0) { + V.policies.SMR.height.advancedSMR = 0; + } + if (V.policies.SMR.height.basicSMR < 0) { + V.policies.SMR.height.basicSMR = 0; + } + }, + get note() { + let t = `Will help advance Statuesque Glorification`; + if (V.policies.SMR.height.basicSMR < 0 || V.policies.SMR.height.advancedSMR !== 0) { + t += ` and will repeal interfering height regulations`; + } + return t; + } + } + ], + "arcologies[0].FSStatuesqueGlorificationLaw2": [ + { + title: "Relative Height Clause", + titleClass: "lime", + text: "you will do your best to push focus on to relative height rather than a strict cutoff.", + activatedText: "beauty standards are based off of relative expected height as opposed to a strict cutoff.", + requirements: function() { if (V.arcologies[0].FSStatuesqueGlorification >= 60) { return true; } else { return false; } }, + note: `Will weaken beauty standards by making them more easily attainable` + } + ], + "arcologies[0].FSStatuesqueGlorificationLaw": [ + { + title: "Height Makes Right", + titleClass: "lime", + text: "tall citizens will be offered reduced rent at short citizens' expense.", + activatedText: "tall citizens are offered reduced rent at short citizens' expense.", + requirements: function() { if (V.arcologies[0].FSStatuesqueGlorification >= 90) { return true; } else { return false; } }, + } + ], + }, + FSSlimnessEnthusiast: { + "arcologies[0].FSSlimnessEnthusiastSMR": [ + { + title: "Physical Fitness SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, chubby slaves will have to be forced to work out first.", + activatedText: "in order to be sold in the arcology, chubby slaves must be forced to work out first.", + } + ], + "arcologies[0].FSSlimnessEnthusiastLaw": [ + { + title: "Flat Feminine Ideal", + titleClass: "lime", + text: "you will do your best to start a fashion for elegant girls with just the right amount of T&A, none!", + activatedText: "you are doing your best to maintain a fashion for elegant girls with just the right amount of T&A, none!", + requirements: function() { + if ( + V.arcologies[0].FSGenderRadicalistLawBeauty === 0 && + V.arcologies[0].FSGenderFundamentalistLawBeauty === 0 && + V.arcologies[0].FSGenderRadicalistLawFuta !== 3 && + V.arcologies[0].FSHedonisticDecadenceLaw2 === 0 && + V.arcologies[0].FSPhysicalIdealistLaw === 0 + ) { return true; } else { return false; } + }, + note: `Flat slaves will enjoy increased attractiveness to citizens` + } + ], + }, + FSAssetExpansionist: { + "arcologies[0].FSAssetExpansionistSMR": [ + { + title: "Asset Expansion SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will have to have their assets expanded with growth hormones.", + activatedText: "in order to be sold in the arcology, slaves must have their assets expanded with growth hormones.", + } + ], + }, + FSPastoralist: { + "arcologies[0].FSPastoralistSMR": [ + { + title: "Universal Slave Lactation SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will be required to be actively lactating.", + activatedText: "in order to be sold in the arcology, slaves must be actively lactating.", + note: `Will help advance Pastoralism` + } + ], + "arcologies[0].FSPastoralistLaw": [ + { + title: "Animal Products Ban", + titleClass: "lime", + text: "animal products that compete with slave fluids will be banned.", + activatedText: "animal products that compete with slave fluids are banned.", + requirements: function() { if (V.arcologies[0].FSPastoralist >= 90) { return true; } else { return false; } }, + note: `Will reduce market freedom, damaging the arcology's prosperity` + } + ], + }, + FSPhysicalIdealist: { + "arcologies[0].FSPhysicalIdealistSMR": [ + { + title: "Lifting SMR", + titleClass: "lime", + get text() { + let t = `in order to be sold in the arcology, slaves will have to be `; + if (V.arcologies[0].FSPhysicalIdealistLaw) { + t += ` toned.`; + } else { + t += ` bulked.`; + } + return t; + }, + get activatedText() { + let t = `in order to be sold in the arcology, slaves must be `; + if (V.arcologies[0].FSPhysicalIdealistLaw) { + t += ` toned.`; + } else { + t += ` bulked.`; + } + return t; + }, + note: `Will help advance Physical Idealism` + } + ], + "arcologies[0].FSPhysicalIdealistLaw": [ + { + title: "Fit Feminine Ideal", + titleClass: "lime", + text: "you will do your best to start a fashion for fit, healthy girls with just the right amount of muscle definition.", + activatedText: "you are doing your best to maintain a fashion for fit, healthy girls with just the right amount of muscle definition.", + requirements: function() { + if ( + V.arcologies[0].FSHedonisticDecadenceLaw2 === 0 && + V.arcologies[0].FSSlimnessEnthusiastLaw === 0 && + V.arcologies[0].FSGenderRadicalistLawBeauty === 0 && + V.arcologies[0].FSGenderFundamentalistLawBeauty === 0 && + V.arcologies[0].FSPhysicalIdealistStrongFat === 0 && + V.arcologies[0].FSPhysicalIdealist >= 60 + ) { return true; } else { return false; } + }, + note: `Will greatly affect society's views on slave beauty` + } + ], + "arcologies[0].FSPhysicalIdealistStrongFat": [ + { + title: "Strongfat Feminine Ideal", + titleClass: "lime", + text: "you will do your best to start a fashion for strong girls with a thick layer of fat over their muscles.", + activatedText: "you are doing your best to maintain a fashion for strong girls with a thick layer of fat over their muscles.", + requirements: function() { if (V.arcologies[0].FSPhysicalIdealist >= 60) { return true; } else { return false; } }, + note: `Will greatly affect society's views on slave beauty` + } + ], + }, + FSHedonisticDecadence: { + "arcologies[0].FSHedonisticDecadenceSMR": [ + { + title: "Corpulence SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will be required to be plump.", + activatedText: "in order to be sold in the arcology, slaves must be plump.", + note: `Will help advance Hedonistic Decadence` + } + ], + "arcologies[0].FSHedonisticDecadenceLaw2": [ + { + title: "Rotund Feminine Ideal", + titleClass: "lime", + text: "you will do your best to start a fashion for thick girls with soft bellies, big butts and luscious tits.", + activatedText: "you are doing your best to maintain a fashion for thick girls with soft bellies, big butts and luscious tits.", + requirements: function() { + if ( + V.arcologies[0].FSSlimnessEnthusiastLaw === 0 && + V.arcologies[0].FSGenderRadicalistLawBeauty === 0 && + V.arcologies[0].FSGenderFundamentalistLawBeauty === 0 && + V.arcologies[0].FSPhysicalIdealistLaw === 0 && + V.arcologies[0].FSGenderRadicalistLawFuta !== 3 && + V.arcologies[0].FSHedonisticDecadence >= 60 + ) { return true; } else { return false; } + }, + note: `Will greatly affect society's views on slave beauty` + } + ], + "arcologies[0].FSHedonisticDecadenceStrongFat": [ + { + title: "Fat n' Strong Feminine Ideal", + titleClass: "lime", + text: "you will do your best to start a fashion for thick girls with plenty of muscle under their fat.", + activatedText: "you are doing your best to maintain a fashion for thick, strong girls.", + requirements: function() { if (V.arcologies[0].FSHedonisticDecadence >= 60) { return true; } else { return false; } }, + note: `Will greatly affect society's views on slave beauty` + } + ], + "arcologies[0].FSHedonisticDecadenceLaw": [ + { + title: "Life's Joys Subsidy", + titleClass: "lime", + text: "food vendors will be offered reduced rent and operating expenses.", + activatedText: "food vendors are offered reduced rent and operating expenses.", + requirements: function() { if (V.arcologies[0].FSHedonisticDecadence >= 90) { return true; } else { return false; } }, + note: `Will improve prosperity but decrease rental income — tailors may see increased business` + } + ], + }, + FSChattelReligionist: { + "arcologies[0].FSChattelReligionistSMR": [ + { + title: "Consecration by Public Use SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will be offered for public use for a single day.", + activatedText: "in order to be sold in the arcology, slaves must be offered for public use for a single day.", + note: `Will help advance Chattel Religionism` + } + ], + "arcologies[0].FSChattelReligionistLaw": [ + { + title: "Official Religion", + titleClass: "lime", + text: "you will be enshrined as the prophet of a vibrant slaveowning religion.", + activatedText: "you are enshrined as the prophet of a vibrant slaveowning religion.", + requirements: function() { if (V.arcologies[0].FSChattelReligionist >= 90) { return true; } else { return false; } }, + note: `Will increase your renown` + } + ], + }, + nicaeaHeld: { + "arcologies[0].FSChattelReligionistCreed": [ + { + title: "Chattel Religionist Creed", + titleClass: "lime", + get text() { + let t = `Chattel Religionism in your arcology will subscribe to the creed established by the ${V.nicaeaName}, which honors`; + if (V.nicaeaFocus === "slaves") { + t += ` slaves,`; + } else { + t += ` slaveowners,`; + } + t += ` enhances`; + if (V.nicaeaAssignment === "whore") { + t += ` prostitution,`; + } else if (V.nicaeaAssignment === "serve the public") { + t += ` public service,`; + } else { + t += ` fucktoy duty,`; + } + t += ` and respects`; + if (V.nicaeaAchievement === "slaves") { + t += ` owning many sex slaves`; + } else if (V.nicaeaAchievement === "devotion") { + t += ` worshipful slaves.`; + } else { + t += ` trusting slaves.`; + } + t += ` The creed is`; + if (V.nicaeaPower > 1) { + t += ` strong.`; + } else { + t += ` somewhat weak.`; + } + return t; + }, + get activatedText() { + let t = `Chattel Religionism in your arcology subscribes to the creed established by the ${V.nicaeaName}, which honors`; + if (V.nicaeaFocus === "slaves") { + t += ` slaves,`; + } else { + t += ` slaveowners,`; + } + t += ` enhances`; + if (V.nicaeaAssignment === "whore") { + t += ` prostitution,`; + } else if (V.nicaeaAssignment === "serve the public") { + t += ` public service,`; + } else { + t += ` fucktoy duty,`; + } + t += ` and respects`; + if (V.nicaeaAchievement === "slaves") { + t += ` owning many sex slaves`; + } else if (V.nicaeaAchievement === "devotion") { + t += ` worshipful slaves.`; + } else { + t += ` trusting slaves.`; + } + t += ` The creed is`; + if (V.nicaeaPower > 1) { + t += ` strong.`; + } else { + t += ` somewhat weak.`; + } + return t; + }, + onRepeal: function() { + cashX(-10000, "policies"); + repX(-2000, "policies"); + }, + activatedNote: `Repealing this policy costs twice as much as implementing it` + } + ], + }, + FSRomanRevivalist: { + "arcologies[0].FSRomanRevivalistSMR": [ + { + title: "Market Slave Expendability SMR", + titleClass: "lime", + text: "slave markets are encouraged to immediately dispose of low quality menial slaves in gladiatorial combats.", + activatedText: "slave markets are encouraged to immediately dispose of low quality menial slaves in gladiatorial combats.", + note: `Will help advance Roman Revivalism` + } + ], + "arcologies[0].FSRomanRevivalistLaw": [ + { + title: "Republican Military Establishment", + titleClass: "lime", + text: "all citizens of stature will be required to participate personally in the defense of the state.", + activatedText: "all citizens of stature are required to participate personally in the defense of the state.", + requirements: function() { if (V.arcologies[0].FSRomanRevivalist >= 90) { return true; } else { return false; } }, + note: `Will improve your arcology's combat power during crises` + } + ], + }, + FSAztecRevivalist: { + "arcologies[0].FSAztecRevivalistSMR": [ + { + title: "Captured and Incorrigible Slaves Tribute", + titleClass: "lime", + text: "all captured and incorrigible slaves will be made tribute to the altars.", + activatedText: "all captured and incorrigible slaves must be made tribute to the altars.", + note: `Will help advance Aztec Revivalism` + } + ], + "arcologies[0].FSAztecRevivalistLaw": [ + { + title: "Mandatory Artisan Training", + titleClass: "lime", + text: "to inherit or receive a trade a citizen will have to pass a mandatory course in one of the academies.", + activatedText: "to inherit or receive a trade a citizen must pass a mandatory course in one of the academies.", + requirements: function() { if (V.arcologies[0].FSAztecRevivalist >= 90) { return true; } else { return false; } }, + note: `Will improve your arcology's combat power during crises` + } + ], + }, + FSEgyptianRevivalist: { + "arcologies[0].FSEgyptianRevivalistSMR": [ + { + title: "Egyptian Cultural Induction SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will be instructed in the cultural tenets of ancient Egypt.", + activatedText: "in order to be sold in the arcology, slaves must be instructed in the cultural tenets of ancient Egypt.", + note: `Will help advance Egyptian Revivalism` + } + ], + "arcologies[0].FSEgyptianRevivalistLaw": [ + { + title: "Pharaoh's Consort", + titleClass: "lime", + text: "your Head Girl will be given legal status as your Consort.", + get activatedText() { + const {his} = getPronouns(getSlave(V.HeadGirl.ID)); + return `your Head Girl holds legal status as your Consort, increasing ${his} prominence.`; + }, + requirements: function() { if (V.arcologies[0].FSEgyptianRevivalist >= 90) { return true; } else { return false; } }, + note: `Will increase your Head Girl's prominence` + } + ], + }, + FSEdoRevivalist: { + "arcologies[0].FSEdoRevivalistSMR": [ + { + title: "Edo Cultural Induction SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will have to be instructed in the cultural tenets of Edo Japan.", + activatedText: "in order to be sold in the arcology, slaves must be instructed in the cultural tenets of Edo Japan.", + note: `Will help advance Edo Revivalism` + } + ], + "arcologies[0].FSEdoRevivalist >= 90": [ + { + title: "Cultural Insularity", + titleClass: "lime", + text: "will protect the arcology from old world influences.", + activatedText: "protects the arcology from old world influences, speeding the acceptance of all future societies.", + requirements: function() { if (V.arcologies[0].FSEdoRevivalist >= 90) { return true; } else { return false; } }, + note: `Will speed the acceptance of all future societies` + } + ], + }, + FSArabianRevivalist: { + "arcologies[0].FSArabianRevivalistSMR": [ + { + title: "Arabian Cultural Induction SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will be instructed in the cultural tenets of the old Caliphate.", + activatedText: "in order to be sold in the arcology, slaves must be instructed in the cultural tenets of the old Caliphate.", + note: `Will help advance Arabian Revivalism` + } + ], + "arcologies[0].FSArabianRevivalistLaw": [ + { + title: "Jizya Tax", + titleClass: "lime", + text: "will raise the rents of unassimilated citizens, speeding the acceptance of all future societies.", + activatedText: "raises the rents of unassimilated citizens, speeding the acceptance of all future societies.", + requirements: function() { if (V.arcologies[0].FSArabianRevivalist >= 90) { return true; } else { return false; } }, + note: `Will moderately increase rental income and improve acceptance of all future societies` + } + ], + }, + FSChineseRevivalist: { + "arcologies[0].FSChineseRevivalistSMR": [ + { + title: "Imperial Cultural Induction SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will have to be instructed in the cultural tenets of Imperial China.", + activatedText: "in order to be sold in the arcology, slaves must be instructed in the cultural tenets of Imperial China.", + note: `Will help advance Chinese Revivalism` + } + ], + "arcologies[0].FSChineseRevivalistLaw": [ + { + title: "Slave Administrator Enabling Law", + titleClass: "lime", + get text() { + const {him} = getPronouns(getSlave(V.HeadGirl.ID)); + return `will afford your Head Girl considerable legal power, allowing ${him} to accomplish even more slave training.`; + }, + get activatedText() { + const {him} = getPronouns(getSlave(V.HeadGirl.ID)); + return `affords your Head Girl considerable legal power, allowing ${him} to accomplish even more slave training.`; + }, + requirements: function() { if (V.arcologies[0].FSChineseRevivalist >= 90) { return true; } else { return false; } }, + } + ], + }, + FSRepopulationFocus: { + "arcologies[0].FSRepopulationFocusSMR": [ + { + title: "Occupied Womb SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves will be made capable of pregnancy, if they are not, and subsequently impregnated.", + activatedText: "in order to be sold in the arcology, slaves must be pregnant.", + requirements: function() { if (V.arcologies[0].FSRepopulationFocusDecoration >= 40) { return true; } else { return false; } }, + note: `Will help advance repopulation efforts. Due to surgery costs, male slaves will become less common` + } + ], + "arcologies[0].FSRepopulationFocusLaw": [ + { + title: "Universal Pregnancy Subsidy", + titleClass: "lime", + text: "pregnant citizens will be offered reduced rent.", + activatedText: "all pregnant citizens are offered reduced rent.", + requirements: function() { if (V.arcologies[0].FSRepopulationFocusDecoration >= 90) { return true; } else { return false; } }, + note: `Will reduce your rental income` + } + ], + }, + FSRace: { + "arcologies[0].FSSupremacistSMR": [ + { + title: "Ethnic Preservation SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slaves of inferior races with dicks must have their balls removed to prevent racial pollution.", + activatedText: "in order to be sold in the arcology, slaves of inferior races with dicks will have to have their balls removed to prevent racial pollution.", + requirements: function() { if (V.seeDicks !== 0 && V.arcologies[0].FSSupremacist >= 40) { return true; } else { return false; } }, + note: `Will help advance racial Supremacy` + } + ], + "arcologies[0].FSSupremacistLawME": [ + { + title: "Universal Enslavement of the Impure", + titleClass: "lime", + get text() { return `will force anyone not of the ${V.arcologies[0].FSSupremacistRace} race to emigrate or accept enslavement, and make sex with non-${V.arcologies[0].FSSupremacistRace} people such an expectation that the appetite for all such slaves will increase slightly.`; }, + get activatedText() { return `by law, anyone not of the ${V.arcologies[0].FSSupremacistRace} in your arcology is a slave`; }, + requirements: function() { if (V.seeDicks !== 0 && V.arcologies[0].FSSupremacist >= 40) { return true; } else { return false; } }, + onImplementation: function() { V.FSSupLawTrigger = 1; }, + note: `Will affect the slave market and arcology drastically` + } + ], + "arcologies[0].FSSubjugationistSMR": [ + { + title: "Racial Purity SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, subhumans with dicks will have to have their balls removed to prevent racial pollution.", + activatedText: "in order to be sold in the arcology, subhumans with dicks must have their balls removed to prevent racial pollution.", + requirements: function() { if (V.seeDicks !== 0 && V.arcologies[0].FSSubjugationist >= 40) { return true; } else { return false; } }, + note: `Will help advance racial Subjugation` + } + ], + "arcologies[0].FSSubjugationistLawME": [ + { + title: "Universal Enslavement of Subhumans", + titleClass: "lime", + get text() { return `will force slavery on all ${V.arcologies[0].FSSubjugationistRace} subhumans in your arcology, and make sex with ${V.arcologies[0].FSSubjugationistRace} people such an expectation that the appetite for all such slaves will increase slightly.`; }, + get activatedText() { return `by law, all ${V.arcologies[0].FSSubjugationistRace} subhumans in your arcology are slaves`; }, + requirements: function() { if (V.arcologies[0].FSSubjugationist >= 90) { return true; } else { return false; } }, + onImplementation: function() { + if (V.FSSubLawTrigger === 0) { + V.FSSubLawTrigger = 1; + } + }, + note: `Will affect the slave market and arcology drastically` + } + ], + + "arcologies[0].FSRestartSMR": [ + { + title: "Population Control SMR", + titleClass: "lime", + text: "in order to be sold in the arcology, slave ovaries and testicles will be removed.", + activatedText: "in order to be sold in the arcology, slaves must be infertile.", + requirements: function() { if (V.arcologies[0].FSRestartDecoration >= 90) { return true; } else { return false; } }, + note: `Will help advance starting society over` + } + ], + "arcologies[0].FSRestartLaw": [ + { + title: "Taxation of Fertile Non-Elite", + titleClass: "lime", + text: "fertile civilians, who are not part of society's Elite, will face increased taxation.", + activatedText: "all fertile lower class citizens pay increased taxes.", + requirements: function() { if (V.arcologies[0].FSRestartDecoration >= 90) { return true; } else { return false; } }, + note: `Will increase your rental income, but the lower class will dislike you` + } + ], + "arcologies[0].FSRestartResearch": [ + { + title: "Elite Breeder Eligibility", + titleClass: "lime", + text: "slaves that pass very strict tests may be permitted for use by the Societal Elite to bear their children.", + requirements: function() { if (V.arcologies[0].FSRestartDecoration >= 100 && V.rep >= 5000) { return true; } else { return false; } }, + onImplementation: function() { + repX(-4000, "policies"); + }, + hide: {ifActivated: 1}, // Repeal is not possible. + note: `Will greatly damage your reputation for even proposing` + } + ], + "arcologies[0].FSRepopulationFocusPregPolicy": [ + { + title: "Pregnancy Encouragement", + text: "you will use your personal influence to spur interest in pregnancy.", + activatedText: "you are using your personal influence to spur interest in pregnancy.", + requirements: function() { + if ( + V.arcologies[0].FSRepopulationFocus === "unset" && V.arcologies[0].FSRestart === "unset" && V.seePreg + ) { return true; } else { return false; } + }, + } + ], + "arcologies[0].FSRepopulationFocusMilfPolicy": [ + { + title: "Motherly Preference", + text: "you will use your personal influence to spur interest in MILFs.", + activatedText: "you are using your personal influence to spur interest in MILFs.", + requirements: function() { + if ( + V.arcologies[0].FSRepopulationFocus === "unset" && V.arcologies[0].FSRestart === "unset" + ) { return true; } else { return false; } + }, + } + ], + } + +}; diff --git a/src/003-assets/CSS/arcologyBuilding.css b/src/003-assets/CSS/arcologyBuilding.css index 454882e38f22d141cd6da8551bf7fdf21efd0b1d..7e478d34e2d7e88f1485a524b4af891edb1d84cf 100644 --- a/src/003-assets/CSS/arcologyBuilding.css +++ b/src/003-assets/CSS/arcologyBuilding.css @@ -1,30 +1,36 @@ -div.building { +.building { display: flex; flex-direction: column; width: 100%; } -div.building.basement { +.building.basement { border-top: solid 1px #333333; margin-top: -1px; background-image: repeating-linear-gradient(135deg, transparent, transparent 20px, #333333 20px, #333333 30px); } -div.building div.row { +.building .row { display: flex; flex-direction: row; - width: 70%; + width: 95%; margin: 0 auto; justify-content: center; } -div.building div.outerCell { +@media only screen and (min-width: 1600px) { + .building .row { + width: 70%; + } +} + +.building .outerCell { /* fill cell fully, part 1: trick to fill the full height even if content is smaller */ display: flex; flex-direction: row; } -div.building div.innerCell { +.building .innerCell { margin: 3px; border: 5px solid; padding: 2px; @@ -35,7 +41,7 @@ div.building div.innerCell { background-color: #111; } -div.building div.decorative { +.building .decorative { outline: white solid 5px; outline-offset: -8px; height: 2em; @@ -43,133 +49,133 @@ div.building div.decorative { /* introduction special formatting */ /* makes all links unusable */ -.intro div.building a { +.intro .building a { color: white; pointer-events: none; cursor: default; } -.intro div.building .hotkey { +.intro .building .hotkey { display: none; } /* penthouse formatting */ -div.building div.gridWrapper { +.building .gridWrapper { display: grid; } -div.building div.gridWrapper.grid1 { +.building .gridWrapper.grid1 { grid-template-columns: 100%; } -div.building div.gridWrapper.grid2 { +.building .gridWrapper.grid2 { grid-template-columns: repeat(2, 50%); } -div.building div.gridWrapper.grid3 { +.building .gridWrapper.grid3 { grid-template-columns: repeat(3, 33.3%); } -div.building div.gridWrapper div { +.building .gridWrapper div { display: inline flow-root; line-height: 1.1; padding-bottom: 0.3em; } -div.building div.collapsed { +.building .collapsed { display: inline flow-root; margin: 0 0.2em; } /* border color for each cell */ -div.building div.row div.apartments { +.building .row .apartments { border-color: limegreen; } -div.building div.row div.arcade { +.building .row .arcade { border-color: deeppink; } -div.building div.row div.brothel { +.building .row .brothel { border-color: violet; } -div.building div.row div.barracks { +.building .row .barracks { border-color: olivedrab; } -div.building div.row div.club { +.building .row .club { border-color: orchid; } -div.building div.row div.corporateMarket { +.building .row .corporateMarket { border-color: purple; } -div.building div.row div.dairy { +.building .row .dairy { border-color: white; } -div.building div.row div.denseApartments { +.building .row .denseApartments { border-color: seagreen; } -div.building div.row div.empty { +.building .row .empty { border-color: lightgray; } -div.building div.row div.farmyard { +.building .row .farmyard { border-color: brown; } -div.building div.row div.fsShops { +.building .row .fsShops { border-color: mediumpurple; } -div.building div.row div.manufacturing { +.building .row .manufacturing { border-color: slategray; } -div.building div.row div.markets { +.building .row .markets { border-color: mediumorchid; } -div.building div.row div.nursery { +.building .row .nursery { border-color: deepskyblue; } -div.building div.row div.luxuryApartments { +.building .row .luxuryApartments { border-color: palegreen; } -div.building div.row div.pens { +.building .row .pens { border-color: goldenrod; } -div.building div.row div.penthouse { +.building .row .penthouse { border-color: teal; } -div.building div.row div.pit { +.building .row .pit { border-color: orangered; } -div.building div.row div.private { +.building .row .private { border-color: red; } -div.building div.row div.shops { +.building .row .shops { border-color: thistle; } -div.building div.row div.sweatshops { +.building .row .sweatshops { border-color: gray; } -div.building div.row div.transportHub { +.building .row .transportHub { border-color: magenta; } -div.building div.row div.weaponsManufacturing { +.building .row .weaponsManufacturing { border-color: springgreen; } diff --git a/src/arcologyBuilding/base.js b/src/arcologyBuilding/base.js index 4100bda35e4855c8f9136b4c983256d6a679fea3..72f5005883418f8523a65fe9ada5e0636f4e679d 100644 --- a/src/arcologyBuilding/base.js +++ b/src/arcologyBuilding/base.js @@ -66,7 +66,6 @@ App.Arcology.facilityCellContent = function(facility, passageName, statsStr) { const report = facility.occupancyReport(false); if (report !== "") { const stats = document.createElement("span"); - stats.style.whiteSpace = "nowrap"; stats.textContent = ` (${report})`; res.append(stats); } diff --git a/src/events/RECI/butthole.js b/src/events/RECI/butthole.js index 515c3a21161a12bfa712d58eb5803691caca6d57..0b9bc576b51e6f9ac058e2439c27cba1893a35b0 100644 --- a/src/events/RECI/butthole.js +++ b/src/events/RECI/butthole.js @@ -518,7 +518,7 @@ App.Events.RECIButthole = class RECIButthole extends App.Events.BaseEvent { eventSlave.devotion += 2; partnerSlave.devotion += 2; - return [container]; + return container; } function talk() { @@ -688,7 +688,7 @@ App.Events.RECIButthole = class RECIButthole extends App.Events.BaseEvent { eventSlave.trust += 4; App.Events.addParagraph(container, t); - return [container]; + return container; } function assFuck() { diff --git a/src/events/RESS/moistPussy.js b/src/events/RESS/moistPussy.js index bdc38648f481e53e57e3c83fdac6950bfc8b8b89..296f40ee3b3755d3182e50a41460f7dbb56348f3 100644 --- a/src/events/RESS/moistPussy.js +++ b/src/events/RESS/moistPussy.js @@ -159,7 +159,7 @@ App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent { eventSlave.devotion += 5; App.Events.addParagraph(container, t); - return [container]; + return container; } function pound() { diff --git a/src/events/RESS/muscles.js b/src/events/RESS/muscles.js index a109c897f3ff91e951b4ff5cb0133a23669270d5..5e0a0ea033f65a6283a00f323208f7969632e78d 100644 --- a/src/events/RESS/muscles.js +++ b/src/events/RESS/muscles.js @@ -184,7 +184,7 @@ App.Events.RESSMuscles = class RESSMuscles extends App.Events.BaseEvent { } function compliment() { - return [`${He} finishes posing with an impressive display of ${his} obliques. ${He} walks powerfully to the shower, ${his} ripped buttocks delineating each step. The shower is glass-walled. As ${he} washes, several of your other slaves are waking up and starting their days. They can't help but stare as ${eventSlave.slaveName} soaps ${himself}. ${eventSlave.slaveName} enjoys the attention.`]; + return `${He} finishes posing with an impressive display of ${his} obliques. ${He} walks powerfully to the shower, ${his} ripped buttocks delineating each step. The shower is glass-walled. As ${he} washes, several of your other slaves are waking up and starting their days. They can't help but stare as ${eventSlave.slaveName} soaps ${himself}. ${eventSlave.slaveName} enjoys the attention.`; } } }; diff --git a/src/events/RESS/retchingCum.js b/src/events/RESS/retchingCum.js index b91252c2016b36ca0767640e017cfdcf58ee2c84..05c48157f205fa4be9eb31488645922bc6458b1d 100644 --- a/src/events/RESS/retchingCum.js +++ b/src/events/RESS/retchingCum.js @@ -78,20 +78,20 @@ App.Events.RESSRetchingCum = class RESSRetchingCum extends App.Events.BaseEvent eventSlave.devotion -= 5; eventSlave.trust += 5; eventSlave.dietCum = 0; - return [`You see how ${eventSlave.slaveName} is suffering and you decide to reconsider ${his} dietary prescription. You instruct ${V.assistant.name} to change ${eventSlave.slaveName}'s diet to exclude cum for now. Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves. ${He} is now <span class="mediumorchid">more confident that ${he} can resist you and get ${his} way,</span> ${he} also <span class="mediumaquamarine">trusts you a little more</span> to look after ${his} well being.`]; + return `You see how ${eventSlave.slaveName} is suffering and you decide to reconsider ${his} dietary prescription. You instruct ${V.assistant.name} to change ${eventSlave.slaveName}'s diet to exclude cum for now. Slaves who can't eat are unhealthy, and unhealthy slaves are unprofitable slaves. ${He} is now <span class="mediumorchid">more confident that ${he} can resist you and get ${his} way,</span> ${he} also <span class="mediumaquamarine">trusts you a little more</span> to look after ${his} well being.`; } function heavy() { eventSlave.devotion -= 3; eventSlave.trust -= 3; eventSlave.dietCum = 2; - return [`You instruct ${V.assistant.name} to double down on ${eventSlave.slaveName}'s cum diet. Ungrateful little sluts who retch up their expensive food sometimes need tough love. Making ${his} cum-food thicker and more concentrated might help ${him} to learn that no matter how bad things seem, you can always make them worse. Initially ${his} new heavy cum diet makes no difference in ${his} ability to keep it down, but you tell ${him} to give it some time. Eventually ${he} will learn to appreciate cum as the primary ingredient in everything ${he} ingests. All of your future cumsluts do, sooner or later. ${His} pathetic tears reveal how <span class="gold">helpless ${he} feels,</span> but they don't hide the <span class="mediumorchid">streak of rebelliousness</span> that remains burning inside ${him}.`]; + return `You instruct ${V.assistant.name} to double down on ${eventSlave.slaveName}'s cum diet. Ungrateful little sluts who retch up their expensive food sometimes need tough love. Making ${his} cum-food thicker and more concentrated might help ${him} to learn that no matter how bad things seem, you can always make them worse. Initially ${his} new heavy cum diet makes no difference in ${his} ability to keep it down, but you tell ${him} to give it some time. Eventually ${he} will learn to appreciate cum as the primary ingredient in everything ${he} ingests. All of your future cumsluts do, sooner or later. ${His} pathetic tears reveal how <span class="gold">helpless ${he} feels,</span> but they don't hide the <span class="mediumorchid">streak of rebelliousness</span> that remains burning inside ${him}.`; } function reduce() { eventSlave.devotion += 2; eventSlave.trust += 2; eventSlave.dietCum = 1; - return [`${eventSlave.slaveName} is on a very heavy cum diet, and it's possible you're forcing ${him} to take too much, too soon. You decide to give ${him} a break and instruct ${V.assistant.name} to reduce, but not eliminate the amount of cum in ${his} diet. Although it doesn't immediately make ${him} hate cum any less, <span class="hotpink">${he} appreciates your willingness</span> to make things a little less unpleasant for ${him}. <span class="mediumaquamarine">${He} is a little less afraid of you too,</span> although not as much as if you'd taken ${him} off ${his} cum diet altogether.`]; + return `${eventSlave.slaveName} is on a very heavy cum diet, and it's possible you're forcing ${him} to take too much, too soon. You decide to give ${him} a break and instruct ${V.assistant.name} to reduce, but not eliminate the amount of cum in ${his} diet. Although it doesn't immediately make ${him} hate cum any less, <span class="hotpink">${he} appreciates your willingness</span> to make things a little less unpleasant for ${him}. <span class="mediumaquamarine">${He} is a little less afraid of you too,</span> although not as much as if you'd taken ${him} off ${his} cum diet altogether.`; } function double() { diff --git a/src/events/RESS/waistlineWoes.js b/src/events/RESS/waistlineWoes.js index b6fc1244d05d07e893106e62301fd8d70accd2eb..2dfa25fe0a388743e871623384b9a86af8803025 100644 --- a/src/events/RESS/waistlineWoes.js +++ b/src/events/RESS/waistlineWoes.js @@ -402,7 +402,7 @@ App.Events.RESSWaistlineWoes = class RESSWaistlineWoes extends App.Events.BaseEv eventSlave.weight -= 5; App.Events.addParagraph(frag, t); - return [frag]; + return frag; } function shoo() { diff --git a/src/events/debugEvent.js b/src/events/debugEvent.js new file mode 100644 index 0000000000000000000000000000000000000000..8af32bffca568150ba04abb0c00402a6e0740b21 --- /dev/null +++ b/src/events/debugEvent.js @@ -0,0 +1,79 @@ +/** @param {string} eventName + * @returns {DocumentFragment} + */ +App.Events.debugEvent = function(eventName) { + const frag = document.createDocumentFragment(); + /** @type {App.Events.BaseEvent} */ + const event = eval(`new ${eventName}`); + + function makeCastList() { + const cast = document.createDocumentFragment(); + const actorReqs = event.actorPrerequisites(); + let missingCast = false; + for (let i = 0; i < actorReqs.length; ++i) { + if (!event.actors[i]) { + missingCast = true; + } + App.UI.DOM.appendNewElement("div", cast, `Actor ${i}: ${event.actors[i] ? SlaveFullName(getSlave(event.actors[i])) : 'not yet cast'}`); + } + if (!missingCast) { + App.UI.DOM.appendNewElement("div", cast, App.UI.DOM.link('Run event now', (evt) => { V.event = evt; }, [event], "JS Random Event")); + } else { + App.UI.DOM.appendNewElement("div", cast, "All actors must be cast to run event.", "note"); + } + return cast; + } + + function castSlave(slave, index) { + event.actors[index] = slave.ID; + $('#castList').empty().append(makeCastList()); + } + + function testPredicate(outDiv, p, ...args) { + let passed = false; + try { + passed = p(...args); + } catch (ex) { + App.UI.DOM.appendNewElement("div", outDiv, p.name || p.toString() + ": Exception: " + ex.toString(), "major-warning"); + } + return passed; + } + + const prereqs = App.UI.DOM.appendNewElement("div", frag); + App.UI.DOM.appendNewElement("span", prereqs, `${eventName} - Global Prerequisites:`, "note"); + if (event instanceof App.Events.BaseEvent) { + let anyFailed = false; + for (const p of event.eventPrerequisites()) { + let passed = testPredicate(prereqs, p); + anyFailed = anyFailed || !passed; + App.UI.DOM.appendNewElement("div", prereqs, p.name || p.toString(), passed ? "green" : "red"); + } + if (!anyFailed) { // actor casting + App.UI.DOM.appendNewElement("div", frag, "All global prerequisites passed, proceeding to casting...", "green"); + App.UI.DOM.appendNewElement("hr", frag); + const castList = App.UI.DOM.appendNewElement("div", frag, makeCastList()); + castList.id = "castList"; + App.UI.DOM.appendNewElement("hr", frag); + const actorReqs = event.actorPrerequisites(); + for (let i = 0; i < actorReqs.length; ++i) { + let tab = App.UI.DOM.appendNewElement("div", frag); // TODO: put these in tabs? + for (const slave of V.slaves) { + let slaveDiv = App.UI.DOM.appendNewElement("div", tab, App.UI.DOM.makeElement("span", SlaveFullName(slave), "slave-name")); + let slaveFails = false; + for (const p of actorReqs[i]) { + let passed = testPredicate(slaveDiv, p, slave); + slaveFails = slaveFails || !passed; + App.UI.DOM.appendNewElement("div", slaveDiv, p.name || p.toString(), [passed ? "green" : "red", "indent"]); + } + if (!slaveFails) { + App.UI.DOM.appendNewElement("div", slaveDiv, App.UI.DOM.link("Choose this slave", castSlave, [slave, i]), "indent"); + } + App.UI.DOM.appendNewElement("hr", tab); + } + } + } + } else { + App.UI.DOM.appendNewElement("div", prereqs, "Specified name does not resolve to an event.", "major-warning"); + } + return frag; +}; diff --git a/src/events/eventUtils.js b/src/events/eventUtils.js index cbc83be5fb51a3c6dc802004e62b55b6f71a3185..141c1e108f7f068f0ed205496264df48ab480b09 100644 --- a/src/events/eventUtils.js +++ b/src/events/eventUtils.js @@ -143,9 +143,9 @@ App.Events.addParagraph = function(node, sentences) { node.appendChild(para); }; -/** result handler callback - process the result and return an array of mixed strings and DOM nodes +/** result handler callback - process the result and return an array of mixed strings and DOM nodes, or a single string or DOM node * @callback resultHandler - * @returns {Array<string|HTMLElement|DocumentFragment>} + * @returns {Array<string|HTMLElement|DocumentFragment>|string|HTMLElement|DocumentFragment} */ /** a response to an event, and its result */ App.Events.Result = class { @@ -165,7 +165,12 @@ App.Events.Result = class { */ handle(resultSpanID) { let frag = document.createDocumentFragment(); - $(frag).append(...App.Events.spaceSentences(this.handler())); + let contents = this.handler(); + if (Array.isArray(contents)) { + $(frag).append(...App.Events.spaceSentences(contents)); + } else { + $(frag).append(contents); + } App.UI.DOM.replace(`#${resultSpanID}`, frag); } diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js index 9638ea3f89f4a136063c4f83794b3b10fc75fbd6..929702590a8a3403a14a66a75118f2b335963854 100644 --- a/src/events/randomEvent.js +++ b/src/events/randomEvent.js @@ -3,11 +3,10 @@ * Nonindividual events are not provided any event slave and should cast one themselves. */ -/** get a list of possible individual event based on a given available main actor - * @param {App.Entity.SlaveState} slave +/** get a list of possible individual events * @returns {Array<App.Events.BaseEvent>} */ -App.Events.getIndividualEvents = function(slave) { +App.Events.getIndividualEvents = function() { return [ // instantiate all possible random individual events here // example: new App.Events.TestEvent(), @@ -21,9 +20,7 @@ App.Events.getIndividualEvents = function(slave) { new App.Events.RECIButthole(), new App.Events.RECIFuta(), new App.Events.RECIOrientation(), - ] - .filter(e => (e.eventPrerequisites().every(p => p()) && e.castActors(slave))) - .reduce((res, cur) => res.concat(Array(cur.weight).fill(cur)), []); + ]; }; /** get a list of possible nonindividual events @@ -35,11 +32,21 @@ App.Events.getNonindividualEvents = function() { // example: new App.Events.TestEvent(), new App.Events.REDevotees(), new App.Events.RERelativeRecruiter(), - ] - .filter(e => (e.eventPrerequisites().every(p => p()) && e.castActors(null))) - .reduce((res, cur) => res.concat(Array(cur.weight).fill(cur)), []); + ]; }; +/** choose a valid, castable event from the given event list + * @param {Array<App.Events.BaseEvent>} eventList - list of events to filter + * @param {App.Entity.SlaveState} [slave] - event slave (mandatory to cast in first actor slot). omit for nonindividual events. + * @returns {Array<App.Events.BaseEvent>} + */ +App.Events.getValidEvents = function(eventList, slave) { + return eventList + .filter(e => (e.eventPrerequisites().every(p => p()) && e.castActors(slave))) + .reduce((res, cur) => res.concat(Array(cur.weight).fill(cur)), []); +}; + + /* --- below here is a bunch of workaround crap because we have to somehow persist event selection through multiple twine passages. --- * eventually all this should go away, and we should use just one simple passage for both selection and execution, so everything can be kept in object form instead of being continually serialized and deserialized. * we need to be able to serialize/deserialize the active event anyway so that saves work right, so this mechanism just piggybacks on that capability so the event passages don't need to be reworked all at once @@ -47,13 +54,13 @@ App.Events.getNonindividualEvents = function() { /** get a stringified list of possible individual events as fake passage names - TODO: kill me */ App.Events.getIndividualEventsPassageList = function(slave) { - const events = App.Events.getIndividualEvents(slave); + const events = App.Events.getValidEvents(App.Events.getIndividualEvents(), slave); return events.map(e => `JSRE ${e.eventName}:${JSON.stringify(e.toJSON())}`); }; /** get a stringified list of possible individual events as fake passage names - TODO: kill me */ App.Events.getNonindividualEventsPassageList = function() { - const events = App.Events.getNonindividualEvents(); + const events = App.Events.getValidEvents(App.Events.getNonindividualEvents()); return events.map(e => `JSRE ${e.eventName}:${JSON.stringify(e.toJSON())}`); }; diff --git a/src/facilities/nursery/widgets/children/childSummary.js b/src/facilities/nursery/widgets/children/childSummary.js index 8a0322fc34b2e2eb20ad11c4b6e8ee667c2c7f5e..0ba86b5aa61596fb29fb5444472f39a49df9921b 100644 --- a/src/facilities/nursery/widgets/children/childSummary.js +++ b/src/facilities/nursery/widgets/children/childSummary.js @@ -133,13 +133,11 @@ App.Facilities.Nursery.ChildSummary = function(child) { } r += `</span> `; } else if (abbreviate.hormoneBalance === 2) { - r += `<span class=`; if (child.hormoneBalance <= -21) { - r += `"deepskyblue"`; + r += `<span class="deepskyblue"> `; } else { - r += `"pink"`; + r += `<span class="pink"> `; } - r += `> `; if (child.hormoneBalance < -400) { r += `Overwhelmingly masculine`; } else if (child.hormoneBalance <= -300) { diff --git a/src/interaction/policies/policies.js b/src/interaction/policies/policies.js index 74740974466bc66771ceefe17fb464803e29b41a..8aae8af3ed7a4860957509509a5aeb64552f56f0 100644 --- a/src/interaction/policies/policies.js +++ b/src/interaction/policies/policies.js @@ -106,3 +106,196 @@ globalThis.policies = (function() { function cost() { return 5000; } })(); +/** + * @param {string} category + * @returns {JQuery} + */ +globalThis.policy = function(category) { + const frag = new DocumentFragment; + for (let policyVariable in App.Data.Policies.Selection[category]) { + frag.append(policyElement(policyVariable)); + } + return jQuery(`#${category}`).empty().append(frag); + /** + * @param {string} policyVariable + * @returns {Node} el + */ + function policyElement(policyVariable) { + let el = document.createElement("p"); + let div; + let span; + let link; + const policyValue = _.get(V, policyVariable); + /** @type {PolicySelector[]} */ + const policyObject = App.Data.Policies.Selection[category][policyVariable]; + if (policyValue === 0) { + // apply + for (let i = 0; i < policyObject.length; i++) { + const p = policyObject[i]; + const enable = p.enable || 1; + if (p.hasOwnProperty("requirements") && p.requirements() === false) { + continue; + } + div = document.createElement("div"); + span = document.createElement("span"); + + // title + span.style.fontWeight = "bold"; + if (p.hasOwnProperty("titleClass")) { + span.classList.add(p.titleClass); + } + span.append(p.title); + div.append(span); + div.append(`: `); + + // Description text + div.append(p.text); + div.append(` `); + + // link + if (!(p.hasOwnProperty("hide") && p.hide.button === 1)) { + if (p.hasOwnProperty("requirements")) { + const req = p.requirements(); + if (req === true) { + div.append(implement(p, enable)); + } else { + link = App.UI.DOM.disabledLink("Implement", [`You do not meet the requirments, or passed a conflicting policy already`]); + link.style.color = "white"; + div.append(link); + } + } else { + div.append(implement(p, enable)); + } + } + el.append(div); + } + } else { + // repeal + let i = 0; + for (const pol in policyObject) { + if (policyObject[pol].hasOwnProperty("enable") && policyObject[pol].enable === policyValue) { + i = pol; + break; + } + } + const p = policyObject[i]; + if (p.hasOwnProperty("hide")) { + if (p.hide.ifActivated === 1) { + return el; + } + } + + let title; + if (p.hasOwnProperty("activatedTitle")) { + title = p.activatedTitle; + } else { + title = p.title; + } + let text; + if (p.hasOwnProperty("activatedText")) { + text = p.activatedText; + } else { + text = p.text; + } + div = document.createElement("div"); + span = document.createElement("span"); + + // title + span.style.fontWeight = "bold"; + span.append(title); + div.append(span); + div.append(`: `); + + // Description text + div.append(text); + div.append(` `); + + // link + div.append(repeal(p)); + el.append(div); + } + + return el; + + /** + * @param {PolicySelector} p The data object that describes the policy being considered. + * @returns {Node} Link to repeal. + */ + function repeal(p) { + const frag = new DocumentFragment; + let check = canAfford(); + if (!(p.hasOwnProperty("hide") && p.hide.button === 1)) { + if (check === true) { + link = App.UI.DOM.link( + "Repeal", + () => { + _.set(V, policyVariable, 0); + applyCost(); + if (p.hasOwnProperty("onRepeal")) { + p.onRepeal(); + } + policy(category); + } + ); + link.style.color = "yellow"; + } else { + link = App.UI.DOM.disabledLink("Repeal", [`You do not have enough ${check}`]); + link.style.color = "red"; + } + frag.append(link); + } + + if (p.hasOwnProperty("activatedNote")) { + frag.append(App.UI.DOM.makeElement("div", p.activatedNote, ["note", "indent"])); + } + return frag; + } + /** + * @param {PolicySelector} p The data object that describes the policy being considered. + * @param {number|string} enable value to set the policy to in order to switch it on. + * @returns {Node} Link to implement. + */ + function implement(p, enable) { + let check = canAfford(); + const frag = new DocumentFragment; + if (check === true) { + link = App.UI.DOM.link( + "Implement", + () => { + _.set(V, policyVariable, enable); + applyCost(); + if (p.hasOwnProperty("onImplementation")) { + p.onImplementation(); + } + policy(category); + } + ); + link.style.color = "green"; + } else { + link = App.UI.DOM.disabledLink("Implement", [`You do not have enough ${check}`]); + link.style.color = "red"; + } + frag.append(link); + if (p.hasOwnProperty("note")) { + frag.append(App.UI.DOM.makeElement("div", p.note, ["note", "indent"])); + } + return frag; + } + + function canAfford() { + if (V.cash < 5000) { + return "cash"; + } else if (V.rep < 1000 && !["EducationPolicies"].includes(category)) { + return "reputation"; + } + return true; + } + + function applyCost() { + cashX(-5000, "policies"); + if (!["EducationPolicies"].includes(category)) { + repX(-1000, "policies"); + } + } + } +}; diff --git a/src/interaction/policies/policies.tw b/src/interaction/policies/policies.tw index 8f9b61b340de9fdcbdacc209481f0192be32749e..77b51ac3a3cadeee0acbfe9e99cfbfdf00731a37 100644 --- a/src/interaction/policies/policies.tw +++ b/src/interaction/policies/policies.tw @@ -47,15 +47,17 @@ <</if>> <<if $HeadGirl>> <<setLocalPronouns $HeadGirl>> <</if>> + <<run App.UI.tabbar.handlePreSelectedTab($tabChoice.policies)>> -//Slave Market Regulations (SMRs) will affect slaves that come through the official slave markets in your arcology. The markets themselves will bear the cost of these regulations, but the minimum practicable slave prices may rise as a result.// -<br>//Passing any law will cost <<print cashFormat(5000)>> and -<<if $rep >= 1000>> - <span class="green">a small amount of reputation.</span> -<<else>> - <span class="red">a better reputation.</span> -<</if>> -More policies will become available as the arcology develops.// +<p class="scene-intro"> + Passing any law will cost <<print cashFormat(5000)>> and + <<if $rep >= 1000>> + <span class="green">a small amount of reputation.</span> + <<else>> + <span class="red">a better reputation.</span> + <</if>> + More policies will become available as the arcology develops. +</p> <div class="tabbar"> <button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'SMRs')" id="tab SMRs">Slave Market Regulations</button> <button class="tablinks" onclick="App.UI.tabbar.openTab(event, 'ST')" id="tab ST">Sexual Trendsetting</button> @@ -67,1923 +69,302 @@ More policies will become available as the arcology develops.// <div id="SMRs" class="tabcontent"> <div class="content"> - ''Basic SMR:'' the slave market is subject to very basic regulations designed to offer buyers some confidence. - <<if $policies.SMR.basicSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.basicSMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.basicSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help your reputation and affect slaves in the markets// - <</if>> - - <br>''Health Inspection SMR:'' in order to be sold in the slave market, chattel must pass a straightforward health inspection. - <<if $policies.SMR.healthInspectionSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.healthInspectionSMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.healthInspectionSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will improve the health of slaves in the markets// - <</if>> - - <br>''Basic Education SMR:'' in order to be sold in the slave market, chattel must be put through a straightforward course of slave education. - <<if $policies.SMR.educationSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.educationSMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.educationSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cause all slaves who pass through the markets to become educated// - <</if>> - - <br>''Frigidity SMR:'' in order to be sold in the slave market, slaves must have their sex drives reduced until they're virtually gone. - <<if $policies.SMR.frigiditySMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.frigiditySMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.frigiditySMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce the sex drive of slaves in the markets and annoy those looking for sex slaves// - <</if>> - - <br>''Intelligence Eugenics SMR:'' in order to be sold in the slave market, chattel must either pass a challenging intelligence test or be sterilized. - <<if $policies.SMR.eugenics.intelligenceSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.eugenics.intelligenceSMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.eugenics.intelligenceSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will - <<if $seeDicks == 0>> - sterilize - <<elseif $seeDicks == 100>> - <<if $seeExtreme == 0>>chemically castrate<<else>>geld<</if>> - <<else>> - sterilize or <<if $seeExtreme == 0>>chemically castrate<<else>>geld<</if>> - <</if>> all market slaves below the maximum intelligence level// - <</if>> - - <br>''Height Eugenics SMR:'' in order to be sold in the slave market, chattel must either be taller than a very tall minimum height or be sterilized. - <<if $policies.SMR.eugenics.heightSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.eugenics.heightSMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.eugenics.heightSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will - <<if $seeDicks == 0>> - sterilize - <<elseif $seeDicks == 100>> - <<if $seeExtreme == 0>>chemically castrate<<else>>geld<</if>> - <<else>> - sterilize or <<if $seeExtreme == 0>>chemically castrate<<else>>geld<</if>> - <</if>> all market slaves below the maximum height// - <</if>> - - <br>''Facial Eugenics SMR:'' in order to be sold in the slave market, chattel must either pass a rigorous facial exam or be sterilized. - <<if $policies.SMR.eugenics.faceSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.eugenics.faceSMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.eugenics.faceSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will - <<if $seeDicks == 0>> - sterilize - <<elseif $seeDicks == 100>> - <<if $seeExtreme == 0>>chemically castrate<<else>>geld<</if>> - <<else>> - sterilize or <<if $seeExtreme == 0>>chemically castrate<<else>>geld<</if>> - <</if>> all market slaves below the maximum facial beauty// - <</if>> - - <br>''Gingering Prohibition SMR:'' slave sellers must contract to provide slaves honestly and without drugging to improve their behavior. - <<if $policies.SMR.honestySMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.honestySMR = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.honestySMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will prevent dishonest adulteration of slaves in the markets// - <</if>> - - <<if $policies.SMR.beauty.basicSMR == 1>> - <br>''Basic Beauty Standards:'' no unattractive slaves may be sold in the slave markets. - <span class="yellow">[[Repeal|Policies][$policies.SMR.beauty.basicSMR = 0]]</span> - <<else>> - <<if $policies.SMR.beauty.qualitySMR == 0>> - <br>''Basic Beauty Standards:'' no unattractive slaves may be sold in the slave markets. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.beauty.basicSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves. - <</if>> - <</if>> - <<if $policies.SMR.beauty.qualitySMR == 1>> - <br>''Quality Beauty Standards:'' only attractive slaves may be sold in the slave markets. - <span class="yellow">[[Repeal|Policies][$policies.SMR.beauty.qualitySMR = 0]]</span> - <<else>> - <<if $policies.SMR.beauty.basicSMR == 0>> - <br>''Quality Beauty Standards:'' only attractive slaves may be sold in the slave markets. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.beauty.qualitySMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves. - <</if>> - <</if>> - - <br>''Basic Weight Standards:'' no obese slaves may be sold in the slave markets. - <<if $policies.SMR.weightSMR == 1>> - <span class="yellow">[[Repeal|Policies][$policies.SMR.weightSMR = 0]]</span> - <<else>> - <<if $arcologies[0].FSHedonisticDecadenceSMR == 0>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.weightSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves. - <</if>> - <</if>> - - <<if $policies.SMR.height.basicSMR == 1>> - <br>''Basic Height Standards (Tall):'' tall slaves are favored in the slave market, short slaves capable of meeting height standards via surgery must undergo it. - <span class="yellow">[[Repeal|Policies][$policies.SMR.height.basicSMR = 0]]</span> - <<elseif $policies.SMR.height.basicSMR == -1>> - <br>''Basic Height Standards (Short):'' short slaves are favored in the slave market, tall slaves capable of meeting height standards via surgery must undergo it. - <span class="yellow">[[Repeal|Policies][$policies.SMR.height.basicSMR = 0]]</span> - <<else>> - <<if $policies.SMR.height.advancedSMR == 0 && $arcologies[0].FSPetiteAdmirationSMR == 0 && $arcologies[0].FSStatuesqueGlorificationSMR == 0>> - <br>''Basic Height Standards (Tall):'' tall slaves will be favored in the slave markets and those not quite tall enough will undergo height increasing surgery. This will not preclude the sale of short slaves, just the care of them. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.height.basicSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves.// - <br>''Basic Height Standards (Short):'' short slaves will be favored in the slave markets and those just above the cut off will undergo height reducing surgery. This will not preclude the sale of tall slaves, just the care of them. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.height.basicSMR = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves.// - <</if>> - <</if>> - - <<if $policies.SMR.height.advancedSMR == 1>> - <br>''Quality Height Standards (Tall):'' no slaves of below average height for their age may be sold in the slave markets. - <span class="yellow">[[Repeal|Policies][$policies.SMR.height.advancedSMR = 0]]</span> - <<elseif $policies.SMR.height.advancedSMR == -1>> - <br>''Quality Height Standards (Short):'' no slaves of above average height for their age may be sold in the slave markets. - <span class="yellow">[[Repeal|Policies][$policies.SMR.height.advancedSMR = 0]]</span> - <<else>> - <<if $policies.SMR.height.basicSMR == 0 && $arcologies[0].FSPetiteAdmirationSMR == 0 && $arcologies[0].FSStatuesqueGlorificationSMR == 0>> - <br>''Quality Height Standards (Tall):'' only slaves of above average height for their age may be sold in the slave markets. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.height.advancedSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves.// - <br>''Quality Height Standards (Short):'' only slaves of below average height for their age may be sold in the slave markets. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.height.advancedSMR = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves. - <</if>> - <</if>> - - <<if $policies.SMR.intelligence.basicSMR == 1>> - <br>''Basic Intelligence Standards:'' no stupid slaves may be sold in the slave markets. - <span class="yellow">[[Repeal|Policies][$policies.SMR.intelligence.basicSMR = 0]]</span> - <<elseif $policies.SMR.intelligence.qualitySMR == 1>> - <br>''Quality Intelligence Standards:'' only intelligent slaves may be sold in the slave markets. - <span class="yellow">[[Repeal|Policies][$policies.SMR.intelligence.qualitySMR = 0]]</span> - <<else>> - <<if $arcologies[0].FSIntellectualDependencySMR == 0>> - <br>''Basic Intelligence Standards:'' no stupid slaves may be sold in the slave markets. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.intelligence.basicSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves. - <br>''Quality Intelligence Standards:'' only intelligent slaves may be sold in the slave markets. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.SMR.intelligence.qualitySMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //This will raise the price of slaves significantly. - <</if>> - <</if>> - + <p class="scene-intro"> + Slave Market Regulations (SMRs) will affect slaves that come through the official slave markets in your arcology. The markets themselves will bear the cost of these regulations, but the minimum practicable slave prices may rise as a result. + </p> + <span id="SMR"></span> + <script> + policy("SMR"); + </script> </div> </div> <div id="ST" class="tabcontent"> <div class="content"> - - <<if $policies.oralAppeal == 1>> - <br>''Oral Sex Encouragement:'' you are using your personal influence to make blowjobs the most fashionable sex act in the arcology. - <span class="yellow">[[Repeal|Policies][$policies.oralAppeal = 0]]</span> - <<elseif $policies.oralAppeal == -1>> - <br>''Anti-Oral Campaign:'' you are using your personal influence to denigrate oral sex. - <span class="yellow">[[Repeal|Policies][$policies.oralAppeal = 0]]</span> - <<else>> - ''Oral Sex Encouragement:'' you will use your personal influence to make blowjobs the most fashionable sex act in the arcology. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.oralAppeal = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase the weight on slaves' oral skills// - <br>''Anti-Oral Campaign:'' you will use your personal influence to denigrate oral sex. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.oralAppeal = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will decrease the weight on slaves' oral skills// - <</if>> - - <<if $policies.vaginalAppeal == 1>> - <br>''Vaginal Sex Encouragement:'' you are using your personal influence to keep pussies the most fashionable holes in the arcology. - <span class="yellow">[[Repeal|Policies][$policies.vaginalAppeal = 0]]</span> - <<elseif $policies.vaginalAppeal == -1>> - <br>''Anti-Vaginal Campaign:'' you are using your personal influence to communicate disapproval of vaginal sex. - <span class="yellow">[[Repeal|Policies][$policies.vaginalAppeal = 0]]</span> - <<else>> - <br>''Vaginal Sex Encouragement:'' you will use your personal influence to keep pussies the most fashionable holes in the arcology. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.vaginalAppeal = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase the weight on slaves' vaginal skills// - <br>''Anti-Vaginal Campaign:'' you will use your personal influence to communicate disapproval of vaginal sex. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.vaginalAppeal = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will decrease the weight on slaves' vaginal skills// - <</if>> - - <<if $policies.analAppeal == 1>> - <br>''Anal Sex Encouragement:'' you are using your personal influence to make anuses the most fashionable holes in the arcology. - <span class="yellow">[[Repeal|Policies][$policies.analAppeal = 0]]</span> - <<elseif $policies.analAppeal == -1>> - <br>''Anti-Anal Campaign:'' you are using your personal influence to communicate disgust with putting things up the butt. - <span class="yellow">[[Repeal|Policies][$policies.analAppeal = 0]]</span> - <<else>> - <br>''Anal Sex Encouragement:'' you will use your personal influence to make anuses the most fashionable holes in the arcology. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.analAppeal = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase the weight on slaves' anal skills// - <br>''Anti-Anal Campaign:'' you will use your personal influence to communicate disgust with putting things up the butt. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.analAppeal = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will decrease the weight on slaves' anal skills// - <</if>> - - <<if $policies.sexualOpeness == 1>> - <br>''Penetrative Sex Campaign:'' you are using your personal influence to attempt to make getting fucked by slaves fashionable, but mostly to garner acceptance for your sexual preference. - <span class="yellow">[[Repeal|Policies][$policies.sexualOpeness = 0, $PC.degeneracy += 30]]</span> - <<else>> - <br>''Penetrative Sex Campaign:'' you will use your personal influence and interest in being penetrated to make slave based penetration fashionable and acceptable. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.sexualOpeness = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will not be well received, but will head off potentially damaging rumors. This policy assumes you wish to be penetrated.// - <</if>> - - <<if $extremeUnderage == 1>> - <<if $policies.childProtectionAct == 1>> - <br>''Child Protection Act:'' underage slaves enjoy protections against molestation and rape. - <span class="yellow">[[Weaken|Policies][$policies.childProtectionAct = 0]]</span> - <<else>> - <br>''Child Protection Act:'' underage slaves enjoy protections only against penetrative sex. - <<if $rep >= 1000>> - <span class="green">[[Strengthen|Policies][$policies.childProtectionAct = 1]]</span> - <</if>> - <</if>> - <</if>> - - <h1>Future Societies</h1> - <<if $arcologies[0].FSRepopulationFocusPregPolicy == 1>> - <div> - ''Pregnancy Encouragement:'' you are using your personal influence to spur interest in pregnancy. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRepopulationFocusPregPolicy = 0]]</span> - </div> - <<else>> - <<if $arcologies[0].FSRepopulationFocus == "unset" && $arcologies[0].FSRestart == "unset" && $seePreg>> - <div> - ''Pregnancy Encouragement:'' you will use your personal influence to spur interest in pregnancy. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRepopulationFocusPregPolicy = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - </div> - <</if>> - <</if>> - - <<if $arcologies[0].FSRepopulationFocusMilfPolicy == 1>> - <div> - ''Motherly Preference:'' you are using your personal influence to spur interest in MILFs. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRepopulationFocusMilfPolicy = 0]]</span> - </div> - <<else>> - <<if $arcologies[0].FSRepopulationFocus == "unset" && $arcologies[0].FSRestart == "unset">> - <div> - ''Motherly Preference:'' you will use your personal influence to spur interest in MILFs. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRepopulationFocusMilfPolicy = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - </div> - <</if>> - <</if>> - - <<if $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1>> - <div> - ''Incest Encouragement:'' you are using your personal influence to spur interest in incest. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSEgyptianRevivalistIncestPolicy = 0]]</span> - </div> - <<else>> - <<if $arcologies[0].FSEgyptianRevivalist == "unset">> - <div> - ''Incest Encouragement:'' you will use your personal influence to spur interest in incest. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSEgyptianRevivalistIncestPolicy = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - </div> - <</if>> - <</if>> - + <span id="SexualTrendsetting"></span> + <script> + policy("SexualTrendsetting"); + </script> </div> </div> <div id="Population" class="tabcontent"> <div class="content"> - <h1>Population</h1> - <<if $policies.proRefugees == 1>> - ''Encourage Refugee Servitude:'' the image of slavery in your arcology is being softened, encouraging old world refugees to consider becoming menial slaves. - <span class="yellow">[[Repeal|Policies][$policies.proRefugees = 0]]</span> - <<else>> - <<if $arcologies[0].FSDegradationist == "unset">> - ''Encourage Refugee Servitude:'' the image of slavery in your arcology will be softened, encouraging old world refugees to consider slavery. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.proRefugees = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase immigration of refugees to become menial slaves// - <</if>> - <</if>> - - <<if $policies.proRecruitment == 1>> - <br>''Encourage Self-Enslavement:'' Soften your image as a slaveowner, encouraging the desperate to consider coming to you for enslavement. - <span class="yellow">[[Repeal|Policies][$policies.proRecruitment = 0]]</span> - <<else>> - <br>''Encourage Self-Enslavement:'' your image as a slaveowner will be softened, encouraging the desperate to consider coming to you for enslavement. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.proRecruitment = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase the chances of desperate people offering themselves to you for enslavement// - <</if>> - - <<if $policies.immmigrationCash == 1>> - <br>''Immigration Promotion:'' you are offering citizen immigrants a generous promotion. - <span class="yellow">[[Repeal|Policies][$policies.immmigrationCash = 0]]</span> - <<elseif $policies.immmigrationCash == -1>> - <br>''Immigrant Information Brokerage:'' you are covertly selling information on troubled potential immigrants to your arcology. - <span class="yellow">[[Repeal|Policies][$policies.immmigrationCash = 0]]</span> - <<else>> - <br>''Immigration Promotion:'' you will offer citizen immigrants a generous promotion. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.immmigrationCash = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly to maintain, and increase the citizen population// - <br>''Immigrant Information Brokerage:'' you will covertly sell information on troubled potential immigrants to your arcology to their old world enemies. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.immmigrationCash = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will produce <<print cashFormat(policies.cost())>> weekly, and slow growth of the citizen population// - <</if>> - - <<if $policies.immmigrationRep == 1>> - <br>''Welcome Program:'' you are using your personal influence to encourage wealthy people to immigrate. - <span class="yellow">[[Repeal|Policies][$policies.immmigrationRep = 0]]</span> - <<elseif $policies.immmigrationRep == -1>> - <br>''Citizen Input on Immigration:'' you are selectively turning away potential immigrants to the arcology based on the recommendations of citizens. - <span class="yellow">[[Repeal|Policies][$policies.immmigrationRep = 0]]</span> - <<else>> - <br>''Welcome Program:'' you will use your personal influence to encourage wealthy people to immigrate. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.immmigrationRep = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will annoy some longstanding citizens, and increase the citizen population// - <br>''Citizen Input on Immigration:'' you will selectively turn away potential immigrants to the arcology based on the recommendations of citizens. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.immmigrationRep = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will produce a small amount of reputation weekly, and slow growth of the citizen population// - <</if>> - - <<if $policies.enslavementCash == 1>> - <br>''Enslavement Kickbacks:'' you are taking kickbacks in return for turning a blind eye to enslavement of poor citizens. - <span class="yellow">[[Repeal|Policies][$policies.enslavementCash = 0]]</span> - <<elseif $policies.enslavementCash == -1>> - <br>''Poor Citizen Relief:'' you are offering limited emergency assistance to poor citizens in danger of being enslaved. - <span class="yellow">[[Repeal|Policies][$policies.enslavementCash = 0]]</span> - <<else>> - <br>''Enslavement Kickbacks:'' you will take kickbacks in return for turning a blind eye to enslavement of poor citizens. - <br> //Will produce <<print cashFormat(policies.cost())>> weekly, and reduce the population of citizens// - <br>''Poor Citizen Relief:'' you will offer limited emergency assistance to poor citizens in danger of being enslaved. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.enslavementCash = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly to maintain, and slow population movement from citizens to slaves// - <</if>> - - <<if $policies.enslavementRep == 1>> - <br>''Covert Upstart Enslavement:'' you are offering prominent citizens your tacit assistance in enslaving rivals. - <span class="yellow">[[Repeal|Policies][$policies.enslavementRep = 0]]</span> - <<elseif $policies.enslavementRep == -1>> - <br>''Charity Promotion Efforts:'' you are using your personal influence to discourage enslavement of citizens. - <span class="yellow">[[Repeal|Policies][$policies.enslavementRep = 0]]</span> - <<else>> - <br>''Charity Promotion Efforts:'' you will use your personal influence to discourage enslavement of citizens. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.enslavementRep = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will annoy some prominent citizens, and slow population movement from citizens to slaves// - <br>''Covert Upstart Enslavement:'' you will offer prominent citizens your tacit assistance in enslaving rivals. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.enslavementRep = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will produce a small amount of reputation weekly, and reduce the population of citizens// - <</if>> - - <h1>Domestic</h1> - ''Economic Growth Subsidy:'' offer promising new businesses generous subsidies, driving arcology prosperity. - <<if $policies.alwaysSubsidizeGrowth == 1>> - <span class="yellow">[[Repeal|Policies][$policies.alwaysSubsidizeGrowth = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.alwaysSubsidizeGrowth = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly to maintain, and improve arcology prosperity// - <</if>> - - <br>''Self-Promotion Program:'' communicate your good side to the public via subtle paid advertising. This will also ease any potential rumors. - <<if $policies.alwaysSubsidizeRep == 1>> - <span class="yellow">[[Repeal|Policies][$policies.alwaysSubsidizeRep = 0]]</span> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.alwaysSubsidizeRep = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly to maintain, and improve your reputation// - <</if>> - - <<if $policies.cashForRep == 1>> - <br>''Business Generosity:'' you are doing your best to help your citizens, even when it disadvantages you personally. - <span class="yellow">[[Repeal|Policies][$policies.cashForRep = 0]]</span> - <<elseif $policies.cashForRep == -1>> - <br>''Business Selfishness:'' you are leveraging your position as arcology owner for money, even when it disadvantages citizens. - <span class="yellow">[[Repeal|Policies][$policies.cashForRep = 0]]</span> - <<else>> - <br>''Business Generosity:'' you will do your best to help your citizens, even when it disadvantages you personally. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.cashForRep = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost approximately <<print cashFormat(policies.cost())>> weekly, and improve your reputation// - <br>''Business Selfishness:'' you will leverage your position as arcology owner for money, even when it disadvantages citizens. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.cashForRep = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost some reputation, and produce approximately <<print cashFormat(policies.cost())>> weekly// - <</if>> - - <<if $policies.cash4Babies == 1>> - <br>''Free Trade of Slave Babies:'' newborn slave children are now eligible to be sold rather than entrusted to a slave orphanage. - <span class="yellow">[[Repeal|Policies][$policies.cash4Babies = 0]]</span> - <<else>> - <<if $seePreg>> - <br>''Free Trade of Slave Babies:'' you will legalize slave children to be sold after birth rather than put into slave orphanages. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.cash4Babies = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Can supply easy money, but will harm your reputation// - <</if>> - <</if>> + <h1>Population</h1> + <span id="PopulationPolicies"></span> + <script> + policy("PopulationPolicies"); + </script> - <<if $policies.goodImageCampaign == 1>> - <br>''Good Image Campaign:'' positive rumors are being spread about you. - <span class="yellow">[[Repeal|Policies][$policies.goodImageCampaign = 0]]</span> - <<else>> - <br>''Good Image Campaign:'' positive rumors will be spread throughout the arcology regarding you. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.goodImageCampaign = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly to maintain, and lessen any potential rumors about you while giving a small boost to your reputation// - <</if>> - - <<if $policies.regularParties == 1>> - <br>''Regular Entertainments:'' you are hosting regular parties for prominent citizens, an expected social duty of an arcology owner. - <span class="yellow">[[Repeal|Policies][$policies.regularParties = 0]]</span> - <<if $rep > 18000>> - <br> //Will damage your reputation// - <</if>> - <<else>> - <br>''Regular Entertainments:'' you will host regular parties for prominent citizens, an expected social duty of an arcology owner. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.regularParties = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly<<if $rep > 18000>>, and prevent damage to your reputation<</if>>// - <</if>> - - <<if $policies.publicPA == 1>> - <br>''Public Personal Assistant:'' $assistant.name is part of your public image. - <span class="yellow">[[Repeal|Policies][$policies.publicPA = 0]]</span> - <<else>> - <br>''Public Personal Assistant:'' $assistant.name will become part of your public image. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.publicPA = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //May improve cultural development if $assistant.name's appearance is fashionable// - <</if>> - - <<if $policies.coursingAssociation == 1>> - <br>''Coursing Association:'' you are sponsoring a [[Coursing Association]] that will hold monthly races. - <span class="yellow">[[Repeal|Policies][$policies.coursingAssociation = 0]]</span> - <<if $LurcherID != 0>> - <<set $activeSlave = getSlave($LurcherID)>> - <br> Your current lurcher is - <<link "<<= SlaveFullName($activeSlave)>>" "Slave Interact">><</link>>. - <</if>> - <<else>> - <br>''Coursing Association:'' you will sponsor a Coursing Association that will hold monthly races. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.coursingAssociation = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(1000)>> weekly to maintain// - <</if>> - - <<if $policies.raidingMercenaries == 1>> - <br>''Raiding Mercenaries:'' you are allowing your mercenaries to occasionally raid for your direct benefit. - <span class="yellow">[[Repeal|Policies][$policies.raidingMercenaries = 0]]</span> - <<else>> - <<if $mercenariesHelpCorp == 1>> - <br>''Mercenary Raiding:'' you will allow your mercenaries to occasionally conduct a raid directly for your benefit. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.raidingMercenaries = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will cost <<print cashFormat(policies.cost())>> weekly to maintain// - <</if>> - <</if>> - - <<if $policies.publicFuckdolls == 1>> - <br>''Free Fuckdolls:'' you are providing Fuckdolls free of charge, such generosity increases your standing. - <span class="yellow">[[Repeal|Policies][$policies.publicFuckdolls = 0]]</span> - <<else>> - <br>''Free Fuckdolls:'' you will no longer charge money for restrained slave holes in your arcology, ranging from Fuckdolls to the arcade. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.publicFuckdolls = 1]]</span> - <</if>> - <br> //Slaves assigned to these jobs will stop making money, while Fuckdolls will start costing money// - <</if>> - - <<if $arcologies[0].FSDegradationist == "unset">> - <<if $policies.mixedMarriage == 1>> - <br>''Marriage between Owners and Slaves:'' you are providing a legal basis for citizens to marry their slaves without impacting their rights as slaveowners. - <span class="yellow">[[Repeal|Policies][$policies.mixedMarriage = 0]]</span> - <<else>> - <br>''Marriage between Owners and Slaves:'' you will provide a legal basis for citizens to marry their slaves without impacting their rights as slaveowners. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.mixedMarriage = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <<if $arcologies[0].FSPaternalist >= 60>> - <br> //Will not damage your reputation due to your arcology's advanced Paternalism// - <<else>> - <br> //Will damage your reputation// - <</if>> - <</if>> - <</if>> + <h1>Domestic</h1> + <span id="DomesticPolicies"></span> + <script> + policy("DomesticPolicies"); + </script> </div> </div> <div id="Education" class="tabcontent"> <div class="content"> - - <<set _costNote = "<div class='indent note'>Will cost <<print cashFormat(1000)>> weekly to maintain; does not cost reputation to start</div>">> - - <<if $schoolSuggestion == 0>> - <p> - You have yet to contact a school about adding a local branch. - </p> - <</if>> - - <p> - <<if $TSS.subsidize == 1>> - <div> - ''The Slave School subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$TSS.subsidize = 0]]</span> - </div> - <<elseif $TSS.subsidize == -1>> - <div> - ''Undermine The Slave School:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$TSS.subsidize = 0]]</span> - </div> - <<else>> - <<if $TSS.schoolPresent == 1>> - <<if $TSS.schoolProsperity < 10>> - <div> - ''The Slave School subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$TSS.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine The Slave School:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$TSS.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $GRI.subsidize == 1>> - <div> - ''The Growth Research Institute subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$GRI.subsidize = 0]]</span> - </div> - <<elseif $GRI.subsidize == -1>> - <div> - ''Undermine the Growth Research Institute:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$GRI.subsidize = 0]]</span> - </div> - <<else>> - <<if $GRI.schoolPresent == 1>> - <<if $GRI.schoolProsperity < 10>> - <div> - ''The Growth Research Institute subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$GRI.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine the Growth Research Institute:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$GRI.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $SCP.subsidize == 1>> - <div> - ''St. Claver Preparatory subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$SCP.subsidize = 0]]</span> - </div> - <<elseif $SCP.subsidize == -1>> - <div> - ''Undermine St. Claver Preparatory:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$SCP.subsidize = 0]]</span> - </div> - <<else>> - <<if $SCP.schoolPresent == 1>> - <<if $SCP.schoolProsperity < 10>> - <div> - ''St. Claver Preparatory subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$SCP.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine St. Claver Preparatory:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$SCP.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $LDE.subsidize == 1>> - <div> - ''L'École des Enculées subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$LDE.subsidize = 0]]</span> - </div> - <<elseif $LDE.subsidize == -1>> - <div> - ''Undermine L'École des Enculées:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$LDE.subsidize = 0]]</span> - </div> - <<else>> - <<if $LDE.schoolPresent == 1>> - <<if $LDE.schoolProsperity < 10>> - <div> - ''L'École des Enculées subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$LDE.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine L'École des Enculées:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$LDE.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $TGA.subsidize == 1>> - <div> - ''The Gymnasium-Academy subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$TGA.subsidize = 0]]</span> - </div> - <<elseif $TGA.subsidize == -1>> - <div> - ''Undermine the Gymnasium-Academy:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$TGA.subsidize = 0]]</span> - </div> - <<else>> - <<if $TGA.schoolPresent == 1>> - <<if $TGA.schoolProsperity < 10>> - <div> - ''The Gymnasium-Academy subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$TGA.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine the Gymnasium-Academy:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$TGA.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $TCR.subsidize == 1>> - <div> - ''The Cattle Ranch subsidy:'' you are subsidizing this school's local branch in your arcology. - <span class="yellow">[[Repeal|Policies][$TCR.subsidize = 0]]</span> - </div> - <<elseif $TCR.subsidize == -1>> - <div> - ''Undermine The Cattle Ranch:'' you are covertly hurting this school's local branch in your arcology. - <span class="yellow">[[Repeal|Policies][$TCR.subsidize = 0]]</span> - </div> - <<else>> - <<if $TCR.schoolPresent == 1>> - <<if $TCR.schoolProsperity < 10>> - <div> - ''The Cattle Ranch subsidy:'' you will subsidize this school's local branch in your arcology. - <span class="green">[[Implement|Policies][$TCR.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine The Cattle Ranch:'' you will covertly hurt this school's local branch in your arcology. - <span class="green">[[Implement|Policies][$TCR.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $TFS.subsidize == 1>> - <div> - ''Futanari Sisters subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$TFS.subsidize = 0]]</span> - </div> - <<elseif $TFS.subsidize == -1>> - <div> - ''Undermine the Futanari Sisters:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$TFS.subsidize = 0]]</span> - </div> - <<else>> - <<if $TFS.schoolPresent == 1>> - <<if $TFS.schoolProsperity < 10>> - <div> - ''Futanari Sisters subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$TFS.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine the Futanari Sisters:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$TFS.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $HA.subsidize == 1>> - <div> - ''Hippolyta Academy subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$HA.subsidize = 0]]</span> - </div> - <<elseif $HA.subsidize == -1>> - <div> - ''Undermine the Hippolyta Academy:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$HA.subsidize = 0]]</span> - </div> - <<else>> - <<if $HA.schoolPresent == 1>> - <<if $HA.schoolProsperity < 10>> - <div> - ''Hippolyta Academy subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$HA.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine the Hippolyta Academy:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$HA.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - - <p> - <<if $NUL.subsidize == 1>> - <div> - ''Nueva Universidad de Libertad subsidy:'' you are subsidizing this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$NUL.subsidize = 0]]</span> - </div> - <<elseif $NUL.subsidize == -1>> - <div> - ''Undermine Nueva Universidad de Libertad:'' you are covertly hurting this school's branch campus in your arcology. - <span class="yellow">[[Repeal|Policies][$NUL.subsidize = 0]]</span> - </div> - <<else>> - <<if $NUL.schoolPresent == 1>> - <<if $NUL.schoolProsperity < 10>> - <div> - ''Nueva Universidad de Libertad subsidy:'' you will subsidize this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$NUL.subsidize = 1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <div> - ''Undermine Nueva Universidad de Libertad:'' you will covertly hurt this school's branch campus in your arcology. - <span class="green">[[Implement|Policies][$NUL.subsidize = -1, cashX(-5000, "policies")]]</span> - </div> - <<print _costNote>> - <</if>> - <</if>> - </p> - + <<if $schoolSuggestion == 0>> + <p> + You have yet to contact a school about adding a local branch. + </p> + <</if>> + <span id="EducationPolicies"></span> + <script> + policy("EducationPolicies"); + </script> </div> </div> <div id="SRP" class="tabcontent"> <div class="content"> - - <<if $policies.retirement.menial2Citizen == 1>> - ''Mandatory Menial Retirement Age:'' you have set your arcology's retirement age for menial slaves at $customMenialRetirementAge. - <span class="yellow">[[Repeal|Policies][$policies.retirement.menial2Citizen = 0, $retirementAge = 45]]</span> - <<else>> - ''No Menial Retirement Plan:'' without defining a retirement age for menial slaves they will remain slaves until death or freed otherwise. - <</if>> - - <<if $policies.retirement.menial2Citizen == 0>> - <br>''Redefined Mandatory Menial Retirement Age:'' you will set your arcology's retirement age for menial slaves at age - <br> <<textbox "$customMenialRetirementAge" $customMenialRetirementAge "Policies">> - <<if $arcologies[0].FSDegradationist == "unset">> - <br>''Menial Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. - <<if $citizenRetirementTrigger == 0>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.menial2Citizen = 1, cashX(-5000, "policies"), repX(-1000, "policies"), $citizenRetirementTrigger = 1]]</span> - <</if>> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.menial2Citizen = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <br> //Will add upkeep to all menial slaves// - <</if>> - <</if>> - - <<if $policies.retirement.customAgePolicy == 1>> - <br>''Redefined Mandatory Retirement Age:'' you have set your arcology's standard retirement age for sex slaves at $retirementAge. - <span class="yellow">[[Repeal|Policies][$policies.retirement.customAgePolicy = 0, $retirementAge = 45]]</span> - <<elseif $policies.retirement.physicalAgePolicy == 1>> - <br>''Physical Retirement Age:'' you have set your arcology's standard retirement age for slave bodies at $retirementAge. - <span class="yellow">[[Repeal|Policies][$policies.retirement.physicalAgePolicy = 0, $retirementAge = 45]]</span> - <<else>> - <br>''Default Retirement Age:'' in the absence of a defined slave retirement age, slaves will not remain sex slaves after reaching age $retirementAge. - <br> //This is a current content and mechanical limitation in FC $ver, not a universal Free Cities rule.// - <</if>> - - <<if $policies.retirement.physicalAgePolicy == 0 && $policies.retirement.customAgePolicy == 0>> - <br>''Redefined Mandatory Retirement Age:'' you will set your arcology's standard retirement age for sex slaves at age - <br> <<textbox "$customRetirementAge" $customRetirementAge "Policies">> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.customAgePolicy = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <<if $policies.retirement.customAgePolicy == 0 && $policies.retirement.physicalAgePolicy == 0>> - <br>''Physical Retirement Age:'' you will set your arcology's standard retirement age for sex slaves once their bodies reach age - <br> <<textbox "$customRetirementAge" $customRetirementAge "Policies">> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.physicalAgePolicy = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - - <<if $policies.retirement.fate == "bioreactor">> - <br>''Public Fluid Production Retirement:'' once reaching mandatory retirement age, slaves are converted for full-time milk, vaginal secretion<<if $seeDicks == 1>> and semen<</if>> production. - <span class="yellow">[[Repeal|Policies][$policies.retirement.fate = "menial slave"]]</span> - <<elseif $policies.retirement.fate == "arcade">> - <br>''Public Arcade Retirement:'' once reaching mandatory retirement age, slaves are placed in cheap public arcades to be used until useless. - <span class="yellow">[[Repeal|Policies][$policies.retirement.fate = "menial slave"]]</span> - <<elseif $policies.retirement.fate == "citizen">> - <br>''Citizen Retirement:'' all slaveowners are required to pay into accounts to support their slaves as lower-class citizens in retirement. - <span class="yellow">[[Repeal|Policies][policies.retirement.fate = "menial slave", $policies.retirement.sex = 0, $policies.retirement.milk = 0, $policies.retirement.cum = 0, $policies.retirement.births = 0, $policies.retirement.kills = 0]]</span> - <<else>> - <br>''Menial Retirement:'' in the absence of a clear slave retirement policy, overaged sex slaves will become menial slaves. - - <<if $arcologies[0].FSDegradationist == "unset">> - <br>''Sex Slave Citizen Retirement:'' all slaveowners will be required to pay into accounts to support their slaves as lower-class citizens in retirement. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.fate = "citizen", cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will add upkeep to all sex slaves// - <</if>> - <<if $arcologies[0].FSPaternalist == "unset">> - <br>''Public Arcade Retirement:'' once reaching mandatory retirement age, slaves will be placed in cheap public arcades to be used until useless. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.fate = "arcade", cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br>''Public Fluid Production Retirement:'' once reaching mandatory retirement age, slaves will be converted for full-time milk<<if $seeDicks == 1>>, vaginal secretion, and semen<</if>> production. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.fate = "bioreactor", cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> - - <<if $policies.retirement.fate == "citizen">> - <<if $policies.retirement.sex > 0>> - <br>''Sexual Milestone Retirement:'' slaves will be rewarded with their freedom once they have been fucked <<print num($policies.retirement.sex)>> times. - <span class="yellow">[[Repeal|Policies][$policies.retirement.sex = 0]]</span> - <br> Set a new retirement requirement: <<textbox "$policies.retirement.sex" $policies.retirement.sex "Policies">> - <<else>> - <br>''Sexual Milestone Retirement:'' slaves will be rewarded with their freedom once they have been fucked <<print num(10000)>> times. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.sex = 10000, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - - <<if $policies.retirement.milk > 0>> - <br>''Productive Cow Retirement:'' slaves will be rewarded with their freedom once they have given <<print num($policies.retirement.milk)>> liters of milk. - <span class="yellow">[[Repeal|Policies][$policies.retirement.milk = 0]]</span> - <br> Set a new retirement requirement: <<textbox "$policies.retirement.milk" $policies.retirement.milk "Policies">> - <<else>> - <br>''Productive Cow Retirement:'' slaves will be rewarded with their freedom once they have given <<print num(50000)>> liters of milk. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.milk = 50000, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - - <<if $seeDicks > 0 || $makeDicks>> - <<if $policies.retirement.cum > 0>> - <br>''Productive Bull Retirement:'' slaves will be rewarded with their freedom once they have given <<print num($policies.retirement.cum)>> deciliters of cum. - <span class="yellow">[[Repeal|Policies][$policies.retirement.cum = 0]]</span> - <br> Set a new retirement requirement: <<textbox "$policies.retirement.cum" $policies.retirement.cum "Policies">> - <<else>> - <br>''Productive Bull Retirement:'' slaves will be rewarded with their freedom once they have given <<print num(500000)>> deciliters of cum. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.cum = 500000, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> - - <<if $policies.retirement.births > 0>> - <br>''Fertile Breeder Retirement:'' slaves will be rewarded with their freedom once they add $policies.retirement.births new slaves to the population of $arcologies[0].name. - <span class="yellow">[[Repeal|Policies][$policies.retirement.births = 0]]</span> - <br> Set a new retirement requirement: <<textbox "$policies.retirement.births" $policies.retirement.births "Policies">> - <<else>> - <br>''Fertile Breeder Retirement:'' slaves will be rewarded with their freedom once they add 5 new slaves to the population of $arcologies[0].name. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.births = 5, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - - <<if $policies.retirement.kills > 0>> - <br>''Champion Gladiatrix Retirement:'' slaves will be rewarded with their freedom once they have killed $policies.retirement.kills of their fellow slaves in the pit. - <span class="yellow">[[Repeal|Policies][$policies.retirement.kills = 0]]</span> - <br> Set a new retirement requirement: <<textbox "$killsRequired" $killsRequired "Policies">> - <<else>> - <br>''Champion Gladiatrix Retirement:'' slaves will be rewarded with their freedom once they have killed 3 of their fellow slaves in the pit. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.retirement.kills = 3, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> - + <br>''Default Retirement Age:'' in the absence of a defined slave retirement age, slaves will not remain sex slaves after reaching age $retirementAge. + <br> //This is a current content and mechanical limitation in FC $ver, not a universal Free Cities rule.// + <</if>> + + <span id="RetirementPolicies"></span> + <script> + policy("RetirementPolicies"); + </script> + <h1>Menials</h1> + + <span id="MenialRetirementPolicies"></span> + <script> + policy("MenialRetirementPolicies"); + </script> </div> </div> <div id="FS" class="tabcontent"> <div class="content"> - - <<if $arcologies.length > 1>> - <<if $policies.culturalOpenness == 1>> - ''Cultural Openness:'' you are promoting the exchange of ideas between arcologies, increasing cultural crossover between your arcology and its neighbors. - <span class="yellow">[[Repeal|Policies][$policies.culturalOpenness = 0]]</span> - <<elseif $policies.culturalOpenness == -1>> - <br>''Cultural Defensiveness:'' you are doing your best to suppress the exchange of ideas between arcologies, reducing cultural crossover between your arcology and its neighbors. - <span class="yellow">[[Repeal|Policies][$policies.culturalOpenness = 0]]</span> - <<else>> - ''Cultural Openness:'' you will promote the exchange of ideas between arcologies, increasing cultural crossover between your arcology and its neighbors. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.culturalOpenness = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br>''Cultural Defensiveness:'' you will do your best to suppress the exchange of ideas between arcologies, reducing cultural crossover between your arcology and its neighbors. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$policies.culturalOpenness = -1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> - - <<if $seeDicks != 0>> - <<if $arcologies[0].FSSupremacist >= 40>> - <<if $arcologies[0].FSSupremacistSMR>> - <br>''Ethnic Preservation SMR:'' in order to be sold in the arcology, slaves of inferior races with dicks must have their balls removed to prevent racial pollution. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSupremacistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Ethnic Preservation SMR:</span>'' in order to be sold in the arcology, slaves of inferior races with dicks will have to have their balls removed to prevent racial pollution. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSupremacistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance racial Supremacy// - <</if>> - <</if>> - <</if>> - - <<if $arcologies[0].FSSupremacist >= 90>> - <<if $arcologies[0].FSSupremacistLawME>> - <br>''Universal Enslavement of the Impure:'' by law, anyone not of the $arcologies[0].FSSupremacistRace in your arcology is a slave. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSupremacistLawME = 0]]</span> - <<else>> - <br>''<span class="lime">Universal Enslavement of the Impure:</span>'' will force anyone not of the $arcologies[0].FSSupremacistRace race to emigrate or accept enslavement, and make sex with non-$arcologies[0].FSSupremacistRace people such an expectation that the appetite for all such slaves will increase slightly. - <<if $FSSupLawTrigger == 0>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSupremacistLawME = 1, $FSSupLawTrigger = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSupremacistLawME = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <br> //Will affect the slave market and arcology drastically// - <</if>> - <</if>> - - <<if $seeDicks != 0>> - <<if $arcologies[0].FSSubjugationist >= 40>> - <<if $arcologies[0].FSSubjugationistSMR>> - <br>''Racial Purity SMR:'' in order to be sold in the arcology, subhumans with dicks must have their balls removed to prevent racial pollution. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSubjugationistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Racial Purity SMR:</span>'' in order to be sold in the arcology, subhumans with dicks will have to have their balls removed to prevent racial pollution. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSubjugationistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance racial Subjugation// - <</if>> - <</if>> - <</if>> - - <<if $arcologies[0].FSSubjugationist >= 90>> - <<if $arcologies[0].FSSubjugationistLawME>> - <br>''Universal Enslavement of Subhumans:'' by law, all $arcologies[0].FSSubjugationistRace subhumans in your arcology are slaves. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSubjugationistLawME = 0]]</span> - <<else>> - <br>''<span class="lime">Universal Enslavement of Subhumans:</span>'' will force slavery on all $arcologies[0].FSSubjugationistRace subhumans in your arcology, and make sex with $arcologies[0].FSSubjugationistRace people such an expectation that the appetite for all such slaves will increase slightly. - <<if $FSSubLawTrigger == 0>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSubjugationistLawME = 1, $FSSubLawTrigger = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSubjugationistLawME = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <br> //Will affect the slave market and arcology drastically// - <</if>> - <</if>> - - <<if $arcologies[0].FSRepopulationFocusDecoration >= 40>> - <<if $arcologies[0].FSRepopulationFocusSMR>> - <br>''Occupied Womb SMR:'' in order to be sold in the arcology, slaves must be pregnant. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRepopulationFocusSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Occupied Womb SMR:</span>'' in order to be sold in the arcology, slaves will be made capable of pregnancy, if they are not, and subsequently impregnated. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRepopulationFocusSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance repopulation efforts. Due to surgery costs, male slaves will become less common.// - <</if>> - <</if>> - - <<if $arcologies[0].FSRepopulationFocusDecoration >= 90>> - <<if $arcologies[0].FSRepopulationFocusLaw>> - <br>''Universal Pregnancy Subsidy:'' all pregnant citizens are offered reduced rent. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRepopulationFocusLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Universal Pregnancy Subsidy:</span>'' pregnant citizens will be offered reduced rent. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRepopulationFocusLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce your rental income// - <</if>> - <</if>> - - <<if $arcologies[0].FSRestartDecoration >= 40>> - <<if $arcologies[0].FSRestartSMR>> - <br>''Population Control SMR:'' in order to be sold in the arcology, slaves must be infertile. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRestartSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Population Control SMR:</span>'' in order to be sold in the arcology, slave ovaries and testicles will be removed. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRestartSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance starting society over.// - <</if>> - <</if>> - - <<if $arcologies[0].FSRestartDecoration >= 90>> - <<if $arcologies[0].FSRestartLaw>> - <br>''Taxation of Fertile Non-Elite:'' all fertile lower class citizens pay increased taxes. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRestartLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Taxation of Fertile Non-Elite:</span>'' fertile civilians, who are not part of society's Elite, will face increased taxation. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRestartLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase your rental income, but the lower class will dislike you.// - <</if>> - <</if>> - - <<if $propOutcome>> - <br>''Elite Breeder Eligibility:'' Societal Elite may use eligible slaves as breeders. - <<elseif $propOutcome == -1>> - <br>''Elite Breeder Eligibility:'' The Societal Elite have rejected your breeding proposal. - <</if>> - - <<if $arcologies[0].FSRestartDecoration >= 100>> - <<if $rep > 5000>> - <<if $arcologies[0].FSRestartResearch == 0>> - <br>''<span class="lime">Elite Breeder Eligibility:</span>'' slaves that pass very strict tests may be permitted for use by the Societal Elite to bear their children. - <<if $rep >= 1000>> - <span class="green">[[Propose|Breeder Proposal][$arcologies[0].FSRestartResearch = 1, repX(-5000, "policies")]]</span> - <</if>> - <br> //Will greatly damage your reputation for even proposing.// - <</if>> - <</if>> - <</if>> - + <span id="FutureSocietiesTab"></span> + <script> + policy("FutureSocietiesTab"); + </script> <<if $arcologies[0].FSGenderFundamentalist >= 20>> - - <<if $arcologies[0].FSGenderFundamentalistLawBeauty>> - <br>''Fashionable Feminine Ideal:'' you are doing your best to maintain a fashion for elegant girls with just the right amount of T&A. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderFundamentalistLawBeauty = 0]]</span> - <<else>> - <<if $arcologies[0].FSSlimnessEnthusiastLaw == 0 && $arcologies[0].FSHedonisticDecadenceLaw2 == 0 && $arcologies[0].FSPhysicalIdealistLaw == 0>> - <br>''<span class="lime">Fashionable Feminine Ideal:</span>'' you will do your best to start a fashion for elegant girls with just the right amount of T&A. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderFundamentalistLawBeauty = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> - - <<if $arcologies[0].FSGenderFundamentalistLawBimbo>> - <br>''Traditional Education:'' women do not need to be educated to serve their role in society. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderFundamentalistLawBimbo = 0]]</span> - <<else>> - <br>''<span class="lime">Traditional Education:</span>'' you will do your best to remind society that a woman does not need an education to serve her man. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderFundamentalistLawBimbo = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <<if $arcologies[0].FSGenderFundamentalist >= 40>> - <<if $arcologies[0].FSGenderFundamentalistSMR>> - <br>''Mandatory Feminization SMR:'' in order to be sold in the arcology, slaves with dicks must have their balls removed. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderFundamentalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Mandatory Feminization SMR:</span>'' in order to be sold in the arcology, slaves with dicks must have their balls removed. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderFundamentalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Gender Fundamentalism// - <</if>> - <</if>> + <h2>Gender Fundamentalist</h2> + <span id="FSGenderFundamentalist"></span> + <script> + policy("FSGenderFundamentalist"); + </script> <<elseif $arcologies[0].FSGenderRadicalist >= 20>> - <<if $arcologies[0].FSGenderRadicalistLawBeauty>> - <br>''Fashionable Feminine Aspiration:'' you are doing your best to maintain a fashion for turning slaves into elegant girls with just the right amount of T&A. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderRadicalistLawBeauty = 0]]</span> - <<else>> - <<if $arcologies[0].FSSlimnessEnthusiastLaw == 0 && $arcologies[0].FSHedonisticDecadenceLaw2 == 0 && $arcologies[0].FSPhysicalIdealistLaw == 0>> - <br>''<span class="lime">Fashionable Feminine Aspiration:</span>'' you will do your best to start a fashion for turning slaves into elegant girls with just the right amount of T&A. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderRadicalistLawBeauty = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> - <<if $seeDicks != 0>> - <<if $arcologies[0].FSGenderRadicalist >= 60>> - <<if $arcologies[0].FSGenderRadicalistLawFuta == 1>> - <br>''Futanari Focused Radicalism:'' you are encouraging Gender Radicalism towards veneration of slaves with both dicks and pussies. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 0]]</span> - <<elseif $arcologies[0].FSGenderRadicalistLawFuta == 2>> - <br>''Cock and Balls Focused Radicalism:'' you are encouraging Gender Radicalism towards an appreciation for stiff dicks and swinging balls. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 0]]</span> - <<elseif $arcologies[0].FSGenderRadicalistLawFuta == 3>> - <br>''Bottom Heavy Radicalism:'' you are encouraging an appreciation for broad hips, plush asses, big buttholes, and skilled sphincters. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 0]]</span> - <<elseif $arcologies[0].FSGenderRadicalistLawFuta == 4>> - <br>''Femboy Focused Radicalism:'' you are encouraging an appreciation for cute, flat chested slaves with small male genitals and no vagina. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 0]]</span> - <<else>> - <br>''<span class="lime">Futanari Focused Radicalism:</span>'' you will encourage veneration of slaves with both dicks and pussies. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will affect citizens' appreciation of futas// - <br>''<span class="lime">Cock and Balls Focused Radicalism:</span>'' you will encourage an appreciation for stiff dicks and swinging balls. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 2, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will affect slaves' attractiveness to citizens// - <<if $arcologies[0].FSSlimnessEnthusiastLaw == 0>> - <br>''<span class="lime">Bottom Heavy Radicalism:</span>'' you will encourage an appreciation for broad hips, plush asses, big buttholes, and skilled sphincters. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 3, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will affect slaves' attractiveness to citizens// - <</if>> - <<if $arcologies[0].FSHedonisticDecadenceLaw2 == 0>> - <br>''<span class="lime">Femboy Focused Radicalism:</span>'' you will encourage an appreciation for cute, flat chested slaves with small male genitals and no vagina. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSGenderRadicalistLawFuta = 4, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will affect slaves' attractiveness to citizens// - <</if>> - <</if>> - <</if>> - <</if>> + <h2>Gender Radicalist</h2> + <span id="FSGenderRadicalist"></span> + <script> + policy("FSGenderRadicalist"); + </script> <</if>> <<if $arcologies[0].FSPaternalist >= 40>> - <<if $arcologies[0].FSDegradationistSMR == 0>> - <<if $arcologies[0].FSPaternalistSMR>> - <br>''Human Dignity SMR:'' the slave markets are required to treat incoming slaves reasonably well. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPaternalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Human Dignity SMR:</span>'' the slave markets will be required to treat incoming slaves reasonably well. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPaternalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce the arcology's prosperity and help advance Paternalism// - <</if>> - <</if>> - <<if $arcologies[0].FSPaternalist >= 60>> - <<if $arcologies[0].FSPaternalistLaw>> - <br>''Good Treatment Subsidy:'' slaveowners who treat their slaves well are offered reduced rent. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPaternalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Good Treatment Subsidy:</span>'' slaveowners who treat their slaves well will be offered reduced rent. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPaternalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce your rental income// - <</if>> - <</if>> + <h2>Paternalist</h2> + <span id="FSPaternalist"></span> + <script> + policy("FSPaternalist"); + </script> <</if>> <<if $arcologies[0].FSDegradationist >= 40>> - <<if $arcologies[0].FSPaternalistSMR == 0>> - <<if $arcologies[0].FSDegradationistSMR>> - <br>''Agonizing Induction SMR:'' slave markets are required to punish new slaves severely simply to introduce them to pain. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSDegradationistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Agonizing Induction SMR:</span>'' slave markets are required to punish new slaves severely simply to introduce them to pain. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSDegradationistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Degradationism// - <</if>> - <</if>> - <<if $arcologies[0].FSDegradationist >= 90>> - <<if $arcologies[0].FSDegradationistLaw>> - <br>''Universal Arcade Access Mandate:'' slaveowners are required to allow their menial slaves to use the sex arcades. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSDegradationistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Universal Arcade Access Mandate:</span>'' slaveowners will be required to allow their menial slaves to use the sex arcades. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSDegradationistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce labor efficiency, damaging the arcology's prosperity and adds a cost to each menial slave// - <</if>> - <</if>> + <h2>Degradationist</h2> + <span id="FSDegradationist"></span> + <script> + policy("FSDegradationist"); + </script> <</if>> <<if $arcologies[0].FSIntellectualDependency >= 40>> - <<if $arcologies[0].FSSlaveProfessionalismSMR == 0>> - <<if $arcologies[0].FSIntellectualDependencySMR>> - <br>''Dependency SMR:'' in order to be sold in the arcology, slaves must fail a simple intelligence test. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSIntellectualDependencySMR = 0]]</span> - <<else>> - <br>''<span class="lime">Dependency SMR:</span>'' in order to be sold in the arcology, slaves must fail a simple intelligence test. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSIntellectualDependencySMR = 1, $policies.SMR.intelligence.basicSMR = 0, $policies.SMR.intelligence.qualitySMR = 0, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Intellectual Dependency// - <<if $policies.SMR.intelligence.basicSMR != 0 || $policies.SMR.intelligence.qualitySMR != 0>> - //and will repeal interfering intelligence regulations// - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSIntellectualDependency >= 60>> - <<if $arcologies[0].FSIntellectualDependencyLawBeauty>> - <br>''Bimbo Body Complement:'' you are encouraging an appreciation for the stereotypical bimbo body. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSIntellectualDependencyLawBeauty = 0]]</span> - <<else>> - <br>''<span class="lime">Bimbo Body Complement:</span>'' you will do your best to start an appreciation for stereotypical bimbo bodies. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSIntellectualDependencyLawBeauty = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will greatly affect society's views on slave beauty// - <</if>> - <</if>> - <<if $arcologies[0].FSIntellectualDependency >= 80>> - <<if $arcologies[0].FSIntellectualDependencyLaw>> - <br>''Invalid Protection Act:'' by law, anyone unable to pass a standardized test of intelligence and not already a dependant will be enslaved for their own well being. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSIntellectualDependencyLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Invalid Protection Act:</span>'' by law, anyone unable to pass a standardized test of intelligence and not already a dependant will be enslaved for their own well being. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSIntellectualDependencyLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will convert some immigrants to menial slaves and give a small boost to reputation// - <</if>> - <</if>> + <h2>Intellectual Dependency</h2> + <span id="FSIntellectualDependency"></span> + <script> + policy("FSIntellectualDependency"); + </script> <</if>> <<if $arcologies[0].FSSlaveProfessionalism >= 40>> - <<if $arcologies[0].FSIntellectualDependencySMR == 0>> - <<if $arcologies[0].FSSlaveProfessionalismSMR>> - <br>''Head Start SMR:'' in order to be sold in the arcology, slaves must pass a rigorous course designed to bring their skills and poise up to standard. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSlaveProfessionalismSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Head Start SMR:</span>'' in order to be sold in the arcology, slaves must pass a rigorous course designed to bring their skills and poise up to standard. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSlaveProfessionalismSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Slave Professionalism// - <</if>> - <</if>> - <<if $arcologies[0].FSSlaveProfessionalism >= 90>> - <<if $arcologies[0].FSSlaveProfessionalismLaw>> - <br>''Mandatory Intelligence Screening:'' citizens must pass regular intelligence tests or face expulsion from the arcology. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSlaveProfessionalismLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Mandatory Intelligence Screening:</span>'' citizens will be required to pass regular intelligence tests or face expulsion from the arcology. - <<if $FSSlaveProfLawTrigger == 0>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSlaveProfessionalismLaw = 1, $FSSlaveProfLawTrigger = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <<else>> - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSlaveProfessionalismLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <br> //Will thin citizen numbers and reduce immigration, but what remains will empower the arcology's prosperity// - <</if>> - <</if>> + <h2>Slave Professionalism</h2> + <span id="FSSlaveProfessionalism"></span> + <script> + policy("FSSlaveProfessionalism"); + </script> <</if>> <<if $arcologies[0].FSBodyPurist >= 40>> - - <<if $arcologies[0].FSBodyPuristSMR>> - <br>''Body Purity SMR:'' in order to be sold in your arcology, slaves must be stripped of implants and body modifications. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSBodyPuristSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Body Purity SMR:</span>'' in order to be sold in your arcology, slaves must be stripped of implants and body modifications. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSBodyPuristSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Body Purism// - <</if>> - <<if $arcologies[0].FSBodyPurist >= 90>> - <<if $arcologies[0].FSBodyPuristLaw>> - <br>''Drug Purity Mandate:'' all drugs in the arcology must pass rigorous testing for purity. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSBodyPuristLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Drug Purity Mandate:</span>'' all drugs in the arcology will be subjected to rigorous testing for purity. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSBodyPuristLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce slaving profits, damaging the arcology's prosperity// - <</if>> - <</if>> + <h2>Body Purist</h2> + <span id="FSBodyPurist"></span> + <script> + policy("FSBodyPurist"); + </script> <</if>> <<if $arcologies[0].FSTransformationFetishist >= 40>> - - <<if $arcologies[0].FSTransformationFetishistSMR>> - <br>''Mandatory Bimbofication SMR:'' in order to be sold in your arcology, slaves must be given a set of fake tits and ass. - <<if $rep >= 1000>> - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSTransformationFetishistSMR = 0]]</span> - <</if>> - <<else>> - <br>''<span class="lime">Mandatory Bimbofication SMR:</span>'' in order to be sold in your arcology, slaves must be given a set of fake tits and ass. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSTransformationFetishistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Transformation Fetishism// - <</if>> + <h2>Transformation Fetishist</h2> + <span id="FSTransformationFetishist"></span> + <script> + policy("FSTransformationFetishist"); + </script> <</if>> <<if $arcologies[0].FSYouthPreferentialist >= 40>> - - <<if $arcologies[0].FSYouthPreferentialistSMR>> - <br>''Respect for Youth SMR:'' slave markets in your arcology are required to treat younger slaves carefully. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSYouthPreferentialistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Respect for Youth SMR:</span>'' slave markets in your arcology are required to treat younger slaves carefully. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSYouthPreferentialistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Youth Preferentialism// - <</if>> - <<if $arcologies[0].FSYouthPreferentialist >= 90>> - <<if $arcologies[0].FSYouthPreferentialistLaw>> - <br>''Youthful Citizen Subsidy:'' young citizens are offered reduced rent. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSYouthPreferentialistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Youthful Citizen Subsidy:</span>'' young citizens will be offered reduced rent. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSYouthPreferentialistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce your rental income// - <</if>> - <</if>> + <h2>Youth Preferentialist</h2> + <span id="FSYouthPreferentialist"></span> + <script> + policy("FSYouthPreferentialist"); + </script> <</if>> <<if $arcologies[0].FSMaturityPreferentialist >= 40>> - - <<if $arcologies[0].FSMaturityPreferentialistSMR>> - <br>''Respect for Maturity SMR:'' slave markets in your arcology are required to treat mature slaves properly. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSMaturityPreferentialistSMR = 0]]</span> - <<else>> - <<if $arcologies[0].FSHedonisticDecadenceSMR == 0>> - <br>''<span class="lime">Respect for Maturity SMR:</span>'' slave markets in your arcology are required to treat mature slaves properly. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSMaturityPreferentialistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Maturity Preferentialism// - <</if>> - <</if>> - - <<if $arcologies[0].FSMaturityPreferentialist >= 90>> - <<if $arcologies[0].FSMaturityPreferentialistLaw>> - <br>''Mature Citizen Subsidy:'' older citizens are offered reduced rent. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSMaturityPreferentialistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Mature Citizen Subsidy:</span>'' older citizens will be offered reduced rent. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSMaturityPreferentialistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce your rental income// - <</if>> - <</if>> + <h2>Maturity Preferentialist</h2> + <span id="FSMaturityPreferentialist"></span> + <script> + policy("FSMaturityPreferentialist"); + </script> <</if>> <<if $arcologies[0].FSPetiteAdmiration >= 40>> - - <<if $arcologies[0].FSPetiteAdmirationSMR>> - <br>''Small Details SMR:'' in order to be sold in the arcology, slaves must pass height requirements. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPetiteAdmirationSMR = 0]]</span> - <<else>> - <<if $arcologies[0].FSStatuesqueGlorificationSMR == 0>> - <br>''<span class="lime">Small Details SMR:</span>'' in order to be sold in the arcology, slaves must pass height requirements. - <span class="green">[[Implement|Policies][$arcologies[0].FSPetiteAdmirationSMR = 1, $policies.SMR.height.advancedSMR = 0, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <br> //Will help advance Petite Admiration// - <<if $policies.SMR.height.basicSMR > 0 || $policies.SMR.height.advancedSMR != 0>> - //and will repeal interfering height regulations// - <<if $policies.SMR.height.basicSMR > 0>> - <<set $policies.SMR.height.basicSMR = 0>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSPetiteAdmiration >= 60>> - <<if $arcologies[0].FSPetiteAdmirationLaw2>> - <br>''Relative Height Clause:'' beauty standards are based off of relative expected height as opposed to a strict cutoff. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPetiteAdmirationLaw2 = 0]]</span> - <<else>> - <br>''<span class="lime">Relative Height Clause:</span>'' you will do your best to push a taste for relative height rather than a strict cut-off. - <span class="green">[[Implement|Policies][$arcologies[0].FSPetiteAdmirationLaw2 = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <br> //Will weaken beauty standards by making them more easily attainable but may flush out cheaters// - <</if>> - <</if>> - <<if $arcologies[0].FSPetiteAdmiration >= 90>> - <<if $arcologies[0].FSPetiteAdmirationLaw>> - <br>''Big & Small Subsidy:'' citizens are offered reduced rent for keeping slaves far shorter than themselves. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPetiteAdmirationLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Big & Small Subsidy:</span>'' citizens will be offered reduced rent for keeping slaves and taking partners far shorter than themselves. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPetiteAdmirationLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce your rental income// - <</if>> - <</if>> + <h2>Petite Admiration</h2> + <span id="FSPetiteAdmiration"></span> + <script> + policy("FSPetiteAdmiration"); + </script> <</if>> <<if $arcologies[0].FSStatuesqueGlorification >= 40>> - - <<if $arcologies[0].FSStatuesqueGlorificationSMR>> - <br>''You Must Be This Tall SMR:'' in order to be sold in the arcology, slaves must be able to pass height requirements. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSStatuesqueGlorificationSMR = 0]]</span> - <<else>> - <<if $arcologies[0].FSPetiteAdmirationSMR == 0>> - <br>''<span class="lime">You Must Be This Tall SMR:</span>'' in order to be sold in the arcology, slaves must pass height requirements. - <span class="green">[[Implement|Policies][$arcologies[0].FSStatuesqueGlorificationSMR = 1, $policies.SMR.height.advancedSMR = 0, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <br> //Will help advance Statuesque Glorification// - <<if $policies.SMR.height.basicSMR < 0 || $policies.SMR.height.advancedSMR != 0>> - //and will repeal interfering height regulations// - <<if $policies.SMR.height.basicSMR < 0>> - <<set $policies.SMR.height.basicSMR = 0>> - <</if>> - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSStatuesqueGlorification >= 60>> - <<if $arcologies[0].FSStatuesqueGlorificationLaw2>> - <br>''Relative Height Clause:'' beauty standards are based off of relative expected height as opposed to a strict cutoff. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSStatuesqueGlorificationLaw2 = 0]]</span> - <<else>> - <br>''<span class="lime">Relative Height Clause:</span>'' you will do your best to push focus on to relative height rather than a strict cutoff. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSStatuesqueGlorificationLaw2 = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will weaken beauty standards by making them more easily attainable// - <</if>> - <</if>> - <<if $arcologies[0].FSStatuesqueGlorification >= 90>> - <<if $arcologies[0].FSStatuesqueGlorificationLaw>> - <br>''Height Makes Right:'' tall citizens are offered reduced rent at short citizens' expense. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSStatuesqueGlorificationLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Height Makes Right:</span>'' tall citizens will be offered reduced rent at short citizens' expense. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSStatuesqueGlorificationLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> + <h2>Statuesque Glorification</h2> + <span id="FSStatuesqueGlorification"></span> + <script> + policy("FSStatuesqueGlorification"); + </script> <</if>> <<if $arcologies[0].FSSlimnessEnthusiast >= 40>> - - <<if $arcologies[0].FSSlimnessEnthusiastSMR>> - <br>''Physical Fitness SMR:'' in order to be sold in the arcology, chubby slaves must be forced to work out first. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSlimnessEnthusiastSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Physical fitness SMR:</span>'' in order to be sold in the arcology, chubby slaves will have to be forced to work out first. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSlimnessEnthusiastSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - - <<if $arcologies[0].FSSlimnessEnthusiastLaw>> - <br>''Flat Feminine Ideal:'' you are doing your best to maintain a fashion for elegant girls with just the right amount of T&A, none! - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSSlimnessEnthusiastLaw = 0]]</span> - <<else>> - <<if $arcologies[0].FSGenderRadicalistLawBeauty == 0 && $arcologies[0].FSGenderFundamentalistLawBeauty == 0 && $arcologies[0].FSGenderRadicalistLawFuta != 3 && $arcologies[0].FSHedonisticDecadenceLaw2 == 0 && $arcologies[0].FSPhysicalIdealistLaw == 0>> - <br>''<span class="lime">Flat Feminine Ideal:</span>'' you will do your best to start a fashion for elegant girls with just the right amount of T&A, none! - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSSlimnessEnthusiastLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Flat slaves will enjoy increased attractiveness to citizens// - <</if>> - <</if>> + <h2>Slimness Enthusiast</h2> + <span id="FSSlimnessEnthusiast"></span> + <script> + policy("FSSlimnessEnthusiast"); + </script> <</if>> <<if $arcologies[0].FSAssetExpansionist >= 40>> - - <<if $arcologies[0].FSAssetExpansionistSMR>> - <br>''Asset Expansion SMR:'' in order to be sold in the arcology, slaves must have their assets expanded with growth hormones. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSAssetExpansionistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Asset Expansion SMR:</span>'' in order to be sold in the arcology, slaves will have to have their assets expanded with growth hormones. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSAssetExpansionistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> + <h2>Asset Expansionist</h2> + <span id="FSAssetExpansionist"></span> + <script> + policy("FSAssetExpansionist"); + </script> <</if>> <<if $arcologies[0].FSPastoralist >= 40>> - - <<if $arcologies[0].FSPastoralistSMR>> - <br>''Universal Slave Lactation SMR:'' in order to be sold in the arcology, slaves must be actively lactating. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPastoralistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Universal Slave Lactation SMR:</span>'' in order to be sold in the arcology, slaves must be actively lactating. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPastoralistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Pastoralism// - <</if>> - <<if $arcologies[0].FSPastoralist >= 90>> - <<if $arcologies[0].FSPastoralistLaw>> - <br>''Animal Products Ban:'' animal products that compete with slave fluids are banned. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPastoralistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Animal Products Ban:</span>'' animal products that compete with slave fluids will be banned. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPastoralistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will reduce market freedom, damaging the arcology's prosperity// - <</if>> - <</if>> + <h2>Pastoralist</h2> + <span id="FSPastoralist"></span> + <script> + policy("FSPastoralist"); + </script> <</if>> <<if $arcologies[0].FSPhysicalIdealist >= 40>> - <<if $arcologies[0].FSPhysicalIdealistSMR>> - <br>''Lifting SMR:'' in order to be sold in the arcology, slaves must be <<if $arcologies[0].FSPhysicalIdealistLaw>>toned<<else>>bulked<</if>>. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPhysicalIdealistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Lifting SMR:</span>'' in order to be sold in the arcology, slaves will have to be <<if $arcologies[0].FSPhysicalIdealistLaw>>toned<<else>>bulked<</if>>. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPhysicalIdealistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Physical Idealism// - <</if>> - <<if $arcologies[0].FSPhysicalIdealist >= 60>> - <<if $arcologies[0].FSPhysicalIdealistLaw>> - <br>''Fit Feminine Ideal:'' you are doing your best to maintain a fashion for fit, healthy girls with just the right amount of muscle definition. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPhysicalIdealistLaw = 0]]</span> - <<else>> - <<if $arcologies[0].FSHedonisticDecadenceLaw2 == 0 && $arcologies[0].FSSlimnessEnthusiastLaw == 0 && $arcologies[0].FSGenderRadicalistLawBeauty == 0 && $arcologies[0].FSGenderFundamentalistLawBeauty == 0 && $arcologies[0].FSPhysicalIdealistStrongFat == 0>> - <br>''<span class="lime">Fit Feminine Ideal:</span>'' you will do your best to start a fashion for fit, healthy girls with just the right amount of muscle definition. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPhysicalIdealistLaw = 1]]</span> - <</if>> - <br> //Will greatly affect society's views on slave beauty// - <</if>> - - <<if $arcologies[0].FSPhysicalIdealistStrongFat>> - <br>''Strongfat Feminine Ideal:'' you are doing your best to maintain a fashion for strong girls with a thick layer of fat over their muscles. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSPhysicalIdealistStrongFat = 0]]</span> - <<else>> - <br>''<span class="lime">Strongfat Feminine Ideal:</span>'' you will do your best to start a fashion for strong girls with a thick layer of fat over their muscles. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSPhysicalIdealistStrongFat = 1]]</span> - <</if>> - <br> //Will greatly affect society's views on slave beauty// - <</if>> - <</if>> - <</if>> + <h2>Physical Idealist</h2> + <span id="FSPhysicalIdealist"></span> + <script> + policy("FSPhysicalIdealist"); + </script> <</if>> <<if $arcologies[0].FSHedonisticDecadence >= 40>> - <<if $policies.SMR.weightSMR == 0>> - <<if $arcologies[0].FSHedonisticDecadenceSMR>> - <br>''Corpulence SMR:'' in order to be sold in the arcology, slaves must be plump. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSHedonisticDecadenceSMR = 0]]</span> - <<else>> - <<if $arcologies[0].FSMaturityPreferentialistSMR == 0>> - <br>''<span class="lime">Corpulence SMR:</span>'' in order to be sold in the arcology, slaves must be plump. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSHedonisticDecadenceSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Hedonistic Decadence// - <</if>> - <</if>> - <</if>> - <<if $arcologies[0].FSHedonisticDecadence >= 60>> - <<if $arcologies[0].FSHedonisticDecadenceLaw2>> - <br>''Rotund Feminine Ideal:'' you are doing your best to maintain a fashion for thick girls with soft bellies, big butts and luscious tits. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSHedonisticDecadenceLaw2 = 0]]</span> - <<else>> - <<if $arcologies[0].FSSlimnessEnthusiastLaw == 0 && $arcologies[0].FSGenderRadicalistLawBeauty == 0 && $arcologies[0].FSGenderFundamentalistLawBeauty == 0 && $arcologies[0].FSPhysicalIdealistLaw == 0 && $arcologies[0].FSGenderRadicalistLawFuta != 3>> - <br>''<span class="lime">Rotund Feminine Ideal:</span>'' you will do your best to start a fashion for thick girls with soft bellies, big butts and luscious tits. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSHedonisticDecadenceLaw2 = 1]]</span> - <</if>> - <br> //Will greatly affect society's views on slave beauty// - <</if>> - <</if>> - - <<if $arcologies[0].FSHedonisticDecadenceStrongFat>> - <br>''Fat n' Strong Feminine Ideal:'' you are doing your best to maintain a fashion for thick, strong girls. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSHedonisticDecadenceStrongFat = 0]]</span> - <<else>> - <<if $arcologies[0].FSHedonisticDecadenceLaw2 == 0>> - <br>''<span class="lime">Fat n' Strong Feminine Ideal:</span>'' you will do your best to start a fashion for thick girls with plenty of muscle under their fat. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSHedonisticDecadenceStrongFat = 1]]</span> - <</if>> - <br> //Will greatly affect society's views on slave beauty// - <</if>> - <</if>> - <<if $arcologies[0].FSHedonisticDecadence >= 90>> - <<if $arcologies[0].FSHedonisticDecadenceLaw>> - <br>''Life's Joys Subsidy:'' food vendors are offered reduced rent and operating expenses. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSHedonisticDecadenceLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Life's Joys Subsidy:</span>'' food vendors are offered reduced rent and operating expenses. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSHedonisticDecadenceLaw = 1]]</span> - <</if>> - <br> //Will improve prosperity but decrease rental income — tailors may see increased business// - <</if>> - <</if>> - <</if>> + <h2>Hedonistic Decadence</h2> + <span id="FSHedonisticDecadence"></span> + <script> + policy("FSHedonisticDecadence"); + </script> <</if>> <<if $arcologies[0].FSChattelReligionist >= 40>> - <<if $arcologies[0].FSChattelReligionistSMR>> - <br>''Consecration by Public Use SMR:'' in order to be sold in the arcology, slaves must be offered for public use for a single day. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSChattelReligionistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Consecration by Public Use SMR:</span>'' in order to be sold in the arcology, slaves must be offered for public use for a single day. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSChattelReligionistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Chattel Religionism// - <</if>> - <<if $arcologies[0].FSChattelReligionist >= 90>> - <<if $arcologies[0].FSChattelReligionistLaw>> - <br>''Official Religion:'' you are enshrined as the prophet of a vibrant slaveowning religion. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSChattelReligionistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Official Religion:</span>'' you will be enshrined as the prophet of a vibrant slaveowning religion. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSChattelReligionistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase your renown// - <</if>> - <</if>> + <h2>Chattel Religionist</h2> + <span id="FSChattelReligionist"></span> + <script> + policy("FSChattelReligionist"); + </script> <</if>> <<if $nicaeaHeld>> - <<if $arcologies[0].FSChattelReligionistCreed>> - <br>''Chattel Religionist Creed:'' Chattel Religionism in your arcology subscribes to the creed established by the $nicaeaName, which honors <<if $nicaeaFocus == "slaves">>slaves<<else>>slaveowners<</if>>, enhances <<if $nicaeaAssignment == "whore">>prostitution<<elseif $nicaeaAssignment == "serve the public">>public service<<else>>fucktoy duty<</if>>, and respects <<if $nicaeaAchievement == "slaves">>owning many sex slaves<<elseif $nicaeaAchievement == "devotion">>worshipful slaves<<else>>trusting slaves<</if>>. The creed is <<if $nicaeaPower > 1>>strong<<else>>somewhat weak<</if>>. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSChattelReligionistCreed = 0, cashX(-10000, "policies"), repX(-2000, "policies")]]</span> - //Repealing this policy costs twice as much as implementing it.// - <<else>> - <br>''<span class="lime">Chattel Religionist Creed:</span>'' Chattel Religionism in your arcology will subscribe to the creed established by the $nicaeaName, which honors <<if $nicaeaFocus == "slaves">>slaves<<else>>slaveowners<</if>>, enhances <<if $nicaeaAssignment == "whore">>prostitution<<elseif $nicaeaAssignment == "serve the public">>public service<<else>>fucktoy duty<</if>>, and respects <<if $nicaeaAchievement == "slaves">>owning many sex slaves<<elseif $nicaeaAchievement == "devotion">>worshipful slaves<<else>>trusting slaves<</if>>. The creed is <<if $nicaeaPower > 1>>strong<<else>>somewhat weak<</if>>. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSChattelReligionistCreed = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> + <h2>Nicea</h2> + <span id="nicaeaHeld"></span> + <script> + policy("nicaeaHeld"); + </script> + <</if>> + + <<if $arcologies[0].FSRepopulationFocus >= 40>> + <h2>Repopulation Focus</h2> + <span id="FSRepopulationFocus"></span> + <script> + policy("FSRepopulationFocus"); + </script> + <</if>> + + <<if $arcologies[0].FSRestart >= 40 || $arcologies[0].FSSupremacist >= 40 || V.arcologies[0].FSSubjugationist >= 40>> + <h2>Race</h2> + <div> + <<if $propOutcome>> + ''Elite Breeder Eligibility:'' Societal Elite may use eligible slaves as breeders. + <<elseif $propOutcome == -1>> + ''Elite Breeder Eligibility:'' The Societal Elite have rejected your breeding proposal. <</if>> - <</if>> + </div> + <span id="FSRestart"></span> + <script> + policy("FSRestart"); + </script> <</if>> <<if $arcologies[0].FSRomanRevivalist >= 40>> - <<if $arcologies[0].FSRomanRevivalistSMR>> - <br>''Market Slave Expendability SMR:'' slave markets are encouraged to immediately dispose of low quality menial slaves in gladiatorial combats. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRomanRevivalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Market Slave Expendability SMR:</span>'' slave markets are encouraged to immediately dispose of low quality menial slaves in gladiatorial combats. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSRomanRevivalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Roman Revivalism// - <</if>> - <<if $arcologies[0].FSRomanRevivalist >= 90>> - <<if $arcologies[0].FSRomanRevivalistLaw>> - <br>''Republican Military Establishment:'' all citizens of stature are required to participate personally in the defense of the state. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSRomanRevivalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Republican Military Establishment:</span>'' all citizens of stature will be required to participate personally in the defense of the state. - <span class="green">[[Implement|Policies][$arcologies[0].FSRomanRevivalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <br> //Will improve your arcology's combat power during crises// - <</if>> - <</if>> + <h2>Roman Revivalist</h2> + <span id="FSRomanRevivalist"></span> + <script> + policy("FSRomanRevivalist"); + </script> <</if>> <<if $arcologies[0].FSAztecRevivalist >= 40>> - <<if $arcologies[0].FSAztecRevivalistSMR>> - <br>''Captured and Incorrigible Slaves Tribute:'' all captured and incorrigible slaves must be made tribute to the altars. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSAztecRevivalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Captured and Incorrigible Slaves Tribute:</span>'' all captured and incorrigible slaves must be made tribute to the altars. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSAztecRevivalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Aztec Revivalism// - <</if>> - <<if $arcologies[0].FSAztecRevivalist >= 90>> - <<if $arcologies[0].FSAztecRevivalistLaw>> - <br>''Mandatory Artisan Training:'' to inherit or receive a trade a citizen must pass a mandatory course in one of the academies. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSAztecRevivalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Mandatory Artisan Training:</span>'' to inherit or receive a trade a citizen must pass a mandatory course in one of the academies. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSAztecRevivalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will improve your arcology's combat power during crises// - <</if>> - <</if>> + <h2>Aztec Revivalist</h2> + <span id="FSAztecRevivalist"></span> + <script> + policy("FSAztecRevivalist"); + </script> <</if>> <<if $arcologies[0].FSEgyptianRevivalist >= 40>> - <<if $arcologies[0].FSEgyptianRevivalistSMR>> - <br>''Egyptian Cultural Induction SMR:'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of ancient Egypt. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSEgyptianRevivalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Egyptian Cultural Induction SMR:</span>'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of ancient Egypt. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSEgyptianRevivalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Egyptian Revivalism// - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist >= 90>> - <<if $arcologies[0].FSEgyptianRevivalistLaw>> - <br>''Pharaoh's Consort:'' your Head Girl holds legal status as your Consort, increasing $his prominence. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSEgyptianRevivalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Pharaoh's Consort:</span>'' your Head Girl will be given legal status as your Consort. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSEgyptianRevivalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will increase your Head Girl's prominence// - <</if>> - <</if>> + <h2>Egyptian Revivalist</h2> + <span id="FSEgyptianRevivalist"></span> + <script> + policy("FSEgyptianRevivalist"); + </script> <</if>> <<if $arcologies[0].FSEdoRevivalist >= 40>> - <<if $arcologies[0].FSEdoRevivalistSMR>> - <br>''Edo Cultural Induction SMR:'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of Edo Japan. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSEdoRevivalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Edo Cultural Induction SMR:</span>'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of Edo Japan. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSEdoRevivalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Edo Revivalism// - <</if>> - <<if $arcologies[0].FSEdoRevivalist >= 90>> - <<if $arcologies[0].FSEdoRevivalistLaw>> - <br>''Cultural Insularity:'' protects the arcology from old world influences, speeding the acceptance of all future societies. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSEdoRevivalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Cultural Insularity:</span>'' will protect the arcology from old world influences. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSEdoRevivalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will speed the acceptance of all future societies// - <</if>> - <</if>> + <h2>Edo Revivalist</h2> + <span id="FSEdoRevivalist"></span> + <script> + policy("FSEdoRevivalist"); + </script> <</if>> <<if $arcologies[0].FSArabianRevivalist >= 40>> - <<if $arcologies[0].FSArabianRevivalistSMR>> - <br>''Arabian Cultural Induction SMR:'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of the old Caliphate. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSArabianRevivalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Arabian Cultural Induction SMR:</span>'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of the old Caliphate. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSArabianRevivalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Arabian Revivalism// - <</if>> - <<if $arcologies[0].FSArabianRevivalist >= 90>> - <<if $arcologies[0].FSArabianRevivalistLaw>> - <br>''Jizya Tax:'' raises the rents of unassimilated citizens, speeding the acceptance of all future societies. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSArabianRevivalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Jizya Tax:</span>'' will raise the rents of unassimilated citizens, speeding the acceptance of all future societies. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSArabianRevivalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will moderately increase rental income and improve acceptance of all future societies// - <</if>> - <</if>> + <h2>Arabian Revivalist</h2> + <span id="FSArabianRevivalist"></span> + <script> + policy("FSArabianRevivalist"); + </script> <</if>> <<if $arcologies[0].FSChineseRevivalist >= 40>> - <<if $arcologies[0].FSChineseRevivalistSMR>> - <br>''Imperial Cultural Induction SMR:'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of Imperial China. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSChineseRevivalistSMR = 0]]</span> - <<else>> - <br>''<span class="lime">Imperial Cultural Induction SMR:</span>'' in order to be sold in the arcology, slaves must be instructed in the cultural tenets of Imperial China. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSChineseRevivalistSMR = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <br> //Will help advance Chinese Revivalism// - <</if>> - <<if $arcologies[0].FSChineseRevivalist >= 90>> - <<if $arcologies[0].FSChineseRevivalistLaw>> - <br>''Slave Administrator Enabling Law:'' affords your Head Girl considerable legal power, allowing $him to accomplish even more slave training. - <span class="yellow">[[Repeal|Policies][$arcologies[0].FSChineseRevivalistLaw = 0]]</span> - <<else>> - <br>''<span class="lime">Slave Administrator Enabling Law:</span>'' will afford your Head Girl considerable legal power, allowing $him to accomplish even more slave training. - <<if $rep >= 1000>> - <span class="green">[[Implement|Policies][$arcologies[0].FSChineseRevivalistLaw = 1, cashX(-5000, "policies"), repX(-1000, "policies")]]</span> - <</if>> - <</if>> - <</if>> + <h2>Chinese Revivalist</h2> + <span id="FSChineseRevivalist"></span> + <script> + policy("FSChineseRevivalist"); + </script> <</if>> - </div> </div> diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 861d83d377ff43c9abf07ddc4d492a76b27fa10f..0313f4892c1647257af7136a5957860d5b24dfe2 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -2017,7 +2017,7 @@ App.Entity.SlaveState = class SlaveState { /** * * "none" * * "arrogant": clings to her dignity, thinks slavery is beneath her - * * "bitchy": can 't keep her opinions to herself + * * "bitchy": can't keep her opinions to herself * * "odd": says and does odd things * * "hates men": hates men * * "hates women": hates women diff --git a/src/npc/surgery/reproductiveOrgans.js b/src/npc/surgery/reproductiveOrgans.js index 02eaa93868820b5733f2eb82c64a68e5bc4837b1..d0b4ae72f263adeceb761699ea38481cc2bdc035 100644 --- a/src/npc/surgery/reproductiveOrgans.js +++ b/src/npc/surgery/reproductiveOrgans.js @@ -165,7 +165,7 @@ App.Medicine.OrganFarm.Ovaries = class extends App.Medicine.OrganFarm.Organ { canImplant: s => (s.vagina >= 0 && s.ovaries <= 0 && s.mpreg === 0 && s.bellyImplant === -1), implantError: s => { if (s.vagina < 0) { return "This slave lacks the vagina necessary to accept ovaries."; } - if (s.ovaries >= 0) { return "This slave already has ovaries."; } + if (s.ovaries > 0 || s.mpreg > 0) { return "This slave already has ovaries."; } return "This slave's body cavity is filled with another organ."; }, implant: s => { diff --git a/src/uncategorized/randomEventSelect.tw b/src/uncategorized/randomEventSelect.tw index e1cb5f31aeff0100cd470b2429a35adef1120e81..18efed7f362b4816d571d74d13ac6429f62ee922 100644 --- a/src/uncategorized/randomEventSelect.tw +++ b/src/uncategorized/randomEventSelect.tw @@ -34,3 +34,15 @@ DEBUG: <br> [[RE no event]] | <<print "[[Go back to previous passage: '" + previous() + "'|previous()][$activeSlave = 0, $eventSlave = 0]] | [[Go all the way back to Scheduled Event|Scheduled Event][$activeSlave = 0, $eventSlave = 0]]">> +<br><br> + +Or enter a fully qualified event name to debug a specific unlisted JS event:<br> +<<textbox "_evtName" "" autofocus>> +<<link "Check Prerequisites and Casting">> + <<script>>$('#debugOut').empty().append(App.Events.debugEvent(State.temporary.evtName));<</script>> +<</link>><br> +//(for example, "App.Events.RESSMuscles")//<br><br> + +<span id="debugOut"> + /* results gets populated here by jQuery */ +</span> diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw index b852cc6d38012d8d04fa5513b73f1229b84ae4c5..9b0f9fb1140078791ac32c37700e386f86855353 100644 --- a/src/uncategorized/reBoomerang.tw +++ b/src/uncategorized/reBoomerang.tw @@ -272,8 +272,16 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against <<set $activeSlave.behavioralFlaw = "odd", $activeSlave.sexualFlaw = "apathetic">> <<case "harvester">> "I'm ju<<s>>t kept in a pen unle<<ss>> they're d-doing <<s>>urgery on me." It's not surprising; you did sell $him to an organ farm. What's unexpected is that $he's still alive. They must be removing the less essential parts gradually. "I'm going to die," $he <<say>>s hollowly. "Ne<<x>>t <<s>>urgery, I won't wake up." - <<set $activeSlave.balls = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, WombFlush($activeSlave)>> + <<set $activeSlave.balls = 0, $activeSlave.prostate = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, WombFlush($activeSlave)>> <<run SetBellySize($activeSlave)>> + <<if $seeExtreme == 1>> + <<if $activeSlave.eye.left == 2 && $activeSlave.eye.right == 2 && hasBothNaturalEyes($activeSlave)>> + <<run eyeSurgery($activeSlave, "left", "remove")>> + <</if>> + <<if hasBothNaturalArms($activeSlave)>> + <<run removeLimbs($activeSlave, "right arm")>> + <</if>> + <</if>> <<set $activeSlave.behavioralFlaw = "hates men", $activeSlave.sexualFlaw = "crude">> <<case "D butt bury">> "My kind butt loving Ma<<s>>ter had to <<s>>ell me, and the brothel who bought me u<<s>>e<<s>> my behind a<<s>> an adverti<<s>>ement." $He shifts uncomfortably. "I can barely feel my anu<<s>>."