diff --git a/devTools/javaSanityCheck/ignoredVariables b/devTools/javaSanityCheck/ignoredVariables index 0e6cbe638bb2b6d26b98134a0fdb65ec6598b5ae..86455f56c5a0196893ec52dededc2057eb3e4350 100644 --- a/devTools/javaSanityCheck/ignoredVariables +++ b/devTools/javaSanityCheck/ignoredVariables @@ -4,7 +4,6 @@ AGrowth # MIN brokenSlaves -self toString toFixed LivingRule @@ -17,7 +16,6 @@ rejects expCheck interactionLink minDomActionDelay -Categorizer upgrade W;O;L FSGenderFundamentalistResearch;FSPaternalistResearch;FSDegradationistResearch;FSBodyPuristResearch;FSMaturityPreferentialistResearch;FSPastoralistResearch;FSPhysicalIdealistResearch;FSRepopulationFocusResearch @@ -31,7 +29,7 @@ op unborn facilityRemove boobsWombVolume;emptyDefaultRule;rule;removeImplant;changeImplant -assign;commit;mouth +assign;commit; Std htmlFor Possessive;PossessivePronoun @@ -42,11 +40,10 @@ missingLegs;missingArms; toy plural bimboMaleNames -RuleHasError canGrow;canImplant;implantError;growOrgan;removeOrgan totalChildTime toStringExt -northAmericaNationalities;europeNationalities;middleEastNationalities;africaNationalities;australiaNationalities +northAmericaNationalities;middleEastNationalities;africaNationalities;australiaNationalities surnamePoolSelector assignmentVisible attendingClasses;confinement;gloryHole;milking;publicService;sexualServitude;servitude @@ -57,21 +54,18 @@ modestClothes gangCriminalPool;militaryCriminalPool;whiteCollarCriminalPool;pettyCriminalPool multiple;selectedOptions; sluttyClothes -link; naturalNippleColors POSITIVE assistantPronouns;marketAssistantPronouns;ai bodyDesire Assistant;Extra1 ArcologyNamesCummunism;ArcologyNamesIncestFetishist -extreme royalNationalities hostageGiveIn r SlaveSummaryFiler sacrificeType cellName;BaseCell;cellPath;Section;Building;ground;code -location Upkeep;SexSlaveCount;GSP;Rep debugModeCustomFunction societyChanged @@ -98,7 +92,7 @@ hates loathes obsession # corporation -canFoundCorporation;startingPrice;maintenanceSlaves;room;slaveRevenue;divisionLedger;freeDevelopment;developmentCost;maintenanceCategory;corporate;roll;divisionCategories;divisionCategoriesList;getStored;setStored;endweek;hasDividend;hasPayout;perUnit;acquire;DivLegal;DivWhoreDev +canFoundCorporation;startingPrice;maintenanceSlaves;room;slaveRevenue;divisionLedger;freeDevelopment;developmentCost;maintenanceCategory;corporate;roll;divisionCategories;divisionCategoriesList;endweek;hasDividend;hasPayout;perUnit;acquire;DivLegal;DivWhoreDev # porn focusedViewershipFactor unfocusedViewershipFactor diff --git a/devTools/types/assistant.d.ts b/devTools/types/assistant.d.ts index c04f630fb2a5bfe5cc947fd4a8f38ccf65cb9e97..c6093f3eab13d4f620c7d05659c665164e1f738f 100644 --- a/devTools/types/assistant.d.ts +++ b/devTools/types/assistant.d.ts @@ -1,6 +1,6 @@ interface assistant { appearance: "normal" | "monstergirl" | "shemale" | "amazon" | "businesswoman" | "goddess" | "hypergoddess" | "schoolgirl" | "loli" | "preggololi" | "fairy" | "pregnant fairy" | "slimegirl" | "angel" | "cherub" | "imp" | "witch" | "ERROR_1606_APPEARANCE_FILE_CORRUPT" | "incubus" | "succubus"; - fsAppearance: "paternalist" | "degradationist" | "supremacist" | "subjugationist" | "roman revivalist" | "aztec revivalist" | "egyptian revivalist" | "edo revivalist" | "arabian revivalist" | "chinese revivalist" | "chattel religionist" | "repopulation focus" | "eugenics" | "physical idealist" | "hedonistic decadence" | "gender radicalist" | "gender fundamentalist" | "asset expansionist" | "transformation fetishist" | "pastoralist" | "maturity preferentialist" | "youth preferentialist" | "slimness enthusiast" | "body purist" | "intellectual dependency" | "slave professionalism" | "petite admiration" | "statuesque glorification" | "neo imperialist"; + fsAppearance: "default" | "paternalist" | "degradationist" | "supremacist" | "subjugationist" | "roman revivalist" | "aztec revivalist" | "egyptian revivalist" | "edo revivalist" | "arabian revivalist" | "chinese revivalist" | "chattel religionist" | "repopulation focus" | "eugenics" | "physical idealist" | "hedonistic decadence" | "gender radicalist" | "gender fundamentalist" | "asset expansionist" | "transformation fetishist" | "pastoralist" | "maturity preferentialist" | "youth preferentialist" | "slimness enthusiast" | "body purist" | "intellectual dependency" | "slave professionalism" | "petite admiration" | "statuesque glorification" | "neo imperialist"; personality: 1 | 0; name: string; power: number; diff --git a/js/003-data/constants.js b/js/003-data/constants.js index e2f7fa48033bdac494569a8fd93b4126c1152238..758933ca182820c50a839a8e98c4d7b3cf676f1b 100644 --- a/js/003-data/constants.js +++ b/js/003-data/constants.js @@ -1,8 +1,17 @@ -/** @type {FC.Rules.LivingFreezed} */ +/** + * @type {FC.Rules.LivingFreezed} + * @enum {string} + */ globalThis.LivingRule = Object.freeze({LUXURIOUS: 'luxurious', NORMAL: 'normal', SPARE: 'spare'}); -/** @type {FC.Rules.RestFreezed} */ +/** + * @type {FC.Rules.RestFreezed} + * @enum {string} + */ globalThis.RestRule = Object.freeze({MANDATORY: 'mandatory', MAX: 'permissive', MID: 'restrictive', MIN: 'cruel', NONE: 'none'}); -/** @type {FC.AssignmentFreeze} */ +/** + * @type {FC.AssignmentFreeze} + * @enum {string} + */ globalThis.Job = Object.freeze({ // Penthouse Assignments REST: 'rest', @@ -57,6 +66,9 @@ globalThis.Job = Object.freeze({ TANK: '@lay in tank' }); +/** + * @enum {string} + */ globalThis.PersonalAttention = Object.freeze({ TRADE: 'trading', WAR: 'warfare', diff --git a/sanityCheck.sh b/sanityCheck.sh index 5de0388b504975009010087fde7938da592bfc9c..432ed76ab3ae7566992ed9361a46220bafe6db4a 100755 --- a/sanityCheck.sh +++ b/sanityCheck.sh @@ -40,7 +40,7 @@ $GREP -e "<<.*[(][^<>)]*[(][^<>)]*)\?[^<>)]*>>" -- "src/*" | myprint "MissingClo # Check for too many >>>. e.g.: <</if>>> $GREP "<<[^<>]*[<>]\?[^<>]*>>>" -- "src/*.tw" | myprint "TooManyAngleBrackets" # Check for wrong capitalization on 'activeslave' and other common typos -$GREP -e "\$act" --and --not -e "\$\(activeSlave\|activeChild\|activeArcology\|activeOrgan\|activeLimbs\|activeUnits\|activeLurcher\|active\\.)" -- "src/*" | myprint "WrongCapitalization" +$GREP -e "\$act" --and --not -e "\$\(activeSlave\|activeChild\|activeArcology\|activeOrgan\|activeLimbs\|activeUnits\|activeLurcher\|active.\)" -- "src/*" | myprint "WrongCapitalization" # Check for strange spaces e.g. $slaves[$i]. lips $GREP "\$slaves\[\$i\]\. " -- 'src/*' | myprint "MissingPropertyAfterSlaves" # Check using refreshmentType instead of refreshment diff --git a/src/Corporation/corporationDevelopments.tw b/src/Corporation/corporationDevelopments.tw deleted file mode 100644 index a664bf48726b515a19e1c114be50c8b0f7e3d254..0000000000000000000000000000000000000000 --- a/src/Corporation/corporationDevelopments.tw +++ /dev/null @@ -1,97 +0,0 @@ -:: Corporation Developments [nobr] - -/*Main Corporation Pass*/ - -<<if App.Corporate.cash < 0>> - <<set App.Corporate.cash = Math.trunc(App.Corporate.cash * 1.02)>> /*2% weekly interest rate on negative cash*/ -<</if>> - -<h1>Corporation Management</h1> -<h2>Operational Results</h2> -/*Divisions doing their thing*/ -<<set _weekLedger = App.Corporate.endWeek()>> -<<for _d range _weekLedger.divisionLedgers>> - <<set _div = _d.division>> - /* Reporting on number of slaves being processed or completed processing */ - <br><<= _div.name>>: The division <<= _div.message_endWeek_Slaves(_d) >> - <<if _d.market.originalBuy != null>> - <br> - <<if _d.market.buy == 0>> - It couldn't purchase <<= numberWithPlural(_d.market.originalBuy, "slave") >> to replenish its stock from the market because it couldn't afford to purchase price. - <<else>> - It needed to replenish its slave stock of <<= numberWithPlural(_d.market.originalBuy, "slave")>>, but couldn't afford to buy all of them. It bought <<= numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)>> for <<= cashFormatColor(_d.market.finalPurchase, true) >>. - <</if>> - <<elseif _d.market.buy > 0>> - <br>It replenished its slave stock and bought <<= numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket) >> from the market for <<= cashFormatColor(_d.market.finalPurchase, true) >>. - <</if>> - <<if _d.transfer.total > 0>> - <<for _nextDivLedger range _d.transfer.divisions>> - <<set _nextDiv = _nextDivLedger.division>> - <<set _slavesToNext = _nextDivLedger.fill>> - - It moved <<= numberWithPlural(_slavesToNext, "slave")>> to the <<= _nextDiv.name>> Division. - <</for>> - <</if>> - <<if _div.toMarket>> - <<if _div.heldSlaves == 0>> - <<if _d.market.sell > 0>> - It immediately sold <<= numberWithPlural(_d.market.sell, _div.nounFinishedSlave) >> to the market and made <<= cashFormatColor(_d.market.finalSale)>>. - <</if>> - <<else>> - It holds @@.green;<<= numberWithPlural(_div.heldSlaves, _div.nounFinishedSlave)>>@@ at the end of the - <<if _d.market.sell > 0>> - week, but it ran out of storage space and had to sell @@.red;<<= numberWithPlural(_d.market.sell, "slave")>>@@ and made <<= cashFormatColor(_d.market.finalSale)>>. - <<else>> - week. - <</if>> - <</if>> - <</if>> - <<if _d.revenue.value > 0>> - It earned <<= cashFormatColor(_d.revenue.value)>> in revenue. - <</if>> -<</for>> - -/*Aggregate Corporation Results*/ -<<includeDOM App.Corporate.writeLedger(App.Corporate.ledger.current, $week)>> - -/*Division Expansion Tokens*/ -<<if _weekLedger.canExpandNow>> - <div class="majorText">Your corporation is ready to start an additional division!</div> -<</if>> - -/*Specializations tokens*/ -<<if _weekLedger.canSpecializeNow>> - <div class="majorText">Your corporation is ready to specialize its slaves further!</div> -<</if>> - -/*Calculating cash set aside for dividend*/ -<h2>Dividend</h2> -<div> -<<if App.Corporate.dividendRatio > 0>> - The corporation is currently reserving <<= Math.floor(App.Corporate.dividendRatio * 100)>>% of its profit to be paid out as dividends. -<<else>> - The corporation is currently not reserving a portion of its profit to be paid out as dividends. -<</if>> -<<if App.Corporate.payoutCash>> - It is putting aside unused cash reserves to be paid out as dividends. -<</if>> -</div> -<div> -<<if App.Corporate.dividend > 0>> - <<if _weekLedger.hasDividend>> - It reserved <<print cashFormatColor(_weekLedger.dividend)>> this week. - <</if>> - A total of <<print cashFormatColor(App.Corporate.dividend)>> has been put aside for its shareholders. -<</if>> -</div> -<<if _weekLedger.hasPayout>> - <div>This week the dividends were paid out, you received <<print cashFormatColor(_weekLedger.payout)>>.</div> -<</if>> - -/*Bankrupted the Corporation*/ -<<if App.Corporate.value < 0>> - <<run App.Corporation.Dissolve()>> - <br>@@.red;Your corporation went bankrupt.@@ -<</if>> -/*This needs to be at the very end of the financials*/ -<<run App.Corporate.ledger.swap()>> diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index d1d1a16566635e5cc27699de10643a12cdac525c..b748bfaf42ff7d5a0bcfa3e231e73a69fbbdfb1d 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -1102,7 +1102,7 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { slave.chem = Math.max(+slave.chem, 0) || 0; slave.addict = Math.max(+slave.addict, 0) || 0; slave.intelligence = Math.clamp(+slave.intelligence, -100, 100) || 0; - slave.intelligenceImplant = Math.clamp(+slave.intelligenceImplant, 0, 30) || 0; + slave.intelligenceImplant = Math.clamp(+slave.intelligenceImplant, -15, 30) || 0; slave.premature = Math.clamp(+slave.premature, 0, 1) || 0; slave.tankBaby = Math.clamp(+slave.tankBaby, 0, 2) || 0; slave.subTarget = Math.max(+slave.subTarget, 0) || 0; diff --git a/src/endWeek/brothelReport.js b/src/endWeek/brothelReport.js index 284c94426d26baa0d3350344f23fd2330e6d6de2..cfe0b2bb3d81490e36b9889a4f2b48ef78173709 100644 --- a/src/endWeek/brothelReport.js +++ b/src/endWeek/brothelReport.js @@ -1,6 +1,6 @@ globalThis.brothelReport = function() { const el = document.createElement("p"); - let His, He, he, him, his, himself, wife; + let His, He, he, him, his, himself, wife; let r; const brothelStats = document.createElement("span"); diff --git a/src/endWeek/economics/corporationDevelopments.js b/src/endWeek/economics/corporationDevelopments.js new file mode 100644 index 0000000000000000000000000000000000000000..032dc0d1072bbd60d2a4d530c55db75baedf2d1f --- /dev/null +++ b/src/endWeek/economics/corporationDevelopments.js @@ -0,0 +1,104 @@ +App.EndWeek.corporationDevelopments = function() { + const el = document.createElement("p"); + let r = []; + /* Main Corporation Pass*/ + + if (App.Corporate.cash < 0) { + App.Corporate.cash = Math.trunc(App.Corporate.cash * 1.02); /* 2% weekly interest rate on negative cash*/ + } + App.UI.DOM.appendNewElement("h1", el, "Corporation Management"); + App.UI.DOM.appendNewElement("h2", el, "Operational Results"); + /* Divisions doing their thing*/ + const _weekLedger = App.Corporate.endWeek(); + for (const i in _weekLedger.divisionLedgers) { + const _d = _weekLedger.divisionLedgers[i]; + const _div = _d.division; + const r = []; + /* Reporting on number of slaves being processed or completed processing */ + r.push(`${_div.name}: The division ${_div.message_endWeek_Slaves(_d)}`); + if (_d.market.originalBuy != null) { + if (_d.market.buy === 0) { + r.push(App.UI.DOM.makeElement("div", `It couldn't purchase ${numberWithPlural(_d.market.originalBuy, "slave")} to replenish its stock from the market because it couldn't afford to purchase price.`)); + } else { + r.push(App.UI.DOM.makeElement("div", `It needed to replenish its slave stock of ${numberWithPlural(_d.market.originalBuy, "slave")}, but couldn't afford to buy all of them. It bought ${numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)} for ${cashFormatColor(_d.market.finalPurchase, true)}.`)); + } + } else if (_d.market.buy > 0) { + r.push(App.UI.DOM.makeElement("div", `It replenished its slave stock and bought ${numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)} from the market for ${cashFormatColor(_d.market.finalPurchase, true)}.`)); + } + if (_d.transfer.total > 0) { + for (const i in _d.transfer.divisions) { + const _nextDivLedger = _d.transfer.divisions[i]; + const _nextDiv = _nextDivLedger.division; + const _slavesToNext = _nextDivLedger.fill; + r.push(`It moved ${numberWithPlural(_slavesToNext, "slave")} to the ${_nextDiv.name} Division.`); + } + } + if (_div.toMarket) { + if (_div.heldSlaves === 0) { + if (_d.market.sell > 0) { + r.push(`It immediately sold ${numberWithPlural(_d.market.sell, _div.nounFinishedSlave)} to the market and made ${cashFormatColor(_d.market.finalSale)}.`); + } + } else { + r.push(`It holds <span class="green">${numberWithPlural(_div.heldSlaves, _div.nounFinishedSlave)}</span> at the end of the`); + if (_d.market.sell > 0) { + r.push(`week, but it ran out of storage space and had to sell <span class="red">${numberWithPlural(_d.market.sell, "slave")}</span> and made ${cashFormatColor(_d.market.finalSale)}.`); + } else { + r.push(`week.`); + } + } + } + if (_d.revenue.value > 0) { + r.push(`It earned ${cashFormatColor(_d.revenue.value)} in revenue.`); + } + App.Events.addNode(el, r, "div"); + } + App.Events.addNode(el, r); + + /* Aggregate Corporation Results*/ + el.append(App.Corporate.writeLedger(App.Corporate.ledger.current, V.week)); + + /* Division Expansion Tokens*/ + if (_weekLedger.canExpandNow) { + App.UI.DOM.appendNewElement("div", el, "Your corporation is ready to start an additional division!", "majorText"); + } + + /* Specializations tokens*/ + if (_weekLedger.canSpecializeNow) { + App.UI.DOM.appendNewElement("div", el, "Your corporation is ready to specialize its slaves further!", "majorText"); + } + + /* Calculating cash set aside for dividend*/ + App.UI.DOM.appendNewElement("h2", el, "Dividend"); + r = []; + if (App.Corporate.dividendRatio > 0) { + r.push(`The corporation is currently reserving ${Math.floor(App.Corporate.dividendRatio * 100)}% of its profit to be paid out as dividends.`); + } else { + r.push(`The corporation is currently not reserving a portion of its profit to be paid out as dividends.`); + } + if (App.Corporate.payoutCash) { + r.push(`It is putting aside unused cash reserves to be paid out as dividends.`); + } + App.Events.addNode(el, r, "div"); + + if (App.Corporate.dividend > 0) { + r = []; + if (_weekLedger.hasDividend) { + r.push(`It reserved ${cashFormatColor(_weekLedger.dividend)} this week.`); + } + r.push(`A total of ${cashFormatColor(App.Corporate.dividend)} has been put aside for its shareholders.`); + App.Events.addNode(el, r, "div"); + } + + if (_weekLedger.hasPayout) { + App.UI.DOM.appendNewElement("div", el, `This week the dividends were paid out, you received ${cashFormatColor(_weekLedger.payout)}.`); + } + + /* Bankrupted the Corporation*/ + if (App.Corporate.value < 0) { + App.Corporation.Dissolve(); + App.UI.DOM.appendNewElement("div", el, "Your corporation went bankrupt.", "red"); + } + /* This needs to be at the very end of the financials*/ + App.Corporate.ledger.swap(); + return el; +}; diff --git a/src/endWeek/economics/fsDevelopments.js b/src/endWeek/economics/fsDevelopments.js new file mode 100644 index 0000000000000000000000000000000000000000..4651c79739bf7adfaec028e433a3d8f92caa66f6 --- /dev/null +++ b/src/endWeek/economics/fsDevelopments.js @@ -0,0 +1,1440 @@ +App.EndWeek.FSDevelopments = function() { + const el = document.createElement("div"); + let r = []; + if (V.useTabs === 0) { + App.UI.DOM.appendNewElement("h2", el, "Society"); + } + + const FSRepCreditsRep = [ + [7000, 11000, 15000], + [6000, 9000, 12000, 15000], + [6000, 9000, 12000, 14000, 16000], + [6000, 9000, 11000, 13000, 15000, 17000] + ]; + const FSRepDescriptors = ["solid", "high", "remarkable", "great", "excellent", "unparalleled"]; + const ordinalNames = ["second", "third", "fourth", "fifth", "sixth", "seventh", "eighth"]; + if (FutureSocieties.availCredits() > 0) { + r.push(`<span class="yellow">${V.arcologies[0].name}'s society is ready to begin accepting a new societal direction.</span>`); + } + + if (V.FSAnnounced === 1 && V.FSGotRepCredits < V.FSCreditCount && V.rep >= FSRepCreditsRep[V.FSCreditCount - 4][V.FSGotRepCredits - 1]) { + const descriptor = (V.FSGotRepCredits === 1) ? FSRepDescriptors[0] : FSRepDescriptors[Math.trunc(V.FSGotRepCredits / (V.FSCreditCount - 1) * FSRepDescriptors.length - 1)]; + let ordinalName = ordinalNames[V.FSGotRepCredits - 1]; + if (V.FSGotRepCredits === V.FSCreditCount - 1) { + ordinalName += " and final"; + } + r.push(`<span class="yellow">Your reputation is so ${descriptor} that ${V.arcologies[0].name}'s society is ready to begin accepting a ${ordinalName} societal direction.</span>`); + V.FSGotRepCredits += 1; + } + + /* Count adopted FS */ + let societies = FutureSocieties.activeCount(0); + + /* Spending, terrain, rep effects */ + let broadProgress = 0; + if (V.SF.Toggle && V.SF.Active >= 1 && V.SF.UC.Assign > 0) { + r.push(`Assigning a ${(V.SF.UC.Assign === 1) ? `small` : `large`} portion of ${V.SF.Lower} to undercover work helps to advance your cultural goals.`); + const value = (V.SF.UC.Assign === 1) ? V.SF.ArmySize * 0.05 : V.SF.ArmySize * 0.25; + broadProgress += value / 100; + App.Events.addNode(el, r, "div"); + r = []; + } + if (V.FSSpending > 1) { + r.push(`Your <span class="yellowgreen">societal spending</span> helps forward your goals for the arcology's future.`); + broadProgress += Math.trunc(V.FSSpending / (1000 - (500 * V.arcologies[0].FSEdoRevivalistLaw) - (250 * V.arcologies[0].FSArabianRevivalistLaw))); + } + if (V.FCTV.receiver === 3) { + r.push(`Your customized <span class="yellowgreen">FCTV programming</span> strongly influences your citizens, greatly helping define your arcology's culture.`); + if ((V.week - V.FCTV.weekEnabled) > 29) { + broadProgress += 3; + } else if ((V.week - V.FCTV.weekEnabled) > 19) { + broadProgress += 2; + } else if ((V.week - V.FCTV.weekEnabled) > 4) { + broadProgress += 1; + } + } else if (V.FCTV.receiver === 2) { + r.push(`Your customized <span class="yellowgreen">FCTV programming</span> influences your citizens, helping define your arcology's culture.`); + if ((V.week - V.FCTV.weekEnabled) > 34) { + broadProgress += 3; + } else if ((V.week - V.FCTV.weekEnabled) > 23) { + broadProgress += 2; + } else if ((V.week - V.FCTV.weekEnabled) > 8) { + broadProgress += 1; + } + } else if (V.FCTV.receiver === 1) { + r.push(`Your customized <span class="yellowgreen">FCTV programming</span> influences a small number of your citizens, slightly helping define your arcology's culture.`); + if ((V.week - V.FCTV.weekEnabled) > 39) { + broadProgress += 2; + } else if ((V.week - V.FCTV.weekEnabled) > 24) { + broadProgress += 1; + } + } + + const propagandaEffects = App.SecExp.propagandaEffects("social engineering"); + r.push(propagandaEffects.text); + broadProgress += propagandaEffects.effect; + + if (V.terrain === "urban") { + r.push(`The <span class="yellow">urban location</span> of the arcology naturally promotes cultural interchange, holding back ${V.arcologies[0].name}'s cultural independence.`); + broadProgress -= 3; + } else if (V.terrain === "rural") { + r.push(`The <span class="yellow">rural location</span> of the arcology naturally limits cultural interchange, allowing ${V.arcologies[0].name} to slowly develop its own culture.`); + broadProgress -= 2; + } else if (V.terrain === "marine") { + r.push(`The <span class="yellow">marine location</span> of the arcology strongly limits cultural interchange, allowing ${V.arcologies[0].name} to quickly develop its own culture.`); + broadProgress -= 1; + } else if (V.terrain === "ravine") { + r.push(`The <span class="yellow">near subterranean location</span> of the arcology almost eliminates cultural interchange, allowing ${V.arcologies[0].name} to independently develop its culture.`); + } else { + r.push(`The <span class="yellow">oceanic location</span> of the arcology almost eliminates cultural interchange, allowing ${V.arcologies[0].name} to independently develop its culture.`); + } + if (V.rep < 3000) { + r.push(`<span class="red">Your weak reputation</span> reflects badly on your social projects.`); + broadProgress -= 2; + } else if (V.rep < 6000) { + r.push(`<span class="red">Your mediocre reputation</span> engenders skepticism towards your social development.`); + broadProgress -= 1; + } else if (V.rep < 9000) { + r.push(`<span class="yellow">Your reputation</span> is neither weak enough or strong enough to affect social development.`); + } else if (V.rep < 12000) { + r.push(`<span class="green">Your strong reputation</span> helps support social development.`); + broadProgress += 1; + } else if (V.rep < 16000) { + r.push(`<span class="green">Your very strong reputation</span> increases acceptance of your social development.`); + broadProgress += 2; + } else { + r.push(`<span class="green">Your incredible reputation</span> encourages automatic acceptance of your social development.`); + broadProgress += 4; + } + if (V.FSCreditCount === 4) { + broadProgress += 1 - societies; + switch (societies) { + case 1: + r.push(`Maintaining a single societal goal allows <span class="green">very focused social engineering.</span>`); + break; + case 2: + r.push(`Maintaining two societal goals allows <span class="green">focused social engineering.</span>`); + break; + case 3: + r.push(`Maintaining three societal goals requires <span class="yellow">broad social engineering.</span>`); + break; + case 4: + r.push(`Maintaining four societal goals requires <span class="red">unfocused social engineering.</span>`); + break; + } + } else if (V.FSCreditCount === 6) { + broadProgress += 3 - societies; + switch (societies) { + case 1: + r.push(`Maintaining a single societal goal allows <span class="green">very focused social engineering.</span>`); + break; + case 2: + r.push(`Maintaining two societal goals allows <span class="green">focused social engineering.</span>`); + break; + case 3: + r.push(`Maintaining three societal goals allows <span class="yellow">barely focusable social engineering.</span>`); + break; + case 4: + r.push(`Maintaining four societal goals requires <span class="yellow">broad social engineering.</span>`); + break; + case 5: + r.push(`Maintaining five societal goals requires <span class="red">unfocused social engineering.</span>`); + break; + case 6: + r.push(`Maintaining six societal goals requires <span class="red">very unfocused social engineering.</span>`); + break; + } + } else if (V.FSCreditCount === 7) { + broadProgress += 3 - societies; + switch (societies) { + case 1: + r.push(`Maintaining a single societal goal allows <span class="green">very focused social engineering.</span>`); + break; + case 2: + r.push(`Maintaining two societal goals allows <span class="green">focused social engineering.</span>`); + break; + case 3: + r.push(`Maintaining three societal goals allows <span class="yellow">barely focusable social engineering.</span>`); + break; + case 4: + r.push(`Maintaining four societal goals requires <span class="yellow">broad social engineering.</span>`); + break; + case 5: + r.push(`Maintaining five societal goals requires <span class="red">unfocused social engineering.</span>`); + break; + case 6: + r.push(`Maintaining six societal goals requires <span class="red">very unfocused social engineering.</span>`); + break; + case 7: + r.push(`Maintaining seven societal goals requires <span class="red">extremely unfocused social engineering.</span>`); + break; + } + } else { + broadProgress += 2 - societies; + switch (societies) { + case 1: + r.push(`Maintaining a single societal goal allows <span class="green">very focused social engineering.</span>`); + break; + case 2: + r.push(`Maintaining two societal goals allows <span class="green">focused social engineering.</span>`); + break; + case 3: + r.push(`Maintaining three societal goals requires <span class="yellow">broad social engineering.</span>`); + break; + case 4: + r.push(`Maintaining four societal goals requires <span class="red">unfocused social engineering.</span>`); + break; + case 5: + r.push(`Maintaining five societal goals requires <span class="red">very unfocused social engineering.</span>`); + break; + } + } + /* closes FS count changes */ + if (broadProgress !== 0) { + FutureSocieties.applyBroadProgress(0, broadProgress); + } + + if (V.secExpEnabled > 0) { + if (V.SecExp.edicts.slaveWatch === 1) { + r.push(`The Slave Mistreatment Watch helps many slaves, easing your citizens into the paternalist ideals it represents.`); + FutureSocieties.Change("Paternalist", 2); + } + + if (V.SecExp.edicts.defense.noSubhumansInArmy === 1) { + r.push(`Your army is free of subhumans, further cementing their lower status in the eyes of your citizens.`); + FutureSocieties.Change("Subjugationist", 2); + } + + if (V.SecExp.edicts.defense.pregExemption === 1) { + r.push(`Pregnant citizens are allowed and encouraged to avoid military service, making their value evident to all citizens.`); + FutureSocieties.Change("RepopulationFocus", 2); + } + + if (V.SecExp.edicts.defense.eliteOfficers === 1) { + r.push(`Purity in leadership is fundamental in your army, helping eugenics ideals spread in the populace.`); + FutureSocieties.Change("Eugenics", 2); + } + + if (V.SecExp.edicts.defense.liveTargets === 1) { + r.push(`Disobedient slaves are used in shooting ranges and military drills as live targets, furthering degradationist ideals.`); + FutureSocieties.Change("Degradationist", 2); + } + } + + /* Promenade effects */ + const cells = V.building.findCells(cell => cell instanceof App.Arcology.Cell.Shop && !["Brothel", "Club", "Shops"].includes(cell.type)); + for (const cell of cells) { + r.push(`The ${cell.type} establishments on the Promenade help develop society.`); + const changedFS = cell.type.replace(/[- ]/g, ""); + FutureSocieties.Change(changedFS, 4); + } + + /* PA FS bonuses */ + if (V.policies.publicPA === 1 && V.assistant.appearance !== "normal") { + let seed = 0; + if (V.arcologies[0].FSSupremacist !== "unset") { + if (["amazon", "monstergirl", "succubus"].includes(V.assistant.appearance)) { + V.arcologies[0].FSSupremacist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "supremacist") { + V.arcologies[0].FSSupremacist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSSubjugationist !== "unset") { + if (["amazon", "businesswoman", "imp"].includes(V.assistant.appearance)) { + V.arcologies[0].FSSubjugationist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "subjugationist") { + V.arcologies[0].FSSubjugationist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSGenderRadicalist !== "unset") { + if (["incubus", "monstergirl", "shemale", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSGenderRadicalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "gender radicalist") { + V.arcologies[0].FSGenderRadicalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSRepopulationFocus !== "unset") { + if (["goddess", "hypergoddess", "preggololi", "pregnant fairy", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSRepopulationFocus += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "repopulation focus") { + V.arcologies[0].FSRepopulationFocus += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSRestart !== "unset") { + if (["angel", "businesswoman", "goddess", "incubus", "loli", "schoolgirl", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSRestart += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "eugenics") { + V.arcologies[0].FSRestart += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSGenderFundamentalist !== "unset") { + if (["angel", "cherub", "fairy", "goddess", "hypergoddess", "loli", "preggololi", "pregnant fairy", "schoolgirl", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSGenderFundamentalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "gender fundamentalist") { + V.arcologies[0].FSGenderFundamentalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSPaternalist !== "unset") { + if (["angel", "cherub", "fairy", "goddess", "hypergoddess", "loli", "preggololi", "pregnant fairy", "schoolgirl"].includes(V.assistant.appearance)) { + V.arcologies[0].FSPaternalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "paternalist") { + V.arcologies[0].FSPaternalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSDegradationist !== "unset") { + if (["businesswoman", "imp", "incubus", "monstergirl", "preggololi", "succubus"].includes(V.assistant.appearance)) { + V.arcologies[0].FSDegradationist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "degradationist") { + V.arcologies[0].FSDegradationist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSIntellectualDependency !== "unset") { + if (["shemale", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSIntellectualDependency += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "intellectual dependency") { + V.arcologies[0].FSIntellectualDependency += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSSlaveProfessionalism !== "unset") { + if (["angel", "businesswoman", "incubus", "goddess", "schoolgirl", "succubus"].includes(V.assistant.appearance)) { + V.arcologies[0].FSSlaveProfessionalism += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "slave professionalism") { + V.arcologies[0].FSSlaveProfessionalism += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSBodyPurist !== "unset") { + if (["amazon", "angel", "fairy", "goddess", "incubus", "loli", "pregnant fairy", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSBodyPurist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "body purist") { + V.arcologies[0].FSBodyPurist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSTransformationFetishist !== "unset") { + if (["businesswoman", "ERROR_1606_APPEARANCE_FILE_CORRUPT", "incubus", "shemale", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSTransformationFetishist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "transformation fetishist") { + V.arcologies[0].FSTransformationFetishist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSMaturityPreferentialist !== "unset") { + if (["angel", "businesswoman", "goddess", "incubus", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSMaturityPreferentialist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "maturity preferentialist") { + V.arcologies[0].FSMaturityPreferentialist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSYouthPreferentialist !== "unset") { + if (["angel", "cherub", "imp", "loli", "preggololi", "schoolgirl", "shemale", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSYouthPreferentialist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "youth preferentialist") { + V.arcologies[0].FSYouthPreferentialist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSPetiteAdmiration !== "unset") { + if (["cherub", "fairy", "imp", "incubus", "loli", "preggololi", "pregnant fairy", "schoolgirl", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSPetiteAdmiration += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "petite admiration") { + V.arcologies[0].FSPetiteAdmiration += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSStatuesqueGlorification !== "unset") { + if (["amazon", "goddess", "incubus", "succubus", "witch"].includes(V.assistant.appearance)) { + V.arcologies[0].FSStatuesqueGlorification += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "statuesque glorification") { + V.arcologies[0].FSStatuesqueGlorification += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") { + if (["cherub", "imp", "loli", "schoolgirl", "shemale", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSSlimnessEnthusiast += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "slimness enthusiast") { + V.arcologies[0].FSSlimnessEnthusiast += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSAssetExpansionist !== "unset") { + if (["businesswoman", "hypergoddess", "incubus", "shemale", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSAssetExpansionist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "asset expansionist") { + V.arcologies[0].FSAssetExpansionist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSPastoralist !== "unset") { + if (["goddess", "hypergoddess", "incubus", "shemale", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSPastoralist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "pastoralist") { + V.arcologies[0].FSPastoralist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSPhysicalIdealist !== "unset") { + if (["amazon", "incubus", "shemale", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSPhysicalIdealist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "physical idealist") { + V.arcologies[0].FSPhysicalIdealist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSHedonisticDecadence !== "unset") { + if (["goddess", "hypergoddess", "imp", "incubus", "preggololi", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSHedonisticDecadence += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "hedonistic decadence") { + V.arcologies[0].FSHedonisticDecadence += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSChattelReligionist !== "unset") { + if (["angel", "cherub", "goddess", "imp", "incubus", "monstergirl", "succubus", "witch"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSChattelReligionist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "chattel religionist") { + V.arcologies[0].FSChattelReligionist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSRomanRevivalist !== "unset") { + if (["amazon", "businesswoman", "incubus", "succubus"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSRomanRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "roman revivalist") { + V.arcologies[0].FSRomanRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSNeoImperialist !== "unset") { + if (["amazon", "businesswoman", "incubus", "shemale", "angel"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSNeoImperialist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "neo imperialist") { + V.arcologies[0].FSNeoImperialist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + if (V.arcologies[0].FSAztecRevivalist !== "unset") { + if (["amazon", "businesswoman", "incubus", "succubus"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSAztecRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "aztec revivalist") { + V.arcologies[0].FSAztecRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { + if (["goddess", "incubus", "monstergirl", "succubus"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSEgyptianRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "egyptian revivalist") { + V.arcologies[0].FSEgyptianRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSEdoRevivalist !== "unset") { + if (["amazon", "incubus", "kitsune", "loli", "monstergirl", "succubus"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSEdoRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "edo revivalist") { + V.arcologies[0].FSEdoRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSArabianRevivalist !== "unset") { + if (["businesswoman", "incubus", "schoolgirl", "succubus"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSArabianRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "arabian revivalist") { + V.arcologies[0].FSArabianRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + if (V.arcologies[0].FSChineseRevivalist !== "unset") { + if (["incubus", "monstergirl", "schoolgirl", "succubus"].includes(V.assistant.fsAppearance)) { + V.arcologies[0].FSChineseRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 1; + } else if (V.assistant.fsAppearance === "chinese revivalist") { + V.arcologies[0].FSChineseRevivalist += 0.1 * V.FSSingleSlaveRep; + seed = 2; + } + } + + App.Events.addParagraph(el, r); + r = []; + const {hisA} = getPronouns(assistant.pronouns().main).appendSuffix('A'); + r.push(`With ${hisA} ${V.assistant.appearance} appearance, ${V.assistant.name}'s public visibility meshes`); + if (seed === 2) { + r.push(`very well`); + } else if (seed === 1) { + r.push(`well`); + } + r.push(`with society.`); + } + + /* Progress overflow into influence */ + FutureSocieties.overflowToInfluence(0); + + /* warm up policy influence */ + if (V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 1 && V.arcologies[0].FSEgyptianRevivalistInterest < 26) { + V.arcologies[0].FSEgyptianRevivalistInterest += V.arcologies[0].FSEgyptianRevivalistIncestPolicy; + } else if (V.arcologies[0].FSEgyptianRevivalistIncestPolicy === 0 && V.arcologies[0].FSEgyptianRevivalistInterest > 0) { + V.arcologies[0].FSEgyptianRevivalistInterest--; + } + + if ((V.arcologies[0].FSRepopulationFocusPregPolicy === 1 || V.arcologies[0].FSRepopulationFocusMilfPolicy === 1) && V.arcologies[0].FSRepopulationFocusInterest < 26) { + V.arcologies[0].FSRepopulationFocusInterest += V.arcologies[0].FSRepopulationFocusPregPolicy + V.arcologies[0].FSRepopulationFocusMilfPolicy; + if (V.arcologies[0].FSEugenicsInterest > 0) { + V.arcologies[0].FSEugenicsInterest--; + } + } else if (V.arcologies[0].FSRepopulationFocusPregPolicy === 0 && V.arcologies[0].FSRepopulationFocusMilfPolicy === 0 && V.arcologies[0].FSRepopulationFocusInterest > 0) { + V.arcologies[0].FSRepopulationFocusInterest--; + } + + if ([V.arcologies[0].FSSupremacistSMR, V.arcologies[0].FSSubjugationistSMR, V.arcologies[0].FSGenderFundamentalistSMR, V.arcologies[0].FSPaternalistSMR, V.arcologies[0].FSDegradationistSMR, V.arcologies[0].FSBodyPuristSMR, V.arcologies[0].FSTransformationFetishistSMR, V.arcologies[0].FSYouthPreferentialistSMR, V.arcologies[0].FSMaturityPreferentialistSMR, V.arcologies[0].FSSlimnessEnthusiastSMR, V.arcologies[0].FSAssetExpansionistSMR, V.arcologies[0].FSPastoralistSMR, V.arcologies[0].FSPhysicalIdealistSMR, V.arcologies[0].FSChattelReligionistSMR, V.arcologies[0].FSRomanRevivalistSMR, V.arcologies[0].FSAztecRevivalistSMR, V.arcologies[0].FSEgyptianRevivalistSMR, V.arcologies[0].FSEdoRevivalistSMR, V.arcologies[0].FSRepopulationFocusSMR, V.arcologies[0].FSRestartSMR, V.arcologies[0].FSHedonisticDecadenceSMR, V.arcologies[0].FSIntellectualDependencySMR, V.arcologies[0].FSSlaveProfessionalismSMR, V.arcologies[0].FSPetiteAdmirationSMR, V.arcologies[0].FSStatuesqueGlorificationSMR, V.arcologies[0].FSArabianRevivalistSMR, V.arcologies[0].FSChineseRevivalistSMR, V.arcologies[0].FSNeoImperialistSMR, V.arcologies[0].FSGenderRadicalistSMR].some((SMR) => SMR > 0)) { // RadicalistSMR was unused since vanilla, but maybe some day.... + r.push(`The slave market regulations help ensure the arcology's slaves fit within its society.`); + } + + if (V.arcologies[0].FSSupremacist !== "unset") { + if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in ${V.arcologies[0].FSSupremacistRace} superiority.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with ${V.arcologies[0].FSSupremacistRace} superiority.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to ${V.arcologies[0].FSSupremacistRace} superiority.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of ${V.arcologies[0].FSSupremacistRace} superiority.`); + } + if (V.arcologies[0].FSSupremacist < 0) { + FutureSocieties.remove("FSSupremacist"); + if (V.assistant.fsAppearance === "supremacist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSSupremacist > V.arcologies[0].FSSupremacistDecoration) { + V.arcologies[0].FSSupremacist = V.arcologies[0].FSSupremacistDecoration; + } + if (V.arcologies[0].FSSupremacistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSSupremacist === V.arcologies[0].FSSupremacistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSSupremacistSMR === 1) { + V.arcologies[0].FSSupremacist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSSubjugationist !== "unset") { + if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in the inferiority of ${V.arcologies[0].FSSubjugationistRace} people.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the inferiority of ${V.arcologies[0].FSSubjugationistRace} people.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the inferiority of ${V.arcologies[0].FSSubjugationistRace} people.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the inferiority of ${V.arcologies[0].FSSubjugationistRace} people.`); + } + if (V.arcologies[0].FSSubjugationist < 0) { + FutureSocieties.remove("FSSubjugationist"); + if (V.assistant.fsAppearance === "subjugationist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSSubjugationist > V.arcologies[0].FSSubjugationistDecoration) { + V.arcologies[0].FSSubjugationist = V.arcologies[0].FSSubjugationistDecoration; + } + if (V.arcologies[0].FSSubjugationistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSSubjugationist === V.arcologies[0].FSSubjugationistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSSubjugationistSMR === 1) { + V.arcologies[0].FSSubjugationist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSRepopulationFocus !== "unset") { + if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that all women should be pregnant.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly that all women should be pregnant.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that all women should be pregnant.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that all women should be pregnant.`); + } + if (V.arcologies[0].FSRepopulationFocus < 0) { + FutureSocieties.remove("FSRepopulationFocus"); + if (V.assistant.fsAppearance === "repopulation focus") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSRepopulationFocus > V.arcologies[0].FSRepopulationFocusDecoration) { + V.arcologies[0].FSRepopulationFocus = V.arcologies[0].FSRepopulationFocusDecoration; + } + if (V.arcologies[0].FSRepopulationFocusDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSRepopulationFocus === V.arcologies[0].FSRepopulationFocusDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSRepopulationFocusSMR === 1) { + V.arcologies[0].FSRepopulationFocus += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSRestart !== "unset") { + if (V.arcologies[0].FSRestart >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that only the elite should reproduce.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSRestart >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly that only the elite should reproduce.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSRestart >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea only the elite should reproduce.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that only the elite should reproduce.`); + } + if (V.arcologies[0].FSRestart < 0 && V.arcologies[0].FSRestartDecoration !== 100) { + FutureSocieties.remove("FSRestart"); + if (V.assistant.fsAppearance === "eugenics") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSRestart > V.arcologies[0].FSRestartDecoration) { + V.arcologies[0].FSRestart = V.arcologies[0].FSRestartDecoration; + } + if (V.arcologies[0].FSRestartDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSRestart === V.arcologies[0].FSRestartDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSRestartSMR === 1) { + V.arcologies[0].FSRestart += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSGenderRadicalist !== "unset") { + if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in the need to redefine gender around power.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the need to redefine gender around power.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the need to redefine gender around power.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the need to redefine gender around power.`); + } + if (V.arcologies[0].FSGenderRadicalist < 0) { + FutureSocieties.remove("FSGenderRadicalist"); + if (V.assistant.fsAppearance === "gender radicalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSGenderRadicalist > V.arcologies[0].FSGenderRadicalistDecoration) { + V.arcologies[0].FSGenderRadicalist = V.arcologies[0].FSGenderRadicalistDecoration; + } + if (V.arcologies[0].FSGenderRadicalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSGenderRadicalist === V.arcologies[0].FSGenderRadicalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } + // RadicalistSMR was unused since vanilla, but maybe some day.... + /* + else if (V.arcologies[0].FSGenderRadicalistSMR === 1) { + V.arcologies[0].FSGenderRadicalist += 0.1 * V.FSSingleSlaveRep; + } + */ + } + } + + if (V.arcologies[0].FSGenderFundamentalist !== "unset") { + if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in the need to preserve traditional gender roles.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the need to preserve traditional gender roles.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the need to preserve traditional gender roles.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the need to preserve traditional gender roles.`); + } + if (V.arcologies[0].FSGenderFundamentalist < 0) { + FutureSocieties.remove("FSGenderFundamentalist"); + if (V.assistant.fsAppearance === "gender fundamentalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSGenderFundamentalist > V.arcologies[0].FSGenderFundamentalistDecoration) { + V.arcologies[0].FSGenderFundamentalist = V.arcologies[0].FSGenderFundamentalistDecoration; + } + if (V.arcologies[0].FSGenderFundamentalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSGenderFundamentalist === V.arcologies[0].FSGenderFundamentalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSGenderFundamentalistSMR === 1) { + V.arcologies[0].FSGenderFundamentalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSPaternalist !== "unset") { + if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in the vision of a well-bred race of slaves.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the vision of a well-bred race of slaves.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the vision of a well-bred race of slaves.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the vision of a well-bred race of slaves.`); + } + if (V.arcologies[0].FSPaternalist < 0) { + FutureSocieties.remove("FSPaternalist"); + if (V.assistant.fsAppearance === "paternalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSPaternalist > V.arcologies[0].FSPaternalistDecoration) { + V.arcologies[0].FSPaternalist = V.arcologies[0].FSPaternalistDecoration; + } + if (V.arcologies[0].FSPaternalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSPaternalist === V.arcologies[0].FSPaternalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSPaternalistSMR === 1) { + V.arcologies[0].FSPaternalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSDegradationist !== "unset") { + if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that slaves are not human and should be thoroughly degraded.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the idea that slaves are not human and should be thoroughly degraded.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the proposition that slaves are not human and should be thoroughly degraded.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that slaves are not human and should be thoroughly degraded.`); + } + if (V.arcologies[0].FSDegradationist < 0) { + FutureSocieties.remove("FSDegradationist"); + if (V.assistant.fsAppearance === "degradationist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSDegradationist > V.arcologies[0].FSDegradationistDecoration) { + V.arcologies[0].FSDegradationist = V.arcologies[0].FSDegradationistDecoration; + } + if (V.arcologies[0].FSDegradationistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSDegradationist === V.arcologies[0].FSDegradationistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSDegradationistSMR === 1) { + V.arcologies[0].FSDegradationist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSIntellectualDependency !== "unset") { + if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that all slaves should be mentally dependant on their owner.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly that all slaves should be bimbos.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that slaves should be dumb and horny.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that all slaves should be morons.`); + } + if (V.arcologies[0].FSIntellectualDependency < 0) { + FutureSocieties.remove("FSIntellectualDependency"); + if (V.assistant.fsAppearance === "intellectual dependency") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSIntellectualDependency > V.arcologies[0].FSIntellectualDependencyDecoration) { + V.arcologies[0].FSIntellectualDependency = V.arcologies[0].FSIntellectualDependencyDecoration; + } + if (V.arcologies[0].FSIntellectualDependencyDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSIntellectualDependency === V.arcologies[0].FSIntellectualDependencyDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSIntellectualDependencySMR === 1) { + V.arcologies[0].FSIntellectualDependency += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSSlaveProfessionalism !== "unset") { + if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that slaves should be masters of the sexual arts.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with slavery as a profession.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the notion of slavery as a profession.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that slaves should be highly intelligent.`); + } + if (V.arcologies[0].FSSlaveProfessionalism < 0) { + FutureSocieties.remove("FSSlaveProfessionalism"); + if (V.assistant.fsAppearance === "slave professionalism") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSSlaveProfessionalism > V.arcologies[0].FSSlaveProfessionalismDecoration) { + V.arcologies[0].FSSlaveProfessionalism = V.arcologies[0].FSSlaveProfessionalismDecoration; + } + if (V.arcologies[0].FSSlaveProfessionalismDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSSlaveProfessionalism === V.arcologies[0].FSSlaveProfessionalismDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSSlaveProfessionalismSMR === 1) { + V.arcologies[0].FSSlaveProfessionalism += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSBodyPurist !== "unset") { + if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in the unattractive nature of implants.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} strongly believes in the unattractive nature of implants.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is beginning to believe in the unattractive nature of implants.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the unattractive nature of implants.`); + } + if (V.arcologies[0].FSBodyPurist < 0) { + FutureSocieties.remove("FSBodyPurist"); + if (V.assistant.fsAppearance === "body purist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSBodyPurist > V.arcologies[0].FSBodyPuristDecoration) { + V.arcologies[0].FSBodyPurist = V.arcologies[0].FSBodyPuristDecoration; + } + if (V.arcologies[0].FSBodyPuristDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSBodyPurist === V.arcologies[0].FSBodyPuristDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSBodyPuristSMR === 1) { + V.arcologies[0].FSBodyPurist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSTransformationFetishist !== "unset") { + if (V.arcologies[0].FSTransformationFetishist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} passionately fetishizes implants.`); + } else if (V.arcologies[0].FSTransformationFetishist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} strongly fetishizes implants.`); + } else if (V.arcologies[0].FSTransformationFetishist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is beginning to fetishize implants.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced about the attractiveness of implants.`); + } + if (V.arcologies[0].FSTransformationFetishist < 0) { + FutureSocieties.remove("FSTransformationFetishist"); + if (V.assistant.fsAppearance === "transformation fetishist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSTransformationFetishist > V.arcologies[0].FSTransformationFetishistDecoration) { + V.arcologies[0].FSTransformationFetishist = V.arcologies[0].FSTransformationFetishistDecoration; + } + if (V.arcologies[0].FSTransformationFetishistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSTransformationFetishist === V.arcologies[0].FSTransformationFetishistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSTransformationFetishistSMR === 1) { + V.arcologies[0].FSTransformationFetishist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSMaturityPreferentialist !== "unset") { + if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} is passionately enthusiastic about older ladies.`); + } else if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} is enthusiastic about older ladies.`); + } else if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is beginning to be enthusiastic about older ladies.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced about your preference for older ladies.`); + } + if (V.arcologies[0].FSMaturityPreferentialist < 0) { + FutureSocieties.remove("FSMaturityPreferentialist"); + if (V.assistant.fsAppearance === "maturity preferentialist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSMaturityPreferentialist > V.arcologies[0].FSMaturityPreferentialistDecoration) { + V.arcologies[0].FSMaturityPreferentialist = V.arcologies[0].FSMaturityPreferentialistDecoration; + } + if (V.arcologies[0].FSMaturityPreferentialistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSMaturityPreferentialist === V.arcologies[0].FSMaturityPreferentialistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSMaturityPreferentialistSMR === 1) { + V.arcologies[0].FSMaturityPreferentialist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSYouthPreferentialist !== "unset") { + if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} is passionately enthusiastic about young women.`); + } else if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} is enthusiastic about young women.`); + } else if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is beginning to be enthusiastic about young women.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced about your preference for young women.`); + } + if (V.arcologies[0].FSYouthPreferentialist < 0) { + FutureSocieties.remove("FSYouthPreferentialist"); + if (V.assistant.fsAppearance === "youth preferentialist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSYouthPreferentialist > V.arcologies[0].FSYouthPreferentialistDecoration) { + V.arcologies[0].FSYouthPreferentialist = V.arcologies[0].FSYouthPreferentialistDecoration; + } + if (V.arcologies[0].FSYouthPreferentialistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSYouthPreferentialist === V.arcologies[0].FSYouthPreferentialistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSYouthPreferentialistSMR === 1) { + V.arcologies[0].FSYouthPreferentialist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSPetiteAdmiration !== "unset") { + if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} is passionately enthusiastic for short slaves.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} is very enthusiastic for short slaves.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is enthusiastic for short slaves.`); + } else { + r.push(`${V.arcologies[0].name} is beginning to be enthusiastic for short slaves.`); + } + if (V.arcologies[0].FSPetiteAdmiration < 0) { + FutureSocieties.remove("FSPetiteAdmiration"); + if (V.assistant.fsAppearance === "petite admiration") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSPetiteAdmiration > V.arcologies[0].FSPetiteAdmirationDecoration) { + V.arcologies[0].FSPetiteAdmiration = V.arcologies[0].FSPetiteAdmirationDecoration; + } + if (V.arcologies[0].FSPetiteAdmirationDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSPetiteAdmiration === V.arcologies[0].FSPetiteAdmirationDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSPetiteAdmirationSMR === 1) { + V.arcologies[0].FSPetiteAdmiration += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSStatuesqueGlorification !== "unset") { + if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that the tall are superior.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the idea that the tall are superior.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that the tall are superior.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that the tall are superior.`); + } + if (V.arcologies[0].FSStatuesqueGlorification < 0) { + FutureSocieties.remove("FSStatuesqueGlorification"); + if (V.assistant.fsAppearance === "statuesque glorification") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSStatuesqueGlorification > V.arcologies[0].FSStatuesqueGlorificationDecoration) { + V.arcologies[0].FSStatuesqueGlorification = V.arcologies[0].FSStatuesqueGlorificationDecoration; + } + if (V.arcologies[0].FSStatuesqueGlorificationDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSStatuesqueGlorification === V.arcologies[0].FSStatuesqueGlorificationDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSStatuesqueGlorificationSMR === 1) { + V.arcologies[0].FSStatuesqueGlorification += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") { + if (V.arcologies[0].FSSlimnessEnthusiast >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} is passionately enthusiastic about slim slaves with girlish figures.`); + } else if (V.arcologies[0].FSSlimnessEnthusiast >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} is very enthusiastic about slim slaves with girlish figures.`); + } else if (V.arcologies[0].FSSlimnessEnthusiast >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is enthusiastic about slim slaves with girlish figures.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced about your preference for slim slaves with girlish figures.`); + } + if (V.arcologies[0].FSSlimnessEnthusiast < 0) { + FutureSocieties.remove("FSSlimnessEnthusiast"); + if (V.assistant.fsAppearance === "slimness enthusiast") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSSlimnessEnthusiast > V.arcologies[0].FSSlimnessEnthusiastDecoration) { + V.arcologies[0].FSSlimnessEnthusiast = V.arcologies[0].FSSlimnessEnthusiastDecoration; + } + if (V.arcologies[0].FSSlimnessEnthusiastDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSSlimnessEnthusiast === V.arcologies[0].FSSlimnessEnthusiastDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSSlimnessEnthusiastSMR === 1) { + V.arcologies[0].FSSlimnessEnthusiast += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSAssetExpansionist !== "unset") { + if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that all tits and asses should be bigger.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the idea that all tits and asses should be bigger.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that all tits and asses should be bigger.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that all tits and asses should be bigger.`); + } + if (V.arcologies[0].FSAssetExpansionist < 0) { + FutureSocieties.remove("FSAssetExpansionist"); + if (V.assistant.fsAppearance === "asset expansionist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSAssetExpansionist > V.arcologies[0].FSAssetExpansionistDecoration) { + V.arcologies[0].FSAssetExpansionist = V.arcologies[0].FSAssetExpansionistDecoration; + } + if (V.arcologies[0].FSAssetExpansionistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSAssetExpansionist === V.arcologies[0].FSAssetExpansionistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSAssetExpansionistSMR === 1) { + V.arcologies[0].FSAssetExpansionist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSPastoralist !== "unset") { + if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that slaves should be milked.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the idea that slaves should be milked.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that slaves should be milked.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that slaves should be milked.`); + } + if (V.arcologies[0].FSPastoralist < 0) { + FutureSocieties.remove("FSPastoralist"); + if (V.assistant.fsAppearance === "pastoralist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSPastoralist > V.arcologies[0].FSPastoralistDecoration) { + V.arcologies[0].FSPastoralist = V.arcologies[0].FSPastoralistDecoration; + } + if (V.arcologies[0].FSPastoralistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSPastoralist === V.arcologies[0].FSPastoralistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSPastoralistSMR === 1) { + V.arcologies[0].FSPastoralist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSPhysicalIdealist !== "unset") { + if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that all slaves should be tall and strong.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the idea that all slaves should be tall and strong.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that all slaves should be tall and strong.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that all slaves should be tall and strong.`); + } + if (V.arcologies[0].FSPhysicalIdealist < 0) { + FutureSocieties.remove("FSPhysicalIdealist"); + if (V.assistant.fsAppearance === "physical idealist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSPhysicalIdealist > V.arcologies[0].FSPhysicalIdealistDecoration) { + V.arcologies[0].FSPhysicalIdealist = V.arcologies[0].FSPhysicalIdealistDecoration; + } + if (V.arcologies[0].FSPhysicalIdealistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSPhysicalIdealist === V.arcologies[0].FSPhysicalIdealistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSPhysicalIdealistSMR === 1) { + V.arcologies[0].FSPhysicalIdealist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSHedonisticDecadence !== "unset") { + if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that all slaves should be soft and laid-back.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with the idea that all slaves should be soft and laid-back.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to the idea that all slaves should be soft and laid-back.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced that all slaves should be soft and laid-back.`); + } + if (V.arcologies[0].FSHedonisticDecadence < 0) { + FutureSocieties.remove("FSHedonisticDecadence"); + if (V.assistant.fsAppearance === "hedonistic decadence") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSHedonisticDecadence > V.arcologies[0].FSHedonisticDecadenceDecoration) { + V.arcologies[0].FSHedonisticDecadence = V.arcologies[0].FSHedonisticDecadenceDecoration; + } + if (V.arcologies[0].FSHedonisticDecadenceDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSHedonisticDecadence === V.arcologies[0].FSHedonisticDecadenceDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSHedonisticDecadenceSMR === 1) { + V.arcologies[0].FSHedonisticDecadence += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSChattelReligionist !== "unset") { + if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly in a version of religion that emphasizes slaveholding traditions.`); + V.independenceDay = 1; + V.nicaea.announceable = 1; + } else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with a version of religion that emphasizes slaveholding traditions.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to a version of religion that emphasizes slaveholding traditions.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of a version of religion that emphasizes slaveholding traditions.`); + } + if (V.arcologies[0].FSChattelReligionist < 0) { + FutureSocieties.remove("FSChattelReligionist"); + if (V.assistant.fsAppearance === "chattel religionist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSChattelReligionist > V.arcologies[0].FSChattelReligionistDecoration) { + V.arcologies[0].FSChattelReligionist = V.arcologies[0].FSChattelReligionistDecoration; + } + if (V.arcologies[0].FSChattelReligionistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSChattelReligionist === V.arcologies[0].FSChattelReligionistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSChattelReligionistSMR === 1) { + V.arcologies[0].FSChattelReligionist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSRomanRevivalist !== "unset") { + if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that it is the new Rome.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your project to build a new Rome.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your project to build a new Rome.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your project to build a new Rome.`); + } + if (V.arcologies[0].FSRomanRevivalist < 0) { + FutureSocieties.remove("FSRomanRevivalist"); + if (V.assistant.fsAppearance === "roman revivalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSRomanRevivalist > V.arcologies[0].FSRomanRevivalistDecoration) { + V.arcologies[0].FSRomanRevivalist = V.arcologies[0].FSRomanRevivalistDecoration; + } + if (V.arcologies[0].FSRomanRevivalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSRomanRevivalist === V.arcologies[0].FSRomanRevivalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSRomanRevivalistSMR === 1) { + V.arcologies[0].FSRomanRevivalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSNeoImperialist !== "unset") { + if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that your arcology is a truly new Imperial Society.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your project to build a new Imperial Society.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your project to build a new Imperial Society.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your project to build a new Imperial Society.`); + } + if (V.arcologies[0].FSNeoImperialist < 0) { + FutureSocieties.remove("FSNeoImperialist"); + if (V.assistant.fsAppearance === "neo imperialist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSNeoImperialist > V.arcologies[0].FSNeoImperialistDecoration) { + V.arcologies[0].FSNeoImperialist = V.arcologies[0].FSNeoImperialistDecoration; + } + if (V.arcologies[0].FSNeoImperialistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSNeoImperialist === V.arcologies[0].FSNeoImperialistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSNeoImperialistSMR === 1) { + V.arcologies[0].FSNeoImperialist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSAztecRevivalist !== "unset") { + if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that it is the new Aztec Empire.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your project to build a new Aztec Empire.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your project to build a new Aztec Empire.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your project to build a new Aztec Empire.`); + } + if (V.arcologies[0].FSAztecRevivalist < 0) { + FutureSocieties.remove("FSAztecRevivalist"); + if (V.assistant.fsAppearance === "aztec revivalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSAztecRevivalist > V.arcologies[0].FSAztecRevivalistDecoration) { + V.arcologies[0].FSAztecRevivalist = V.arcologies[0].FSAztecRevivalistDecoration; + } + if (V.arcologies[0].FSAztecRevivalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSAztecRevivalist === V.arcologies[0].FSAztecRevivalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSAztecRevivalistSMR === 1) { + V.arcologies[0].FSAztecRevivalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSEgyptianRevivalist !== "unset") { + if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that it is the land of the Pharaohs, reborn.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your project to build a new land of the Pharaohs.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your project to build a new land of the Pharaohs.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your project to build a new land of the Pharaohs.`); + } + if (V.arcologies[0].FSEgyptianRevivalist < 0) { + FutureSocieties.remove("FSEgyptianRevivalist"); + if (V.assistant.fsAppearance === "egyptian revivalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSEgyptianRevivalist > V.arcologies[0].FSEgyptianRevivalistDecoration) { + V.arcologies[0].FSEgyptianRevivalist = V.arcologies[0].FSEgyptianRevivalistDecoration; + } + if (V.arcologies[0].FSEgyptianRevivalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSEgyptianRevivalist === V.arcologies[0].FSEgyptianRevivalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSEgyptianRevivalistSMR === 1) { + V.arcologies[0].FSEgyptianRevivalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSEdoRevivalist !== "unset") { + if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that it is the land of the Shogun, reborn.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your project to build a new Edo Japan.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your project to build a new Edo Japan.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your project to build a new Edo Japan.`); + } + if (V.arcologies[0].FSEdoRevivalist < 0) { + FutureSocieties.remove("FSEdoRevivalist"); + if (V.assistant.fsAppearance === "edo revivalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSEdoRevivalist > V.arcologies[0].FSEdoRevivalistDecoration) { + V.arcologies[0].FSEdoRevivalist = V.arcologies[0].FSEdoRevivalistDecoration; + } + if (V.arcologies[0].FSEdoRevivalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSEdoRevivalist === V.arcologies[0].FSEdoRevivalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSEdoRevivalistSMR === 1) { + V.arcologies[0].FSEdoRevivalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSArabianRevivalist !== "unset") { + if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that it is ancient Baghdad reborn.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your project to build a new Sultanate.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your project to build a new Sultanate.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your project to build a new Sultanate.`); + } + if (V.arcologies[0].FSArabianRevivalist < 0) { + FutureSocieties.remove("FSArabianRevivalist"); + if (V.assistant.fsAppearance === "arabian revivalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSArabianRevivalist > V.arcologies[0].FSArabianRevivalistDecoration) { + V.arcologies[0].FSArabianRevivalist = V.arcologies[0].FSArabianRevivalistDecoration; + } + if (V.arcologies[0].FSArabianRevivalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSArabianRevivalist === V.arcologies[0].FSArabianRevivalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSArabianRevivalistSMR === 1) { + V.arcologies[0].FSArabianRevivalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + if (V.arcologies[0].FSChineseRevivalist !== "unset") { + if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel) { + r.push(`${V.arcologies[0].name} believes implicitly that you possess the Mandate of Heaven.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.6) { + r.push(`${V.arcologies[0].name} agrees strongly with your pursuit of the Mandate of Heaven.`); + V.independenceDay = 1; + } else if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.3) { + r.push(`${V.arcologies[0].name} is sympathetic to your pursuit of the Mandate of Heaven.`); + } else { + r.push(`${V.arcologies[0].name} is unconvinced of the wisdom of your pursuit of the Mandate of Heaven.`); + } + if (V.arcologies[0].FSChineseRevivalist < 0) { + FutureSocieties.remove("FSChineseRevivalist"); + if (V.assistant.fsAppearance === "chinese revivalist") { + V.assistant.fsAppearance = "default"; + } + r.push(`<span class="red">Your future society project has failed:</span> your citizens were repelled from your idea more than they were attracted to it. <span class="yellow">You may select another option, or elect to try again.</span>`); + } else if (V.arcologies[0].FSChineseRevivalist > V.arcologies[0].FSChineseRevivalistDecoration) { + V.arcologies[0].FSChineseRevivalist = V.arcologies[0].FSChineseRevivalistDecoration; + } + if (V.arcologies[0].FSChineseRevivalistDecoration < V.FSLockinLevel) { + if (V.arcologies[0].FSChineseRevivalist === V.arcologies[0].FSChineseRevivalistDecoration) { + r.push(`<span class="yellow">Your societal development in this direction is being limited by ${V.arcologies[0].name}'s lack of customization to support it.</span>`); + V.FSReminder = 1; + } else if (V.arcologies[0].FSChineseRevivalistSMR === 1) { + V.arcologies[0].FSChineseRevivalist += 0.1 * V.FSSingleSlaveRep; + } + } + } + + App.UI.SlaveSummary.societyChanged(); + App.Events.addNode(el, r, "div"); + return el; +}; diff --git a/src/endWeek/economics/marketsReport.js b/src/endWeek/economics/marketsReport.js new file mode 100644 index 0000000000000000000000000000000000000000..be035ec43284f1fa7653ce3726d40df9400fee92 --- /dev/null +++ b/src/endWeek/economics/marketsReport.js @@ -0,0 +1,128 @@ +/** + * @returns {HTMLElement} + */ +App.EndWeek.marketsReport = function() { + const el = document.createElement("p"); + App.UI.DOM.appendNewElement("span", el, "FC Markets Report: ", "note"); + + const assetAffected = either("capture", "drugs", "entrapment", "general", "slaves", "surgical", "training"); + const assetsUp = (random(1, 100) > 50); + let desc = ""; + + switch (assetAffected) { + case "general": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...rising energy costs drove <span class="yellowgreen">rising prices</span> of several market baskets...`; + } else { + desc = `...conflict-driven increases in transportation costs increase <span class="yellowgreen">price indices</span>...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...increasing Free Cities slave labor effects <span class="gold">general prices</span>...`; + } else { + desc = `...Antarctic oil shale pushing down energy prices, driving down major <span class="gold">price indices</span>...`; + } + } + break; + } + case "slaves": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...heavy demand for fashionable varieties drove <span class="yellowgreen">rising slave prices</span> last...`; + } else { + desc = `...study suggested the sexual revolution would continue to drive up <span class="yellowgreen">slave prices</span>...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...increased supply due to bush wars drove down <span class="gold">slave prices</span>...`; + } else { + desc = `...<span class="gold">slave prices</span> continue to fall due to major improvements in training...`; + } + } + break; + } + case "entrapment": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...prospect of deregulation drove a <span class="yellowgreen">scramble</span> for means of enslavement...`; + } else { + desc = `...law would legalize enslavement, driving <span class="yellowgreen">high prices</span> for associated...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...reactionism produced lower demand and <span class="gold">lower prices</span> for legal enslavement...`; + } else { + desc = `...report on low success rates <span class="gold">drove down</span> value of legal enslavement methods...`; + } + } + break; + } + case "capture": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...declaration of war <span class="yellowgreen">pushed up</span> average mercenary wage...`; + } else { + desc = `...advancing technology to blame for <span class="yellowgreen">rising costs</span> of assets for wet work...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...rumored peace treaty <span class="gold">pushed down</span> mercenary contract clearing rate...`; + } else { + desc = `...demobilization of the cash-strapped army expected to produce mercenary <span class="gold">glut</span>...`; + } + } + break; + } + case "training": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...rising demand in turn <span class="yellowgreen">pushing up</span> prices for most means of slave training...`; + } else { + desc = `...public demand for ever-better slave training inevitably <span class="yellowgreen">increase</span> training costs...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...competition from low-cost slave breaking firms <span class="gold">reducing</span> asking price for...`; + } else { + desc = `...increased automation of slave training <span class="gold">negatively impacting</span> training contracts...`; + } + } + break; + } + case "surgical": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...fashionable extravagant implant procedures <span class="yellowgreen">driving prices</span> of remote surgical...`; + } else { + desc = `...near-universal breast implants producing corresponding <span class="yellowgreen">price inflation</span> of surgery...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...vastly reduced overhead with remote surgery <span class="gold">hitting prices</span> of surgery hard...`; + } else { + desc = `...oversupply after major manufacturers converted lines to <span class="gold">low-cost</span> implant production...`; + } + } + break; + } + case "drugs": { + if (assetsUp) { + if (random(1, 100) > 50) { + desc = `...intense demand for curatives in conflict zones <span class="yellowgreen">increasing prices</span>...`; + } else { + desc = `...setbacks in growth hormone human testing expected to <span class="yellowgreen">increase prices</span> of traditional formula...`; + } + } else { + if (random(1, 100) > 50) { + desc = `...new formula <span class="gold">cut costs</span> of common curatives by an unprecedented...`; + } else { + desc = `...glut caused by big pharma reorienting towards <span class="gold">cheap,</span> mass-produced aphros...`; + } + } + break; + } + } + $(el).append(desc); + return el; +}; diff --git a/src/endWeek/economics/personalNotes.js b/src/endWeek/economics/personalNotes.js index b14c662e194f287f47bdf8a12b57737909319032..0618688c401df95e1ac7c7032b285846399db795 100644 --- a/src/endWeek/economics/personalNotes.js +++ b/src/endWeek/economics/personalNotes.js @@ -211,7 +211,7 @@ App.EndWeek.personalNotes = function() { } } else if (V.PC.boobs >= 800) { if (random(1, 100) > 75) { - r.push(`Your breasts have <span class="lime">grown a bit larger</span> to feed your coming ${(V.PC.pregType === 1) ? `child`:`children`}.`); + r.push(`Your breasts have <span class="lime">grown a bit larger</span> to feed your coming ${(V.PC.pregType === 1) ? `child` : `children`}.`); V.PC.boobs += 25; if (V.PC.boobs >= 1000) { r.push(`You popped your bra when you put it on; <span class="lime">time to order some F-cups.</span>`); @@ -219,7 +219,7 @@ App.EndWeek.personalNotes = function() { } } else if (V.PC.boobs >= 650) { if (random(1, 100) > 80) { - r.push(`Your breasts have <span class="lime">grown a bit larger</span> to feed your coming ${(V.PC.pregType === 1) ? `child`:`children`}.`); + r.push(`Your breasts have <span class="lime">grown a bit larger</span> to feed your coming ${(V.PC.pregType === 1) ? `child` : `children`}.`); V.PC.boobs += 25; if (V.PC.boobs >= 800) { r.push(`Their prominence, and a quick measuring, reveals <span class="lime">you now sport DDs.</span>`); @@ -227,7 +227,7 @@ App.EndWeek.personalNotes = function() { } } else if (V.PC.boobs >= 500) { if (random(1, 100) > 80) { - r.push(`Your breasts have <span class="lime">grown a bit larger</span> to feed your coming ${(V.PC.pregType === 1) ? `child`:`children`}.`); + r.push(`Your breasts have <span class="lime">grown a bit larger</span> to feed your coming ${(V.PC.pregType === 1) ? `child` : `children`}.`); V.PC.boobs += 25; if (V.PC.boobs >= 650) { r.push(`They're big, sensitive, <span class="lime">and now a D-cup.</span>`); diff --git a/src/endWeek/economics/reputation.js b/src/endWeek/economics/reputation.js index 49a05a566a65c6ed2a0f16ce8432ef85193a9642..c7c614a887cce4e82f93e8b2fac989fa7cb60a22 100644 --- a/src/endWeek/economics/reputation.js +++ b/src/endWeek/economics/reputation.js @@ -899,13 +899,13 @@ App.EndWeek.reputation = function() { if (V.rep > 20000) { r.push(`Your reputation is capped.`); - } else if (V.rep-V.enduringRep > 7500) { + } else if (V.rep - V.enduringRep > 7500) { r.push(`Your base rate of reputation decay is very high.`); - } else if (V.rep-V.enduringRep > 5000) { + } else if (V.rep - V.enduringRep > 5000) { r.push(`Your base rate of reputation decay is high.`); - } else if (V.rep-V.enduringRep > 2500) { + } else if (V.rep - V.enduringRep > 2500) { r.push(`Your base rate of reputation decay is moderate.`); - } else if (V.rep-V.enduringRep > 0) { + } else if (V.rep - V.enduringRep > 0) { r.push(`Your base rate of reputation decay is low.`); } if (V.enduringRep >= 10000) { diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js index 44f9f2827b189dd53b4cc11354ac60b08fcbd0f2..fafd7a77f55c5b2dc8eccb0a8418731f141d943f 100644 --- a/src/endWeek/saLongTermMentalEffects.js +++ b/src/endWeek/saLongTermMentalEffects.js @@ -409,12 +409,7 @@ App.SlaveAssignment.longTermMentalEffects = (function() { if (!hasAnyArms(slave)) { t.push(`face between`); } else { - if (hasBothArms(slave)) { - t.push(`hands`); - } else { - t.push(`hand`); - } - t.push(`on`); + t.push(`${(hasBothArms(slave)) ? `hands` : `hand`} on`); } t.push(`her breasts. ${He}'s now <span class="positive">more aroused by women.</span>`); } diff --git a/src/endWeek/saRules.js b/src/endWeek/saRules.js index ee970e4645556a04413e51090bf09f0ce367a2f8..0b325131f894578811cd9dab3baee08ced124b1b 100644 --- a/src/endWeek/saRules.js +++ b/src/endWeek/saRules.js @@ -14,6 +14,7 @@ App.SlaveAssignment.rules = function(slave) { He, His, he, his, him, himself, girl, wife } = getPronouns(slave); + const hands = (hasBothArms(slave)) ? `hands` : `hand`; let wife2; let milkResult; let wardenFunTimes; @@ -638,7 +639,7 @@ App.SlaveAssignment.rules = function(slave) { if (!hasAnyArms(slave)) { r.push(`imagination`); } else { - r.push(`${(hasBothArms(slave)) ? `hands` : `hand`}.`); + r.push(`${hands}.`); } r.push(`and toys, but <span class="mediumaquamarine">understands you care about ${his} current health.</span>`); slave.trust += 1; @@ -1029,7 +1030,7 @@ App.SlaveAssignment.rules = function(slave) { if (!hasAnyArms(slave)) { r.push(`figurative`); } - r.push(`${(hasBothArms(slave)) ? `hands` : `hand`}.`); + r.push(`${hands}.`); slave.devotion += 1; slave.trust += 1; r.push(`${He} finds plenty of time to relax between ${his} duties, or during them, should ${his} company be requested.`); @@ -1234,7 +1235,7 @@ App.SlaveAssignment.rules = function(slave) { if (!hasAnyArms(slave)) { r.push(`figurative`); } - r.push(`${(hasBothArms(slave)) ? `hands` : `hand`}.`); + r.push(`${hands}.`); slave.devotion += 1; slave.trust += 1; @@ -1428,7 +1429,7 @@ App.SlaveAssignment.rules = function(slave) { if (!hasAnyArms(slave)) { r.push(`figurative`); } - r.push(`${(hasBothArms(slave)) ? `hands` : `hand`}. It also helps to offset the tiring nature of ${his} position.`); + r.push(`${hands}. It also helps to offset the tiring nature of ${his} position.`); slave.devotion += 1; slave.trust += 1; diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js index 3dd3ed3f4cd02b4efb8478aca1fac259f2041472..edac378504491aeea46d2c40ef881a5ee8f134b8 100644 --- a/src/endWeek/saServeYourOtherSlaves.js +++ b/src/endWeek/saServeYourOtherSlaves.js @@ -231,6 +231,11 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { } else if (!canMove(slave)) { r.push(`Since ${he}'s completely immobile, ${he}'s especially vulnerable.`); } + // week-end reassignment (returning to previous job) can fuck up the subslave count if she's the only one...normally this should never happen + if (App.EndWeek.saVars.subSlaveRatio === 0) { + r.push(`${He}'s just returning to ${his} job, so ${he} doesn't get much action this week.`); + return; + } const subSlaves = App.EndWeek.saVars.subSlaveMap.get(0) || []; if ((V.dormitoryPopulation + V.roomsPopulation - subSlaves.length) > 5) { const load = App.EndWeek.saVars.subSlaveRatio; @@ -1448,7 +1453,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { if (slave.fetishStrength < 100) { slave.fetishStrength++; } - } else if (fetishChange > jsRandom(0, 100) && slave.fetish !== "masochist" && slave.fetish !== "submissive" && App.EndWeek.saVars.subSlaveRatio <= 0.8) { + } else if (fetishChange > jsRandom(0, 100) && slave.fetish !== "masochist" && slave.fetish !== "submissive" && between(App.EndWeek.saVars.subSlaveRatio, 0, 0.8)) { r.push(`Being used as much as ${he} is starts to take a toll on ${him} sexuality; <span class="lightcoral">${he} begins to enjoy being your chattel's fucktoy.</span>`); slave.fetish = "submissive"; slave.fetishStrength = 65; diff --git a/src/events/RESS/devotedVirgin.js b/src/events/RESS/devotedVirgin.js index df6c6ac84471e9d4bd5257626484e8ebff2b48b5..1d51bc5697940b2e1efe4cda355c4695238348c2 100644 --- a/src/events/RESS/devotedVirgin.js +++ b/src/events/RESS/devotedVirgin.js @@ -45,7 +45,7 @@ App.Events.RESSDevotedVirgin = class RESSDevotedVirgin extends App.Events.BaseEv } else { t.push(Spoken(eventSlave, "Learning about so many of the other slaves getting fucked makes it seem like so much fun.")); } - t.push(Spoken(eventSlave, `"I'm so turned on by it. I can't be a proper sex slave without using my pussy. Please take my virginity, ${Master}."`)); + t.push(Spoken(eventSlave, `I'm so turned on by it. I can't be a proper sex slave without using my pussy. Please take my virginity, ${Master}."`)); } else { t.push(`${He} points to ${his} pussy and comically pantomimes having sex, and then uses gestures to ask if ${he} can serve you with ${his} pussy.`); } diff --git a/src/events/RESS/lazyEvening.js b/src/events/RESS/lazyEvening.js index 49e046dca051f738dc75f450afbca905fbde290b..283c49dd12cab7be2ffed19dfae870259cfce0f6 100644 --- a/src/events/RESS/lazyEvening.js +++ b/src/events/RESS/lazyEvening.js @@ -126,7 +126,7 @@ App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent if (eventSlave.belly >= 5000) { t.push(`Between the two, there is little ${he} can do to cover ${his} exposed ${eventSlave.bellyPreg >= 3000 ? "pregnancy" : "middle"}.`); } - t.push(`${He}'s the perfect picture of an attentive little old world ${girl}friend ${eventSlave.height > 185 ? ` (though, of course, ${he}'s anything but physically small)` : ""}.`); + t.push(`${He}'s the perfect picture of an attentive little old world ${girl}friend${eventSlave.height > 185 ? ` (though, of course, ${he}'s anything but physically small)` : ""}.`); } App.Events.addParagraph(node, t); diff --git a/src/events/intro/customizeSlaveTrade/customizeSlaveTrade.js b/src/events/intro/customizeSlaveTrade/customizeSlaveTrade.js index b2fcabbea86d509fdb0efefedfdc056abd092574..0967be7a4b4b1133c861aacc63f97111be11fee2 100644 --- a/src/events/intro/customizeSlaveTrade/customizeSlaveTrade.js +++ b/src/events/intro/customizeSlaveTrade/customizeSlaveTrade.js @@ -372,7 +372,7 @@ App.UI.CustomSlaveTrade = function() { App.UI.DOM.link( name, () => { - V.nationalities = nationalities; + V.nationalities = clone(nationalities); refresh(); } ) diff --git a/src/events/scheduled/pitFight.js b/src/events/scheduled/pitFight.js index 11d4d6c97ac427d44e31250200984ade74f304d2..c2beeb04f384f153ea884c08f5c8372863c4af37 100644 --- a/src/events/scheduled/pitFight.js +++ b/src/events/scheduled/pitFight.js @@ -2,7 +2,7 @@ App.Facilities.Pit.fight = function(lethal) { const frag = new DocumentFragment(); /** @type {number[]} */ - const available = Array.from(V.pit.fighterIDs); + const available = [...new Set(V.pit.fighterIDs)]; /** @type {number[]} */ const fighters = []; @@ -40,7 +40,7 @@ App.Facilities.Pit.fight = function(lethal) { ); if (V.debugMode) { - console.log(`Fighters:\n${fighters}`); + console.log(`Available:\n${available}\nFighters:\n${fighters}`); } return frag; diff --git a/src/events/scheduled/pitFightLethal.js b/src/events/scheduled/pitFightLethal.js index b97489ea2faa7981b6593a0c0101efdc532a24c0..3fc8d9ca1f5fc0d217f0d7046bb76041aeaa2df1 100644 --- a/src/events/scheduled/pitFightLethal.js +++ b/src/events/scheduled/pitFightLethal.js @@ -27,6 +27,8 @@ App.Facilities.Pit.fight.lethal = function(fighters) { postFight(), ); + V.pit.slaveFightingBodyguard = null; + return frag; @@ -801,16 +803,15 @@ App.Facilities.Pit.fight.lethal = function(fighters) { winner.counter.pitKills++; winner.counter.pitWins++; - - if (!V.pit.bodyguardFights || S.Bodyguard.ID !== winner.ID) { - V.pit.fighterIDs.push(winner.ID); - } } V.pitKillsTotal++; V.pitFightsTotal++; - loser.hasOwnProperty('slaveName') ? removeSlave(loser) : null; + if (loser.hasOwnProperty('slaveName')) { + V.pit.fighterIDs.delete(loser.ID); + removeSlave(loser); + } App.Events.addNode(postFightDiv, r); diff --git a/src/events/scheduled/pitFightNonlethal.js b/src/events/scheduled/pitFightNonlethal.js index e303e2bb5594d26f852934a69d8d44561747072c..b6edb5839226d694701135da0833adb8ab221627 100644 --- a/src/events/scheduled/pitFightNonlethal.js +++ b/src/events/scheduled/pitFightNonlethal.js @@ -664,10 +664,6 @@ App.Facilities.Pit.fight.nonlethal = function(fighters) { r.push(`It ${animal.type === "hooved" ? `headbutts ${him}` : `swipes at ${his} ${hasAnyLegs(slave) ? hasBothLegs(slave) ? `legs` : `leg` : `lower body`}`}, causing ${him} to go down hard. The ${animal.name} doesn't waste a moment, and mounts ${him} quicker than you thought was possible${animal.type === "hooved" ? ` for ${animal.articleAn} ${animal.name}` : ``}. It takes a few tries, but it finally manages to sink its ${animal.dick.desc} cock into ${slave.slaveName}'s ${orifice()}, causing${V.pit.audience !== 'none' ? ` the crowd to go wild and` : ``} the slave to give a long, loud, drawn-out ${approves ? `moan` : `scream`} as its ${animal.dick.desc} dick `, (canDoVaginal(slave) && slave.vagina === 0) || (canDoAnal(slave) && slave.anus === 0) ? consummation : `fills`, `${his} ${orifice()}. Without pausing for even a second, it begins to steadily thrust, pounding ${him} harder and harder as it gets closer and closer to climax. After several minutes, you see the animal ${animal.type === "canine" ? `push its knot into ${slave.slaveName}'s ${orifice()} and` : ``} finally stop thrusting while the barely-there slave gives a loud ${approves ? `moan` : `groan`}. ${V.pit.audience !== "none" ? `The crowd gives a loud cheer as the` : `The`} animal pulls out, leaving the thoroughly fucked-out ${slave.slaveName} lying there, ${animal.species} cum streaming out of ${his} ${orifice()}.`); - if (!V.pit.bodyguardFights || V.BodyguardID !== slave.ID) { - V.pit.fighterIDs.push(slave.ID); - } - // FIXME: not working correctly slave.vagina = slave.vagina < animal.dick.size - 1 ? animal.dick.size - 1 : slave.vagina; } @@ -985,13 +981,6 @@ App.Facilities.Pit.fight.nonlethal = function(fighters) { loser.counter.pitLosses++; actX(winner, "penetrative"); - if (!V.pit.bodyguardFights || V.BodyguardID !== winner.ID) { - V.pit.fighterIDs.push(winner.ID); - } - if (!V.pit.bodyguardFights || V.BodyguardID !== loser.ID) { - V.pit.fighterIDs.push(loser.ID); - } - winner.counter.pitWins++; } diff --git a/src/facilities/pit/pit.js b/src/facilities/pit/pit.js index 4da800a9faad71e18a2db756fc433c858d5518f6..bfc8fa414b636dc6a5cd5b0b5471df74be802cd4 100644 --- a/src/facilities/pit/pit.js +++ b/src/facilities/pit/pit.js @@ -383,7 +383,7 @@ App.Facilities.Pit.pit = function() { const scheduledDiv = document.createElement("div"); const linkSpan = document.createElement("span"); - scheduledDiv.append(`You have scheduled one of your slaves to fight to the death this week. `, linkSpan); + scheduledDiv.append(`You have scheduled ${getSlave(V.pit.slaveFightingBodyguard).slaveName} to fight your bodyguard to the death this week. `, linkSpan); linkSpan.append(App.UI.DOM.link("Cancel it", () => { V.pit.slaveFightingBodyguard = null; diff --git a/src/gui/quicklinks.js b/src/gui/quicklinks.js index 7a93021fc31a8ec85a63a775fe4793601a291053..e265483613cdf5f3ade5447aeab1663551ebd113 100644 --- a/src/gui/quicklinks.js +++ b/src/gui/quicklinks.js @@ -114,6 +114,7 @@ App.UI.quickMenu = (function() { "Servants' Quarters": () => !V.servantsQuarters, Spa: () => !V.spa, "The Black Market": () => V.rep < 10000, + "weaponsManufacturing": () => true, }); // show different names than the actual passage name, can be a function diff --git a/src/interaction/killSlave.js b/src/interaction/killSlave.js index 881d0179bb4ceb3400a880b0eaaf43cedb491657..27b4644cc7c7fe4010cea37238ada264d668b725 100644 --- a/src/interaction/killSlave.js +++ b/src/interaction/killSlave.js @@ -138,6 +138,10 @@ App.UI.SlaveInteract.killSlave = function(slave) { }), ); + if (V.pit.slaveFightingBodyguard) { + disableReasons.push(`You already have a slave fighting your bodyguard this week.`); + } + if (slave.fuckdoll) { disableReasons.push(`Fuckdolls cannot properly fight.`); } @@ -223,6 +227,7 @@ App.UI.SlaveInteract.killSlave = function(slave) { } V.pit.slaveFightingBodyguard = slave.ID; + V.pit.lethal = true; V.pit.animal = null; return combatDiv; diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js index 7c308cbc41f0c099a4d2bbb29cb9252f8925d5e9..512c0f0950ba6da3dfea24604f229c5314722932 100644 --- a/src/interaction/main/walkPast.js +++ b/src/interaction/main/walkPast.js @@ -9298,6 +9298,8 @@ globalThis.walkPast = (function() { } } + t += ` `; + return t; } diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js index c6639b6d0dbfd5bce96287efc11c7e57af0fa1e1..212e9128d9acc433718dac356a44ba3cd97b16cf 100644 --- a/src/js/birth/birth.js +++ b/src/js/birth/birth.js @@ -46,6 +46,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) He, His, he, his, him, himself, wife, girl } = getPronouns(slave); + const hands = (hasBothArms(slave)) ? "hands" : "hand"; if (V.seeImages && V.seeReportImages) { App.UI.DOM.appendNewElement("div", el, App.Art.SlaveArtElement(slave, 2), ["imageRef", "medImg"]); } @@ -2196,13 +2197,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) if (random(1, 20) > suddenBirth) { r.push(`${He} is helped back to ${his} bed and stripped before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`across the still huge dome of ${his} middle; to`); + r.push(`${He} runs ${his} ${hands} across the still huge dome of ${his} middle; to`); } else { r.push(`To`); } @@ -2226,13 +2221,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) if (random(1, 20) > suddenBirth) { r.push(`${He} returns to ${his} bed and strips before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`across the still huge dome of ${his} middle; to`); + r.push(`${He} runs ${his} ${hands} across the still huge dome of ${his} middle; to`); } else { r.push(`To`); } @@ -3866,13 +3855,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) if (random(1, 20) > suddenBirth) { r.push(`${He} is helped back to ${his} bed and stripped before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`across the still huge dome of ${his} middle; to`); + r.push(`${He} runs ${his} ${hands} across the still huge dome of ${his} middle; to`); } else { r.push(`To`); } @@ -3896,13 +3879,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) if (random(1, 20) > suddenBirth) { r.push(`${He} returns to ${his} bed and strips before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`across the still huge dome of ${his} middle; to`); + r.push(`${He} runs ${his} ${hands} across the still huge dome of ${his} middle; to`); } else { r.push(`To`); } @@ -3930,13 +3907,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) if (random(1, 20) > suddenBirth) { r.push(`${He} is helped back to ${his} bed and stripped before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`across the still huge dome of ${his} middle; to`); + r.push(`${He} runs ${his} ${hands} across the still huge dome of ${his} middle; to`); } else { r.push(`To`); } @@ -3982,13 +3953,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {}) if (random(1, 20) > suddenBirth) { r.push(`${He} returns to ${his} bed and strips before slipping into it. Instinctively, ${he} begins to push out ${firstText} baby. ${His} child is promptly taken and ${he} is encouraged to keep resting.`); if (hasAnyArms(slave)) { - r.push(`${He} runs ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`across the still huge dome of ${his} middle; to`); + r.push(`${He} runs ${his} ${hands} across the still huge dome of ${his} middle; to`); } else { r.push(`To`); } diff --git a/src/js/sexActsJS.js b/src/js/sexActsJS.js index d2f3bc093ceb79ba0ced6d707df837e4c486f860..b0b2ba35957b642d2450482f83ab0c80b98a5358 100644 --- a/src/js/sexActsJS.js +++ b/src/js/sexActsJS.js @@ -484,7 +484,7 @@ globalThis.actX = function(slave, act, count = 1) { * @param {string} act1 oral, anal, etc * @param {FC.HumanState | "public" | "slaves"} slave2 slave or PC or "public" * @param {string} act2 oral, anal, etc - * @param {number} count + * @param {number} [count=1] */ globalThis.seX = function(slave1, act1, slave2, act2, count = 1) { // Slave 1 does their normal thing diff --git a/src/js/storyJS.js b/src/js/storyJS.js index fa0f4c1fe063e65bf9f88a8ec3ef1557bcb1966b..b2a89cadc6606761587d14c51aeb082f6324b25a 100644 --- a/src/js/storyJS.js +++ b/src/js/storyJS.js @@ -141,7 +141,7 @@ globalThis.canFemImpreg = function(slave1, slave2) { }; /** - * @param {App.Entity.SlaveState| App.Entity.PlayerState} slave + * @param {App.Entity.SlaveState | App.Entity.PlayerState} slave * @returns {number} */ globalThis.milkAmount = function(slave) { @@ -566,7 +566,7 @@ globalThis.generatePlayerPronouns = function(PC) { } }; -globalThis.printTrinkets = function() { +globalThis.printTrinkets = function() { // TODO: move these out of global scope function trinketPluralReplacer(desc) { let r; switch (desc) { diff --git a/src/neighbor/neighborInteract.js b/src/neighbor/neighborInteract.js index 450494514f0868b38c91c18da9adc09bcfb21343..85b8f77f57046793841670212a2c1d185f0d4033 100644 --- a/src/neighbor/neighborInteract.js +++ b/src/neighbor/neighborInteract.js @@ -101,7 +101,7 @@ App.Neighbor.Interact = (function() { } const div = App.UI.DOM.appendNewElement("div", frag, App.UI.DOM.generateLinksStrip(links)); if (links.length > 1) { - App.UI.DOM.appendNewElement("span", div, "Transaction costs will only be paid once.", "detail"); + App.UI.DOM.appendNewElement("span", div, " Transaction costs will only be paid once.", "detail"); } } diff --git a/src/npc/descriptions/butt/butt.js b/src/npc/descriptions/butt/butt.js index 53cc54a8b2146046838eacc6a9d23706334c7afe..b88c8ab6b7f49026ab457b7f56fe6bb0535550f5 100644 --- a/src/npc/descriptions/butt/butt.js +++ b/src/npc/descriptions/butt/butt.js @@ -10,6 +10,7 @@ App.Desc.butt = function(slave, {market, eventDescription} = {}) { const { he, him, his, girl, He, His } = getPronouns(slave); + const hands = (hasBothArms(slave)) ? "hands" : "hand"; if (V.showClothing === 1 && !market) { if (V.surgeryDescription === 0) { switch (slave.clothes) { @@ -1229,13 +1230,7 @@ App.Desc.butt = function(slave, {market, eventDescription} = {}) { } r.push(`to support them.`); } else if (slave.muscles > 30) { - r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`sunk into ${his} buttcheeks to help take their weight.`); + r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`); } else if (slave.muscles > 5) { r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`); } else { @@ -1275,13 +1270,7 @@ App.Desc.butt = function(slave, {market, eventDescription} = {}) { } r.push(`to support them.`); } else if (slave.muscles > 30) { - r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`sunk into ${his} buttcheeks to help take their weight.`); + r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`); } else if (slave.muscles > 5) { r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`); } else { @@ -1321,13 +1310,7 @@ App.Desc.butt = function(slave, {market, eventDescription} = {}) { } r.push(`to support them.`); } else if (slave.muscles > 30) { - r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his}`); - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } - r.push(`sunk into ${his} buttcheeks to help take their weight.`); + r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`); } else if (slave.muscles > 5) { r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`); } else { diff --git a/src/npc/descriptions/crotch/dick.js b/src/npc/descriptions/crotch/dick.js index 69275681cd968ac69d51e4d69225e11fa66d0906..1ecbe0a4ab7258c9a515acb0c434dc0c9d1a4768 100644 --- a/src/npc/descriptions/crotch/dick.js +++ b/src/npc/descriptions/crotch/dick.js @@ -2185,7 +2185,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) { } r.push(`giving ${his} ejaculations less`); if (slave.anus !== 0) { - r.push(`body and reducing the stimulation ${he} feels during anal sex`); + r.push(`body and reducing the stimulation ${he} feels during anal sex.`); } else { r.push(`body.`); } diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js index 62a5510661294e33ba84fe35a11508c3bd781875..e8454fa374204938fcc005cd70674707a6063407 100644 --- a/src/npc/generate/generateGenetics.js +++ b/src/npc/generate/generateGenetics.js @@ -21,6 +21,7 @@ globalThis.generateGenetics = (function() { * @returns {FC.FetusGenetics} */ function generateGenetics(actor1, actor2, name) { + /** @type {FC.FetusGenetics} */ const genes = { gender: /** @type {FC.GenderGenes} */ ("XX"), name: "blank", @@ -1192,7 +1193,6 @@ globalThis.generateGenetics = (function() { })(); - /** * Creates a new child object based on its mother and father and whether or not it is destined for the Incubator * @param {App.Entity.SlaveState} mother The slave object carrying the child source diff --git a/src/npc/generate/newChildIntro.js b/src/npc/generate/newChildIntro.js index 8b6c5ce5bab1bd5681b08c4a82ad7fb05fab251e..c352d5c1e598c54675ec484d40a51f0e3f18f54e 100644 --- a/src/npc/generate/newChildIntro.js +++ b/src/npc/generate/newChildIntro.js @@ -245,16 +245,16 @@ App.UI.newChildIntro = function(slave) { r = []; r.push(newName); r.push(`now stands before your desk`); - if (tempMom !== 0 && tempDad !== 0 && slave.father !== slave.mother) { + if (tempMom && tempDad && slave.father !== slave.mother) { r.push(`alongside ${his} mother ${tempMom.slaveName} and father ${tempDad.slaveName}.`); - } else if (tempMom !== 0) { + } else if (tempMom) { r.push(`alongside ${his} mother ${tempMom.slaveName}.`); - } else if (tempDad !== 0) { + } else if (tempDad) { r.push(`alongside ${his} father ${tempDad.slaveName}.`); } else { r.push(`alone, having no family${(slave.mother === -1 || slave.father === -1) ? `, other than you,` : ``} in your stock.`); } - if (V.arcologies[0].FSRestartDecoration === 100 && tempMom !== 0) { + if (V.arcologies[0].FSRestartDecoration === 100 && tempMom) { if (tempMom.breedingMark === 1 && V.propOutcome === 1) { r.push(`The Societal Elite are waiting to inspect the child of their eugenics programs.`); if (V.arcologies[0].FSSupremacist > 20 && slave.race !== V.arcologies[0].FSSupremacistRace) { @@ -284,7 +284,7 @@ App.UI.newChildIntro = function(slave) { } } - if (tempMom !== 0) { + if (tempMom) { ({ he2, his2, He2, himself2 } = getPronouns(tempMom).appendSuffix("2")); @@ -425,7 +425,7 @@ App.UI.newChildIntro = function(slave) { } } - if (tempDad !== 0 && slave.father !== slave.mother) { + if (tempDad && slave.father !== slave.mother) { ({ he2, his2, He2 } = getPronouns(tempDad).appendSuffix("2")); @@ -570,14 +570,14 @@ App.UI.newChildIntro = function(slave) { r = []; - if (tempMom !== 0 && tempDad !== 0 && slave.father !== slave.mother) { + if (tempMom && tempDad && slave.father !== slave.mother) { r.push(`You dismiss ${tempMom.slaveName} and ${tempDad.slaveName} so that you may conduct a more intimate inspection of their ${daughter}.`); - } else if (tempMom !== 0) { + } else if (tempMom) { ({ he2, his2, He2 } = getPronouns(tempMom).appendSuffix("2")); r.push(`You dismiss ${tempMom.slaveName} so that you may conduct a more intimate inspection of ${his2} ${daughter}.`); - } else if (tempDad !== 0) { + } else if (tempDad) { ({ he2, his2, He2 } = getPronouns(tempDad).appendSuffix("2")); diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index 693c3ae82f69d19d12c7d0ee487ea8abbbf3c3b1..8086c27d61561fffb51554d06ba251b686f22963 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -14,6 +14,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = His, He, his, him, he, girl, hers, himself, daughter } = getPronouns(slave); const {woman: womanP} = getPronouns(V.PC); + const hands = (hasBothArms(slave)) ? "hands" : "hand"; const el = new DocumentFragment(); let r; @@ -547,8 +548,8 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = } if (V.arcologies[0].FSIntellectualDependency >= 50) { - if (slave.pregKnown === 1) { - r.push(`${He} realizes that your arcology values bearing children and <span class="mediumaquamarine">hopes</span> ${he}'ll be treated gently for being pregnant.`); + if (slave.intelligence <= -50) { + r.push(`${He} realizes that your arcology values dumb slaves and <span class="mediumaquamarine">hopes</span> ${he}'ll fit in with ${his} low intelligence.`); slave.trust += 2; } } @@ -1317,8 +1318,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = r.push(`sees ${himself}`); } else { if (hasAnyArms(slave)) { - r.push(`tenderly uses ${his} hand${hasBothArms(slave) ? 's' : ''}`); - r.push(`and finds ${himself}`); + r.push(`tenderly uses ${his} ${hands} and finds ${himself}`); } else { r.push(`stoically waits while you vividly describe ${his} new appearance. One`); } @@ -2102,7 +2102,8 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = linkName: `Force-feed ${him}`, result(slave) { const r = []; - r.push(`${He} is much too thin and seems to shirk any offered food, but there is an easy solution to that. If ${he} refuses to eat, ${he} can be made to. Pulling the reluctant slave to the feeders, binding ${him} tightly to a chair, and attaching a hose to the slave food nozzle, you give ${him} a choice; suck the hose willingly or have it forced down ${his} throat. ${He} glares defiantly and keeps ${his} mouth firmly shut. You clamp down on ${his} nose, inevitably forcing ${him} to open ${his} mouth to breath. In that moment, you shove the hose in and down ${his} throat, carefully directing it down into ${his} stomach. ${He} gags as you turn on the flow, ${his} eyes filling with tears as ${he} feels the warm food travel down the tube and into ${his} stomach. ${He} sobs as ${his} belly steadily swells with unwelcome sustenance, ${his} eyes pleading with you, desperate to let you know ${he}'ll be good. You ignore ${him}, letting ${him} fill until ${his} belly is noticeably distended compared to ${his} thin frame. Once you feel ${he} has had enough, you pull the hose from ${his} gut, spraying ${his} face with food in the process, and tell ${him} it will go right back in if ${he} doesn't keep it all down. ${He} <span class="gold">nods fearfully,</span> anything to not go through that again. ${He} hobbles away once freed, one hand covering ${his} retching mouth and the other clasping ${his} <span class="mediumorchid">hated, food bloated middle.</span>`); + r.push(`${He} is much too thin and seems to shirk any offered food, but there is an easy solution to that. If ${he} refuses to eat, ${he} can be made to. Pulling the reluctant slave to the feeders, binding ${him} tightly to a chair, and attaching a hose to the slave food nozzle, you give ${him} a choice; suck the hose willingly or have it forced down ${his} throat. ${He} glares defiantly and keeps ${his} mouth firmly shut. You clamp down on ${his} nose, inevitably forcing ${him} to open ${his} mouth to breath. In that moment, you shove the hose in and down ${his} throat, carefully directing it down into ${his} stomach. ${He} gags as you turn on the flow, ${his} eyes filling with tears as ${he} feels the warm food travel down the tube and into ${his} stomach. ${He} sobs as ${his} belly steadily swells with unwelcome sustenance, ${his} eyes pleading with you, desperate to let you know ${he}'ll be good. You ignore ${him}, letting ${him} fill until ${his} belly is noticeably distended compared to ${his} thin frame. Once you feel ${he} has had enough, you pull the hose from ${his} gut, spraying ${his} face with food in the process, and tell ${him} it will go right back in if ${he} doesn't keep it all down. ${He} <span class="gold">nods fearfully,</span> anything to not go through that again. ${He} hobbles away once freed,`); + r.push(`one hand covering ${his} retching mouth and the other clasping ${his} <span class="mediumorchid">hated, food bloated middle.</span>`); //TODO: revise for hands slave.devotion -= 10; slave.trust -= 10; return r.join(" "); @@ -2740,7 +2741,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = lineBreak(); if (slave.vagina === 0) { choice({ - // TODO tankBorn + // TODO: tankBorn get linkName() { return (tankBorn) ? `Take ${his} virginity` : `Tie ${him} up and take ${his} virginity`; }, result(slave) { const r = []; @@ -3602,7 +3603,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = } r.push(`${He} tries to squirm away from the moist spot growing under ${his} cheek, but you reveal your nipple and carefully direct ${his} mouth over it.`); if (slave.fetish === "pregnancy") { - r.push(`Slowly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure — a wasted effort, as a hand sneaks its way to your`); + r.push(`Slowly ${he} begins to suckle from your swollen breast. You gently brush ${his} head as you try to hold back your pleasure — a wasted effort, as a hand sneaks its way to your`); // TODO: handness if (V.PC.dick !== 0) { r.push(`growing erection and enthusiastically begins pumping away.`); } else { @@ -4069,11 +4070,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`${He}'s not a virgin anywhere, so you'll have to go more extreme to provide a properly introductory level of sexual torture equivalent to defloration. You tie your new slave down on`); if (hasAnyArms(slave)) { - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } + r.push(hands); if (hasAnyLegs(slave)) { r.push(`and`); } @@ -4115,11 +4112,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`${He}'s not an anal virgin, so you'll have to go more extreme to provide an introductory level of sexual torture equivalent to defloration. You tie your new slave down on`); if (hasAnyArms(slave)) { - if (hasBothArms(slave)) { - r.push(`hands`); - } else { - r.push(`hand`); - } + r.push(hands); if (hasAnyLegs(slave)) { r.push(`and`); } @@ -4810,7 +4803,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -4837,7 +4830,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -4871,7 +4864,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -4899,7 +4892,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -5007,7 +5000,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -5167,7 +5160,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -5193,7 +5186,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -5280,7 +5273,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -5307,7 +5300,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } @@ -5333,7 +5326,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = const r = []; r.push(`You escort ${him} to the remote surgery, strap ${him} in, and put ${him} under. When ${he} awakes, ${he} can't `); if (hasAnyArms(slave)) { - r.push(`keep ${his} ${(hasBothArms(slave)) ? `hands` : `hand`} off`); + r.push(`keep ${his} ${hands} off`); } else { r.push(`stop shaking around`); } diff --git a/src/npc/interaction/fAnimal.js b/src/npc/interaction/fAnimal.js index c7968e9983d23431261f778deefb4d82ac47190d..d56550acdb62f5c6634dd54498e340cc30fe5bee 100644 --- a/src/npc/interaction/fAnimal.js +++ b/src/npc/interaction/fAnimal.js @@ -23,10 +23,12 @@ App.Interact.fAnimal = function(slave, type) { const animal = V.active[type]; + const stretches = App.UI.DOM.makeElement("span", `stretches`, ["lime"]); + let fetishDesc; let act; let hole; - let orifice = []; + let orifice; const anAnimal = animal.articleAn ? `an ${animal.name}` : `a ${animal.name}`; @@ -64,14 +66,14 @@ App.Interact.fAnimal = function(slave, type) { switch (act) { case oral: - orifice = ["mouth", "throat"]; + orifice = () => either("mouth", "throat"); break; case vaginal: - orifice = ["pussy", "cunt"]; + orifice = () => either("pussy", "cunt"); hole = 0; break; case anal: - orifice = ["asshole", "rectum"]; + orifice = () => either("asshole", "rectum"); hole = 1; break; default: @@ -129,7 +131,7 @@ App.Interact.fAnimal = function(slave, type) { r.push(`${slave.slaveName} nods ${his} head dumbly, ${his} eyes vacant${!canSee(slave) ? ` as always` : ``}. `); } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); if (slave.fetish !== "mindbroken") { if (slave.devotion > 50) { @@ -297,10 +299,10 @@ App.Interact.fAnimal = function(slave, type) { if (canWalk(slave)) { r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${orifice()}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${orifice()} and begin to hammer away in the way that only canines can. `); } } @@ -312,7 +314,7 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, then gives a groan as the beast thrusts, stretching ${his} poor throat to the limit. `); } } else { - r.push(`${slave.slaveName} gives a long, drawn-out moan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); + r.push(`${slave.slaveName} gives a long, drawn-out moan as the huge phallus `, slave.vagina < 4 ? stretches : `fills`, ` ${his} ${orifice()} nearly to its breaking point. `); } } @@ -324,11 +326,11 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, then gives a groan as the beast thrusts, the barbs on its cock rubbing the inside of ${his} mouth raw. `); } } else { - r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${orifice()}. `); } } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); return mainSpan; } @@ -373,10 +375,10 @@ App.Interact.fAnimal = function(slave, type) { if (canWalk(slave)) { r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${orifice()}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${orifice()} and begin to hammer away in the way that only canines can. `); } } @@ -388,7 +390,7 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); + r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus `, slave.vagina < 4 ? stretches : `fills`, ` ${his} ${orifice()} nearly to its breaking point. `); } } @@ -400,11 +402,11 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s barbed dick fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${orifice()}. `); } } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); return mainSpan; } @@ -449,10 +451,10 @@ App.Interact.fAnimal = function(slave, type) { if (canWalk(slave)) { r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${orifice()}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${orifice()} and begin to hammer away in the way that only canines can. `); } } @@ -464,7 +466,7 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); + r.push(`${slave.slaveName} gives a long, drawn-out groan as the huge phallus `, slave.vagina < 4 ? stretches : `fills`, ` ${his} ${orifice()} nearly to its breaking point. `); } } @@ -476,11 +478,11 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s barbed dick fills it, and you get the feeling ${he} is beginning to reevaluate just how much ${he} wants to avoid punishment. `); } } else { - r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`${slave.slaveName} gives a squeal of pain as the barbed cock makes its way into ${his} ${orifice()}. `); } } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); return mainSpan; } @@ -532,10 +534,10 @@ App.Interact.fAnimal = function(slave, type) { if (canWalk(slave)) { r.push(`The canine clambers up to mount ${slave.slaveName}, eliciting a squeal from the ${girl} as its claws dig into ${his} flesh. `); } else { - r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`The canine takes a few curious sniffs, then lines up its large cock with ${slave.slaveName}'s ${orifice()}. `); } - r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${act === vaginal ? `cunt` : `asshole`} and begin to hammer away in the way that only canines can. `); + r.push(`It takes a few tries, but the ${animal.name} finally manages to sink its cock into ${his} ${slaveApproves() && act === vaginal ? `wet ` : ``}${orifice()} and begin to hammer away in the way that only canines can. `); } } @@ -554,7 +556,7 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s cock fills it, and you get the feeling ${he} would have run away a long time ago if ${he} wasn't a little tied up at the moment. `); } } else { - r.push(`${slave.slaveName} lets out a blood-curdling scream as the huge phallus fills ${his} ${act === vaginal ? `pussy` : `asshole`} nearly to its breaking point. `); + r.push(`${slave.slaveName} lets out a blood-curdling scream as the huge phallus `, slave.vagina < 4 ? stretches : `fills`, ` ${his} ${orifice()} nearly to its breaking point. `); } } @@ -573,11 +575,11 @@ App.Interact.fAnimal = function(slave, type) { r.push(`The slave visibly gags as the unfamiliar texture of ${anAnimal}'s barbed dick fills it, and you get the feeling ${he} would have run away a long time ago if ${he} wasn't a little tied up at the moment .`); } } else { - r.push(`${slave.slaveName} lets out a blood-curdling scream as the barbed cock makes its way into ${his} ${act === vaginal ? `pussy` : `asshole`}. `); + r.push(`${slave.slaveName} lets out a blood-curdling scream as the barbed cock makes its way into ${his} ${orifice()}. `); } } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); return mainSpan; } @@ -612,11 +614,11 @@ App.Interact.fAnimal = function(slave, type) { function completionCanine() { if (act === oral) { - r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice[0]}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice[1]}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz down ${his} abused throat. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s mouth, causing ${him} to immediately begin coughing and retching uncontrollably. Having finished its business, the ${animal.name} runs off, presumably in search of food. `); + r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice()}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice()}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz down ${his} abused throat. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s mouth, causing ${him} to immediately begin coughing and retching uncontrollably. Having finished its business, the ${animal.name} runs off, presumably in search of food. `); } else { - r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice[0]}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice[1]}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz into ${his} ${orifice[0]}. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s ${act === vaginal && slave.vagina < 3 || act === anal && slave.anus < 2 ? - `now-gaping ${orifice[0]}` : - orifice[0]}, causing a thick stream of cum to slide out of it. Having finished its business, the ${animal.name} runs off, presumably in search of food. `); + r.push(`The ${animal.species === "dog" ? `hound` : animal.name} wastes no time in beginning to hammer away at ${his} ${orifice()}, causing ${slave.slaveName} to moan uncontrollably as its thick, veiny member probes the depths of ${his} ${orifice()}. A few short minutes later, ${he} gives a loud groan ${slaveApproves() ? `and shakes in orgasm ` : ``}as the ${animal.name}'s knot begins to swell and its dick begins to erupt a thick stream of jizz into ${his} ${orifice()}. Soon enough, the ${animal.name} finally finishes cumming and its knot is sufficiently small enough to slip out of ${slave.slaveName}'s ${act === vaginal && slave.vagina < 3 || act === anal && slave.anus < 2 ? + `now-gaping ${orifice()}` : + orifice()}, causing a thick stream of cum to slide out of it. Having finished its business, the ${animal.name} runs off, presumably in search of food. `); } switch (act) { @@ -640,7 +642,7 @@ App.Interact.fAnimal = function(slave, type) { if (act === oral) { r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan past the huge ${animal.species} cock stretching ${his} poor throat to its limits. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and pour its thick semen down ${his} throat and into ${his} stomach, filling it to the brim. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, causing ${slave.slaveName} to begin coughing and retching uncontrollably. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance. `); } else { - r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan as the huge ${animal.species} cock ${act === vaginal ? `batters ${his} cervix` : `fills ${him} completely`}. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and fill ${his} ${orifice[1]} with its thick baby batter. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, leaving ${slave.slaveName} panting and covered in sweat. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance. `); + r.push(`The ${animal.species === "horse" ? `stallion` : animal.name} begins to thrust faster and faster, causing ${him} to moan and groan as the huge ${animal.species} cock ${act === vaginal ? `batters ${his} cervix` : `fills ${him} completely`}. Before too long, the ${animal.name}'s movements begin to slow, and you can see its large testicles contract as its begins to erupt and fill ${his} ${orifice()} with its thick baby batter. After what seems like an impossibly long time, the ${animal.name}'s dick finally begins to soften and pull out, leaving ${slave.slaveName} panting and covered in sweat. You have another slave lead the ${animal.name} away, with a fresh apple as a treat for its good performance. `); } switch (act) { @@ -656,7 +658,7 @@ App.Interact.fAnimal = function(slave, type) { slave.anus = slave.anus < 3 ? 3 : slave.anus; break; default: - throw new Error(`Unexpected act type '${act} in completionHooved().`); + throw new Error(`Unexpected act type '${act}' in completionHooved().`); } } @@ -664,7 +666,7 @@ App.Interact.fAnimal = function(slave, type) { if (act === oral) { r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} mouth and throat raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts down ${slave.slaveName}'s throat. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off. `); } else { - r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} ${orifice[0]} raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts, filling ${slave.slaveName} with its sperm. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off. `); + r.push(`The ${animal.name} begins to move, thrusting faster and faster. The ${girl} underneath it can't stop a groan of pain from escaping ${his} lips as the ${animal.species}'s barbed dick rubs the inside of ${his} ${orifice()} raw. After a few minutes of painful coupling, the ${animal.species}'s thrusts finally slow, then stop completely as its ${animal.species !== "cat" ? `large` : ``} cock erupts, filling ${slave.slaveName} with its sperm. With a ${animal.species !== "cat" ? `deep bellow` : `loud meow`}, he finally dismounts, gives you a long look, then stalks off. `); } healthDamage(slave, 1); @@ -686,7 +688,7 @@ App.Interact.fAnimal = function(slave, type) { } } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); return mainSpan; } @@ -815,7 +817,7 @@ App.Interact.fAnimal = function(slave, type) { } } - mainSpan.append(r.join(' ')); + App.Events.addNode(mainSpan, r); return mainSpan; } diff --git a/src/personalAssistant/assistantAppearance.js b/src/personalAssistant/assistantAppearance.js index b12bb8d2af1bad9022b061fb78e2fb42cc5b64ef..0ed4db45ecdbb9ccd2eba7fb7c9ec13da44645dd 100644 --- a/src/personalAssistant/assistantAppearance.js +++ b/src/personalAssistant/assistantAppearance.js @@ -764,7 +764,7 @@ globalThis.PersonalAssistantAppearance = function() { case "roman revivalist": r.push(`${HeA} has ${hisA} toga undone and is absentmindedly jerking off. When ${heA} notices you watching, ${HeA} waves ${hisA} throbbing erection at you, imploring you to finish ${himA} off.`); break; - case "neo imperialist": + case "neoimperialist": r.push(`${HeA}'s stripped off his bodysuit and is absentmindedly jerking off. When ${heA} notices you watching, ${heA} waves ${hisA} throbbing erection at you, imploring you to finish ${himA} off.`); break; case "egyptian revivalist": @@ -989,12 +989,12 @@ globalThis.PersonalAssistantAppearance = function() { /** @type {appearance} */ const fsAppearance = { "normal": { - paternalist: ``, - degradationist: ``, + "paternalist": ``, + "degradationist": ``, supremacist: ``, subjugationist: ``, "roman revivalist": ``, - "neo imperialist": ``, + "neoimperialist": ``, "aztec revivalist": ``, "egyptian revivalist": ``, "edo revivalist": ``, @@ -1002,14 +1002,14 @@ globalThis.PersonalAssistantAppearance = function() { "chinese revivalist": ``, "chattel religionist": ``, "repopulation focus": ``, - eugenics: ``, + "eugenics": ``, "physical idealist": ``, "hedonistic decadence": ``, "gender radicalist": ``, "gender fundamentalist": ``, "asset expansionist": ``, "transformation fetishist": ``, - pastoralist: ``, + "pastoralist": ``, "maturity preferentialist": ``, "youth preferentialist": ``, "slimness enthusiast": ``, @@ -1025,7 +1025,7 @@ globalThis.PersonalAssistantAppearance = function() { supremacist: `${HisA} distinct ${V.arcologies[0].FSSupremacistRace} features are only enhanced by ${hisA} monstrous appearance, and ${heA} has taken to jump-scaring slaves of lesser races when ${heA} isn't too busy with other tasks.`, subjugationist: `${HisA} distinct ${V.arcologies[0].FSSubjugationistRace} features are further exaggerated by ${hisA} monstrous appearance.`, "roman revivalist": `${HeA}'s wearing a conservative stola, which combined with ${hisA} monstrous appearance makes ${himA} look like a Greek demigoddess.`, - "neo imperialist": `${HeA}'s wearing a set of high-tech battle armor, which combined with ${hisA} monstrous appearance makes ${himA} look like some kind of demonic Pagan emperor.`, + "neoimperialist": `${HeA}'s wearing a set of high-tech battle armor, which combined with ${hisA} monstrous appearance makes ${himA} look like some kind of demonic Pagan emperor.`, "aztec revivalist": `${HeA}'s wearing a traditional huipil, a long cape and a headdress, which amplify ${hisA} monstrous visage.`, "egyptian revivalist": `${HeA}'s wearing golden jewelry and a Pharaoh's beard, which combined with ${hisA} animal characteristics makes ${himA} look like an Egyptian deity.`, "edo revivalist": `${HeA}'s given ${hisA} appearance a Japanese style, making ${himA} look like a demon.`, @@ -1056,7 +1056,7 @@ globalThis.PersonalAssistantAppearance = function() { supremacist: `${HeA} remains nude in order to properly display the glory of a superior ${V.arcologies[0].FSSupremacistRace} cock.`, subjugationist: `Like most ${V.arcologies[0].FSSubjugationistRace} subhumans ${heA} has no self-control, and is constantly playing with ${hisA} erect cock and whimpering in needy arousal.`, "roman revivalist": `${HeA}'s taken to reclining on a traditional Roman couch and drinking wine out of a shallow dish.`, - "neo imperialist": `${HeA}'s wearing an extremely tight-fitting bodysuit that emphasizes the bulge of ${hisA} heavy balls and the swell of ${hisA} asscheeks against the skintight nanoweave.`, + "neoimperialist": `${HeA}'s wearing an extremely tight-fitting bodysuit that emphasizes the bulge of ${hisA} heavy balls and the swell of ${hisA} asscheeks against the skintight nanoweave.`, "aztec revivalist": `${HeA}'s wearing a headdress and a loincloth, which can't hide ${hisA} enviable package.`, "egyptian revivalist": `${HeA}'s wearing an Egyptian melting perfume cake on ${hisA} head.`, "edo revivalist": `${HeA}'s wearing a brief Japanese bathhouse robe.`, @@ -1087,7 +1087,7 @@ globalThis.PersonalAssistantAppearance = function() { supremacist: `wearing armor that blends elements from elite warriors of several historically ${V.arcologies[0].FSSupremacistRace} cultures, evoking the glory of ages past.`, subjugationist: `with wild unkempt hair, dressed in ragged animal skins and crude bone jewelry.`, "roman revivalist": `wearing the armor of a Roman auxilia, complete with lorica hamata and oval shield painted with your arcology's symbols.`, - "neo imperialist": `wearing a full set of advanced, powered battle armor, painted in your colors and with the crest of your family displayed prominently over a massive holographic tower shield.`, + "neoimperialist": `wearing a full set of advanced, powered battle armor, painted in your colors and with the crest of your family displayed prominently over a massive holographic tower shield.`, "aztec revivalist": `wearing the battledress of the greatest warriors,${HeA} stands incredibly imposing, holding a spear and shield.`, "egyptian revivalist": `wearing a simple white linen dress, kohl eye shadow, and sandals, making ${himA} look like a barbarian immigrant to the land of the Nile.`, "edo revivalist": `wearing a Japanese warrior's robe with a pair of swords tucked into its sash.`, @@ -1118,7 +1118,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `wearing a perfectly-tailored suit. ${HeA} has two different tones ${heA} uses when speaking: a respectful one for talking with ${hisA} ${V.arcologies[0].FSSupremacistRace} equals, and a strict domineering one for interacting with the lesser races.`, "subjugationist": `wearing a nice, slightly-used suit. ${HeA} speaks with a stereotypical ${V.arcologies[0].FSSubjugationistRace} voice, but is otherwise the model of a perfect subservient secretary.`, "roman revivalist": `wearing a fine stola appropriate for a respectable Roman lady, with ${hisA} hair up in a complicated style.`, - "neo imperialist": `wearing an elegant black suit tailored perfectly for ${hisA} holographic body, one that you recognize as being the latest in old-world fashion.`, + "neoimperialist": `wearing an elegant black suit tailored perfectly for ${hisA} holographic body, one that you recognize as being the latest in old-world fashion.`, "aztec revivalist": `wearing a modest huipil,${hisA} hair braided to two ponytails, ${HeA}'s the picture of quiet elegance.`, "egyptian revivalist": `wearing a simple white linen dress, kohl eye shadow, sandals, and a serene expression.`, "edo revivalist": `wearing a fine kimono, getae, tabi, and an expression of perfect serenity.`, @@ -1150,7 +1150,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `with swollen breasts and a big pregnant belly. ${HeA} wears a golden tiara on ${hisA} head, and ${hisA} otherwise nude form is a shining example of the ${V.arcologies[0].FSSupremacistRace} race's divine beauty.`, "subjugationist": `with swollen hips and breasts and a huge pregnant belly. ${HeA}'s nude aside from a crown of wilted flowers and the iron shackles on ${hisA} wrists and ankles.`, "roman revivalist": `with swollen hips and a big pregnant belly. ${HeA}'s clothed in a loose stola, with dozens of flowers woven into ${hisA} curly auburn hair.`, - "neo imperialist": `with a heaving, pregnant belly. The crest of your family is emblazoned over ${hisA} womb, as if the unborn child is already your property.`, + "neoimperialist": `with a heaving, pregnant belly. The crest of your family is emblazoned over ${hisA} womb, as if the unborn child is already your property.`, "aztec revivalist": `glowing like a sun goddess,${hisA} full belly commands awe and respect in all who see ${himA}.`, "egyptian revivalist": `wielding an ankh-headed staff. ${HeA}'s wearing a gilded headdress and linen skirt, but leaves ${hisA} breasts and pregnant stomach bare to gleam like bronze.`, "edo revivalist": `${HisA} swollen hips and pregnant belly loosely wrapped in a red tomesode. ${HisA} waterfall of black hair is held by a comb shaped like big pointed fox ears.`, @@ -1183,7 +1183,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `${HeA} is nude except for a golden tiara on ${hisA} head, a symbol of the ${V.arcologies[0].FSSupremacistRace} race's divine right to rule. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy ${V.arcologies[0].FSSupremacistRace} baby.`, "subjugationist": `${HeA} is shackled onto a large bed, the iron chains forcing ${hisA} legs apart and putting ${hisA} gaping pussy on display. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy ${V.arcologies[0].FSSubjugationistRace} slave baby.`, "roman revivalist": `${HeA}'s taken to reclining on a traditional Roman couch and drinking wine out of a shallow dish. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy baby.`, - "neo imperialist": `${HeA}'s made ${himselfA} up like a glowing goddess, a golden halo surrounding ${hisA} head at all times. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy baby.`, + "neoimperialist": `${HeA}'s made ${himselfA} up like a glowing goddess, a golden halo surrounding ${hisA} head at all times. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy baby.`, "aztec revivalist": `${HeA} glows like a sun goddess, ${hisA} life-giving belly commands awe and respect in all who see ${himA}. Every sacrifice before ${himA} coincides with another life entering the world.`, "egyptian revivalist": `${HeA}'s wearing an Egyptian melting perfume cake on ${hisA} head. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy baby.`, "edo revivalist": `${HeA}'s wearing a brief Japanese bathhouse robe. Occasionally a stream of liquid pours from ${hisA} crotch along with a healthy baby.`, @@ -1222,7 +1222,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `wearing a plaid skirt and a white shirt. ${HeA} is constantly taking notes and studying the latest textbooks, satisfying the ${V.arcologies[0].FSSupremacistRace} race's thirst for knowledge.`, "subjugationist": `wearing a plaid skirt and a white shirt. ${HeA} speaks with a stereotypical ${V.arcologies[0].FSSubjugationistRace} accent, giving the impression of a foreign exchange student with much to learn.`, "roman revivalist": `wearing a ${girlA}'s stola, with ${hisA} hair pulled up into a proper upper-class Roman coiffure. ${HeA} usually carries a wax tablet and a stylus.`, - "neo imperialist": `wearing a prim and proper school uniform, with your family crest on ${hisA} breast pocket. ${HisA} short plaid skirt occasionally flips up to flash a hint of ${hisA} holographic panties.`, + "neoimperialist": `wearing a prim and proper school uniform, with your family crest on ${hisA} breast pocket. ${HisA} short plaid skirt occasionally flips up to flash a hint of ${hisA} holographic panties.`, "aztec revivalist": `wearing only an overshirt,${hisA} cute little legs are complimented by ${hisA} twin tails.`, "egyptian revivalist": `wearing a simple white linen skirt, kohl eye shadow, sandals, and no top at all, baring ${hisA} perky young breasts.`, "edo revivalist": `wearing a simple robe appropriate for a proper, traditional Japanese lady.`, @@ -1252,7 +1252,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `${girlA} wearing shorts and a pink t-shirt with the words '${properMaster()}'s little ${V.arcologies[0].FSSupremacistRace} princess' on the front.`, "subjugationist": `slave ${girlA} wearing nothing but a leather collar and trying ${hisA} best to do master proud.`, "roman revivalist": `${girlA} wearing a ${girlA}'s stola.`, - "neo imperialist": `${girlA} wearing a tiny elementary schooler's uniform, complete with miniature plaid skirt.`, + "neoimperialist": `${girlA} wearing a tiny elementary schooler's uniform, complete with miniature plaid skirt.`, "aztec revivalist": `${girlA} wearing only an overshirt; ${hisA} cute little legs are complimented by ${hisA} twin tails.`, "egyptian revivalist": `${girlA} wearing a simple white linen dress, kohl eye shadow and sandals.`, "edo revivalist": `${girlA} wearing a kimono far too large for ${himselfA}.`, @@ -1283,7 +1283,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `belly wearing a cute yellow dress. ${HeA} cradles ${hisA} swollen belly protectively, glowing with pride at carrying a ${V.arcologies[0].FSSupremacistRace} child.`, "subjugationist": `belly, wearing nothing but a pregnancy biometrics collar. The collar's display reads 'Carrying 2 more ${V.arcologies[0].FSSubjugationistRace} subhumans!', something the ${girlA} occasionally reads aloud to ${himselfA}.`, "roman revivalist": `belly wearing a ${girlA}'s stola.`, - "neo imperialist": `${girlA} wearing a tiny elementary schooler's uniform, complete with miniature plaid skirt. ${HisA} belly swells underneath the cotton shirt.`, + "neoimperialist": `${girlA} wearing a tiny elementary schooler's uniform, complete with miniature plaid skirt. ${HisA} belly swells underneath the cotton shirt.`, "aztec revivalist": `belly wearing only an overshirt which struggles to cover ${hisA} rounded middle; ${hisA} cute little legs are complimented by ${hisA} twin tails.`, "egyptian revivalist": `belly wearing a bulging white linen dress, kohl eye shadow and sandals.`, "edo revivalist": `belly wearing a kimono far too large for ${himselfA} but does nothing to distract from ${hisA} swollen midriff.`, @@ -1316,7 +1316,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `fairy with distinctly ${V.arcologies[0].FSSupremacistRace} features. ${HeA} has wrapped a golden ribbon around ${hisA} torso to fashion ${himselfA} a dress.`, "subjugationist": `fairy with exaggerated ${V.arcologies[0].FSSubjugationistRace} features. ${HeA} is completely unclothed, with ${hisA} hair in a mess and covered in dirt.`, "roman revivalist": `fairy wearing a small handkerchief wrapped around ${himA} like a toga, with one tiny breast sticking out. A wreath made of twisted clovers sits on ${hisA} head.`, - "neo imperialist": `fairy, ${hisA} tiny body encased in a tight-fitting, high-tech bodysuit.`, + "neoimperialist": `fairy, ${hisA} tiny body encased in a tight-fitting, high-tech bodysuit.`, "aztec revivalist": `fairy, yellow paint creating tribal patterns across ${hisA} naked form.`, "egyptian revivalist": `fairy wearing a simple white linen dress and has eye shadow poorly applied around ${hisA} eyes.`, "edo revivalist": `fairy wearing a fine kimono and holding a little fan. ${HeA} looks like a little Hina doll.`, @@ -1347,7 +1347,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `and distinctly ${V.arcologies[0].FSSupremacistRace} features. ${HeA} has wrapped a golden ribbon around ${hisA} chest to create an improvised bra, and another under ${hisA} swollen belly to fashion a thong.`, "subjugationist": `and exaggerated ${V.arcologies[0].FSSubjugationistRace} features. ${HeA} is completely unclothed, with ${hisA} hair in a mess and covered in dirt.`, "roman revivalist": `wearing a small handkerchief wrapped around ${himA} like a toga, with one tiny milky breast sticking out. A wreath made of twisted clovers sits on ${hisA} head.`, - "neo imperialist": `fairy, ${hisA} tiny body encased in a tight-fitting, high-tech bodysuit. ${HisA} belly swells underneath the skintight material.`, + "neoimperialist": `fairy, ${hisA} tiny body encased in a tight-fitting, high-tech bodysuit. ${HisA} belly swells underneath the skintight material.`, "aztec revivalist": `yellow paint creating tribal patterns across ${hisA} naked form and curving around ${hisA} swollen belly.`, "egyptian revivalist": `wearing a simple white linen dress and has eye shadow poorly applied around ${hisA} eyes.`, "edo revivalist": `wearing a fine kimono and holding a little fan. ${HeA} looks like a little Hina doll.`, @@ -1376,7 +1376,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `slime. ${HeA} keeps trying to shape ${hisA} goo into a beautiful ${V.arcologies[0].FSSupremacistRace} ${girlA}, but ${heA} hasn't quite perfected the finer details yet.`, "subjugationist": `slime. ${HeA} keeps trying to shape ${hisA} goo into a pretty face, but keeps ending up with over-exaggerated ${V.arcologies[0].FSSubjugationistRace} features instead.`, "roman revivalist": `slime with a ${girlA}'s stola sinking into ${hisA} head.`, - "neo imperialist": `slime wearing a high-class suit that fits loosely around ${hisA} gelatinous features, occasionally slipping inside the slime.`, + "neoimperialist": `slime wearing a high-class suit that fits loosely around ${hisA} gelatinous features, occasionally slipping inside the slime.`, "egyptian revivalist": `slime and quite perturbed about the amount of sand caught in ${himA}.`, "edo revivalist": `slime with a silken kimono floating inside ${himA}.`, "arabian revivalist": `slime with a headscarf and a pair of sunglasses floating inside ${himA}.`, @@ -1408,7 +1408,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `${HeA} cycles between different outfits that reflect the various holy garments of religions popular in ${V.arcologies[0].FSSupremacistRace} countries.`, "subjugationist": `${HeA} is wearing a simple white linen dress, and ${hisA} right ankle is shackled to an iron ball and chain that prevents ${himA} from flying very high.`, "roman revivalist": `${HeA} is wearing a fine stola appropriate for a respectable Roman lady, with ${hisA} hair up in a complicated style.`, - "neo imperialist": `${HeA} is wearing a skintight bodysuit that gives ${himA} the appearance of some kind of techno-angel, cybernetics and angelic beauty meshing seamlessly together.`, + "neoimperialist": `${HeA} is wearing a skintight bodysuit that gives ${himA} the appearance of some kind of techno-angel, cybernetics and angelic beauty meshing seamlessly together.`, "aztec revivalist": `${HeA} is wearing a modest huipil with ${hisA} hair braided to two ponytails; ${HeA}'s the picture of quiet elegance.`, "egyptian revivalist": `${HeA} is wearing a simple white linen dress, kohl eye shadow, sandals, and a serene expression.`, "edo revivalist": `${HeA} is wearing a fine kimono with slits for ${hisA} wings, getae, tabi, and an expression of perfect serenity.`, @@ -1448,7 +1448,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `${HeA} is wearing a cute little dressed stitched with designs from ${V.arcologies[0].FSSupremacistRace} culture. Occasionally you get a glance up it; a white pair of panties with similar designs say hello.`, "subjugationist": `${HeA} is shackled to an iron ball and chain that's almost as big as ${heA} is, and ${heA} has to slowly and comically drag it behind ${himA} to get anywhere. Occasionally ${heA} tumbles over in ${hisA} struggles, flipping ${hisA} white linen dress up and treating you to a good look at ${hisA} panties.`, "roman revivalist": `${HeA} is wearing a cute little tunic. Occasionally you get a glance up it; a cute little pussy says hello.`, - "neo imperialist": `${HeA} is wearing a tiny executive skirt that mixes cute and professional. ${HeA}'s obviously not wearing any panties underneath.`, + "neoimperialist": `${HeA} is wearing a tiny executive skirt that mixes cute and professional. ${HeA}'s obviously not wearing any panties underneath.`, "aztec revivalist": `${HeA} is wearing a huipil with ${hisA} hair braided to two ponytails. You can clearly see through the sides that ${heA} has chosen to forgo underwear.`, "egyptian revivalist": `${HeA} is wearing a simple white linen dress, kohl eye shadow, and a serene expression. ${HisA} dress hangs low enough to block your view, unfortunately.`, "edo revivalist": `${HeA} is wearing a cute little kimono with slits for ${hisA} wings. Occasionally you get a glance up it; a lovely pair of panties say hello.`, @@ -1488,7 +1488,7 @@ globalThis.PersonalAssistantAppearance = function() { }, "subjugationist": `${HisA} cartoonishly exaggerated ${V.arcologies[0].FSSubjugationistRace} body is just begging for a whipping, even when ${heA} isn't doing something mischievous and sneaky, which is rare.`, "roman revivalist": `${HeA}'d fit in perfectly tormenting the condemned in Tartarus.`, - "neo imperialist": `${HeA}'s bound himself up with high-tech holographic chains, reminiscent of a slave locked in your cellblocks with ${hisA} devilish features.`, + "neoimperialist": `${HeA}'s bound himself up with high-tech holographic chains, reminiscent of a slave locked in your cellblocks with ${hisA} devilish features.`, "aztec revivalist": `${HeA}'s taken to carrying a pair of ceremonial daggers perfect for bloodletting and even an impromptu sacrifice. Two things ${heA} really enjoys performing.`, "egyptian revivalist": `${HeA} has recently adjusted ${hisA} appearance to resemble an Egyptian slave; that combined with a manufactured rebellious streak are sure to earn ${himA} a whipping.`, "edo revivalist": `${HeA} has tightly bound ${himselfA} in shibari ropes, although they don't achieve much given ${heA} can still fly freely.`, @@ -1529,7 +1529,7 @@ globalThis.PersonalAssistantAppearance = function() { }, "subjugationist": `${HeA} still hasn't managed to undo the spell; ${HeA} looks like a racist caricature of a ${V.arcologies[0].FSSubjugationistRace} ${girlA}, and has an appropriately demeaning accent to match. What's worse, the spell also seems to have stripped most of ${hisA} literacy in ${V.language}, making reading ${hisA} tomes an arduous task for ${himA}.`, "roman revivalist": `While ${heA} acts like a typical Roman ${womanA}, ${HeA} is pretty obviously Greek. ${HeA} can't even name the Pantheon correctly.`, - "neo imperialist": `${HeA} looks like someone you would find selling "magical tokens" on the side of your neon-bathed streets, cybernetic trinkets adorning ${hisA} whole body.`, + "neoimperialist": `${HeA} looks like someone you would find selling "magical tokens" on the side of your neon-bathed streets, cybernetic trinkets adorning ${hisA} whole body.`, "aztec revivalist": `${HeA} is still very obviously not a native and has become rather caught up in the fear that ${heA}'ll soon be sacrificed.`, "egyptian revivalist": `${HeA}'s managed to untangle ${himselfA} from the wrappings, though ${heA} has chosen to leave several still wrapped around ${hisA} body.`, "edo revivalist": `${HeA}'s managed to correct the spell, somewhat, though ${heA} now resembles something that belongs in a hentai.`, @@ -1577,7 +1577,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `wearing nothing at all. ${HeA} looks vaguely ${V.arcologies[0].FSSupremacistRace}, but wrong. You swear you see patches of fish-like scales on ${hisA} skin, but they keep disappearing whenever you try to focus on them.`, "subjugationist": `wearing nothing at all. ${HeA} looks vaguely ${V.arcologies[0].FSSubjugationistRace}, but wrong. You swear you see patches of fish-like scales on ${hisA} skin, but they keep disappearing whenever you try to focus on them.`, "roman revivalist": `wearing a poorly folded toga. You swear you see movement under ${hisA} skin.`, - "neo imperialist": `wearing a tight-fitting bodysuit that you swear moves in unsettling ways. Is the bodysuit moving, or the skin underneath?`, + "neoimperialist": `wearing a tight-fitting bodysuit that you swear moves in unsettling ways. Is the bodysuit moving, or the skin underneath?`, "aztec revivalist": `wearing a torn huipil. ${HeA} looks vaguely Aztec, but wrong. You swear you see movement under ${hisA} skin.`, "egyptian revivalist": `wearing nothing at all. ${HeA} looks vaguely Egyptian, but wrong. You swear you see movement under ${hisA} skin.`, "edo revivalist": `wearing a loose kimono. ${HeA} looks vaguely Japanese, but wrong. You swear you see movement under ${hisA} skin.`, @@ -1626,7 +1626,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `${HeA} is an ideal ${V.arcologies[0].FSSupremacistRace} man, and ${hisA} massive dick is always hard and ready to continue propagating the master race.`, "subjugationist": `${HeA} is a deceptively handsome ${V.arcologies[0].FSSubjugationistRace} man, and gives off an air of lust and danger that serves as a warning to not let the inferior race's libido run unchecked.`, "roman revivalist": `${HeA} is an ideal Roman man, complete with something big and heavy hanging under ${hisA} toga.`, - "neo imperialist": `${HeA} looks like an ideal Imperial Knight, wearing tight leather pants and a nanoweave shirt that fail to contain both his rippling pectorals and the outline of a massive cock.`, + "neoimperialist": `${HeA} looks like an ideal Imperial Knight, wearing tight leather pants and a nanoweave shirt that fail to contain both his rippling pectorals and the outline of a massive cock.`, "aztec revivalist": `${HeA} is an ideal Aztec man wearing a headdress and a loincloth, which can't hide ${hisA} enviable package.`, "egyptian revivalist": `${HeA} is an ideal Egyptian man, complete with something big and heavy dangling behind ${hisA} loincloth.`, "edo revivalist": `${HeA} is an ideal Japanese man, complete with something big and heavy between ${hisA} legs.`, @@ -1696,7 +1696,7 @@ globalThis.PersonalAssistantAppearance = function() { "supremacist": `In fact,${HeA} is the most gorgeous ${V.arcologies[0].FSSupremacistRace} ${womanA} you've ever seen.`, "subjugationist": `In fact,${HeA} is the most gorgeous ${V.arcologies[0].FSSubjugationistRace} ${womanA} you've ever seen.`, "roman revivalist": `In fact,${HeA} is the most gorgeous Roman ${womanA} you've ever seen.`, - "neo imperialist": `In fact,${HeA} is the most gorgeous Imperial ${womanA} you've ever seen.`, + "neoimperialist": `In fact,${HeA} is the most gorgeous Imperial ${womanA} you've ever seen.`, "aztec revivalist": `In fact,${HeA} is the most gorgeous Aztec ${womanA} you've ever seen.`, "egyptian revivalist": `In fact,${HeA} is the most gorgeous Egyptian ${womanA} you've ever seen.`, "edo revivalist": `In fact,${HeA} is the most gorgeous Japanese ${womanA} you've ever seen.`, diff --git a/src/personalAssistant/assistantOptions.tw b/src/personalAssistant/assistantOptions.tw index 53391efb4e8c7054ce630d0f7cf8ad3e0f54c873..8ed1c0231b2dd8748f33ef93d4cc3891eea400ef 100644 --- a/src/personalAssistant/assistantOptions.tw +++ b/src/personalAssistant/assistantOptions.tw @@ -1057,8 +1057,8 @@ Seated at your desk, you glance at the visual representation of [[Roman Revivalist|Personal assistant options][$assistant.fsAppearance = "roman revivalist"]] <br> <</if>> - <<if $assistant.fsAppearance != "Neo-Imperialist" && $arcologies[0].FSNeoImperialistDecoration > 20>> - [[Neo-Imperialist|Personal assistant options][$assistant.fsAppearance = "Neo-Imperialist"]] + <<if $assistant.fsAppearance != "neoimperialist" && $arcologies[0].FSNeoImperialistDecoration > 20>> + [[Neo-Imperialist|Personal assistant options][$assistant.fsAppearance = "neoimperialist"]] <br> <</if>> <<if $assistant.fsAppearance != "aztec revivalist" && $arcologies[0].FSAztecRevivalistDecoration > 20>> diff --git a/src/pregmod/FCTV/FCTVshows.js b/src/pregmod/FCTV/FCTVshows.js index c7f0116fd1bb45323ef203518dceb71ee60e5116..9a69c562ac6bec7906264c3ce5b0ae9102e67934 100644 --- a/src/pregmod/FCTV/FCTVshows.js +++ b/src/pregmod/FCTV/FCTVshows.js @@ -616,7 +616,7 @@ App.Data.FCTV.channels = { if (V.PC.skill.medicine === 100) { r.push(`You vaguely recognize both of them from your time studying medicine.`); } - r.push(`</p><p>One of them continues the conversation, apparently answering a question. "That's right, the results of our research tell us what everyone already suspected, but now with an indisputable weight of evidence behind it." The other nods and continues, "our meta analysis examines over two decades of data, and nearly 6000 independent studies. We can safely say that free city slaves are healthier than the average person living anywhere in the old world. While a few of the wealthiest countries of the old world may surpass one or two areas, our slaves have better nutrition, standard of living, are more psychologically stable, have longer lives, and are happier on average as well." The first gentleman interjects, "We even found strong evidence that the higher sexual tempo and libido-stimulating training given to sex slaves greatly contributes to their life span; they live even longer than the average slave, and even look younger than their age."</p>`); + r.push(`</p><p>One of them continues the conversation, apparently answering a question. "That's right, the results of our research tell us what everyone already suspected, but now with an indisputable weight of evidence behind it." The other nods and continues, "our meta analysis examines over two decades of data, and nearly 6,000 independent studies. We can safely say that free city slaves are healthier than the average person living anywhere in the old world. While a few of the wealthiest countries of the old world may surpass one or two areas, our slaves have better nutrition, standard of living, are more psychologically stable, have longer lives, and are happier on average as well." The first gentleman interjects, "We even found strong evidence that the higher sexual tempo and libido-stimulating training given to sex slaves greatly contributes to their life span; they live even longer than the average slave, and even look younger than their age."</p>`); r.push(`<p>The camera switches back to the two anchors, showing an excited Jules hefting and bouncing her tits. "They've barely sagged at all since they stopped growing, now I know why!"</p>`); r.push(`<p>As the AnchorSlave continues to squeeze, one of the researchers answers from off camera. "That's right, it can be rather amazing. To tell you the truth, we didn't believe it at first, but the evidence made it too hard to ignore." Jules starts looking toward the backstage area trying to signal someone as the other researcher continues. "It's also important not to wear a bra unless you're doing high-impact cardio. We've known since the mid 20th century that wearing bras causes sagging; bras devastate the breasts of`); if (V.seePreg === 0) { @@ -1780,7 +1780,7 @@ App.Data.FCTV.channels = { r.push(`<p>Scott patted her head and pulled her into a hug. "Honesty is to be rewarded." Her body shuddered with suppressed sobs. June caught his eye over Cathy's shoulder and gave him an uncertain look. He shook his head slightly and gave her a thumbs up. She nodded slightly and quietly left the aisle. Cathy sniffed and mumbled into his chest, "I miss my mom." He rubbed slow circles in back and said softly, "I know, I know."</p>`); r.push(`<p>After her sobs subsided, the pair continued hugging in silence for a moment before separating. Cathy rubbed her eyes and sniffed, attempting to regain her composure. "So what happens now?" Scott quirked an eyebrow, "For now, we finish shopping and head on home." He looked up and down the aisle. "Provided that we can find where June wandered off to." A soft sigh escaped her throat. "That's not what I meant." She gave him a steady look. "What's the next step to getting my mom back?"</p>`); r.push(`<p>Scott considered her for a moment before responding. "For now, you'll continue your drug regimen and etiquette lessons." He gave her breasts a poke. "Your milk hasn't come in so we can't start that training or begin selling your milk, but there are things you can do." He drummed out a little beat on her breasts. "Now that you're big enough to not get stopped when you walk down the street, you could start working here." An impish grin spread over his face. "I'm sure Martha would enjoy having you around." Cathy flushed and let out a small huff. His grin widened.</p>`); - r.push(`<p>He groped her slowly as he thought. "As for getting your mom, considering who your mother was, her price is bound to be exorbitant. Even if I got a sweetheart rate." He brushed a lock of her hair behind her ear. "But we're inno rush. Her current owner is treating her rather well and seems fond of her, so he probably won't randomly sell her off." A mild frown spread across his face. "The downside of that is it will take even more money or favors to get him to part with her, but we'll cross that bridge when we get to it."</p>`); + r.push(`<p>He groped her slowly as he thought. "As for getting your mom, considering who your mother was, her price is bound to be exorbitant. Even if I got a sweetheart rate." He brushed a lock of her hair behind her ear. "But we're in no rush. Her current owner is treating her rather well and seems fond of her, so he probably won't randomly sell her off." A mild frown spread across his face. "The downside of that is it will take even more money or favors to get him to part with her, but we'll cross that bridge when we get to it."</p>`); r.push(`<p>As he spoke, Cathy's expression became more and more disheartened. Scott smiled reassuringly, "Don't worry about it. I have a plan to make you so profitable you could buy your mom a dozen times over." She nodded, but didn't look entirely reassured. "You've already made a fair bit of progress today" he said, his smile bright. "What do you mean?" her face had the expression of a wary kitten expecting the roar of vacuum cleaner. "You didn't freak out when I touched your breasts." He gave them a squeeze for emphasis. She looked conflicted and seemed on the verge of saying something, but decided against it. "Anyway, we should find June and head on out." He patted her butt, saying "Come along" and set out to find June with Cathy in tow.</p>`); r.push(`<p>It didn't take too long to find her. After passing a display of plushie cowslaves playing in a pool, they walked into an aisle devoted to greeting cards and other printed media. The various cards bore animated scenes catering to various situations. One card depicted a busty woman losing power to her exosuit, being pulled to the ground by her own breasts and a small group comes by to help her up. The words flowing across the card said 'We know you've fallen on hard times, but we'll always be there to support you' in a wavy font. The other side of the aisle bore a number of coloring books plastered with pictures of famous cows, magazines devoted to various tastes, and paperback erotica, some written by store employees. And hunched over by the magazines was June.</p>`); r.push(`<p>She was engrossed in reading an issue of Cow's Life. The cover had a looping video of a blonde cow spraying milk and making bedroom eyes at the viewer. The headline of the issue was an interview with Alexis Cream, the first cow in space. In smaller text were headlines like 'Five nipple stimulation methods guaranteed to increase lactation!', 'Finding the right cleavage vibrator for you', 'The new frontier of breast sex'. June seemed to have ignored the magazine's other offerings in favor of a review of a new model of mobile milker that promised to provide endless breastgasms.</p>`); diff --git a/src/pregmod/theBlackMarket.tw b/src/pregmod/theBlackMarket.tw index 19d24e97cc8d0150e12df67a2cd6134916783c29..655741be2a54c2e23ae45dda79986aa21977838a 100644 --- a/src/pregmod/theBlackMarket.tw +++ b/src/pregmod/theBlackMarket.tw @@ -287,7 +287,7 @@ He gestures to a door in the back of the stall. "The good shit's back there<<if <<elseif $cash < 120000>> You cannot afford the asking price of @@.red;<<print cashFormat(120000)>>@@ for documentation on an incubator pregnancy adaptation module. <</if>> - <br>"I'm not sure about this... but you still might be interested. Let me just begin with a story... Some time ago, there was a man with very pregnant girl in tow. Not so unusual in these days, but what made it really stand out was the girl's age — she couldn't have been any older then six! And looked ready to birth full sized triplets, no less. To top it all off, she did not look stressed by it at all, which was just amazing, given her size. The man said that he invented some sort of subsystem for those modern incubators to prep the occupant's body in a special way, and that this girl was a test subject. I do not understand much about this technical stuff, but the documentation seems legit enough. If you like, I can sell it to you; no guarantees though, on either the construction or the results." + <br>"I'm not sure about this one, but you might still be interested. Let me just begin with a story... some time ago, there was a man with a very pregnant girl in tow. Not so unusual in these days, but what made it really stand out was the girl's age — she couldn't have been any older then six! And looked ready to birth full sized triplets, no less. To top it all off, she did not look stressed by it at all, which was just amazing, given her size. The man said that he invented some sort of subsystem for those modern incubators to prep the occupant's body in a special way, and that this girl was a test subject. I do not understand much about this technical stuff, but the documentation seems legit enough. If you like, I can sell it to you; no guarantees though, on either the construction or the results." <<if $arcologies[0].FSRepopulationFocus >= 60>> <p style="text-indent:2em"> As a repopulationist society, you already have similar documentation in your possession. Buying this would be a waste of money. </p> <<elseif $incubatorUpgradeReproduction < 1 || $incubatorUpgradeOrgans < 1 || $dispensaryUpgrade < 1 || $bellyImplants < 1 || $incubatorUpgradeGrowthStims < 1>> diff --git a/src/uncategorized/economics.tw b/src/uncategorized/economics.tw index 15fe30f21f0d91731cf978edc99f29467672ce77..cd70fccb641b9edf62dcc3c665636166911b1f7c 100644 --- a/src/uncategorized/economics.tw +++ b/src/uncategorized/economics.tw @@ -13,22 +13,20 @@ <<= SectorCounts()>> <<run App.Arcology.updateOwnership()>> -<<include "Markets Report">> - -<br><br> +<<includeDOM App.EndWeek.marketsReport()>> <<if $useTabs == 0>> <<includeDOM App.EndWeek.neighborsDevelopment()>> <<includeDOM App.EndWeek.arcManagement()>> <<if $FSAnnounced > 0>> - <br><br> - <<include "FS Developments">> + <p> + <<includeDOM App.EndWeek.FSDevelopments();>> + </p> <</if>> <<if $corp.Incorporated == 1>> - <br><br> - <<include "Corporation Developments">> + <<includeDOM App.EndWeek.corporationDevelopments()>> <</if>> <<if $secExpEnabled > 0>> @@ -81,7 +79,7 @@ <<if $FSAnnounced > 0>> <div id="Societies" class="tab-content"> <div class="content"> - <<include "FS Developments">> + <<includeDOM App.EndWeek.FSDevelopments()>> </div> </div> <</if>> @@ -89,7 +87,7 @@ <<if $corp.Incorporated == 1>> <div id="Corporation" class="tab-content"> <div class="content"> - <<include "Corporation Developments">> + <<includeDOM App.EndWeek.corporationDevelopments()>> </div> </div> <</if>> diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw deleted file mode 100644 index 496deec9a047302de68c3da0da50a252522d54ba..0000000000000000000000000000000000000000 --- a/src/uncategorized/fsDevelopments.tw +++ /dev/null @@ -1,1325 +0,0 @@ -:: FS Developments [nobr] - -<<if $useTabs == 0>>__Society__<</if>> -<br> - -<<set _FSRepCreditsRep = [[7000,11000,15000], - [6000,9000,12000,15000], - [6000,9000,12000,14000,16000], - [6000,9000,11000,13000,15000,17000]]>> -<<set _FSRepDescriptors = ["solid", "high", "remarkable", "great", "excellent", "unparalleled"]>> -<<set _ordinalNames = ["second", "third", "fourth", "fifth", "sixth", "seventh", "eighth"]>> -<<if FutureSocieties.availCredits() > 0>> - @@.yellow;$arcologies[0].name's society is ready to begin accepting a new societal direction.@@ -<</if>> - -<<if $FSAnnounced == 1 && $FSGotRepCredits < $FSCreditCount && $rep >= _FSRepCreditsRep[$FSCreditCount-4][$FSGotRepCredits-1]>> - <<set _descriptor = "">> - <<if $FSGotRepCredits == 1>> - <<set _descriptor = _FSRepDescriptors[0]>> - <<else>> - <<set _descriptor = _FSRepDescriptors[Math.trunc($FSGotRepCredits/($FSCreditCount-1)*_FSRepDescriptors.length-1)]>> - <</if>> - <<set _ordinalName = _ordinalNames[$FSGotRepCredits-1]>> - <<if $FSGotRepCredits == $FSCreditCount-1>> - <<set _ordinalName += " and final">> - <</if>> - @@.yellow;Your reputation is so _descriptor that $arcologies[0].name's society is ready to begin accepting a _ordinalName societal direction.@@ - <<set $FSGotRepCredits += 1>> -<</if>> - -/* Count adopted FS */ -<<set _societies = FutureSocieties.activeCount(0)>> - -/* Spending, terrain, rep effects */ -<<set _broadProgress = 0>> -<<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0>> - Assigning a <<if $SF.UC.Assign === 1>>small<<else>>large<</if>> portion of $SF.Lower to undercover work helps to advance your cultural goals. - <<if $SF.UC.Assign === 1>> - <<set _value = $SF.ArmySize * 0.05>> - <<else>> - <<set _value = $SF.ArmySize * 0.25>> - <</if>> - <<set _broadProgress += _value/100>> <br> -<</if>> -<<if $FSSpending > 1>> - Your @@.yellowgreen;societal spending@@ helps forward your goals for the arcology's future. - <<set _broadProgress += Math.trunc($FSSpending/(1000-(500*$arcologies[0].FSEdoRevivalistLaw)-(250*$arcologies[0].FSArabianRevivalistLaw)))>> -<</if>> -<<if $FCTV.receiver == 3>> - Your customized @@.yellowgreen;FCTV programming@@ strongly influences your citizens, greatly helping define your arcology's culture. - <<if ($week - $FCTV.weekEnabled) > 29>> - <<set _broadProgress += 3>> - <<elseif ($week - $FCTV.weekEnabled) > 19>> - <<set _broadProgress += 2>> - <<elseif ($week - $FCTV.weekEnabled) > 4>> - <<set _broadProgress += 1>> - <</if>> -<<elseif $FCTV.receiver == 2>> - Your customized @@.yellowgreen;FCTV programming@@ influences your citizens, helping define your arcology's culture. - <<if ($week - $FCTV.weekEnabled) > 34>> - <<set _broadProgress += 3>> - <<elseif ($week - $FCTV.weekEnabled) > 23>> - <<set _broadProgress += 2>> - <<elseif ($week - $FCTV.weekEnabled) > 8>> - <<set _broadProgress += 1>> - <</if>> -<<elseif $FCTV.receiver == 1>> - Your customized @@.yellowgreen;FCTV programming@@ influences a small number of your citizens, slightly helping define your arcology's culture. - <<if ($week - $FCTV.weekEnabled) > 39>> - <<set _broadProgress += 2>> - <<elseif ($week - $FCTV.weekEnabled) > 24>> - <<set _broadProgress += 1>> - <</if>> -<</if>> - -<<set _propagandaEffects = App.SecExp.propagandaEffects("social engineering")>> -_propagandaEffects.text -<<set _broadProgress += _propagandaEffects.effect>> - -<<if $terrain == "urban">> - The @@.yellow;urban location@@ of the arcology naturally promotes cultural interchange, holding back $arcologies[0].name's cultural independence. - <<set _broadProgress -= 3>> -<<elseif $terrain == "rural">> - The @@.yellow;rural location@@ of the arcology naturally limits cultural interchange, allowing $arcologies[0].name to slowly develop its own culture. - <<set _broadProgress -= 2>> -<<elseif $terrain == "marine">> - The @@.yellow;marine location@@ of the arcology strongly limits cultural interchange, allowing $arcologies[0].name to quickly develop its own culture. - <<set _broadProgress -= 1>> -<<elseif $terrain == "ravine">> - The @@.yellow;near subterranean location@@ of the arcology almost eliminates cultural interchange, allowing $arcologies[0].name to independently develop its culture. -<<else>> - The @@.yellow;oceanic location@@ of the arcology almost eliminates cultural interchange, allowing $arcologies[0].name to independently develop its culture. -<</if>> -<<if $rep < 3000>> - @@.red;Your weak reputation@@ reflects badly on your social projects. - <<set _broadProgress -= 2>> -<<elseif $rep < 6000>> - @@.red;Your mediocre reputation@@ engenders skepticism towards your social development. - <<set _broadProgress -= 1>> -<<elseif $rep < 9000>> - @@.yellow;Your reputation@@ is neither weak enough or strong enough to affect social development. -<<elseif $rep < 12000>> - @@.green;Your strong reputation@@ helps support social development. - <<set _broadProgress += 1>> -<<elseif $rep < 16000>> - @@.green;Your very strong reputation@@ increases acceptance of your social development. - <<set _broadProgress += 2>> -<<else>> - @@.green;Your incredible reputation@@ encourages automatic acceptance of your social development. - <<set _broadProgress += 4>> -<</if>> -<<if $FSCreditCount == 4>> - <<set _broadProgress += 1 - _societies>> - <<switch _societies>> - <<case 1>>Maintaining a single societal goal allows @@.green;very focused social engineering.@@ - <<case 2>>Maintaining two societal goals allows @@.green;focused social engineering.@@ - <<case 3>>Maintaining three societal goals requires @@.yellow;broad social engineering.@@ - <<case 4>>Maintaining four societal goals requires @@.red;unfocused social engineering.@@ - <</switch>> -<<elseif $FSCreditCount == 6>> - <<set _broadProgress += 3 - _societies>> - <<switch _societies>> - <<case 1>>Maintaining a single societal goal allows @@.green;very focused social engineering.@@ - <<case 2>>Maintaining two societal goals allows @@.green;focused social engineering.@@ - <<case 3>>Maintaining three societal goals allows @@.yellow;barely focusable social engineering.@@ - <<case 4>>Maintaining four societal goals requires @@.yellow;broad social engineering.@@ - <<case 5>>Maintaining five societal goals requires @@.red;unfocused social engineering.@@ - <<case 6>>Maintaining six societal goals requires @@.red;very unfocused social engineering.@@ - <</switch>> -<<elseif $FSCreditCount == 7>> - <<set _broadProgress += 3 - _societies>> - <<switch _societies>> - <<case 1>>Maintaining a single societal goal allows @@.green;very focused social engineering.@@ - <<case 2>>Maintaining two societal goals allows @@.green;focused social engineering.@@ - <<case 3>>Maintaining three societal goals allows @@.yellow;barely focusable social engineering.@@ - <<case 4>>Maintaining four societal goals requires @@.yellow;broad social engineering.@@ - <<case 5>>Maintaining five societal goals requires @@.red;unfocused social engineering.@@ - <<case 6>>Maintaining six societal goals requires @@.red;very unfocused social engineering.@@ - <<case 7>>Maintaining seven societal goals requires @@.red;extremely unfocused social engineering.@@ - <</switch>> -<<else>> - <<set _broadProgress += 2 - _societies>> - <<switch _societies>> - <<case 1>>Maintaining a single societal goal allows @@.green;very focused social engineering.@@ - <<case 2>>Maintaining two societal goals allows @@.green;focused social engineering.@@ - <<case 3>>Maintaining three societal goals requires @@.yellow;broad social engineering.@@ - <<case 4>>Maintaining four societal goals requires @@.red;unfocused social engineering.@@ - <<case 5>>Maintaining five societal goals requires @@.red;very unfocused social engineering.@@ - <</switch>> -<</if>> /*closes FS count changes */ -<<if _broadProgress != 0>> - <<run FutureSocieties.applyBroadProgress(0, _broadProgress)>> -<</if>> - -<<if $secExpEnabled > 0>> - <<if $SecExp.edicts.slaveWatch == 1>> - The Slave Mistreatment Watch helps many slaves, easing your citizens into the paternalist ideals it represents. - <<run FutureSocieties.Change("Paternalist", 2)>> - <</if>> - - <<if $SecExp.edicts.defense.noSubhumansInArmy == 1>> - Your army is free of subhumans, further cementing their lower status in the eyes of your citizens. - <<run FutureSocieties.Change("Subjugationist", 2)>> - <</if>> - - <<if $SecExp.edicts.defense.pregExemption == 1>> - Pregnant citizens are allowed and encouraged to avoid military service, making their value evident to all citizens. - <<run FutureSocieties.Change("RepopulationFocus", 2)>> - <</if>> - - <<if $SecExp.edicts.defense.eliteOfficers == 1>> - Purity in leadership is fundamental in your army, helping eugenics ideals spread in the populace. - <<run FutureSocieties.Change("Eugenics", 2)>> - <</if>> - - <<if $SecExp.edicts.defense.liveTargets == 1>> - Disobedient slaves are used in shooting ranges and military drills as live targets, furthering degradationist ideals. - <<run FutureSocieties.Change("Degradationist", 2)>> - <</if>> -<</if>> - -/* Promenade effects */ -<<run _cells = $building.findCells(cell => cell instanceof App.Arcology.Cell.Shop && !["Brothel", "Club", "Shops"].includes(cell.type))>> -<<for _i = 0; _i < _cells.length; _i++>> - The _cells[_i].type establishments on the Promenade help develop society. - <<set _changed_fs = _cells[_i].type.replace(/[- ]/g,"")>> - <<run FutureSocieties.Change(_changed_fs, 4)>> -<</for>> - -/* PA FS bonuses */ -<<if $policies.publicPA == 1 && $assistant.appearance != "normal">> - <<set _seed = 0>> - <<if $arcologies[0].FSSupremacist != "unset">> - <<if ["amazon", "monstergirl", "succubus"].includes($assistant.appearance)>> - <<set $arcologies[0].FSSupremacist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "supremacist">> - <<set $arcologies[0].FSSupremacist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSSubjugationist != "unset">> - <<if ["amazon", "businesswoman", "imp"].includes($assistant.appearance)>> - <<set $arcologies[0].FSSubjugationist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "subjugationist">> - <<set $arcologies[0].FSSubjugationist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSGenderRadicalist != "unset">> - <<if ["incubus", "monstergirl", "shemale", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSGenderRadicalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "gender radicalist">> - <<set $arcologies[0].FSGenderRadicalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSRepopulationFocus != "unset">> - <<if ["goddess", "hypergoddess", "preggololi", "pregnant fairy", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSRepopulationFocus += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "repopulation focus">> - <<set $arcologies[0].FSRepopulationFocus += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSRestart != "unset">> - <<if ["angel", "businesswoman", "goddess", "incubus", "loli", "schoolgirl", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSRestart += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "eugenics">> - <<set $arcologies[0].FSRestart += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSGenderFundamentalist != "unset">> - <<if ["angel", "cherub", "fairy", "goddess", "hypergoddess", "loli", "preggololi", "pregnant fairy", "schoolgirl", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSGenderFundamentalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "gender fundamentalist">> - <<set $arcologies[0].FSGenderFundamentalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSPaternalist != "unset">> - <<if ["angel", "cherub", "fairy", "goddess", "hypergoddess", "loli", "preggololi", "pregnant fairy", "schoolgirl"].includes($assistant.appearance)>> - <<set $arcologies[0].FSPaternalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "paternalist">> - <<set $arcologies[0].FSPaternalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSDegradationist != "unset">> - <<if ["businesswoman", "imp", "incubus", "monstergirl", "preggololi", "succubus"].includes($assistant.appearance)>> - <<set $arcologies[0].FSDegradationist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "degradationist">> - <<set $arcologies[0].FSDegradationist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSIntellectualDependency != "unset">> - <<if ["shemale", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSIntellectualDependency += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "intellectual dependency">> - <<set $arcologies[0].FSIntellectualDependency += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSSlaveProfessionalism != "unset">> - <<if ["angel", "businesswoman", "incubus", "goddess", "schoolgirl", "succubus"].includes($assistant.appearance)>> - <<set $arcologies[0].FSSlaveProfessionalism += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "slave professionalism">> - <<set $arcologies[0].FSSlaveProfessionalism += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSBodyPurist != "unset">> - <<if ["amazon", "angel", "fairy", "goddess", "incubus", "loli", "pregnant fairy", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSBodyPurist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "body purist">> - <<set $arcologies[0].FSBodyPurist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSTransformationFetishist != "unset">> - <<if ["businesswoman", "ERROR_1606_APPEARANCE_FILE_CORRUPT", "incubus", "shemale", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSTransformationFetishist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "transformation fetishist">> - <<set $arcologies[0].FSTransformationFetishist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSMaturityPreferentialist != "unset">> - <<if ["angel", "businesswoman", "goddess", "incubus", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSMaturityPreferentialist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "maturity preferentialist">> - <<set $arcologies[0].FSMaturityPreferentialist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSYouthPreferentialist != "unset">> - <<if ["angel", "cherub", "imp", "loli", "preggololi", "schoolgirl", "shemale", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSYouthPreferentialist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "youth preferentialist">> - <<set $arcologies[0].FSYouthPreferentialist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSPetiteAdmiration != "unset">> - <<if ["cherub", "fairy", "imp", "incubus", "loli", "preggololi", "pregnant fairy", "schoolgirl", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSPetiteAdmiration += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "petite admiration">> - <<set $arcologies[0].FSPetiteAdmiration += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSStatuesqueGlorification != "unset">> - <<if ["amazon", "goddess", "incubus", "succubus", "witch"].includes($assistant.appearance)>> - <<set $arcologies[0].FSStatuesqueGlorification += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "statuesque glorification">> - <<set $arcologies[0].FSStatuesqueGlorification += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <<if ["cherub", "imp", "loli", "schoolgirl", "shemale", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSSlimnessEnthusiast += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "slimness enthusiast">> - <<set $arcologies[0].FSSlimnessEnthusiast += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSAssetExpansionist != "unset">> - <<if ["businesswoman", "hypergoddess", "incubus", "shemale", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSAssetExpansionist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "asset expansionist">> - <<set $arcologies[0].FSAssetExpansionist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSPastoralist != "unset">> - <<if ["goddess", "hypergoddess", "incubus", "shemale", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSPastoralist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "pastoralist">> - <<set $arcologies[0].FSPastoralist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSPhysicalIdealist != "unset">> - <<if ["amazon", "incubus", "shemale", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSPhysicalIdealist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "physical idealist">> - <<set $arcologies[0].FSPhysicalIdealist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSHedonisticDecadence != "unset">> - <<if ["goddess", "hypergoddess", "imp", "incubus", "preggololi", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSHedonisticDecadence += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "hedonistic decadence">> - <<set $arcologies[0].FSHedonisticDecadence += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSChattelReligionist != "unset">> - <<if ["angel", "cherub", "goddess", "imp", "incubus", "monstergirl", "succubus", "witch"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSChattelReligionist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "chattel religionist">> - <<set $arcologies[0].FSChattelReligionist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSRomanRevivalist != "unset">> - <<if ["amazon", "businesswoman", "incubus", "succubus"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSRomanRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "roman revivalist">> - <<set $arcologies[0].FSRomanRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSNeoImperialist != "unset">> - <<if ["amazon", "businesswoman", "incubus", "shemale", "angel"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSNeoImperialist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "neo-imperialist">> - <<set $arcologies[0].FSNeoImperialist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <<if $arcologies[0].FSAztecRevivalist != "unset">> - <<if ["amazon", "businesswoman", "incubus", "succubus"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSAztecRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "aztec revivalist">> - <<set $arcologies[0].FSAztecRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <<if ["goddess", "incubus", "monstergirl", "succubus"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "egyptian revivalist">> - <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSEdoRevivalist != "unset">> - <<if ["amazon", "incubus", "kitsune", "loli", "monstergirl", "succubus"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSEdoRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "edo revivalist">> - <<set $arcologies[0].FSEdoRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSArabianRevivalist != "unset">> - <<if ["businesswoman", "incubus", "schoolgirl", "succubus"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSArabianRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "arabian revivalist">> - <<set $arcologies[0].FSArabianRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - <<if $arcologies[0].FSChineseRevivalist != "unset">> - <<if ["incubus", "monstergirl", "schoolgirl", "succubus"].includes($assistant.fsAppearance)>> - <<set $arcologies[0].FSChineseRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 1>> - <<elseif $assistant.fsAppearance == "chinese revivalist">> - <<set $arcologies[0].FSChineseRevivalist += 0.1*$FSSingleSlaveRep>> - <<set _seed = 2>> - <</if>> - <</if>> - - <br><br> - <<setAssistantPronouns>> - With _hisA $assistant.appearance appearance, $assistant.name's public visibility meshes <<if _seed == 2>>very well<<elseif _seed == 1>>well<</if>> with society. -<</if>> - -/* Progress overflow into influence */ -<<run FutureSocieties.overflowToInfluence(0)>> - -/* warm up policy influence */ -<<if $arcologies[0].FSEgyptianRevivalistIncestPolicy == 1 && $arcologies[0].FSEgyptianRevivalistInterest < 26>> - <<set $arcologies[0].FSEgyptianRevivalistInterest += $arcologies[0].FSEgyptianRevivalistIncestPolicy>> -<<elseif $arcologies[0].FSEgyptianRevivalistIncestPolicy == 0 && $arcologies[0].FSEgyptianRevivalistInterest > 0>> - <<set $arcologies[0].FSEgyptianRevivalistInterest-->> -<</if>> - -<<if ($arcologies[0].FSRepopulationFocusPregPolicy == 1 || $arcologies[0].FSRepopulationFocusMilfPolicy == 1) && $arcologies[0].FSRepopulationFocusInterest < 26>> - <<set $arcologies[0].FSRepopulationFocusInterest += $arcologies[0].FSRepopulationFocusPregPolicy+$arcologies[0].FSRepopulationFocusMilfPolicy>> - <<if $arcologies[0].FSEugenicsInterest > 0>> - <<set $arcologies[0].FSEugenicsInterest-->> - <</if>> -<<elseif $arcologies[0].FSRepopulationFocusPregPolicy == 0 && $arcologies[0].FSRepopulationFocusMilfPolicy == 0 && $arcologies[0].FSRepopulationFocusInterest > 0>> - <<set $arcologies[0].FSRepopulationFocusInterest-->> -<</if>> - -<<if ($arcologies[0].FSSupremacistSMR + $arcologies[0].FSSubjugationistSMR + $arcologies[0].FSGenderRadicalistSMR + $arcologies[0].FSGenderFundamentalistSMR + $arcologies[0].FSPaternalistSMR + $arcologies[0].FSDegradationistSMR + $arcologies[0].FSBodyPuristSMR + $arcologies[0].FSTransformationFetishistSMR + $arcologies[0].FSYouthPreferentialistSMR + $arcologies[0].FSMaturityPreferentialistSMR + $arcologies[0].FSSlimnessEnthusiastSMR + $arcologies[0].FSAssetExpansionistSMR + $arcologies[0].FSPastoralistSMR + $arcologies[0].FSPhysicalIdealistSMR + $arcologies[0].FSChattelReligionistSMR + $arcologies[0].FSRomanRevivalistSMR + $arcologies[0].FSAztecRevivalistSMR + $arcologies[0].FSEgyptianRevivalistSMR + $arcologies[0].FSEdoRevivalistSMR + $arcologies[0].FSRepopulationFocusSMR + $arcologies[0].FSRestartSMR + $arcologies[0].FSHedonisticDecadenceSMR + $arcologies[0].FSIntellectualDependencySMR + $arcologies[0].FSSlaveProfessionalismSMR + $arcologies[0].FSPetiteAdmirationSMR + $arcologies[0].FSStatuesqueGlorificationSMR + $arcologies[0].FSArabianRevivalistSMR + $arcologies[0].FSChineseRevivalistSMR + $arcologies[0].FSNeoImperialistSMR) > 0>> - The slave market regulations help ensure the arcology's slaves fit within its society. -<</if>> - -<<if $arcologies[0].FSSupremacist != "unset">> - <<if $arcologies[0].FSSupremacist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in $arcologies[0].FSSupremacistRace superiority. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSSupremacist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with $arcologies[0].FSSupremacistRace superiority. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSSupremacist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to $arcologies[0].FSSupremacistRace superiority. - <<else>> - $arcologies[0].name is unconvinced of $arcologies[0].FSSupremacistRace superiority. - <</if>> - <<if $arcologies[0].FSSupremacist < 0>> - <<run FutureSocieties.remove("FSSupremacist")>> - <<if $assistant.fsAppearance == "supremacist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSSupremacist > $arcologies[0].FSSupremacistDecoration>> - <<set $arcologies[0].FSSupremacist = $arcologies[0].FSSupremacistDecoration>> - <</if>> - <<if $arcologies[0].FSSupremacistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSSupremacist == $arcologies[0].FSSupremacistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSSupremacistSMR == 1>> - <<set $arcologies[0].FSSupremacist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSSubjugationist != "unset">> - <<if $arcologies[0].FSSubjugationist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in the inferiority of $arcologies[0].FSSubjugationistRace people. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSSubjugationist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the inferiority of $arcologies[0].FSSubjugationistRace people. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSSubjugationist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the inferiority of $arcologies[0].FSSubjugationistRace people. - <<else>> - $arcologies[0].name is unconvinced of the inferiority of $arcologies[0].FSSubjugationistRace people. - <</if>> - <<if $arcologies[0].FSSubjugationist < 0>> - <<run FutureSocieties.remove("FSSubjugationist")>> - <<if $assistant.fsAppearance == "subjugationist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSSubjugationist > $arcologies[0].FSSubjugationistDecoration>> - <<set $arcologies[0].FSSubjugationist = $arcologies[0].FSSubjugationistDecoration>> - <</if>> - <<if $arcologies[0].FSSubjugationistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSSubjugationist == $arcologies[0].FSSubjugationistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSSubjugationistSMR == 1>> - <<set $arcologies[0].FSSubjugationist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSRepopulationFocus != "unset">> - <<if $arcologies[0].FSRepopulationFocus >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that all women should be pregnant. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSRepopulationFocus >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly that all women should be pregnant. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSRepopulationFocus >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that all women should be pregnant. - <<else>> - $arcologies[0].name is unconvinced that all women should be pregnant. - <</if>> - <<if $arcologies[0].FSRepopulationFocus < 0>> - <<run FutureSocieties.remove("FSRepopulationFocus")>> - <<if $assistant.fsAppearance == "repopulation focus">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSRepopulationFocus > $arcologies[0].FSRepopulationFocusDecoration>> - <<set $arcologies[0].FSRepopulationFocus = $arcologies[0].FSRepopulationFocusDecoration>> - <</if>> - <<if $arcologies[0].FSRepopulationFocusDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSRepopulationFocus == $arcologies[0].FSRepopulationFocusDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSRepopulationFocusSMR == 1>> - <<set $arcologies[0].FSRepopulationFocus += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSRestart != "unset">> - <<if $arcologies[0].FSRestart >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that only the elite should reproduce. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSRestart >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly that only the elite should reproduce. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSRestart >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea only the elite should reproduce. - <<else>> - $arcologies[0].name is unconvinced that only the elite should reproduce. - <</if>> - <<if $arcologies[0].FSRestart < 0 && $arcologies[0].FSRestartDecoration != 100>> - <<run FutureSocieties.remove("FSRestart")>> - <<if $assistant.fsAppearance == "eugenics">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSRestart > $arcologies[0].FSRestartDecoration>> - <<set $arcologies[0].FSRestart = $arcologies[0].FSRestartDecoration>> - <</if>> - <<if $arcologies[0].FSRestartDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSRestart == $arcologies[0].FSRestartDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSRestartSMR == 1>> - <<set $arcologies[0].FSRestart += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSGenderRadicalist != "unset">> - <<if $arcologies[0].FSGenderRadicalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in the need to redefine gender around power. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSGenderRadicalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the need to redefine gender around power. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSGenderRadicalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the need to redefine gender around power. - <<else>> - $arcologies[0].name is unconvinced of the need to redefine gender around power. - <</if>> - <<if $arcologies[0].FSGenderRadicalist < 0>> - <<run FutureSocieties.remove("FSGenderRadicalist")>> - <<if $assistant.fsAppearance == "gender radicalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSGenderRadicalist > $arcologies[0].FSGenderRadicalistDecoration>> - <<set $arcologies[0].FSGenderRadicalist = $arcologies[0].FSGenderRadicalistDecoration>> - <</if>> - <<if $arcologies[0].FSGenderRadicalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSGenderRadicalist == $arcologies[0].FSGenderRadicalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSGenderRadicalistSMR == 1>> - <<set $arcologies[0].FSGenderRadicalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSGenderFundamentalist != "unset">> - <<if $arcologies[0].FSGenderFundamentalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in the need to preserve traditional gender roles. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSGenderFundamentalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the need to preserve traditional gender roles. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSGenderFundamentalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the need to preserve traditional gender roles. - <<else>> - $arcologies[0].name is unconvinced of the need to preserve traditional gender roles. - <</if>> - <<if $arcologies[0].FSGenderFundamentalist < 0>> - <<run FutureSocieties.remove("FSGenderFundamentalist")>> - <<if $assistant.fsAppearance == "gender fundamentalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSGenderFundamentalist > $arcologies[0].FSGenderFundamentalistDecoration>> - <<set $arcologies[0].FSGenderFundamentalist = $arcologies[0].FSGenderFundamentalistDecoration>> - <</if>> - <<if $arcologies[0].FSGenderFundamentalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSGenderFundamentalist == $arcologies[0].FSGenderFundamentalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSGenderFundamentalistSMR == 1>> - <<set $arcologies[0].FSGenderFundamentalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSPaternalist != "unset">> - <<if $arcologies[0].FSPaternalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in the vision of a well-bred race of slaves. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPaternalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the vision of a well-bred race of slaves. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPaternalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the vision of a well-bred race of slaves. - <<else>> - $arcologies[0].name is unconvinced of the vision of a well-bred race of slaves. - <</if>> - <<if $arcologies[0].FSPaternalist < 0>> - <<run FutureSocieties.remove("FSPaternalist")>> - <<if $assistant.fsAppearance == "paternalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSPaternalist > $arcologies[0].FSPaternalistDecoration>> - <<set $arcologies[0].FSPaternalist = $arcologies[0].FSPaternalistDecoration>> - <</if>> - <<if $arcologies[0].FSPaternalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSPaternalist == $arcologies[0].FSPaternalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSPaternalistSMR == 1>> - <<set $arcologies[0].FSPaternalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSDegradationist != "unset">> - <<if $arcologies[0].FSDegradationist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that slaves are not human and should be thoroughly degraded. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSDegradationist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the idea that slaves are not human and should be thoroughly degraded. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSDegradationist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the proposition that slaves are not human and should be thoroughly degraded. - <<else>> - $arcologies[0].name is unconvinced that slaves are not human and should be thoroughly degraded. - <</if>> - <<if $arcologies[0].FSDegradationist < 0>> - <<run FutureSocieties.remove("FSDegradationist")>> - <<if $assistant.fsAppearance == "degradationist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSDegradationist > $arcologies[0].FSDegradationistDecoration>> - <<set $arcologies[0].FSDegradationist = $arcologies[0].FSDegradationistDecoration>> - <</if>> - <<if $arcologies[0].FSDegradationistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSDegradationist == $arcologies[0].FSDegradationistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSDegradationistSMR == 1>> - <<set $arcologies[0].FSDegradationist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSIntellectualDependency != "unset">> - <<if $arcologies[0].FSIntellectualDependency >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that all slaves should be mentally dependant on their owner. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSIntellectualDependency >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly that all slaves should be bimbos. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSIntellectualDependency >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that slaves should be dumb and horny. - <<else>> - $arcologies[0].name is unconvinced that all slaves should be morons. - <</if>> - <<if $arcologies[0].FSIntellectualDependency < 0>> - <<run FutureSocieties.remove("FSIntellectualDependency")>> - <<if $assistant.fsAppearance == "intellectual dependency">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSIntellectualDependency > $arcologies[0].FSIntellectualDependencyDecoration>> - <<set $arcologies[0].FSIntellectualDependency = $arcologies[0].FSIntellectualDependencyDecoration>> - <</if>> - <<if $arcologies[0].FSIntellectualDependencyDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSIntellectualDependency == $arcologies[0].FSIntellectualDependencyDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSIntellectualDependencySMR == 1>> - <<set $arcologies[0].FSIntellectualDependency += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSSlaveProfessionalism != "unset">> - <<if $arcologies[0].FSSlaveProfessionalism >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that slaves should be masters of the sexual arts. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSSlaveProfessionalism >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with slavery as a profession. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSSlaveProfessionalism >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the notion of slavery as a profession. - <<else>> - $arcologies[0].name is unconvinced that slaves should be highly intelligent. - <</if>> - <<if $arcologies[0].FSSlaveProfessionalism < 0>> - <<run FutureSocieties.remove("FSSlaveProfessionalism")>> - <<if $assistant.fsAppearance == "slave professionalism">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSSlaveProfessionalism > $arcologies[0].FSSlaveProfessionalismDecoration>> - <<set $arcologies[0].FSSlaveProfessionalism = $arcologies[0].FSSlaveProfessionalismDecoration>> - <</if>> - <<if $arcologies[0].FSSlaveProfessionalismDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSSlaveProfessionalism == $arcologies[0].FSSlaveProfessionalismDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSSlaveProfessionalismSMR == 1>> - <<set $arcologies[0].FSSlaveProfessionalism += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSBodyPurist != "unset">> - <<if $arcologies[0].FSBodyPurist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in the unattractive nature of implants. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSBodyPurist >= $FSLockinLevel*0.6>> - $arcologies[0].name strongly believes in the unattractive nature of implants. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSBodyPurist >= $FSLockinLevel*0.3>> - $arcologies[0].name is beginning to believe in the unattractive nature of implants. - <<else>> - $arcologies[0].name is unconvinced of the unattractive nature of implants. - <</if>> - <<if $arcologies[0].FSBodyPurist < 0>> - <<run FutureSocieties.remove("FSBodyPurist")>> - <<if $assistant.fsAppearance == "body purist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSBodyPurist > $arcologies[0].FSBodyPuristDecoration>> - <<set $arcologies[0].FSBodyPurist = $arcologies[0].FSBodyPuristDecoration>> - <</if>> - <<if $arcologies[0].FSBodyPuristDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSBodyPurist == $arcologies[0].FSBodyPuristDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSBodyPuristSMR == 1>> - <<set $arcologies[0].FSBodyPurist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSTransformationFetishist != "unset">> - <<if $arcologies[0].FSTransformationFetishist >= $FSLockinLevel>> - $arcologies[0].name passionately fetishizes implants. - <<elseif $arcologies[0].FSTransformationFetishist >= $FSLockinLevel*0.6>> - $arcologies[0].name strongly fetishizes implants. - <<elseif $arcologies[0].FSTransformationFetishist >= $FSLockinLevel*0.3>> - $arcologies[0].name is beginning to fetishize implants. - <<else>> - $arcologies[0].name is unconvinced about the attractiveness of implants. - <</if>> - <<if $arcologies[0].FSTransformationFetishist < 0>> - <<run FutureSocieties.remove("FSTransformationFetishist")>> - <<if $assistant.fsAppearance == "transformation fetishist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSTransformationFetishist > $arcologies[0].FSTransformationFetishistDecoration>> - <<set $arcologies[0].FSTransformationFetishist = $arcologies[0].FSTransformationFetishistDecoration>> - <</if>> - <<if $arcologies[0].FSTransformationFetishistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSTransformationFetishist == $arcologies[0].FSTransformationFetishistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSTransformationFetishistSMR == 1>> - <<set $arcologies[0].FSTransformationFetishist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSMaturityPreferentialist != "unset">> - <<if $arcologies[0].FSMaturityPreferentialist >= $FSLockinLevel>> - $arcologies[0].name is passionately enthusiastic about older ladies. - <<elseif $arcologies[0].FSMaturityPreferentialist >= $FSLockinLevel*0.6>> - $arcologies[0].name is enthusiastic about older ladies. - <<elseif $arcologies[0].FSMaturityPreferentialist >= $FSLockinLevel*0.3>> - $arcologies[0].name is beginning to be enthusiastic about older ladies. - <<else>> - $arcologies[0].name is unconvinced about your preference for older ladies. - <</if>> - <<if $arcologies[0].FSMaturityPreferentialist < 0>> - <<run FutureSocieties.remove("FSMaturityPreferentialist")>> - <<if $assistant.fsAppearance == "maturity preferentialist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSMaturityPreferentialist > $arcologies[0].FSMaturityPreferentialistDecoration>> - <<set $arcologies[0].FSMaturityPreferentialist = $arcologies[0].FSMaturityPreferentialistDecoration>> - <</if>> - <<if $arcologies[0].FSMaturityPreferentialistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSMaturityPreferentialist == $arcologies[0].FSMaturityPreferentialistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSMaturityPreferentialistSMR == 1>> - <<set $arcologies[0].FSMaturityPreferentialist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSYouthPreferentialist != "unset">> - <<if $arcologies[0].FSYouthPreferentialist >= $FSLockinLevel>> - $arcologies[0].name is passionately enthusiastic about young women. - <<elseif $arcologies[0].FSYouthPreferentialist >= $FSLockinLevel*0.6>> - $arcologies[0].name is enthusiastic about young women. - <<elseif $arcologies[0].FSYouthPreferentialist >= $FSLockinLevel*0.3>> - $arcologies[0].name is beginning to be enthusiastic about young women. - <<else>> - $arcologies[0].name is unconvinced about your preference for young women. - <</if>> - <<if $arcologies[0].FSYouthPreferentialist < 0>> - <<run FutureSocieties.remove("FSYouthPreferentialist")>> - <<if $assistant.fsAppearance == "youth preferentialist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSYouthPreferentialist > $arcologies[0].FSYouthPreferentialistDecoration>> - <<set $arcologies[0].FSYouthPreferentialist = $arcologies[0].FSYouthPreferentialistDecoration>> - <</if>> - <<if $arcologies[0].FSYouthPreferentialistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSYouthPreferentialist == $arcologies[0].FSYouthPreferentialistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSYouthPreferentialistSMR == 1>> - <<set $arcologies[0].FSYouthPreferentialist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSPetiteAdmiration != "unset">> - <<if $arcologies[0].FSPetiteAdmiration >= $FSLockinLevel>> - $arcologies[0].name is passionately enthusiastic for short slaves. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPetiteAdmiration >= $FSLockinLevel*0.6>> - $arcologies[0].name is very enthusiastic for short slaves. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPetiteAdmiration >= $FSLockinLevel*0.3>> - $arcologies[0].name is enthusiastic for short slaves. - <<else>> - $arcologies[0].name is beginning to be enthusiastic for short slaves. - <</if>> - <<if $arcologies[0].FSPetiteAdmiration < 0>> - <<run FutureSocieties.remove("FSPetiteAdmiration")>> - <<if $assistant.fsAppearance == "petite admiration">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSPetiteAdmiration > $arcologies[0].FSPetiteAdmirationDecoration>> - <<set $arcologies[0].FSPetiteAdmiration = $arcologies[0].FSPetiteAdmirationDecoration>> - <</if>> - <<if $arcologies[0].FSPetiteAdmirationDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSPetiteAdmiration == $arcologies[0].FSPetiteAdmirationDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSPetiteAdmirationSMR == 1>> - <<set $arcologies[0].FSPetiteAdmiration += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSStatuesqueGlorification != "unset">> - <<if $arcologies[0].FSStatuesqueGlorification >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that the tall are superior. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSStatuesqueGlorification >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the idea that the tall are superior. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSStatuesqueGlorification >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that the tall are superior. - <<else>> - $arcologies[0].name is unconvinced that the tall are superior. - <</if>> - <<if $arcologies[0].FSStatuesqueGlorification < 0>> - <<run FutureSocieties.remove("FSStatuesqueGlorification")>> - <<if $assistant.fsAppearance == "statuesque glorificationDecoration">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSStatuesqueGlorification > $arcologies[0].FSStatuesqueGlorificationDecoration>> - <<set $arcologies[0].FSStatuesqueGlorification = $arcologies[0].FSStatuesqueGlorificationDecoration>> - <</if>> - <<if $arcologies[0].FSStatuesqueGlorificationDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSStatuesqueGlorification == $arcologies[0].FSStatuesqueGlorificationDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSStatuesqueGlorificationSMR == 1>> - <<set $arcologies[0].FSStatuesqueGlorification += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSSlimnessEnthusiast != "unset">> - <<if $arcologies[0].FSSlimnessEnthusiast >= $FSLockinLevel>> - $arcologies[0].name is passionately enthusiastic about slim slaves with girlish figures. - <<elseif $arcologies[0].FSSlimnessEnthusiast >= $FSLockinLevel*0.6>> - $arcologies[0].name is very enthusiastic about slim slaves with girlish figures. - <<elseif $arcologies[0].FSSlimnessEnthusiast >= $FSLockinLevel*0.3>> - $arcologies[0].name is enthusiastic about slim slaves with girlish figures. - <<else>> - $arcologies[0].name is unconvinced about your preference for slim slaves with girlish figures. - <</if>> - <<if $arcologies[0].FSSlimnessEnthusiast < 0>> - <<run FutureSocieties.remove("FSSlimnessEnthusiast")>> - <<if $assistant.fsAppearance == "slimness enthusiast">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSSlimnessEnthusiast > $arcologies[0].FSSlimnessEnthusiastDecoration>> - <<set $arcologies[0].FSSlimnessEnthusiast = $arcologies[0].FSSlimnessEnthusiastDecoration>> - <</if>> - <<if $arcologies[0].FSSlimnessEnthusiastDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSSlimnessEnthusiast == $arcologies[0].FSSlimnessEnthusiastDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSSlimnessEnthusiastSMR == 1>> - <<set $arcologies[0].FSSlimnessEnthusiast += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSAssetExpansionist != "unset">> - <<if $arcologies[0].FSAssetExpansionist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that all tits and asses should be bigger. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSAssetExpansionist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the idea that all tits and asses should be bigger. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSAssetExpansionist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that all tits and asses should be bigger. - <<else>> - $arcologies[0].name is unconvinced that all tits and asses should be bigger. - <</if>> - <<if $arcologies[0].FSAssetExpansionist < 0>> - <<run FutureSocieties.remove("FSAssetExpansionist")>> - <<if $assistant.fsAppearance == "asset expansionist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSAssetExpansionist > $arcologies[0].FSAssetExpansionistDecoration>> - <<set $arcologies[0].FSAssetExpansionist = $arcologies[0].FSAssetExpansionistDecoration>> - <</if>> - <<if $arcologies[0].FSAssetExpansionistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSAssetExpansionist == $arcologies[0].FSAssetExpansionistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSAssetExpansionistSMR == 1>> - <<set $arcologies[0].FSAssetExpansionist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSPastoralist != "unset">> - <<if $arcologies[0].FSPastoralist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that slaves should be milked. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPastoralist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the idea that slaves should be milked. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPastoralist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that slaves should be milked. - <<else>> - $arcologies[0].name is unconvinced that slaves should be milked. - <</if>> - <<if $arcologies[0].FSPastoralist < 0>> - <<run FutureSocieties.remove("FSPastoralist")>> - <<if $assistant.fsAppearance == "pastoralist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSPastoralist > $arcologies[0].FSPastoralistDecoration>> - <<set $arcologies[0].FSPastoralist = $arcologies[0].FSPastoralistDecoration>> - <</if>> - <<if $arcologies[0].FSPastoralistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSPastoralist == $arcologies[0].FSPastoralistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSPastoralistSMR == 1>> - <<set $arcologies[0].FSPastoralist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSPhysicalIdealist != "unset">> - <<if $arcologies[0].FSPhysicalIdealist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that all slaves should be tall and strong. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPhysicalIdealist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the idea that all slaves should be tall and strong. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSPhysicalIdealist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that all slaves should be tall and strong. - <<else>> - $arcologies[0].name is unconvinced that all slaves should be tall and strong. - <</if>> - <<if $arcologies[0].FSPhysicalIdealist < 0>> - <<run FutureSocieties.remove("FSPhysicalIdealist")>> - <<if $assistant.fsAppearance == "physical idealist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSPhysicalIdealist > $arcologies[0].FSPhysicalIdealistDecoration>> - <<set $arcologies[0].FSPhysicalIdealist = $arcologies[0].FSPhysicalIdealistDecoration>> - <</if>> - <<if $arcologies[0].FSPhysicalIdealistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSPhysicalIdealist == $arcologies[0].FSPhysicalIdealistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSPhysicalIdealistSMR == 1>> - <<set $arcologies[0].FSPhysicalIdealist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSHedonisticDecadence != "unset">> - <<if $arcologies[0].FSHedonisticDecadence >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that all slaves should be soft and laid-back. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSHedonisticDecadence >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with the idea that all slaves should be soft and laid-back. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSHedonisticDecadence >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to the idea that all slaves should be soft and laid-back. - <<else>> - $arcologies[0].name is unconvinced that all slaves should be soft and laid-back. - <</if>> - <<if $arcologies[0].FSHedonisticDecadence < 0>> - <<run FutureSocieties.remove("FSHedonisticDecadence")>> - <<if $assistant.fsAppearance == "hedonistic decadence">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSHedonisticDecadence > $arcologies[0].FSHedonisticDecadenceDecoration>> - <<set $arcologies[0].FSHedonisticDecadence = $arcologies[0].FSHedonisticDecadenceDecoration>> - <</if>> - <<if $arcologies[0].FSHedonisticDecadenceDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSHedonisticDecadence == $arcologies[0].FSHedonisticDecadenceDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSHedonisticDecadenceSMR == 1>> - <<set $arcologies[0].FSHedonisticDecadence += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSChattelReligionist != "unset">> - <<if $arcologies[0].FSChattelReligionist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly in a version of religion that emphasizes slaveholding traditions. - <<set $independenceDay = 1, $nicaea.announceable = 1>> - <<elseif $arcologies[0].FSChattelReligionist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with a version of religion that emphasizes slaveholding traditions. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSChattelReligionist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to a version of religion that emphasizes slaveholding traditions. - <<else>> - $arcologies[0].name is unconvinced of a version of religion that emphasizes slaveholding traditions. - <</if>> - <<if $arcologies[0].FSChattelReligionist < 0>> - <<run FutureSocieties.remove("FSChattelReligionist")>> - <<if $assistant.fsAppearance == "chattel religionist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSChattelReligionist > $arcologies[0].FSChattelReligionistDecoration>> - <<set $arcologies[0].FSChattelReligionist = $arcologies[0].FSChattelReligionistDecoration>> - <</if>> - <<if $arcologies[0].FSChattelReligionistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSChattelReligionist == $arcologies[0].FSChattelReligionistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSChattelReligionistSMR == 1>> - <<set $arcologies[0].FSChattelReligionist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSRomanRevivalist != "unset">> - <<if $arcologies[0].FSRomanRevivalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that it is the new Rome. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSRomanRevivalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your project to build a new Rome. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSRomanRevivalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your project to build a new Rome. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your project to build a new Rome. - <</if>> - <<if $arcologies[0].FSRomanRevivalist < 0>> - <<run FutureSocieties.remove("FSRomanRevivalist")>> - <<if $assistant.fsAppearance == "roman revivalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSRomanRevivalist > $arcologies[0].FSRomanRevivalistDecoration>> - <<set $arcologies[0].FSRomanRevivalist = $arcologies[0].FSRomanRevivalistDecoration>> - <</if>> - <<if $arcologies[0].FSRomanRevivalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSRomanRevivalist == $arcologies[0].FSRomanRevivalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSRomanRevivalistSMR == 1>> - <<set $arcologies[0].FSRomanRevivalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSNeoImperialist != "unset">> - <<if $arcologies[0].FSNeoImperialist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that your arcology is a truly new Imperial Society. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSNeoImperialist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your project to build a new Imperial Society. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSNeoImperialist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your project to build a new Imperial Society. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your project to build a new Imperial Society. - <</if>> - <<if $arcologies[0].FSNeoImperialist < 0>> - <<run FutureSocieties.remove("FSNeoImperialist")>> - <<if $assistant.fsAppearance == "neo-imperialist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSNeoImperialist > $arcologies[0].FSNeoImperialistDecoration>> - <<set $arcologies[0].FSNeoImperialist = $arcologies[0].FSNeoImperialistDecoration>> - <</if>> - <<if $arcologies[0].FSNeoImperialistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSNeoImperialist == $arcologies[0].FSNeoImperialistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSNeoImperialistSMR == 1>> - <<set $arcologies[0].FSNeoImperialist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSAztecRevivalist != "unset">> - <<if $arcologies[0].FSAztecRevivalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that it is the new Aztec Empire. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSAztecRevivalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your project to build a new Aztec Empire. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSAztecRevivalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your project to build a new Aztec Empire. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your project to build a new Aztec Empire. - <</if>> - <<if $arcologies[0].FSAztecRevivalist < 0>> - <<run FutureSocieties.remove("FSAztecRevivalist")>> - <<if $assistant.fsAppearance == "aztec revivalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSAztecRevivalist > $arcologies[0].FSAztecRevivalistDecoration>> - <<set $arcologies[0].FSAztecRevivalist = $arcologies[0].FSAztecRevivalistDecoration>> - <</if>> - <<if $arcologies[0].FSAztecRevivalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSAztecRevivalist == $arcologies[0].FSAztecRevivalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSAztecRevivalistSMR == 1>> - <<set $arcologies[0].FSAztecRevivalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSEgyptianRevivalist != "unset">> - <<if $arcologies[0].FSEgyptianRevivalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that it is the land of the Pharaohs, reborn. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSEgyptianRevivalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your project to build a new land of the Pharaohs. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSEgyptianRevivalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your project to build a new land of the Pharaohs. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your project to build a new land of the Pharaohs. - <</if>> - <<if $arcologies[0].FSEgyptianRevivalist < 0>> - <<run FutureSocieties.remove("FSEgyptianRevivalist")>> - <<if $assistant.fsAppearance == "egyptian revivalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSEgyptianRevivalist > $arcologies[0].FSEgyptianRevivalistDecoration>> - <<set $arcologies[0].FSEgyptianRevivalist = $arcologies[0].FSEgyptianRevivalistDecoration>> - <</if>> - <<if $arcologies[0].FSEgyptianRevivalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSEgyptianRevivalist == $arcologies[0].FSEgyptianRevivalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSEgyptianRevivalistSMR == 1>> - <<set $arcologies[0].FSEgyptianRevivalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSEdoRevivalist != "unset">> - <<if $arcologies[0].FSEdoRevivalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that it is the land of the Shogun, reborn. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSEdoRevivalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your project to build a new Edo Japan. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSEdoRevivalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your project to build a new Edo Japan. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your project to build a new Edo Japan. - <</if>> - <<if $arcologies[0].FSEdoRevivalist < 0>> - <<run FutureSocieties.remove("FSEdoRevivalist")>> - <<if $assistant.fsAppearance == "edo revivalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSEdoRevivalist > $arcologies[0].FSEdoRevivalistDecoration>> - <<set $arcologies[0].FSEdoRevivalist = $arcologies[0].FSEdoRevivalistDecoration>> - <</if>> - <<if $arcologies[0].FSEdoRevivalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSEdoRevivalist == $arcologies[0].FSEdoRevivalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSEdoRevivalistSMR == 1>> - <<set $arcologies[0].FSEdoRevivalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSArabianRevivalist != "unset">> - <<if $arcologies[0].FSArabianRevivalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that it is ancient Baghdad reborn. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSArabianRevivalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your project to build a new Sultanate. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSArabianRevivalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your project to build a new Sultanate. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your project to build a new Sultanate. - <</if>> - <<if $arcologies[0].FSArabianRevivalist < 0>> - <<run FutureSocieties.remove("FSArabianRevivalist")>> - <<if $assistant.fsAppearance == "arabian revivalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSArabianRevivalist > $arcologies[0].FSArabianRevivalistDecoration>> - <<set $arcologies[0].FSArabianRevivalist = $arcologies[0].FSArabianRevivalistDecoration>> - <</if>> - <<if $arcologies[0].FSArabianRevivalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSArabianRevivalist == $arcologies[0].FSArabianRevivalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSArabianRevivalistSMR == 1>> - <<set $arcologies[0].FSArabianRevivalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<if $arcologies[0].FSChineseRevivalist != "unset">> - <<if $arcologies[0].FSChineseRevivalist >= $FSLockinLevel>> - $arcologies[0].name believes implicitly that you possess the Mandate of Heaven. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSChineseRevivalist >= $FSLockinLevel*0.6>> - $arcologies[0].name agrees strongly with your pursuit of the Mandate of Heaven. - <<set $independenceDay = 1>> - <<elseif $arcologies[0].FSChineseRevivalist >= $FSLockinLevel*0.3>> - $arcologies[0].name is sympathetic to your pursuit of the Mandate of Heaven. - <<else>> - $arcologies[0].name is unconvinced of the wisdom of your pursuit of the Mandate of Heaven. - <</if>> - <<if $arcologies[0].FSChineseRevivalist < 0>> - <<run FutureSocieties.remove("FSChineseRevivalist")>> - <<if $assistant.fsAppearance == "chinese revivalist">><<set $assistant.fsAppearance = "default">><</if>> - @@.red;Your future society project has failed:@@ your citizens were repelled from your idea more than they were attracted to it. @@.yellow;You may select another option, or elect to try again.@@ - <<elseif $arcologies[0].FSChineseRevivalist > $arcologies[0].FSChineseRevivalistDecoration>> - <<set $arcologies[0].FSChineseRevivalist = $arcologies[0].FSChineseRevivalistDecoration>> - <</if>> - <<if $arcologies[0].FSChineseRevivalistDecoration < $FSLockinLevel>> - <<if $arcologies[0].FSChineseRevivalist == $arcologies[0].FSChineseRevivalistDecoration>> - @@.yellow;Your societal development in this direction is being limited by $arcologies[0].name's lack of customization to support it.@@ - <<set $FSReminder = 1>> - <<elseif $arcologies[0].FSChineseRevivalistSMR == 1>> - <<set $arcologies[0].FSChineseRevivalist += 0.1*$FSSingleSlaveRep>> - <</if>> - <</if>> -<</if>> - -<<run App.UI.SlaveSummary.societyChanged()>> diff --git a/src/uncategorized/marketsReport.tw b/src/uncategorized/marketsReport.tw deleted file mode 100644 index 5706634f77f1b63902d47f39cdd5369e471fb3cb..0000000000000000000000000000000000000000 --- a/src/uncategorized/marketsReport.tw +++ /dev/null @@ -1,106 +0,0 @@ -:: Markets Report [nobr] - -//FC Markets Report:// - -<<set _assetAffected = either("capture", "drugs", "entrapment", "general", "slaves", "surgical", "training")>> -<<set _assetDirection = either("down", "up")>> - -<<if _assetAffected == "general">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...rising energy costs drove @@.yellowgreen;rising prices@@ of several market baskets... - <<else>> - ...conflict-driven increases in transportation costs increase @@.yellowgreen;price indices@@... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...increasing Free Cities slave labor effects @@.gold;general prices@@... - <<else>> - ...Antarctic oil shale pushing down energy prices, driving down major @@.gold;price indices@@... - <</if>> - <</if>> -<<elseif _assetAffected == "slaves">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...heavy demand for fashionable varieties drove @@.yellowgreen;rising slave prices@@ last... - <<else>> - ...study suggested the sexual revolution would continue to drive up @@.yellowgreen;slave prices@@... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...increased supply due to bush wars drove down @@.gold;slave prices@@... - <<else>> - ...@@.gold;slave prices@@ continue to fall due to major improvements in training... - <</if>> - <</if>> -<<elseif _assetAffected == "entrapment">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...prospect of deregulation drove a @@.yellowgreen;scramble@@ for means of enslavement... - <<else>> - ...law would legalize enslavement, driving @@.yellowgreen;high prices@@ for associated... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...reactionism produced lower demand and @@.gold;lower prices@@ for legal enslavement... - <<else>> - ...report on low success rates @@.gold;drove down@@ value of legal enslavement methods... - <</if>> - <</if>> -<<elseif _assetAffected == "capture">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...declaration of war @@.yellowgreen;pushed up@@ average mercenary wage... - <<else>> - ...advancing technology to blame for @@.yellowgreen;rising costs@@ of assets for wet work... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...rumored peace treaty @@.gold;pushed down@@ mercenary contract clearing rate... - <<else>> - ...demobilization of the cash-strapped army expected to produce mercenary @@.gold;glut@@... - <</if>> - <</if>> -<<elseif _assetAffected == "training">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...rising demand in turn @@.yellowgreen;pushing up@@ prices for most means of slave training... - <<else>> - ...public demand for ever-better slave training inevitably @@.yellowgreen;increase@@ training costs... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...competition from low-cost slave breaking firms @@.gold;reducing@@ asking price for... - <<else>> - ...increased automation of slave training @@.gold;negatively impacting@@ training contracts... - <</if>> - <</if>> -<<elseif _assetAffected == "surgical">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...fashionable extravagant implant procedures @@.yellowgreen;driving prices@@ of remote surgical... - <<else>> - ...near-universal breast implants producing corresponding @@.yellowgreen;price inflation@@ of surgery... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...vastly reduced overhead with remote surgery @@.gold;hitting prices@@ of surgery hard... - <<else>> - ...oversupply after major manufacturers converted lines to @@.gold;low-cost@@ implant production... - <</if>> - <</if>> -<<elseif _assetAffected == "drugs">> - <<if _assetDirection == "up">> - <<if random(1,100) > 50>> - ...intense demand for curatives in conflict zones @@.yellowgreen;increasing prices@@... - <<else>> - ...setbacks in growth hormone human testing expected to @@.yellowgreen;increase prices@@ of traditional formula... - <</if>> - <<else>> - <<if random(1,100) > 50>> - ...new formula @@.gold;cut costs@@ of common curatives by an unprecedented... - <<else>> - ...glut caused by big pharma reorienting towards @@.gold;cheap,@@ mass-produced aphros... - <</if>> - <</if>> -<</if>> diff --git a/src/uncategorized/officeDescription.tw b/src/uncategorized/officeDescription.tw index 9b51aa2cc4b5cfe1df082830436ec1e5c6e5b538..3c08f3cb5c5d57f464f61ce65b634a06535e71f8 100644 --- a/src/uncategorized/officeDescription.tw +++ b/src/uncategorized/officeDescription.tw @@ -188,7 +188,7 @@ <</switch>> <</if>> <</if>> -<<= printTrinkets()>> +<br> <<= printTrinkets()>> A small mirror resides on your desk, facing you. A $PC.visualAge year old, $PC.faceShape<<if $PC.markings == "freckles">>, freckled<<elseif $PC.markings == "heavily freckled">>, densely freckled<</if>> face stares back at you. diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw index 583e2fa2da81350ca92fc11dc8f11247c7e9fedb..7815c4bff9489255ed98cc53fbf9519a6d348b86 100644 --- a/src/uncategorized/sellSlave.tw +++ b/src/uncategorized/sellSlave.tw @@ -373,7 +373,7 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu <<elseif _careers.length > 1>> _careers[1] and <<print _careers[0]>>. <<else>> - <<print _careers[0]>>. Providing $him the same additional value if $he had a relevant career. + <<print _careers[0]>>, providing $him the same additional value if $he had a relevant career. <</if>> <</if>>