From f912f5c40472d372de3d784563a6b657ace5a933 Mon Sep 17 00:00:00 2001
From: Pregmodder <pregmodder@gmail.com>
Date: Wed, 23 Feb 2022 19:24:58 -0500
Subject: [PATCH] ideal age cleanup first pass

---
 CHANGELOG.md                               |  3 +
 js/003-data/policiesData.js                |  8 +--
 src/cheats/cheatEditArcology.js            |  2 +-
 src/endWeek/economics/arcmgmt.js           | 65 ++++++++++------------
 src/events/intro/introSummary.js           |  4 +-
 src/npc/descriptions/descriptionWidgets.js |  2 +-
 src/npc/descriptions/longSlave.js          |  2 +
 7 files changed, 43 insertions(+), 43 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cc1ed1e8f53..62f23305ec5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ## Unreleased
 
+* age now centered around  an ideal age + policies to manage it
+* fixes
+
 ## 0.10.7.1-4.0.0-alpha.13 - 2022-02-12
 
 * first stages of a rudimentary modding API
diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js
index b2b82cd5f23..1c6bd4de4d9 100644
--- a/js/003-data/policiesData.js
+++ b/js/003-data/policiesData.js
@@ -314,14 +314,14 @@ App.Data.Policies.Selection = {
 		],
 		"policies.idealAge": [
 			{
-				title: "Ideal Age Of Sexual Appeal",
+				title: "Age Of Sexual Appeal",
 				get text() {
 					const el = new DocumentFragment;
 					if(V.idealAge === 18) {
-						el.append(`most consider the ideal age of sexual appeal to be the old world default of 18. You will use your influence to change the sexually ideal age to `);
+						el.append(`many consider the most sexually appealing age to be the old world default of 18. You will use your influence to change the sexual ideal to `);
 					}
 					else {
-						el.append(`most consider the ideal age of sexual appeal to be ${V.idealAge}. You will use your influence to change the sexually ideal age to `);
+						el.append(`many consider the most sexually appealing age to be ${V.idealAge}. You will use your influence to change the sexual ideal to `);
 					}
 					el.append(
 						App.UI.DOM.makeElement(
@@ -348,7 +348,7 @@ App.Data.Policies.Selection = {
 					return el;
 				},
 				get activatedText() {
-					return `you are using your personal influence to make ${V.targetIdealAge} the most sexually appealing age. The current percieved ideal age of sexual appeal is ${V.idealAge}.`;
+					return `you are using your personal influence to make ${V.targetIdealAge} the most sexually appealing age. The current percieved ideal age is ${V.idealAge}.`;
 				},
 				onRepeal: function() { 
 					if(V.arcologies[0].FSMaturityPreferentialist !== "unset") {
diff --git a/src/cheats/cheatEditArcology.js b/src/cheats/cheatEditArcology.js
index 3fa3fdac49e..aebc9076f1a 100644
--- a/src/cheats/cheatEditArcology.js
+++ b/src/cheats/cheatEditArcology.js
@@ -157,7 +157,7 @@ App.UI.Cheat.arcology = function(num) {
 						option.addValue(capRace, race);
 					}
 				}
- 			}
+			}
 		}
 		el.append(options.render());
 		return el;
diff --git a/src/endWeek/economics/arcmgmt.js b/src/endWeek/economics/arcmgmt.js
index bee0102dc00..2cb9acc3208 100644
--- a/src/endWeek/economics/arcmgmt.js
+++ b/src/endWeek/economics/arcmgmt.js
@@ -196,6 +196,36 @@ App.EndWeek.arcManagement = function() {
 	if (V.arcologies[0].FSHedonisticDecadenceSMR === 1) {
 		r.push(`The arcology must import a very large quantity of fattening food to plump up its slaves.`);
 	}
+	r.push(`Polling finds the most attractive age to be ${V.idealAge}.`);
+	if (V.policies.idealAge) {
+		if (V.targetIdealAge !== V.idealAge) {
+			r.push(`You use your wealth and personal influence to try and shift it to ${V.targetIdealAge}`);
+			V.idealAgeAdoption += V.rep / 100;
+			if(V.idealAgeAdoption > 100) {
+				const adoptionModifier = Math.floor(V.idealAgeAdoption / 100);
+				if(V.targetIdealAge > V.idealAge) {
+					V.idealAge = Math.clamp(Math.floor(V.idealAge + adoptionModifier), V.idealAge, V.targetIdealAge);
+				} else {
+					V.idealAge = Math.clamp(Math.floor(V.idealAge - adoptionModifier), V.idealAge, V.targetIdealAge);
+				}
+				if (adoptionModifier > 1) {
+					r.push(`and, with your peerless reptutation, ${V.idealAge === V.targetIdealAge ? `find it <span class="green">accepted wholeheartedly` : `<span class="green">quickly gain support`}.</span>`);
+				} else if (V.idealAge === V.targetIdealAge) {
+					
+				} else {
+					r.push(`, but tastes don't change quickly, so it ends up at ${V.idealAge}.`);
+				}
+				V.idealAgeAdoption = V.idealAgeAdoption - (100 * adoptionModifier);
+			} else {
+				if (V.idealAgeAdoption <= 0) {
+					r.push(r.pop() + `; unfortunately, your efforts <span class="red">have no effect</span> on what others find sexually appealing, and so it remains where it is.`);
+				}
+				else {
+					r.push(`and make <span class="yellow">some progress</span> in doing so, but for now, society's tastes do not change.`);
+				}
+			}
+		}
+	}
 
 	if (V.ACitizens > V.ASlaves * 2) { /* This will need to go away Eventually*/
 		r.push(`Since most citizens do not own sex slaves, <span class="yellowgreen">demand for sexual services is intense.</span>`);
@@ -1058,41 +1088,6 @@ App.EndWeek.arcManagement = function() {
 	function policiesImpact() {
 		const el = new DocumentFragment();
 		const r = [];
-		if(V.policies.idealAge) {
-			if(V.targetIdealAge !== V.idealAge) {
-				r.push(`You spend <span class="yellow">${cashFormat(1500)}</span> and use your personal influence to shift the percieved ideal age of sexual appeal.`);
-				V.idealAgeAdoption += V.rep / 100;
-				if(V.idealAgeAdoption > 100) {
-					const adoptionModifier = Math.floor(V.idealAgeAdoption / 100);
-					if(V.targetIdealAge > V.idealAge) {
-						V.idealAge = Math.clamp(Math.floor(V.idealAge + adoptionModifier),V.idealAge,V.targetIdealAge);
-					} else {
-						V.idealAge = Math.clamp(Math.floor(V.idealAge - adoptionModifier),V.idealAge,V.targetIdealAge);
-					}
-					if(adoptionModifier > 1) {
-						r.push(`Your peerless reptutation <span class="green">rapidly accelerates</span> the adoption of your proposed ideal age of sexual appeal, and most now consider it to be ${V.idealAge}.`);
-					} else {
-						r.push(`The percieved ideal age of sexual appeal has shifted ${V.idealAge === V.targetIdealAge ? "to" : "toward"} ${V.targetIdealAge}${V.idealAge !== V.targetIdealAge ? ", and most now consider the ideal age to be " + V.idealAge : ""}.`);
-					}
-					if(V.targetIdealAge === V.idealAge) {
-						r.push(`The percieved ideal age of sexual appeal has <span class="green">reached your intended target.</span>`);
-					}
-					V.idealAgeAdoption = V.idealAgeAdoption - (100 * adoptionModifier);
-				}
-				else {
-					if(V.idealAgeAdoption <= 0) {
-						r.push(`Unfortunately, your efforts <span class="red">had no effect</span> on the perceived ideal age of sexual appeal, and it remains ${V.idealAge}.`);
-					}
-					else {
-						r.push(`You have made <span class="yellow">partial progress</span> in shifting the perceived ideal age of sexual appeal, but for now, it remains ${V.idealAge}.`);
-					}
-				}
-			} else {
-				r.push(`Most continue to consider the ideal age of sexual appeal to be ${V.idealAge}.`);
-			}
-		} else {
-			r.push(`Most consider the ideal age of sexual appeal to be ${V.idealAge}.`);
-		}
 		if (V.policies.retirement.menial2Citizen === 1) {
 			slaveDemandU *= 0.8;
 			slaveDemandT *= 0.75;
diff --git a/src/events/intro/introSummary.js b/src/events/intro/introSummary.js
index f72206639a9..117d9a3f348 100644
--- a/src/events/intro/introSummary.js
+++ b/src/events/intro/introSummary.js
@@ -623,8 +623,8 @@ App.Intro.summary = function() {
 			.addComment("May cause issues with New Game and initial slaves if set below 45.").showTextBox();
 
 		V.idealAge = Math.clamp(V.idealAge, minAge, maxAge);
-		options.addOption("Initial ideal age of sexual appeal will be", "idealAge")
-			.addComment("Percieved beauty will decrease the farther (younger or older) a body is visually from this age.").showTextBox();
+		options.addOption("Prime age of sexual appeal", "idealAge")
+			.addComment("Percieved beauty will decrease the farther (younger or older) one's appearance is from the ideal.").showTextBox();
 
 		V.fertilityAge = Math.clamp(V.fertilityAge, 3, 18);
 		options.addOption("Girls will not be able to become pregnant if their age is under", "fertilityAge").showTextBox();
diff --git a/src/npc/descriptions/descriptionWidgets.js b/src/npc/descriptions/descriptionWidgets.js
index 9afaef4b742..232a6f39e6c 100644
--- a/src/npc/descriptions/descriptionWidgets.js
+++ b/src/npc/descriptions/descriptionWidgets.js
@@ -472,7 +472,7 @@ App.Desc.ageAndHealth = function(slave) {
 			if(slave.birthWeek >= 52 && V.seeAge) {
 				r += `is going to turn ${age} this week`;
 				if (V.showAgeDetail && V.seeAge !== 0 && slave.actualAge !== V.idealAge) {
-					r += `, and people are looking forward to ${his} birthday with great interest.`;
+					r += `, and people are already beginning to eye ${him}.`;
 				} else {
 					r += `.`;
 				}
diff --git a/src/npc/descriptions/longSlave.js b/src/npc/descriptions/longSlave.js
index a996c0e7265..7d8b3ef9fff 100644
--- a/src/npc/descriptions/longSlave.js
+++ b/src/npc/descriptions/longSlave.js
@@ -293,6 +293,7 @@ App.Desc.longSlave = function(slave, {descType, market = 0, prisonCrime, noArt}
 		r.push(`bimbo by societal trends.`);
 	}
 
+	/* Needs contemplation. Slightly redundant with descriptionsWidgets.
 	if(slave.visualAge === V.idealAge) {
 		if(slave.actualAge === V.idealAge) {
 			r.push(`${He} is ${slave.actualAge}, `);
@@ -324,6 +325,7 @@ App.Desc.longSlave = function(slave, {descType, market = 0, prisonCrime, noArt}
 		}
 		r.push(`but due to ${his} appearing to be ${slave.visualAge}, there is less enthusiasm for ${him} than there might otherwise be.`);
 	}
+	*/
 
 	$(p).append(r.join(" "));
 
-- 
GitLab