diff --git a/devTools/types/FC/arcology.d.ts b/devTools/types/FC/arcology.d.ts index f692aa0c814c0b4efcb5b7787ffb217bab6e1908..f664bd929405a38c09b5d21988ab55f57dbe0245 100644 --- a/devTools/types/FC/arcology.d.ts +++ b/devTools/types/FC/arcology.d.ts @@ -113,7 +113,7 @@ declare namespace FC { research: undefined, SMR: true, policy: "Law", choice: undefined }; FSAntebellumRevivalist: { - noun: "Antebellum Revivalism", adj:"Antebellum Revivalist", deco: "Antebellum Revivalist", + noun: "Antebellum Revivalism", adj: "Antebellum Revivalist", deco: "Antebellum Revivalist", research: undefined, SMR: true, policy: "Law1" | "Law2", choice: undefined }; FSRepopulationFocus: { diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js index ab5cc3e15c8285c11fc18e70597eb62731bbaec0..648a8e83d92d31b02061e652676dca7543987b97 100644 --- a/js/003-data/policiesData.js +++ b/js/003-data/policiesData.js @@ -2060,13 +2060,16 @@ App.Data.Policies.Selection = { { title: "Guarantee the Right to Bear Arms", titleClass: "lime", - text: `it is an expected right under the ideals established by Antebellum Revivalism that eligible citizens ought to be able to possess weaponry and form militias to defend themselves and their property. - ${V.secExpEnabled && V.SecExp.edicts.weaponsLaw === 0 ? - ` By your edict, citizens are currently forbidden from possessing firearms. Enacting this law will automatically set the range of weapons allowed within the arcology to non-automatic, non-high caliber, free of the usual cost of authority.` : `` - }`, + get text() { + let text = `it is an expected right under the ideals established by Antebellum Revivalism that eligible citizens ought to be able to possess weaponry and form militias to defend themselves and their property.`; + if (V.secExpEnabled && V.SecExp.edicts.weaponsLaw === 0) { + text += ` By your edict, citizens are currently forbidden from possessing firearms. Enacting this law will automatically set the range of weapons allowed within the arcology to non-automatic, non-high caliber, free of the usual cost of authority.`; + } + return text; + }, activatedText: "citizens proudly carry arms in defense of themselves and the arcology against foreign threats and the slave class.", get requirements() { return (V.arcologies[0].FSAntebellumRevivalist >= 90); }, - onImplementation: function() { + onImplementation: function() { if (V.secExpEnabled && V.SecExp.edicts.weaponsLaw === 0) { V.SecExp.edicts.weaponsLaw = 1; } diff --git a/src/art/webgl/art.js b/src/art/webgl/art.js index d3d801ba068f1c2592eca21eb7a5d5e401d72b27..801bb900bd8bef0853ebb617dbe6e1803767df56 100644 --- a/src/art/webgl/art.js +++ b/src/art/webgl/art.js @@ -1299,7 +1299,7 @@ App.Art.applySurfaces = function(slave, scene, p) { } let pubicStyle = ""; - if (slave.physicalAge >= slave.pubertyAge) { + if (slave.physicalAge >= Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY)) { switch (slave.pubicHStyle) { case "hairless": case "waxed": @@ -2179,7 +2179,7 @@ App.Art.applyMaterials = function(slave, scene, p) { materials.push(["TemplateGenitalia", "Ni", Ni]); materials.push(["TemplateGenitalia", "map_Ka", "base/skin/" + skin + "Torso.jpg"]); - if (slave.physicalAge >= slave.pubertyAge) { + if (slave.physicalAge >= Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY)) { const pubicColor = App.Art.hexToRgb(extractColor(slave.pubicHColor)); switch (slave.pubicHStyle) { case "hairless": diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js index 17a76c44d0c96b5b86bd7078507afcb6bee5e44c..db7805b1a4dfbed438e5de79f9fd3a235e6b8894 100644 --- a/src/endWeek/economics/neighborsDevelopment.js +++ b/src/endWeek/economics/neighborsDevelopment.js @@ -2052,7 +2052,7 @@ App.EndWeek.neighborsDevelopment = function() { } else if (leader.nationality === "Mexican") { candidates.push({fs: "FSAztecRevivalist", msg: `since ${he}'s Mexican ${himself} and can claim high honor in such a society.`}); } else if (leader.nationality === "American") { - candidates.push({fs: "FSAntebellumRevivalist", msg: `since ${he}'s American ${himself} and can claim high honor in such a society.`}); + candidates.push({fs: "FSAntebellumRevivalist", msg: `since ${he}'s American ${himself} and can claim high honor in such a society.`}); } else if (leader.nationality === "Egyptian") { candidates.push({fs: "FSEgyptianRevivalist", msg: `since ${he}'s Egyptian ${himself} and wants to relive the glory of the Pharaohs.`}); } else if (["German", "French", "Spanish", "English"].includes(leader.nationality)) { @@ -2288,7 +2288,7 @@ App.EndWeek.neighborsDevelopment = function() { ["FSPetiteAdmiration", [ { fs: "FSAssetExpansionist", - msg: `The arcology's Petite Admiration culture <span class="yellow">pushes it towards Asset Expansionist,</span> since a ${girlU} with tits wider than ${heU} is tall attracts quite some attention.` + msg: `The arcology's Petite Admiration culture <span class="yellow">pushes it towards Asset Expansionism,</span> since a ${girlU} with tits wider than ${heU} is tall attracts quite some attention.` }, { fs: "FSPaternalist", diff --git a/src/endWeek/saRecruitGirls.js b/src/endWeek/saRecruitGirls.js index 6c35a797471133a689b4b3a734ef9f68c4c82ee0..f3b80478d361d7830d0cee422c79f750ba5c712c 100644 --- a/src/endWeek/saRecruitGirls.js +++ b/src/endWeek/saRecruitGirls.js @@ -1664,7 +1664,7 @@ App.SlaveAssignment.recruitGirls = function recruitGirls(slave) { } else if (arcology.FSAntebellumRevivalist !== "unset") { if (slave.skill.entertainer > 95 && App.Entity.facilities.servantsQuarters.employeesIDs().size > 5 && (slave.behavioralQuirk === "funny" || totalInt > 50)) { pushFS(`${He} puts together a charming little video touring your spotless estate, showing particular care to the well-staffed ${V.servantsQuartersName}.`); - if (V.servantsQuartersDecoration === "Arabian Revivalist") { + if (V.servantsQuartersDecoration === "Antebellum Revivalist") { pushFS(`The decor really impresses the viewers.`); seed += 1; } @@ -1679,7 +1679,7 @@ App.SlaveAssignment.recruitGirls = function recruitGirls(slave) { } else if (App.Entity.facilities.servantsQuarters.employeesIDs().size <= 1) { pushFS(`${He} worries she might embarrass you if ${he} inadvertently let slip how few servants you have.`); } else { - pushFS(`${He} can't seem create anything entertaining enough that really sells the idea of your household.`) + pushFS(`${He} can't seem create anything entertaining enough that really sells the idea of your household.`); } } diff --git a/src/endWeek/saSocialEffects.js b/src/endWeek/saSocialEffects.js index 5ff952257ef475f6e9ba96ac78013ea2036059e6..545447a98257ce4b5a3330029ca9c345d0e45962 100644 --- a/src/endWeek/saSocialEffects.js +++ b/src/endWeek/saSocialEffects.js @@ -736,7 +736,7 @@ App.SlaveAssignment.saSocialEffects = function(slave) { } if (V.arcologies[0].FSAntebellumRevivalist !== "unset") { - if (slave.assignment == Job.QUARTER) { + if (slave.assignment === Job.QUARTER) { if (V.arcologies[0].FSSubjugationist !== "unset" && slave.race === V.arcologies[0].FSSubjugationistRace) { t.push(new SocialEffect("Antebellum Revivalist", 2, `Servants`, `Society <span class="green">strongly approves</span> of ${slave.slaveName}, a slave of the inferior race, working as a servant.`)); @@ -748,7 +748,7 @@ App.SlaveAssignment.saSocialEffects = function(slave) { if (slave.skill.entertainment > 60 && slave.devotion > 20) { t.push(new SocialEffect("Antebellum Revivalist", 1, `Entertaining`, - `Society <span class="green">approves</span> of owning an obedient and affable slaves like ${slave.slaveName}.`)); + `Society <span class="green">approves</span> of owning an obedient and affable slave like ${slave.slaveName}.`)); } } diff --git a/src/events/recFS/recfsAntebellumRevivalist.js b/src/events/recFS/recfsAntebellumRevivalist.js index 86d66b936bbd7947a545ff04eaec9e5e8c91ca96..115ca33bb55a63a79ffc50958bd100db6f928dcf 100644 --- a/src/events/recFS/recfsAntebellumRevivalist.js +++ b/src/events/recFS/recfsAntebellumRevivalist.js @@ -9,7 +9,7 @@ App.Events.recFSAntebellumRevivalist = class recFSAntebellumRevivalist extends A execute(node) { let r = []; - let slaveRace = "" + let slaveRace = ""; if (V.arcologies[0].FSSubjugationistRace !== 0) { slaveRace = V.arcologies[0].FSSubjugationistRace; } else if (V.arcologies[0].FSSupremacist !== 0) { diff --git a/src/events/scheduled/pitFight.js b/src/events/scheduled/pitFight.js index 56e29514dce1d7e9fb274f63acfb864a3a7ff995..094400a736b208ab481d513cc327dc72b86cf7e6 100644 --- a/src/events/scheduled/pitFight.js +++ b/src/events/scheduled/pitFight.js @@ -313,7 +313,7 @@ App.Events.SEPitFight = class SEPitFight extends App.Events.BaseEvent { const averageSuccess = totalSuccess / maxFights; r.push(eventSuccess(averageSuccess)); - r.push("At the and of the day you"); + r.push("At the end of the day you"); const repGain = 100 * totalSuccess; const cashGain = 2000 * totalSuccess; diff --git a/src/interaction/sellSlave.js b/src/interaction/sellSlave.js index 2bd1dda74674d23c0b6d7f63e9126c866453e32c..7efe816ccbdd984a145e42232ad5f8c5cd0ae5aa 100644 --- a/src/interaction/sellSlave.js +++ b/src/interaction/sellSlave.js @@ -2886,7 +2886,7 @@ App.Interact.sellSlave = function(slave) { r.push(`With ${slave.slaveName} added to their stable of sex slaves, General ${V.peacekeepers.generalName}'s troops will be fully converted to the idea of aligning with the slaveowning Free Cities, and the general will no longer have to maintain even plausible deniability. <span class="yellow">General ${V.peacekeepers.generalName}'s little empire is now effectively a client state of ${V.arcologies[0].name}.</span>`); V.peacekeepers.attitude = 100; } else { - r.push(`General ${V.peacekeepers.generalName}'s little empire continues to be a reliable client state of ${V.arcologies[0].name}, and a good market for ${V.peacekeepers.tastes}.`); + r.push(`General ${V.peacekeepers.generalName}'s little empire continues to be a reliable client state of ${V.arcologies[0].name}${V.peacekeepers.tastes !== "" ? `, and a good market for ${V.peacekeepers.tastes}` : ``}.`); } return r; }, diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 26b176d0ffd0914d71cabee59546dadb49d7a31b..262183b82c633fb05ec1c6fc02a4a2af163c213b 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -605,7 +605,9 @@ App.Entity.EyeState = class EyeState { App.Entity.GeneticState = class GeneticState { constructor() { // TODO: move origHColor, origSkin, origRace here, as hColor, skin, race? - this.height = 170; // new - almost done. need to rewrite physical development for both player and slave. + /** adult, natural height; expected height when full-grown/no drugs/no surgery + * @type {number} */ + this.height = 170; // this.boobs = 500; // TODO: for pregmodder this.artSeed = jsRandom(0, 10 ** 14); } diff --git a/src/npc/generate/newChildIntro.js b/src/npc/generate/newChildIntro.js index 3af74e4f817ad38f3cf75aa4cdb8f8e80d8cf9e3..99143b6cddefcd8f696b5402e38fa63748f4a56c 100644 --- a/src/npc/generate/newChildIntro.js +++ b/src/npc/generate/newChildIntro.js @@ -377,7 +377,7 @@ App.UI.newChildIntro = function(slave) { App.UI.DOM.link( `Give ${him} a random old Southern-style surname`, () => { - slave.slaveSurname = App.Data.misc.antebellumRevivalistSlaveSurnames.random(); + slave.slaveSurname = App.Data.misc.antebellumSlaveSurnames.random(); slave.birthSurname = slave.slaveSurname; jQuery(surnaming).empty().append(`${V.assistant.name} registers the new ${girl}'s surname as "${slave.slaveSurname}" in your registry.`); jQuery(newName).empty().append(SlaveFullName(slave));