diff --git a/.eslintrc.json b/.eslintrc.json index 79f2fa4db6e21149322a7b6a69195e8eb13ef92d..23d7a4227ab861a9ef96cef7d8c613ba06caec2c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -83,11 +83,6 @@ { "allowSingleLine": true } - ], - "jsdoc/check-alignment": 1, - "jsdoc/check-indentation": 1, - "jsdoc/check-param-names": 1, - "jsdoc/check-syntax": 1, - "jsdoc/check-tag-names": 1 + ] } } diff --git a/Changelog.txt b/Changelog.txt index d5241bc0bbfaa8f9a46e5dad119b6e62e30caa8f..4aab10f0d724d8dc2825311a94650cbbcb0006f8 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,13 @@ Pregmod +0.10.7.1-2.5.x + + 0 + -RA refactoring + -superfetation tweaks + -preg analysis can now identify genetic quirks in fetuses + -fixes + 0.10.7.1-2.4.x 05/25/2019 diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 92139a61d17188db65f0568452ac0200b6933e52..e104db7834b168da9a08e819aca03f16b846f319 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -1316,7 +1316,7 @@ window.DefaultRules = (function() { if ((slave.drugs === "super fertility drugs" || slave.drugs === "fertility drugs") && isFertile(slave)) { r += `<br>${slave.slaveName} is on ${slave.drugs} and will not be considered for drug enhancement until that regime is complete.`; return; - } else if ((rule.growth.boobs === null && rule.growth.butt === null && rule.growth.lips === null && rule.growth.dick === null && rule.growth.balls === null)) { + } else if (slave.indentureRestrictions > 1 || (rule.growth.boobs === null && rule.growth.butt === null && rule.growth.lips === null && rule.growth.dick === null && rule.growth.balls === null)) { return; } diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 1c810000a9cd3181ec45c562efeb15cb01851b58..b920ae803e62e057b227247edc2d4eaa60fa8ecb 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -723,9 +723,13 @@ App.Entity.SlaveState = class SlaveState { * * 7000-7499 - X-cup * * 7500-7999 - Y-cup * * 8000-8499 - Z-cup - * * 8500-19999 - obscenely massive - * * 20000-29999 - beanbag sized - * * 30000-48000 - room filling + * * 8500-14999 - obscenely massive + * * 15000-24999 - arm filling + * * 25000-39999 - figure dominating + * * 40000-54999 - beanbag sized + * * 55000-69999 - door jamming + * * 70000-89999 - hall clearing + * * 90000-100000 - hall jamming */ this.boobs = 0; /** breast engorgement from unmilked tits */ diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index e4c82a737cccef1698efc17877c3179f3dafe5c2..2e4f99dd086bf02a88e772622314ceb7d69bf1ca 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -1958,8 +1958,11 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { /** @param {App.RA.Rule} rule */ function ruleCleanup(rule) { - cleanupConditions(rule.condition); - cleanupSetters(rule.set); + // ensure rule has all required propertirs + let newRule = App.RA.ruleDeepAssign(emptyDefaultRule(), rule) + cleanupConditions(newRule.condition); + cleanupSetters(newRule.set); + return newRule; } /** @param {App.RA.RuleConditions} cond */ @@ -1976,12 +1979,11 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { /** @param {Object} o */ function replaceDefaultValues(o) { - for (const k in o) { - const v = o[k]; - if (typeof v === 'object') { - replaceDefaultValues(v); - } else if (v === "no default setting") { + for (const [k, v] of Object.entries(o)) { + if (v === "no default setting" || v === "no default change" || Number.isNaN(v) || v === undefined) { o[k] = null; + } else if (v !== null && typeof v === 'object') { + replaceDefaultValues(v); } } } @@ -2016,14 +2018,6 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { settersSchemeCleanup(set); replaceDefaultValues(set); - function ensureProps(obj, props) { - props.forEach(prop => { - if (!obj.hasOwnProperty(prop) || obj[prop] === undefined) { - obj[prop] = null; - } - }); - } - function transformValues(obj, props, cb) { props.forEach(p => { let v = obj[p]; @@ -2036,24 +2030,19 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() { function ensureNumTarget(val) { switch (typeof val) { case 'number': - return App.RA.makeTarget('==', val); + return Number.isNaN(val) ? null : App.RA.makeTarget('==', val); case 'string': return App.RA.makeTarget('==', parseInt(val)); + case 'object': + if (val.hasOwnProperty('val') && (val.val === null || Number.isNaN(val.val))) { + return null; + } + return val; default: return val; } } - ensureProps(set, [ - 'haircuts', 'label', 'removeLabel', 'skinColor', - 'earwear', 'toyHole', 'pornFeed', 'legAccessory', 'hyper_drugs' - ]); - - ensureProps(set.surgery, [ - 'hears', 'smells', 'tastes', - 'tummy', 'vasectomy' - ]); - if (!([true, false, null].includes(set.preg))) { set.preg = (set.preg === -1); } diff --git a/src/js/pregJS.js b/src/js/pregJS.js index c7e0f29bc83fbe67bea9783ec1709da3ec98e161..b9d43c50ef6369c74f6daafbe478ac6ad21ca867 100644 --- a/src/js/pregJS.js +++ b/src/js/pregJS.js @@ -122,7 +122,7 @@ window.setPregType = function(actor) { } } ovum = Math.clamp(ovum, 0, 8); - } else if (actor.preg === 0 || (actor.geneticQuirks.superfetation > 1 && actor.preg >= 0)) { + } else { if (actor.eggType === "horse" || actor.eggType === "cow") { if (actor.geneticQuirks.fertility === 2 && actor.geneticQuirks.hyperFertility === 2) { // Do not mix with sperm ovum += jsEither([0, 0, 0, 0, 0, 0, 1]); diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js index a3ac052c10c6dfe4a350716aed8d3e63804f6e0b..51209fa434df629d7b2d53eaff559aa0c75a0339 100644 --- a/src/js/rulesAssistant.js +++ b/src/js/rulesAssistant.js @@ -58,23 +58,18 @@ window.lastPregRule = function(slave, rules) { }; /** - * @param {App.RA.Rule[]} rules + * @param {App.RA.RuleSetters[]} rules * @returns {App.RA.RuleSetters} */ window.mergeRules = function(rules) { - const combinedRule = {}; + if (rules.length === 0) { + return emptyDefaultRule().set; + } + + const combinedRule = emptyDefaultRule().set; + rules.forEach(rule => { - // A rule overrides any preceding ones if, - // * there are no preceding ones, - // * or it sets autoBrand, - // * or it does not set autoBrand and is not null - Object.keys(rule).forEach(key => { - const applies = (combinedRule[key] === undefined || - (key === "autoBrand" && rule[key]) || - (key !== "autoBrand" && rule[key] !== null)); - if (!applies) { return; } - combinedRule[key] = rule[key]; - }); + App.RA.ruleDeepAssign(combinedRule, rule); }); return combinedRule; }; @@ -407,52 +402,99 @@ window.RulesDeconfliction = function RulesDeconfliction(slave) { * Creates a table to summarize RA * @returns {string} */ -window.RASummaryCell = function RASummaryCell() { +window.RASummaryCell = function() { + /** + * @param {object[]} objects + * @param {string[]} member + */ + function collectMemberFromObjects(objects, member) { + let r = []; + for (const o of objects) { + let to = o; + for (const m of member) { + to = to[m]; + } + r.push(to); + } + return r; + } + + /** + * @callback ObjectWalker + * @param {object} obj + * @param {string[]} memberPath + */ + + /** + * @param {object} obj + * @param {ObjectWalker} walker + * @param {string[]} path + */ + function walkObject(obj, walker, path) { + for (const prop in obj) { + const v = obj[prop]; + const vp = path.concat([prop]); + if (v !== null && typeof v === 'object') { + walkObject(v, walker, vp); + } else { + walker(obj, vp); + } + } + } + + /** + * @param {string[]} path + * @param {Array} cells + * @param {string[]} table + */ + function addRow(path, cells, table) { + if (!cells.some(v => v !== null)) { // skip empty rows + return; + } + + function ruleSetValueToString(v) { + if (typeof v === 'object' && v.hasOwnProperty('cond') && v.hasOwnProperty('val')) { + return `<nowiki>${v.cond}</nowiki> ${v.val}`; + } + return `${v}`; + } + + let r = `<td>${path.join('.')}</td>`; + for (const cell of cells) { + r += cell !== null ? `<td>${ruleSetValueToString(cell)}</td>` : '<td/>'; + } + table.push(r); + } + const V = State.variables; + /** @type {App.RA.Rule[]} */ + const rules = V.defaultRules; let r = ""; - let i; - let j; - let rules = Object.keys(V.defaultRules); /* needed to determine number of rule sets (chart width)*/ - let keys = Object.keys(V.defaultRules[0].set); /* needed to determine length of rules (chart height)*/ - let values; - let display = 0; + + if (rules.length === 0) { + return ''; + } /* start row title */ r += `<tr><td></td>`; /* make rest of row title */ - for (i = 0; i < rules.length; i++) { - r += `<td>${V.defaultRules[i].name}</td>`; + for (const rule of rules) { + r += `<td>${rule.name}</td>`; } r += `</tr>`; + const setters = rules.map(r => r.set); /* A row for every condition the RA can set. */ /* start loop for row*/ - for (i = 0; i < keys.length; i++) { /* i is for rows/"what they are fed" */ - /* Check if this row will have anything interesting*/ - for (j = 0; j < rules.length; j++) { /* j is the rule set it comes from/"obedient slaves" */ - values = V.defaultRules[j].set[keys[i]]; - if (values && values !== "no default setting") { - display++; - } - } - /* Show the interesting row */ - if (display > 0) { - /* make row title */ - r += `<tr><td>${keys[i]}</td>`; - /* make rest of cells */ - for (j = 0; j < rules.length; j++) { - values = V.defaultRules[j].set[keys[i]]; - if (values === "no default setting" || !values) { - r += `<td></td>`; - } else { - r += `<td>${V.defaultRules[j].set[keys[i]]}</td>`; - } - } - display = 0; - r += `</tr>`; - } + let tableRows = []; + walkObject(emptyDefaultRule().set, (obj, path) => { + addRow(path, collectMemberFromObjects(setters, path), tableRows); + }, []); + + for (const row of tableRows) { + r += `<tr>${row}</tr>`; } return r; }; @@ -495,3 +537,34 @@ App.RA.shallShrink = function(current, target, step = 1) { ((current > target.val) && (target.cond === '<=' || target.cond === '<')) || (current === target.val && target.cond === '<')); }; + +App.RA.ruleDeepAssign = function deepAssign(target, source) { + function isObject(o) { + return (o !== undefined && o !== null && typeof o === 'object' && !Array.isArray(o)); + } + + for (const key in source) { + if (!source.hasOwnProperty(key)) { + continue; + } + if (isObject(source[key])) { + if (!target.hasOwnProperty(key) || target[key] === null) { + target[key] = {}; + } + deepAssign(target[key], source[key]); + } else { + // A rule overrides any preceding ones if, + // * there are no preceding ones, + // * or it sets autoBrand, + // * or it does not set autoBrand and is not null + const overrides = ( + target[key] === undefined || target[key] === null || + (key === "autoBrand" && source[key]) || + (key !== "autoBrand" && source[key] !== null)); + if (overrides) { + target[key] = source[key]; + } + } + } + return target; +}; diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 12c3640048c76ae4bb8e05883211ed9bc8eb92c9..90f2061c0d27466da5c1cbdb949fe748e2ce1918 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -294,6 +294,9 @@ window.rulesAssistantOptions = (function() { constructor(prefix, data = [], allowNullValue = true, textinput = false) { super(prefix, data, allowNullValue, textinput); this.values = new Map(); + if (allowNullValue) { + this.values.set(null, "no default setting"); + } data.forEach(d => { if (Array.isArray(d) && d.length > 1) { this.values.set(d[1], d[0]); @@ -301,6 +304,7 @@ window.rulesAssistantOptions = (function() { this.values.set(d, d); } }); + this.selectedValue = null; } createEditor() { @@ -317,7 +321,12 @@ window.rulesAssistantOptions = (function() { return res; } + getData(what) { + return this.selectedValue; + } + setValue(what) { + this.selectedValue = what; if (this.values.has(what)) { super.setValue(this.values.get(what)); } else { @@ -541,12 +550,10 @@ window.rulesAssistantOptions = (function() { const rule = JSON.parse(text); if (Array.isArray(rule)) { rule.forEach(r => { - App.Entity.Utils.RARuleDatatypeCleanup(r); - V.defaultRules.push(r); + V.defaultRules.push(App.Entity.Utils.RARuleDatatypeCleanup(r)); }); } else { - App.Entity.Utils.RARuleDatatypeCleanup(rule); - V.defaultRules.push(rule); + V.defaultRules.push(App.Entity.Utils.RARuleDatatypeCleanup(rule)); } reload(this.root); } catch (error) { diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 44975ded1dc2dfc0a4a8e3ee033ea48c7cabaac8..a2f01f7d01731168a227445c6f50d10a7f9f5c1a 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -32,17 +32,6 @@ window.SlaveSummaryUncached = (function() { "use strict"; let V; let r; - /* - let pronouns; - let he; - let him; - let his; - let hers; - let himself; - let boy; - let He; - let His; - */ /** * @param {App.Entity.SlaveState} slave @@ -50,17 +39,6 @@ window.SlaveSummaryUncached = (function() { function SlaveSummaryUncached(slave) { V = State.variables; r = ""; - /* - pronouns = getPronouns(slave); - he = pronouns.pronoun; - him = pronouns.object; - his = pronouns.possessive; - hers = pronouns.possessivePronoun; - himself = pronouns.objectReflexive; - boy = pronouns.noun; - He = capFirstChar(he); - His = capFirstChar(his); - */ if (V.abbreviateDevotion === 1) { short_devotion(slave); diff --git a/src/js/utilJS.js b/src/js/utilJS.js index f32e33eb1608b0d97ea2f6d289a7a5c2087a0176..5f0ad823a11fddfcb591ab6fa4bb775ddc0ca51c 100644 --- a/src/js/utilJS.js +++ b/src/js/utilJS.js @@ -958,7 +958,7 @@ window.Categorizer.prototype.cat = function(val, def) { }; /** - * Returns numbers as text, e.g. 10 as "ten". + * Returns numbers as text, e.g. 10 as "ten", according to the player's settings * @param {number} x * @returns {string} */ @@ -1102,6 +1102,42 @@ window.num = function(x) { } }; +/** + * Returns the number of weeks in a years / months / weeks format + * @param {number} weeks + * @returns {string} + */ +window.time = function(weeks) { + let r = ``; + + if (weeks >= 52) { // at least one year + r += `${num(Math.trunc(weeks / 52))} year${Math.trunc(weeks / 52) != 1 ? `s` : ``}`; + + if ((weeks - 52) % 4 !== 0) { // not exactly x years, y months + r += `, `; + } else { + if (weeks % 52 !== 0) { // not exactly x years + r += ` and `; + } + } + weeks -= Math.trunc(weeks / 52) * 52; // rounds down to and drops number of years + } + + if (weeks >= 4) { // at least one month + r += `${num(Math.trunc(weeks / 4))} month${Math.trunc(weeks / 4) != 1 ? `s` : ``}`; + weeks -= Math.trunc(weeks / 4) * 4; // rounds down to and drops number of months + if (weeks > 0) { + r += ` and `; + } + } + + if (weeks > 0) { + r += `${num(weeks)} week${weeks != 1 ? `s` : ``}`; + } + + return r; +} + /** * @param {number} s * @returns {string} diff --git a/src/js/descriptionWidgets/boobs.js b/src/npc/descriptions/boobs/boobs.js similarity index 98% rename from src/js/descriptionWidgets/boobs.js rename to src/npc/descriptions/boobs/boobs.js index 25d3823b81447a80acf0bc7a77cb7fb67ea35191..6bc84d8ecddea532a747eb1620eed3d06b541cba 100644 --- a/src/js/descriptionWidgets/boobs.js +++ b/src/npc/descriptions/boobs/boobs.js @@ -2,97 +2,117 @@ App.Desc.boobBits = function() { 'use strict'; const data = { - 300: { + 299: { cup: "flat", anCup: false, adjective: ["androgynous", "flat"], noun: ["chest"] }, - 400: { + 399: { cup: "A-cup", anCup: true, adjective: ["pointy", "tiny"], noun: ["chest"] }, - 500: { + 499: { cup: "B-cup", anCup: false, adjective: ["perky", "small"], noun: ["boobs", "bosom", "breasts", "tits"] }, - 650: { + 649: { cup: "C-cup", anCup: false, adjective: ["curved", "healthy"], noun: ["boobs", "bosom", "breasts", "bust", "tits"] }, - 800: { + 799: { cup: "D-cup", anCup: false, adjective: ["big", "sizable"], noun: ["boobs", "bosom", "breasts", "bust", "tits"] }, - 1000: { + 999: { cup: "DD-cup", anCup: false, adjective: ["big", "large"], noun: ["boobs", "bosom", "breasts", "bust", "tits"] }, - 1200: { + 1199: { cup: "F-cup", anCup: true, adjective: ["hefty", "proud"], noun: ["boobs", "breasts", "mammaries", "tits", "udders"] }, - 1400: { + 1399: { cup: "G-cup", anCup: false, adjective: ["hefty", "huge"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 1600: { + 1599: { cup: "H-cup", anCup: true, adjective: ["huge", "massive"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 1800: { + 1799: { cup: "I-cup", anCup: true, adjective: ["enormous", "massive"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 2050: { + 2049: { cup: "J-cup", anCup: false, adjective: ["enormous", "titanic"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 2300: { + 2299: { cup: "K-cup", anCup: false, adjective: ["stupendous", "titanic"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 2600: { + 2599: { cup: "L-cup", anCup: true, adjective: ["magnificent", "stupendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 2900: { + 2899: { cup: "M-cup", anCup: true, adjective: ["magnificent", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 3250: { + 3249: { cup: "N-cup", anCup: true, adjective: ["awe-inspiring", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 3600: { + 3599: { cup: "O-cup", anCup: true, adjective: ["absurd", "awe-inspiring"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 3950: { + 3949: { cup: "P-cup", anCup: false, adjective: ["attention-grabbing", "disproportionate"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 4300: { + 4299: { cup: "Q-cup", anCup: false, adjective: ["massive", "shocking"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 4700: { + 4699: { cup: "R-cup", anCup: true, adjective: ["jaw-dropping", "unreal"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 5100: { + 5099: { cup: "S-cup", anCup: true, adjective: ["astounding", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 5500: { + 5499: { cup: "T-cup", anCup: false, adjective: ["astounding", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 6500: { + 6499: { cup: "U-cup", anCup: false, adjective: ["astounding", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 7000: { + 6999: { cup: "V-cup", anCup: false, adjective: ["astounding", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 7500: { + 7499: { cup: "X-cup", anCup: true, adjective: ["astounding", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 8000: { + 7999: { cup: "Y-cup", anCup: true, adjective: ["astounding", "tremendous"], noun: ["breasts", "mammaries", "tits", "udders"] }, - 8500: { + 8499: { cup: "Z-cup", anCup: false, adjective: ["astounding", "tremendous"], noun: ["boobs", "breasts", "mammaries", "udders"] }, - 20000: { + 14999: { cup: "", anCup: false, adjective: ["obscenely massive", "enormous"], noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] }, - 30000: { + 24999: { cup: "", anCup: false, - adjective: ["beanbag sized"], + adjective: ["arm filling"], noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] }, - 50000: { + 39999: { cup: "", anCup: false, - adjective: ["room filling"], + adjective: ["figure dominating"], + noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] + }, + 54999: { + cup: "", anCup: false, + adjective: ["beanbag-sized"], + noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] + }, + 69999: { + cup: "", anCup: false, + adjective: ["door-jamming"], + noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] + }, + 89999: { + cup: "", anCup: false, + adjective: ["hall-clearing"], + noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] + }, + 100000: { + cup: "", anCup: false, + adjective: ["hall-jamming"], noun: ["boobs", "breasts", "mammaries", "udders", "masses of breastflesh"] }, }; @@ -1325,9 +1345,9 @@ App.Desc.boobs = function() { r += `, ${num(slave.boobs)} CCs each,`; } if (slave.amp === 1) { - r += `are so immense it is safer to leave ${him} resting atop them. ${His} udders each weigh more than twice the rest of ${his} body, since ${his} body consists of nothing but ${his} head, torso, and breasts.`; + r += ` are so immense it is safer to leave ${him} resting atop them. ${His} udders each weigh more than twice the rest of ${his} body, since ${his} body consists of nothing but ${his} head, torso, and breasts.`; } else { - r += `are so gargantuan that they effectively immobilize ${him}. ${He}'s most comfortable lying down.`; + r += ` are so gargantuan that they effectively immobilize ${him}. ${He}'s most comfortable lying down.`; } } return r; diff --git a/src/js/descriptionWidgets/piercing.js b/src/npc/descriptions/boobs/piercing.js similarity index 100% rename from src/js/descriptionWidgets/piercing.js rename to src/npc/descriptions/boobs/piercing.js diff --git a/src/pregmod/analyzePlayerPregnancy.tw b/src/pregmod/analyzePlayerPregnancy.tw index 7aa01d5dd7bb4b7db468f42d4bed396df3132039..2effd81e33368374fde55b9796a5773379f8ac60 100644 --- a/src/pregmod/analyzePlayerPregnancy.tw +++ b/src/pregmod/analyzePlayerPregnancy.tw @@ -161,12 +161,12 @@ <<elseif $PC.womb[_ap].genetics.geneticQuirks.superfetation == 1 && $geneticMappingUpgrade >= 2>> @@.yellow;supfet@@ <</if>> - <<if $PC.womb[_ap].genetics.geneticQuirks.macromastia == 2>> + <<if $PC.womb[_ap].genetics.geneticQuirks.macromastia >= 2>> @@.red;mmast@@ <<elseif $PC.womb[_ap].genetics.geneticQuirks.macromastia == 1 && $geneticMappingUpgrade >= 2>> @@.yellow;mast@@ <</if>> - <<if $PC.womb[_ap].genetics.geneticQuirks.gigantomastia == 2>> + <<if $PC.womb[_ap].genetics.geneticQuirks.gigantomastia >= 2>> @@.red;gmast@@ <<elseif $PC.womb[_ap].genetics.geneticQuirks.gigantomastia == 1 && $geneticMappingUpgrade >= 2>> @@.yellow;gmast@@ diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw index 1ca847d73e9c5fcd88e2ccbe39421a00d0878493..42ea3adf4ffafdf7f6f9fbd8c307b0ebcca85a7f 100644 --- a/src/pregmod/analyzePregnancy.tw +++ b/src/pregmod/analyzePregnancy.tw @@ -172,12 +172,12 @@ <<elseif $activeSlave.womb[_ap].genetics.geneticQuirks.superfetation == 1 && $geneticMappingUpgrade >= 2>> @@.yellow;supfet@@ <</if>> - <<if $activeSlave.womb[_ap].genetics.geneticQuirks.macromastia == 2>> + <<if $activeSlave.womb[_ap].genetics.geneticQuirks.macromastia >= 2>> @@.red;mmast@@ <<elseif $activeSlave.womb[_ap].genetics.geneticQuirks.macromastia == 1 && $geneticMappingUpgrade >= 2>> @@.yellow;mast@@ <</if>> - <<if $activeSlave.womb[_ap].genetics.geneticQuirks.gigantomastia == 2>> + <<if $activeSlave.womb[_ap].genetics.geneticQuirks.gigantomastia >= 2>> @@.red;gmast@@ <<elseif $activeSlave.womb[_ap].genetics.geneticQuirks.gigantomastia == 1 && $geneticMappingUpgrade >= 2>> @@.yellow;gmast@@ diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index a81ea6ab44c99e3cedec3859a05c3a78b4ec8607..4edeaa68476a757be63724707df37fa443911e17 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -8,7 +8,7 @@ <<set $incubatorNameCaps = $incubatorName.replace("the ", "The ")>> <</if>> -<<set _readySlaves = 0, $readySlave = 0, $incubatorSlaves = $tanks.length, $freeTanks = $incubator - $incubatorSlaves, _SL = $slaves.length, _eligibility = 0, $reservedChildren = FetusGlobalReserveCount("incubator"), $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>> +<<set $readySlaves = 0, $readySlave = 0, $incubatorSlaves = $tanks.length, $freeTanks = $incubator - $incubatorSlaves, _SL = $slaves.length, _eligibility = 0, $reservedChildren = FetusGlobalReserveCount("incubator"), $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>> <br><br> $incubatorNameCaps is a clean, cold hall designed to be lined with tanks and their connected monitoring systems. @@ -407,7 +407,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <</if>> <</if>> <<if $tanks[$i].growTime <= 0>> - <<set _readySlaves = 1>> + <<set $readySlaves = 1>> <br>$He is ready to be released from $his tank. <<else>> <<set _weekDisplay = Math.round($tanks[$i].growTime/$incubatorUpgradeSpeed)>> @@ -600,7 +600,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <</if>> <</if>> -<<if _readySlaves == 1>> +<<if $readySlaves == 1>> <<if $incubatorBulkRelease == 1>> <<set $newSlavePool = []>> <<for _inc = 0; _inc < $tanks.length; _inc++>> diff --git a/src/pregmod/incubatorReport.tw b/src/pregmod/incubatorReport.tw index 0899a17ff49fe704886bb85c38073407b387011f..d536d42385496c2c12f588a6a975d18c026da744 100644 --- a/src/pregmod/incubatorReport.tw +++ b/src/pregmod/incubatorReport.tw @@ -1,6 +1,6 @@ :: Incubator Report [nobr] -<<set $incubatorSlaves = 0>> +<<set $incubatorSlaves = 0, $readySlaves = 0>> <<for _inc = 0; _inc < $tanks.length; _inc++>> <<setLocalPronouns $tanks[_inc]>> @@ -17,6 +17,7 @@ <br>@@.pink;<<print $tanks[_inc].slaveName>>'s@@ growth is currently being accelerated. $He <<if Math.round($tanks[_inc].growTime/$incubatorUpgradeSpeed) <= 0>>is @@.lime;ready for release.@@ $He will be ejected from $his tank upon your approach<<else>>will be ready for release in about <<print Math.round($tanks[_inc].growTime/$incubatorUpgradeSpeed)>> weeks<</if>>. <<else>> @@.pink;$tanks[_inc].slaveName@@ is @@.lime;ready for release.@@ $He will be ejected from $his tank upon your approach. + <<set $readySlaves = 1>> <</if>> <<if $incubatorUpgradeWeight == 1>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 3dbdc9305c550e98db9868f29ceb0f6f72d6e620..7f720e0d7e3fd485cac3003d2b858d8de72524cf 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -3600,9 +3600,7 @@ Updating gene pool records: Done<br> Updating Rules Assistant data... -<<for _rule range $defaultRules>> - <<run App.Entity.Utils.RARuleDatatypeCleanup(_rule)>> -<</for>> +<<set $defaultRules = $defaultRules.map(rule => App.Entity.Utils.RARuleDatatypeCleanup(rule))>> Done<br> /* Sec Exp */ @@ -3844,6 +3842,16 @@ Done<br> <</if>> /* unify cybermod & vanilla finished*/ +<<if def $buyArcologyDirection>> + <<run delete $buyArcologyDirection>> +<</if>> +<<if def $sellArcologyDirection>> + <<run delete $sellArcologyDirection>> +<</if>> +<<if def $transaction>> + <<run delete $transaction>> +<</if>> + <<unset $SlaveSummaryFiler>> <</if>> /* release 1044 */ diff --git a/src/uncategorized/arcologyDescription.tw b/src/uncategorized/arcologyDescription.tw index 7f661244bb77d2d77a664e73a3826ebcb270c17e..cda1e254b90241cadfe37e8ad67f458d9c22f218 100644 --- a/src/uncategorized/arcologyDescription.tw +++ b/src/uncategorized/arcologyDescription.tw @@ -657,11 +657,8 @@ Its lingua franca is $language. <</for>> <<set $averageProsperity = $averageProsperity/_neighboringArcologyCount>> - <<for $i = 0; $i < $arcologies.length; $i++>> - <<if $arcologies[$i].direction != 0>> + <<for $i = 1; $i < $arcologies.length; $i++>> <<include "Neighbor Description">> - <<print "[[Diplomacy|Neighbor Interact][$activeArcology = $arcologies[" + $i + "]]]">> - <</if>> <</for>> <<if $cheatMode == 1>> diff --git a/src/uncategorized/buildingWidgets.tw b/src/uncategorized/buildingWidgets.tw index 207dc5f6a51229cb383078cc96494a73c1e3d377..09543a8204e625b5109290c0c550ade729ae01c3 100644 --- a/src/uncategorized/buildingWidgets.tw +++ b/src/uncategorized/buildingWidgets.tw @@ -148,7 +148,7 @@ if(!Macro.has('sectorblock')) { <<if $clinic>> <<print ClinicUIName()>> ($clinicSlaves/$clinic<<if $Nurse>>, L<</if>>)<</if>> <<if $schoolroom>> <<print SchoolRoomUIName()>> ($schoolroomSlaves/$schoolroom<<if $Schoolteacher>>, L<</if>>)<</if>> <<if $cellblock>> <<print CellblockUIName()>> ($cellblockSlaves/$cellblock<<if $Wardeness>>, L<</if>>)<</if>> - <<if $incubator>> <<print IncubatorUIName()>> (<<if $incubator-$incubatorSlaves == 0>>No empty tanks<<elseif $incubator-$incubatorSlaves == 1>>1 empty tank<<else>><<print $incubator-$incubatorSlaves>> empty tanks<</if>>)<</if>> + <<if $incubator>> <<print IncubatorUIName()>> (<<if $incubator-$incubatorSlaves == 0>>No empty tanks<<elseif $incubator-$incubatorSlaves == 1>>1 empty tank<<else>><<print $incubator-$incubatorSlaves>> empty tanks<</if>>) <<if $readySlaves > 0>>@@.yellow;[!]@@<</if>> <</if>> <<if $researchLab.level > 0>>[[Prosthetic Lab]]<</if>> <</if>> </td> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index ce7d69a1e1e5f9c08bd9b09df8932ddf3df477e5..e7d99ce6121dae1d9709c62cff98ca0ae5b048d9 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -383,7 +383,7 @@ is <<elseif $activeSlave.weekAcquired == 1>> since you first took control of the arcology, <<elseif _weeksOwned > 1>> - <<print $week-$activeSlave.weekAcquired>> weeks, + <<print num($week-$activeSlave.weekAcquired)>> weeks, <<else>> one week, <</if>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index f8229bf372e2c46f2ffeb96bd74dabb992b842f6..2a77be60d671d8fe1f36755cfa8c5b0b2c6f8456 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -1,7 +1,9 @@ :: Main [nobr] <<if $releaseID >= 1000 || $ver.includes("0.9") || $ver.includes("0.8") || $ver.includes("0.7") || $ver.includes("0.6")>> - <<if $releaseID >= 1031>> + <<if $releaseID >= 1046>> + <<elseif $releaseID < 1046>> + ''@@.red;INCOMPATIBILITY WARNING:@@'' your saved game was created using version $ver build $releaseID. Due to a major changes to the Rules Assistant data scheme, you must run [[backwards compatibility|Backwards Compatibility]]. <<elseif $releaseID < 1031>> ''@@.red;INCOMPATIBILITY WARNING:@@'' your saved game was created using version $ver build $releaseID. Due to a major overhaul to intelligence and education, it is advisable to run backwards compatibility. <<elseif $releaseID >= 1022 && ndef $SF>> diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw index 6474694e04707479d7bc0fc143b90212835bb028..88fa1b49a763d085435d14aee96f1545b3bee577 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -114,7 +114,7 @@ __Penthouse Facilities__ <<if $familyTesting == 1 && $seePreg != 0>> <<if $arcologyUpgrade.grid == 1>> <<if $incubator == 0>> - [[Install an incubation chamber to rapidly age children|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $incubator = 1, $PC.engineering += 1]] + [[Install an incubation chamber to rapidly age children|Manage Penthouse][cashX(forceNeg(Math.trunc(100000*$upgradeMultiplierArcology)), "capEx"), $incubator = 1, $PC.engineering += 1, $readySlaves = 0]] //Costs <<print cashFormat(Math.trunc(100000*$upgradeMultiplierArcology))>>// <<else>> The penthouse has a specialized facility dedicated to rapidly aging children. diff --git a/src/uncategorized/neighborInteract.tw b/src/uncategorized/neighborInteract.tw index b4d2799c29f9cee3e60b4288350327acc4465c70..fde9c6363dd2bc921a649b47cd671ccf4cc4da46 100644 --- a/src/uncategorized/neighborInteract.tw +++ b/src/uncategorized/neighborInteract.tw @@ -1,37 +1,17 @@ :: Neighbor Interact [nobr] -<<set $nextLink = "Manage Arcology", $nextButton = "Back">> - -<<set _nei = $arcologies.findIndex(function(s) { return s.direction == $activeArcology.direction; })>> -<<if _nei != -1>> - <<set $arcologies[_nei] = $activeArcology>> -<<else>> - //Neighbor not found, something has gone wrong!// +<<if def $buyArcologyDirection>> + <<run delete $buyArcologyDirection>> <</if>> - -<<set $arcologies[_nei].prosperity = Math.clamp($arcologies[_nei].prosperity, 1, 300)>> - -<<if $buyArcologyDirection != 0 && def $buyArcologyDirection>> - <<set _nei = $arcologies.findIndex(function(s) { return s.direction == $buyArcologyDirection; })>> - <<run cashX(forceNeg($transaction*(500*Math.trunc($arcologies[_nei].prosperity*(1+($arcologies[_nei].demandFactor/100))))), "war")>> - <<run cashX(-10000, "war")>> - <<set $arcologies[_nei].PCminority += $transaction>> - <<set $arcologies[_nei].demandFactor += $transaction*5>> -<</if>> -<<set $buyArcologyDirection = 0>> -<<if $sellArcologyDirection != 0 && def $sellArcologyDirection>> - <<set _nei = $arcologies.findIndex(function(s) { return s.direction == $sellArcologyDirection; })>> - <<run cashX(($transaction*(500*Math.trunc($arcologies[_nei].prosperity*(1+($arcologies[_nei].demandFactor/100))))), "war")>> - <<set $arcologies[_nei].PCminority -= $transaction>> - <<set $arcologies[_nei].demandFactor -= $transaction*2>> - <<if $arcologies[_nei].government != "your agent" && $arcologies[_nei].government != "your trustees" && $arcologies[_nei].rival != 1>> - <<if $arcologies[_nei].ownership + $arcologies[_nei].PCminority + $arcologies[_nei].minority < 10>> - <<set $arcologies[_nei].ownership += 10>> - <</if>> - <</if>> +<<if def $sellArcologyDirection>> + <<run delete $sellArcologyDirection>> <</if>> -<<set $sellArcologyDirection = 0>> -<<set $transaction = 0>> +<<if def $transaction>> + <<run delete $transaction>> +<</if>> + +<<set $nextLink = "Manage Arcology", $nextButton = "Back">> +You have <<print $arcologies.length-1>> neighbors. <br><br> <<if $arcologies[0].embargoTarget == -1>> You are not engaged in economic warfare against a neighboring arcology. @@ -46,15 +26,16 @@ <<else>> ''nominal.'' [[Intensify|Neighbor Interact][$arcologies[0].embargo += 1]] <</if>> + | [[Cancel|Neighbor Interact][$arcologies[0].embargoTarget = -1]] <</if>> <br> - -<<if $arcologies[0].influenceTarget == -1>> +<<if $arcologies[0].influenceTarget == -1>> You are not using your arcology's culture to attempt to influence neighboring arcologies' development. <<else>> <<set _nei = $arcologies.findIndex(function(s) { return s.direction == $arcologies[0].influenceTarget; })>> You have targeted '' $arcologies[_nei].name'' for cultural influence. + [[Stop|Neighbor Interact][$arcologies[0].influenceTarget = -1]] <</if>> <<if $PC.hacking > 0>> @@ -72,6 +53,7 @@ <<else>> ''nominal.'' [[Intensify|Neighbor Interact][$arcologies[0].CyberEconomic += 1]] <</if>> + | [[Revert|Neighbor Interact][$arcologies[0].CyberEconomicTarget = -1]] <</if>> <br> @@ -88,11 +70,10 @@ <<else>> ''nominal.'' [[Intensify|Neighbor Interact][$arcologies[0].CyberReputation += 1]] <</if>> + | [[Abort|Neighbor Interact][$arcologies[0].CyberReputationTarget = -1]] <</if>> <</if>> -<br> - <<set $desc = []>> <<if $arcologies[0].FSSubjugationist > 60>> <<set $desc.push("Racial Subjugation")>> @@ -173,6 +154,7 @@ <<set $desc.push("Chinese Revivalism")>> <</if>> +<br><br> <<if $desc.length == 0>> Your arcology's culture has not developed to the point where it can meaningfully influence other arcologies. <<elseif $desc.length > 2>> @@ -189,513 +171,546 @@ <<else>> Your arcology's culture is capable of starting to exert cultural sway over other arcologies. It can project $desc[0]. <</if>> +<br> -<<for $i = 0; $i < $arcologies.length; $i++>> - <<if $arcologies[$i].direction == $activeArcology.direction>> - <<include "Neighbor Description">> - <</if>> -<</for>> +<span id="Security"> +<<for _currentNeighbor = 1; _currentNeighbor < $arcologies.length; _currentNeighbor++>> +<<capture _currentNeighbor>> + <<set $arcologies[_currentNeighbor].prosperity = Math.clamp($arcologies[_currentNeighbor].prosperity, 1, 300)>> + <br>You own $arcologies[_currentNeighbor].PCminority% of + <<link "$arcologies[_currentNeighbor].name">> + <<replace "#Security">> + <br>[[Back to the main diplomacy page|Neighbor Interact]] -<br> [[Target for economic warfare|Neighbor Interact][$arcologies[0].embargoTarget = $activeArcology.direction]] -<<if $PC.hacking > 0>> - | [[Target for cyber economic warfare|Neighbor Interact][$arcologies[0].CyberEconomicTarget = $activeArcology.direction]] - | [[Target their leadership for character assassination|Neighbor Interact][$arcologies[0].CyberReputationTarget = $activeArcology.direction]] -<</if>> -<<if $desc.length > 0>> - | [[Set as influence target|Neighbor Interact][$arcologies[0].influenceTarget = $activeArcology.direction]] -<</if>> -<br> You own ''$activeArcology.PCminority%'' of $activeArcology.name. -<<set _ownershipCost = 500*Math.trunc($activeArcology.prosperity*(1+($activeArcology.demandFactor/100)))>> -A 1% interest in $activeArcology.name is worth <<print cashFormat(_ownershipCost)>> and will require a transaction cost of <<print cashFormat(10000)>> to acquire. -<<if ($activeArcology.ownership + $activeArcology.PCminority + $activeArcology.minority < 100)>> - [[Buy|Neighbor Interact][$buyArcologyDirection = $activeArcology.direction, $transaction = 1]] - <<if ($activeArcology.ownership + $activeArcology.PCminority + $activeArcology.minority <= 90)>> - <<if $cash > 10*(_ownershipCost)>> - | [[10%|Neighbor Interact][$buyArcologyDirection = $activeArcology.direction, $transaction = 10]] - //Transaction costs will only be paid once// - <</if>> - <</if>> -<</if>> -<<if ($activeArcology.ownership + $activeArcology.PCminority + $activeArcology.minority < 100) && ($activeArcology.PCminority > 0)>>|<</if>> -<<if $activeArcology.PCminority > 0>> - [[Sell|Neighbor Interact][$sellArcologyDirection = $activeArcology.direction, $transaction = 1]] - <<if $activeArcology.PCminority >= 10>> - | [[10%|Neighbor Interact][$sellArcologyDirection = $activeArcology.direction, $transaction = 10]] - <</if>> -<</if>> -<br> -<<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <<if $activeArcology.government == "your trustees">> - <br> - [[Appoint an agent|Agent Select]] - <span id="rename"> | <<link "Instruct them to rename the arcology">><<replace #rename>> | <<textbox "$activeArcology.name" $activeArcology.name>> [[Confirm name|Neighbor Interact]]<</replace>><</link>></span> - <<else>> - <br> - <<for $j = 0; $j < $leaders.length; $j++>> - <<if $activeArcology.leaderID == $leaders[$j].ID>> - <<setLocalPronouns $leaders[$j]>> - Your agent @@.deeppink;<<= SlaveFullName($leaders[$j])>>@@ is running this arcology. [["Recall and reenslave " + $him|Agent Retrieve]] - <span id="rename"> | <<link "Instruct $him to rename the arcology">><<replace #rename>> | <<textbox "$activeArcology.name" $activeArcology.name>> [[Confirm name|Neighbor Interact]]<</replace>><</link>></span> - <br>$His <<if $leaders[$j].intelligence > 95>>brilliance<<else>>intelligence<</if>> and education are the most important qualities for $him. - <<if $leaders[$j].actualAge > 35>> - As with the Head Girl position, $his age and experience lend $him leadership weight. + <br>You own ''$arcologies[_currentNeighbor].PCminority%'' of $arcologies[_currentNeighbor].name. + <<set _ownershipCost = 500*Math.trunc($arcologies[_currentNeighbor].prosperity*(1+($arcologies[_currentNeighbor].demandFactor/100)))>> + A 1% interest in $arcologies[_currentNeighbor].name is worth <<print cashFormat(_ownershipCost)>> and will require a transaction cost of <<print cashFormat(10000)>> to acquire. + <<if ($arcologies[_currentNeighbor].ownership + $arcologies[_currentNeighbor].PCminority + $arcologies[_currentNeighbor].minority < 100)>> + <br> + <<link "Buy" "Neighbor Interact">> + <<run cashX(forceNeg(1*(500*Math.trunc($arcologies[_currentNeighbor].prosperity*(1+($arcologies[_currentNeighbor].demandFactor/100))))), "war")>> + <<run cashX(-10000, "war")>> + <<set $arcologies[_currentNeighbor].PCminority += 1>> + <<set $arcologies[_currentNeighbor].demandFactor += 1*5>> + <</link>> + <<if ($arcologies[_currentNeighbor].ownership + $arcologies[_currentNeighbor].PCminority + $arcologies[_currentNeighbor].minority <= 90)>> + <<if $cash > 10*(_ownershipCost)>> + | <<link "10%" "Neighbor Interact">> + <<run cashX(forceNeg(1*(500*Math.trunc($arcologies[_currentNeighbor].prosperity*(1+($arcologies[_currentNeighbor].demandFactor/100))))), "war")>> + <<run cashX(-10000, "war")>> + <<set $arcologies[_currentNeighbor].PCminority += 10>> + <<set $arcologies[_currentNeighbor].demandFactor += 10*5>> + <</link>> + //Transaction costs will only be paid once.// <</if>> - <<if $leaders[$j].career == "an arcology owner">> - $His career as an arcology owner $himself is, obviously, useful to $him. - <<elseif setup.HGCareers.includes($leaders[$j].career)>> - $His career in leadership helps $him. - <</if>> - <<if $leaders[$j].fetishStrength > 95>> - <<if ($leaders[$j].fetish == "dom") || ($leaders[$j].fetish == "sadist")>> - $His sexually dominant fetish helps $him fill a leadership role. - <<elseif ($leaders[$j].fetish == "submissive") || ($leaders[$j].fetish == "masochist")>> - Unfortunately, $he has an inappropriate fetish for a leader. - <<else>> - $His sexual fetishes will influence how $he leads the arcology. + <</if>> + <</if>> + + <<if $arcologies[_currentNeighbor].PCminority > 0>> + <br> + <<link "Sell" "Neighbor Interact">> + <<run cashX((1*(500*Math.trunc($arcologies[_currentNeighbor].prosperity*(1+($arcologies[_currentNeighbor].demandFactor/100))))), "war")>> + <<set $arcologies[_currentNeighbor].PCminority -= 1>> + <<set $arcologies[_currentNeighbor].demandFactor -= 1*2>> + <<if $arcologies[_currentNeighbor].government != "your agent" && $arcologies[_currentNeighbor].government != "your trustees" && $arcologies[_currentNeighbor].rival != 1>> + <<if $arcologies[_currentNeighbor].ownership + $arcologies[_currentNeighbor].PCminority + $arcologies[_currentNeighbor].minority < 10>> + <<set $arcologies[_currentNeighbor].ownership += 10>> <</if>> <</if>> - <<if $leaders[$j].energy > 95>> - Finally, $his sexual depravity lets $him fit into arcology society naturally. - <</if>> - <</if>> - <</for>> - <</if>> - <<if $activeArcology.FSSubjugationist != "unset">> - <br><<link "Force Abandonment of Racial Subjugation">><<set $activeArcology.FSSubjugationist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSSupremacist != "unset">> - <br><<link "Force Abandonment of Racial Supremacy">><<set $activeArcology.FSSupremacist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSRepopulationFocus != "unset">> - <br><<link "Force Abandonment of Repopulationism">><<set $activeArcology.FSRepopulationFocus = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSRestart != "unset">> - <br><<link "Force Abandonment of Eugenics">><<set $activeArcology.FSRestart = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSGenderRadicalist != "unset">> - <br><<link "Force Abandonment of Gender Radicalism">><<set $activeArcology.FSGenderRadicalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSGenderFundamentalist != "unset">> - <br><<link "Force Abandonment of Gender Fundamentalism">><<set $activeArcology.FSGenderFundamentalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSPaternalist != "unset">> - <br><<link "Force Abandonment of Paternalism">><<set $activeArcology.FSPaternalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSDegradationist != "unset">> - <br><<link "Force Abandonment of Degradationism">><<set $activeArcology.FSDegradationist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSBodyPurist != "unset">> - <br><<link "Force Abandonment of Body Purism">><<set $activeArcology.FSBodyPurist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSTransformationFetishist != "unset">> - <br><<link "Force Abandonment of Transformation Fetishism">><<set $activeArcology.FSTransformationFetishist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSYouthPreferentialist != "unset">> - <br><<link "Force Abandonment of Youth Preferentialism">><<set $activeArcology.FSYouthPreferentialist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSMaturityPreferentialist != "unset">> - <br><<link "Force Abandonment of Maturity Preferentialism">><<set $activeArcology.FSMaturityPreferentialist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSSlimnessEnthusiast != "unset">> - <br><<link "Force Abandonment of Slimness Enthusiasm">><<set $activeArcology.FSSlimnessEnthusiast = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSAssetExpansionist != "unset">> - <br><<link "Force Abandonment of Asset Expansionism">><<set $activeArcology.FSAssetExpansionist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSPastoralist != "unset">> - <br><<link "Force Abandonment of Pastoralism">><<set $activeArcology.FSPastoralist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSCummunism != "unset">> - <br><<link "Force Abandonment of Cummunism">><<set $activeArcology.FSCummunism = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSPhysicalIdealist != "unset">> - <br><<link "Force Abandonment of Physical Idealism">><<set $activeArcology.FSPhysicalIdealist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSHedonisticDecadence != "unset">> - <br><<link "Force Abandonment of Hedonistic Decadence">><<set $activeArcology.FSHedonisticDecadence = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSIncestFetishist != "unset">> - <br><<link "Force Abandonment of Incest Fetishism">><<set $activeArcology.FSIncestFetishist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSChattelReligionist != "unset">> - <br><<link "Force Abandonment of Chattel Religionism">><<set $activeArcology.FSChattelReligionist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSRomanRevivalist != "unset">> - <br><<link "Force Abandonment of Roman Revivalism">><<set $activeArcology.FSRomanRevivalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSAztecRevivalist !== "unset">> - <br><<link "Force Abandonment of Aztec Revivalism">><<set $activeArcology.FSAztecRevivalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSEgyptianRevivalist != "unset">> - <br><<link "Force Abandonment of Egyptian Revivalism">><<set $activeArcology.FSEgyptianRevivalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSEdoRevivalist != "unset">> - <br><<link "Force Abandonment of Edo Revivalism">><<set $activeArcology.FSEdoRevivalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSArabianRevivalist != "unset">> - <br><<link "Force Abandonment of Arabian Revivalism">><<set $activeArcology.FSArabianRevivalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> - <<if $activeArcology.FSChineseRevivalist != "unset">> - <br><<link "Force Abandonment of Chinese Revivalism">><<set $activeArcology.FSChineseRevivalist = "unset">><<goto "Neighbor Interact">><</link>> - <</if>> -<</if>> - -<br><br> -If $activeArcology.name has developed enough to begin exporting worthwhile goods, it may be of interest to acquire some. -<<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - Since it is under your control, it is no problem at all to request the transfer of goods to $arcologies[0].name. -<<elseif $PC.hacking >= 50>> - It is within your skills to redirect an outgoing shipment to $arcologies[0].name for your retrieval. -<<elseif $activeArcology.direction == $arcologies[0].embargoTarget>> - Due to your active embargo, trade with $activeArcology.name is not possible. -<<else>> - <<set $targetArcology = $arcologies[0], _tempArc = $activeArcology>><<= arcologyOpinion()>><<set _prices = $opinion*10, $activeArcology = _tempArc>> -<</if>> -<<if $activeArcology.FSRomanRevivalist > 95>> - <<if !isItemAccessible("a toga")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of togas" "Neighbor Interact">> - <<set $clothesBoughtToga = 1>> <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of togas" "Neighbor Interact">> - <<set $clothesBoughtToga = 1>> + <<if $arcologies[_currentNeighbor].PCminority >= 10>> + | <<link "10%" "Neighbor Interact">> + <<run cashX((1*(500*Math.trunc($arcologies[_currentNeighbor].prosperity*(1+($arcologies[_currentNeighbor].demandFactor/100))))), "war")>> + <<set $arcologies[_currentNeighbor].PCminority -= 10>> + <<set $arcologies[_currentNeighbor].demandFactor -= 10*2>> + <<if $arcologies[_currentNeighbor].government != "your agent" && $arcologies[_currentNeighbor].government != "your trustees" && $arcologies[_currentNeighbor].rival != 1>> + <<if $arcologies[_currentNeighbor].ownership + $arcologies[_currentNeighbor].PCminority + $arcologies[_currentNeighbor].minority < 10>> + <<set $arcologies[_currentNeighbor].ownership += 10>> + <</if>> + <</if>> <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of togas" "Neighbor Interact">> - <<set $clothesBoughtToga = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> <</if>> - <<else>> - <br>You already have enough togas. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSEdoRevivalist > 95>> - <<if !isItemAccessible("a kimono")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of kimonos" "Neighbor Interact">> - <<set $clothesBoughtKimono = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of kimonos" "Neighbor Interact">> - <<set $clothesBoughtKimono = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of kimonos" "Neighbor Interact">> - <<set $clothesBoughtKimono = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + + <<if $arcologies[_currentNeighbor].direction !== $arcologies[0].embargoTarget>> + <br>[[Target them for economic warfare|Neighbor Interact][$arcologies[0].embargoTarget = $arcologies[_currentNeighbor].direction]] <</if>> - <<else>> - <br>You already have enough kimonos. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSArabianRevivalist > 95>> - <<if !isItemAccessible("harem gauze")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of silken harem garb" "Neighbor Interact">> - <<set $clothesBoughtHarem = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of silken harem garb" "Neighbor Interact">> - <<set $clothesBoughtHarem = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of silken harem garb" "Neighbor Interact">> - <<set $clothesBoughtHarem = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + + <<if $PC.hacking > 0>> + <<if $arcologies[_currentNeighbor].direction !== $arcologies[0].CyberEconomicTarget>> + <br>[[Target them for cyber economic warfare|Neighbor Interact][$arcologies[0].CyberEconomicTarget = $arcologies[_currentNeighbor].direction]] + <</if>> + <<if $arcologies[_currentNeighbor].direction !== $arcologies[0].CyberReputationTarget>> + <br>[[Target their leadership for character assassination|Neighbor Interact][$arcologies[0].CyberReputationTarget = $arcologies[_currentNeighbor].direction]] + <</if>> <</if>> - <<else>> - <br>You already have enough silk. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSAztecRevivalist > 95>> - <<if !isItemAccessible("a huipil")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of huipils" "Neighbor Interact">> - <<set $clothesBoughtHuipil = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of huipils" "Neighbor Interact">> - <<set $clothesBoughtHuipil = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of huipils" "Neighbor Interact">> - <<set $clothesBoughtHuipil = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $desc.length > 0>> + <<if $arcologies[_currentNeighbor].direction !== $arcologies[0].influenceTarget>> + <br>[[Set as influence target|Neighbor Interact][$arcologies[0].influenceTarget = $arcologies[_currentNeighbor].direction]] + <</if>> <</if>> - <<else>> - <br>You already have enough huipils. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSChineseRevivalist > 95>> - <<if !isItemAccessible("a slutty qipao")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of qipaos" "Neighbor Interact">> - <<set $clothesBoughtQipao = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of qipaos" "Neighbor Interact">> - <<set $clothesBoughtQipao = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of qipaos" "Neighbor Interact">> - <<set $clothesBoughtQipao = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> <br> + <<if $arcologies[_currentNeighbor].government == "your trustees">> + <br> + [[Appoint an agent|Agent Select]] + <span id="rename"> | <<link "Instruct them to rename the arcology">><<replace #rename>> | <<textbox "$arcologies[_currentNeighbor].name" $arcologies[_currentNeighbor].name>> [[Confirm name|Neighbor Interact]]<</replace>><</link>></span> + <<else>> + <br> + <<for _j = 0; _j < $leaders.length; _j++>> + <<if $arcologies[_currentNeighbor].leaderID == $leaders[_j].ID>> + <<setLocalPronouns $leaders[_j]>> + Your agent @@.deeppink;<<= SlaveFullName($leaders[_j])>>@@ is running this arcology. [["Recall and reenslave " + $him|Agent Retrieve]] + <span id="rename"> | <<link "Instruct $him to rename the arcology">><<replace #rename>> | <<textbox "$arcologies[_currentNeighbor].name" $arcologies[_currentNeighbor].name>> [[Confirm name|Neighbor Interact]]<</replace>><</link>></span> + <br>$His <<if $leaders[_j].intelligence > 95>>brilliance<<else>>intelligence<</if>> and education are the most important qualities for $him. + <<if $leaders[_j].actualAge > 35>> + As with the Head Girl position, $his age and experience lend $him leadership weight. + <</if>> + <<if $leaders[_j].career == "an arcology owner">> + $His career as an arcology owner $himself is, obviously, useful to $him. + <<elseif setup.HGCareers.includes($leaders[_j].career)>> + $His career in leadership helps $him. + <</if>> + <<if $leaders[_j].fetishStrength > 95>> + <<if ($leaders[_j].fetish == "dom") || ($leaders[_j].fetish == "sadist")>> + $His sexually dominant fetish helps $him fill a leadership role. + <<elseif ($leaders[_j].fetish == "submissive") || ($leaders[_j].fetish == "masochist")>> + Unfortunately, $he has an inappropriate fetish for a leader. + <<else>> + $His sexual fetishes will influence how $he leads the arcology. + <</if>> + <</if>> + <<if $leaders[_j].energy > 95>> + Finally, $his sexual depravity lets $him fit into arcology society naturally. + <</if>> + <</if>> + <</for>> <</if>> - <<else>> - <br>You already have enough skimpy qipaos. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSEgyptianRevivalist > 95>> - <<if !isItemAccessible("ancient Egyptian")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of Egyptian necklace replicas" "Neighbor Interact">> - <<set $clothesBoughtEgypt = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of Egyptian necklace replicas" "Neighbor Interact">> - <<set $clothesBoughtEgypt = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of Egyptian necklace replicas" "Neighbor Interact">> - <<set $clothesBoughtEgypt = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSSubjugationist != "unset">> + <br><<link "Force Abandonment of Racial Subjugation">><<set $arcologies[_currentNeighbor].FSSubjugationist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough replicas of Egyptian necklaces. - <</if>> - <<set _exports = 1>> -<</if>> -<<if $activeArcology.FSPaternalist > 95>> - <<if !isItemAccessible("conservative clothing")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of conservative clothing" "Neighbor Interact">> - <<set $clothesBoughtConservative = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of conservative clothing" "Neighbor Interact">> - <<set $clothesBoughtConservative = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of conservative clothing" "Neighbor Interact">> - <<set $clothesBoughtConservative = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSSupremacist != "unset">> + <br><<link "Force Abandonment of Racial Supremacy">><<set $arcologies[_currentNeighbor].FSSupremacist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough modest clothing. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSDegradationist > 95>> - <<if !isItemAccessible("chains")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of binding chains" "Neighbor Interact">> - <<set $clothesBoughtChains = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of binding chains" "Neighbor Interact">> - <<set $clothesBoughtChains = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of binding chains" "Neighbor Interact">> - <<set $clothesBoughtChains = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSRepopulationFocus != "unset">> + <br><<link "Force Abandonment of Repopulationism">><<set $arcologies[_currentNeighbor].FSRepopulationFocus = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough chains. - <</if>> - <<set _exports = 1>> -<</if>> -<<if $activeArcology.FSGenderFundamentalist > 95>> - <<if !isItemAccessible("a bunny outfit")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of bunny suits" "Neighbor Interact">> - <<set $clothesBoughtBunny = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of bunny suits" "Neighbor Interact">> - <<set $clothesBoughtBunny = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of bunny suits" "Neighbor Interact">> - <<set $clothesBoughtBunny = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSRestart != "unset">> + <br><<link "Force Abandonment of Eugenics">><<set $arcologies[_currentNeighbor].FSRestart = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough bunny suits and bowties. - <</if>> - <<set _exports = 1>> -<</if>> -<<if $activeArcology.FSPhysicalIdealist > 95>> - <<if !isItemAccessible("body oil")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of body oil" "Neighbor Interact">> - <<set $clothesBoughtOil = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of body oil" "Neighbor Interact">> - <<set $clothesBoughtOil = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of body oil" "Neighbor Interact">> - <<set $clothesBoughtOil = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSGenderRadicalist != "unset">> + <br><<link "Force Abandonment of Gender Radicalism">><<set $arcologies[_currentNeighbor].FSGenderRadicalist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough body oil. - <</if>> - <<set _exports = 1>> -<<elseif $activeArcology.FSHedonisticDecadence > 95>> - <<if !isItemAccessible("stretch pants and a crop-top")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of stretch pants and crop-tops" "Neighbor Interact">> - <<set $clothesBoughtLazyClothes = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of stretch pants and crop-tops" "Neighbor Interact">> - <<set $clothesBoughtLazyClothes = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of stretch pants and crop-tops" "Neighbor Interact">> - <<set $clothesBoughtLazyClothes = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSGenderFundamentalist != "unset">> + <br><<link "Force Abandonment of Gender Fundamentalism">><<set $arcologies[_currentNeighbor].FSGenderFundamentalist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough elastic waistbands and tight tops. - <</if>> - <<set _exports = 1>> -<</if>> -<<if $activeArcology.FSChattelReligionist > 95>> - <<if !isItemAccessible("a chattel habit")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of chattel religionist habits" "Neighbor Interact">> - <<set $clothesBoughtHabit = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of chattel religionist habits" "Neighbor Interact">> - <<set $clothesBoughtHabit = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of chattel religionist habits" "Neighbor Interact">> - <<set $clothesBoughtHabit = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSPaternalist != "unset">> + <br><<link "Force Abandonment of Paternalism">><<set $arcologies[_currentNeighbor].FSPaternalist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough chattel religionist habits. - <</if>> - <<set _exports = 1>> -<</if>> -<<if $activeArcology.FSPastoralist > 95>> - <<if !isItemAccessible("Western clothing")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of Western clothing" "Neighbor Interact">> - <<set $clothesBoughtWestern = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of Western clothing" "Neighbor Interact">> - <<set $clothesBoughtWestern = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of Western clothing" "Neighbor Interact">> - <<set $clothesBoughtWestern = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSDegradationist != "unset">> + <br><<link "Force Abandonment of Degradationism">><<set $arcologies[_currentNeighbor].FSDegradationist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough rancher outfits. - <</if>> - <<set _exports = 1>> -<</if>> -<<if $activeArcology.FSRepopulationFocus > 95>> - <<if !isItemAccessible("a maternity dress")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of maternity clothing" "Neighbor Interact">> - <<set $clothesBoughtMaternityDress = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of maternity clothing" "Neighbor Interact">> - <<set $clothesBoughtMaternityDress = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of maternity clothing" "Neighbor Interact">> - <<set $clothesBoughtMaternityDress = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSBodyPurist != "unset">> + <br><<link "Force Abandonment of Body Purism">><<set $arcologies[_currentNeighbor].FSBodyPurist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough maternity dresses. - <</if>> - <<if !isItemAccessible("attractive lingerie for a pregnant woman")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of maternity lingerie" "Neighbor Interact">> - <<set $clothesBoughtMaternityLingerie = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of maternity lingerie" "Neighbor Interact">> - <<set $clothesBoughtMaternityLingerie = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of maternity lingerie" "Neighbor Interact">> - <<set $clothesBoughtMaternityLingerie = 1>> - <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <<if $arcologies[_currentNeighbor].FSTransformationFetishist != "unset">> + <br><<link "Force Abandonment of Transformation Fetishism">><<set $arcologies[_currentNeighbor].FSTransformationFetishist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough lingerie suited for pregnant women. - <</if>> - <<if !isItemAccessible("a small empathy belly")>> - <<if ($activeArcology.government == "your trustees") || ($activeArcology.government == "your agent")>> - <br><<link "Request a shipment of empathy bellies" "Neighbor Interact">> - <<set $clothesBoughtBelly = 1>> - <</link>> - <<elseif $PC.hacking >= 50>> - <br><<link "Divert an outgoing shipment of empathy bellies" "Neighbor Interact">> - <<set $clothesBoughtBelly = 1>> - <</link>> - <<elseif $activeArcology.direction != $arcologies[0].embargoTarget>> - <br><<link "Purchase a shipment of empathy bellies" "Neighbor Interact">> - <<set $clothesBoughtBelly = 1>> - <<run cashX(forceNeg(Math.trunc((15000-(_prices*2))*$upgradeMultiplierTrade)), "capEx")>> - <</link>> //Will cost <<print cashFormat(Math.trunc(15000-(_prices*2)))>>// + <<if $arcologies[_currentNeighbor].FSYouthPreferentialist != "unset">> + <br><<link "Force Abandonment of Youth Preferentialism">><<set $arcologies[_currentNeighbor].FSYouthPreferentialist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSMaturityPreferentialist != "unset">> + <br><<link "Force Abandonment of Maturity Preferentialism">><<set $arcologies[_currentNeighbor].FSMaturityPreferentialist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSSlimnessEnthusiast != "unset">> + <br><<link "Force Abandonment of Slimness Enthusiasm">><<set $arcologies[_currentNeighbor].FSSlimnessEnthusiast = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSAssetExpansionist != "unset">> + <br><<link "Force Abandonment of Asset Expansionism">><<set $arcologies[_currentNeighbor].FSAssetExpansionist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSPastoralist != "unset">> + <br><<link "Force Abandonment of Pastoralism">><<set $arcologies[_currentNeighbor].FSPastoralist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSCummunism != "unset">> + <br><<link "Force Abandonment of Cummunism">><<set $arcologies[_currentNeighbor].FSCummunism = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSPhysicalIdealist != "unset">> + <br><<link "Force Abandonment of Physical Idealism">><<set $arcologies[_currentNeighbor].FSPhysicalIdealist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSHedonisticDecadence != "unset">> + <br><<link "Force Abandonment of Hedonistic Decadence">><<set $arcologies[_currentNeighbor].FSHedonisticDecadence = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSIncestFetishist != "unset">> + <br><<link "Force Abandonment of Incest Fetishism">><<set $arcologies[_currentNeighbor].FSIncestFetishist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSChattelReligionist != "unset">> + <br><<link "Force Abandonment of Chattel Religionism">><<set $arcologies[_currentNeighbor].FSChattelReligionist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSRomanRevivalist != "unset">> + <br><<link "Force Abandonment of Roman Revivalism">><<set $arcologies[_currentNeighbor].FSRomanRevivalist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSAztecRevivalist !== "unset">> + <br><<link "Force Abandonment of Aztec Revivalism">><<set $arcologies[_currentNeighbor].FSAztecRevivalist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSEgyptianRevivalist != "unset">> + <br><<link "Force Abandonment of Egyptian Revivalism">><<set $arcologies[_currentNeighbor].FSEgyptianRevivalist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSEdoRevivalist != "unset">> + <br><<link "Force Abandonment of Edo Revivalism">><<set $arcologies[_currentNeighbor].FSEdoRevivalist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSArabianRevivalist != "unset">> + <br><<link "Force Abandonment of Arabian Revivalism">><<set $arcologies[_currentNeighbor].FSArabianRevivalist = "unset">><<goto "Neighbor Interact">><</link>> + <</if>> + <<if $arcologies[_currentNeighbor].FSChineseRevivalist != "unset">> + <br><<link "Force Abandonment of Chinese Revivalism">><<set $arcologies[_currentNeighbor].FSChineseRevivalist = "unset">><<goto "Neighbor Interact">><</link>> <</if>> - <<else>> - <br>You already have enough fake baby bumps. <</if>> - <<set _exports = 1>> -<</if>> -<<if _exports != 1>> - <<if $activeArcology.direction == $arcologies[0].embargoTarget>> - Fortunately, + + <br><br> + If $arcologies[_currentNeighbor].name has developed enough to begin exporting worthwhile goods, it may be of interest to acquire some. + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + Since it is under your control, it is no problem at all to request the transfer of goods to $arcologies[0].name. + <<elseif $PC.hacking >= 50>> + It is within your skills to redirect an outgoing shipment to $arcologies[0].name for your retrieval. + <<elseif $arcologies[_currentNeighbor].direction === $arcologies[0].embargoTarget>> + Due to your active embargo, trade with $arcologies[_currentNeighbor].name is not possible. <<else>> - Unfortunately, + <<set $targetArcology = $arcologies[0], _tempArc = $arcologies[_currentNeighbor]>><<= arcologyOpinion()>><<set _prices = $opinion*10, $arcologies[_currentNeighbor] = _tempArc>> + <</if>> + <<if $arcologies[_currentNeighbor].FSRomanRevivalist > 95>> + <<if !isItemAccessible("a toga")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of togas" "Neighbor Interact">> + <<set $clothesBoughtToga = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of togas" "Neighbor Interact">> + <<set $clothesBoughtToga = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of togas" "Neighbor Interact">> + <<set $clothesBoughtToga = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough togas. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSEdoRevivalist > 95>> + <<if !isItemAccessible("a kimono")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of kimonos" "Neighbor Interact">> + <<set $clothesBoughtKimono = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of kimonos" "Neighbor Interact">> + <<set $clothesBoughtKimono = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of kimonos" "Neighbor Interact">> + <<set $clothesBoughtKimono = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough kimonos. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSArabianRevivalist > 95>> + <<if !isItemAccessible("harem gauze")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of silken harem garb" "Neighbor Interact">> + <<set $clothesBoughtHarem = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of silken harem garb" "Neighbor Interact">> + <<set $clothesBoughtHarem = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of silken harem garb" "Neighbor Interact">> + <<set $clothesBoughtHarem = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough silk. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSAztecRevivalist > 95>> + <<if !isItemAccessible("a huipil")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of huipils" "Neighbor Interact">> + <<set $clothesBoughtHuipil = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of huipils" "Neighbor Interact">> + <<set $clothesBoughtHuipil = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of huipils" "Neighbor Interact">> + <<set $clothesBoughtHuipil = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough huipils. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSChineseRevivalist > 95>> + <<if !isItemAccessible("a slutty qipao")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of qipaos" "Neighbor Interact">> + <<set $clothesBoughtQipao = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of qipaos" "Neighbor Interact">> + <<set $clothesBoughtQipao = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of qipaos" "Neighbor Interact">> + <<set $clothesBoughtQipao = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough skimpy qipaos. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSEgyptianRevivalist > 95>> + <<if !isItemAccessible("ancient Egyptian")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of Egyptian necklace replicas" "Neighbor Interact">> + <<set $clothesBoughtEgypt = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of Egyptian necklace replicas" "Neighbor Interact">> + <<set $clothesBoughtEgypt = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of Egyptian necklace replicas" "Neighbor Interact">> + <<set $clothesBoughtEgypt = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough replicas of Egyptian necklaces. + <</if>> + <<set _exports = 1>> + <</if>> + <<if $arcologies[_currentNeighbor].FSPaternalist > 95>> + <<if !isItemAccessible("conservative clothing")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of conservative clothing" "Neighbor Interact">> + <<set $clothesBoughtConservative = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of conservative clothing" "Neighbor Interact">> + <<set $clothesBoughtConservative = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of conservative clothing" "Neighbor Interact">> + <<set $clothesBoughtConservative = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough modest clothing. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSDegradationist > 95>> + <<if !isItemAccessible("chains")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of binding chains" "Neighbor Interact">> + <<set $clothesBoughtChains = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of binding chains" "Neighbor Interact">> + <<set $clothesBoughtChains = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of binding chains" "Neighbor Interact">> + <<set $clothesBoughtChains = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough chains. + <</if>> + <<set _exports = 1>> + <</if>> + <<if $arcologies[_currentNeighbor].FSGenderFundamentalist > 95>> + <<if !isItemAccessible("a bunny outfit")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of bunny suits" "Neighbor Interact">> + <<set $clothesBoughtBunny = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of bunny suits" "Neighbor Interact">> + <<set $clothesBoughtBunny = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of bunny suits" "Neighbor Interact">> + <<set $clothesBoughtBunny = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough bunny suits and bowties. + <</if>> + <<set _exports = 1>> + <</if>> + <<if $arcologies[_currentNeighbor].FSPhysicalIdealist > 95>> + <<if !isItemAccessible("body oil")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of body oil" "Neighbor Interact">> + <<set $clothesBoughtOil = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of body oil" "Neighbor Interact">> + <<set $clothesBoughtOil = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of body oil" "Neighbor Interact">> + <<set $clothesBoughtOil = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough body oil. + <</if>> + <<set _exports = 1>> + <<elseif $arcologies[_currentNeighbor].FSHedonisticDecadence > 95>> + <<if !isItemAccessible("stretch pants and a crop-top")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of stretch pants and crop-tops" "Neighbor Interact">> + <<set $clothesBoughtLazyClothes = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of stretch pants and crop-tops" "Neighbor Interact">> + <<set $clothesBoughtLazyClothes = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of stretch pants and crop-tops" "Neighbor Interact">> + <<set $clothesBoughtLazyClothes = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough elastic waistbands and tight tops. + <</if>> + <<set _exports = 1>> + <</if>> + <<if $arcologies[_currentNeighbor].FSChattelReligionist > 95>> + <<if !isItemAccessible("a chattel habit")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of chattel religionist habits" "Neighbor Interact">> + <<set $clothesBoughtHabit = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of chattel religionist habits" "Neighbor Interact">> + <<set $clothesBoughtHabit = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of chattel religionist habits" "Neighbor Interact">> + <<set $clothesBoughtHabit = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough chattel religionist habits. + <</if>> + <<set _exports = 1>> + <</if>> + <<if $arcologies[_currentNeighbor].FSPastoralist > 95>> + <<if !isItemAccessible("Western clothing")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of Western clothing" "Neighbor Interact">> + <<set $clothesBoughtWestern = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of Western clothing" "Neighbor Interact">> + <<set $clothesBoughtWestern = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of Western clothing" "Neighbor Interact">> + <<set $clothesBoughtWestern = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough rancher outfits. + <</if>> + <<set _exports = 1>> + <</if>> + <<if $arcologies[_currentNeighbor].FSRepopulationFocus > 95>> + <<if !isItemAccessible("a maternity dress")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of maternity clothing" "Neighbor Interact">> + <<set $clothesBoughtMaternityDress = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of maternity clothing" "Neighbor Interact">> + <<set $clothesBoughtMaternityDress = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of maternity clothing" "Neighbor Interact">> + <<set $clothesBoughtMaternityDress = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough maternity dresses. + <</if>> + <<if !isItemAccessible("attractive lingerie for a pregnant woman")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of maternity lingerie" "Neighbor Interact">> + <<set $clothesBoughtMaternityLingerie = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of maternity lingerie" "Neighbor Interact">> + <<set $clothesBoughtMaternityLingerie = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of maternity lingerie" "Neighbor Interact">> + <<set $clothesBoughtMaternityLingerie = 1>> + <<run cashX(forceNeg(Math.trunc((7500-_prices)*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc((7500-_prices)*$upgradeMultiplierTrade))>>// + <</if>> + <<else>> + <br>You already have enough lingerie suited for pregnant women. + <</if>> + <<if !isItemAccessible("a small empathy belly")>> + <<if ($arcologies[_currentNeighbor].government == "your trustees") || ($arcologies[_currentNeighbor].government == "your agent")>> + <br><<link "Request a shipment of empathy bellies" "Neighbor Interact">> + <<set $clothesBoughtBelly = 1>> + <</link>> + <<elseif $PC.hacking >= 50>> + <br><<link "Divert an outgoing shipment of empathy bellies" "Neighbor Interact">> + <<set $clothesBoughtBelly = 1>> + <</link>> + <<elseif $arcologies[_currentNeighbor].direction != $arcologies[0].embargoTarget>> + <br><<link "Purchase a shipment of empathy bellies" "Neighbor Interact">> + <<set $clothesBoughtBelly = 1>> + <<run cashX(forceNeg(Math.trunc((15000-(_prices*2))*$upgradeMultiplierTrade)), "capEx")>> + <</link>> //Will cost <<print cashFormat(Math.trunc(15000-(_prices*2)))>>// + <</if>> + <<else>> + <br>You already have enough fake baby bumps. + <</if>> + <<set _exports = 1>> <</if>> - they have nothing of value. -<</if>> -<br> -<<if $arcologies[0].embargoTarget != -1>> - <br> - [[Cancel economic warfare|Neighbor Interact][$arcologies[0].embargoTarget = -1]] -<</if>> -<<if $arcologies[0].influenceTarget != -1>> - <br> - [[Stop trying to influence neighboring arcologies|Neighbor Interact][$arcologies[0].influenceTarget = -1]] -<</if>> -<<if $arcologies[0].CyberEconomicTarget != -1>> - <br> - [[Cancel cyber economic warfare|Neighbor Interact][$arcologies[0].CyberEconomicTarget = -1]] -<</if>> -<<if $arcologies[0].CyberReputationTarget != -1>> - <br> - [[Cancel character assassination|Neighbor Interact][$arcologies[0].CyberReputationTarget = -1]] -<</if>> + <<if _exports != 1>> + <<if $arcologies[_currentNeighbor].direction == $arcologies[0].embargoTarget>> + Fortunately, + <<else>> + Unfortunately, + <</if>> + they have nothing of value. + <</if>> + + <</replace>> + <</link>> with an estimated GSP of @@.yellowgreen;<<print cashFormat(Math.trunc((0.1*$arcologies[_currentNeighbor].prosperity*random(100-$economicUncertainty,100+$economicUncertainty))/100))>>m@@ and is ran by $arcologies[_currentNeighbor].government who own $arcologies[_currentNeighbor].ownership%. +<</capture>> +<</for>> +</span> \ No newline at end of file diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 112c3633040b63bca443bff509491cb70fbd3abf..68ede406c603d2fb455b3126335028f36b446da3 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1360,7 +1360,8 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1 <</if>> <<elseif $reservedChildrenNursery < $freeCribs>> $He is pregnant and you have <<if $freeCribs == 1>>an<</if>> @@.lime;available room<<if $freeCribs > 1>>s<</if>>@@ in $nurseryName. - <<print "[[Keep _cCount child|Slave Interact][WombAddToGenericReserve($activeSlave, 'nursery', 1)]]">> + <<set _cCount = (_WL > 1 ? "a" : "the")>> + <<link "Keep _cCount child" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "nursery", 1)>><<set $slaves[$slaveIndices[$activeSlave.ID]] = $activeSlave>><<set $reservedChildren = FetusGlobalReserveCount("nursery")>><</link>> <<if (_WL > 1) && ($reservedChildrenNursery + _WL) <= $freeCribs>> | <<link "Keep all of $his children" "Slave Interact">><<set WombAddToGenericReserve($activeSlave, "nursery", 9999)>><<set $slaves[$slaveIndices[$activeSlave.ID]] = $activeSlave>><<set $reservedChildren = FetusGlobalReserveCount("nursery")>><</link>> <</if>> diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 9dac3116fe4b65b53d78af7a31d9d832dd1810f9..1273eff2ee89b167345ed71b852085dc9c026f2e 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -170,6 +170,7 @@ since last week) <</link>> <</if>> + <br> <</if>> [[Upkeep|Costs Budget]] | <<else>> @@ -186,7 +187,7 @@ <</if>> Upkeep | <</if>><<print cashFormat($costs)>> - <br><br>@@.pink;Total Sex Slaves@@ | <<print num(_SL)>> + <br><br>@@.pink;Total Sex Slaves@@ | <<print _SL>> <br>@@.pink;Penthouse Beds@@ | <<if $dormitoryPopulation+$roomsPopulation > ($dormitory+$rooms)>>@@.red;<<print $dormitoryPopulation+$roomsPopulation>>@@<<else>><<print $dormitoryPopulation+$roomsPopulation>><</if>>/<<print ($dormitory+$rooms)>> <br>@@.pink;Dormitory Beds@@ | <<if $dormitoryPopulation > $dormitory>>@@.red;<<print $dormitoryPopulation>>@@<<else>><<print $dormitoryPopulation>><</if>>/<<print $dormitory>> @@ -258,7 +259,7 @@ <<else>> @@color:rgb(0,255,0);unknown@@ <</if>> - (<<print num($rep)>>) + (<<print $rep>>) </span> <<if (_Pass == "Main")>> <<if ($cheatMode) && ($cheatModeM)>> @@ -364,7 +365,7 @@ <<else>> @@color:rgb(211,0,204);harmless@@ <</if>> - (<<print num($authority)>>) + (<<print $authority>>) </span> <<if (_Pass == "Main")>> <<if ($cheatMode) && ($cheatModeM)>> @@ -604,6 +605,9 @@ <<else>> ($incubatorSlaves/$incubator) <</if>> + <<if $readySlaves > 0>> + @@.yellow;[!]@@ + <</if>> <</if>> <<if ($pit)>> <br> <<link "$pitNameCaps""Pit">><</link>> @@ -620,8 +624,11 @@ <<elseif _Pass == "Options">> <br><br> [[Summary Options]] <br> [[Description Options]] - <<elseif _Pass == "Manage Arcology">> - <span id="Security"> <br> + <<elseif _Pass == "Manage Arcology">> <br> + <span id="Security"> + <<if $arcologies.length > 1>> + <br>[[Diplomacy|Neighbor Interact]] + <</if>> <<if $secExp == 1>> <br><span id="edictButton"><<link [[Edicts|edicts]]>><<set $nextButton = "Back", $nextLink = "Main">><</link>></span> @@.cyan;[D]@@ <</if>>