From da5ff0f8e9a5ab306cd9f951b4e0c77a8917ae31 Mon Sep 17 00:00:00 2001
From: Anu <anulithic@gmail.com>
Date: Tue, 11 Feb 2025 18:26:40 -0800
Subject: [PATCH 1/3] Prevent unintended stat inheritance

---
 src/events/RE/reRoyalBlood.js | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/events/RE/reRoyalBlood.js b/src/events/RE/reRoyalBlood.js
index 920821431e3..4ff60fbda47 100644
--- a/src/events/RE/reRoyalBlood.js
+++ b/src/events/RE/reRoyalBlood.js
@@ -29,6 +29,8 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			his, he, him, girl
 		} = getPronouns(princess);
 
+		finalTweaks();
+
 		const {HeA, heA} = getPronouns(assistant.pronouns().main).appendSuffix("A");
 
 		const r = [];
@@ -844,12 +846,10 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			slave.devotion = random(-80, -60);
 			slave.trust = random(-50, -60);
 			slave.butt = random(0, 1);
-			slave.muscles = 50;
+			// moved to finalTweaks(): muscles = 50
 			slave.intelligence = random(15, 100);
 			slave.intelligenceImplant = 15;
-			slave.skill.anal = 0;
-			slave.skill.oral = 0;
-			slave.skill.combat = 40;
+			// skills moved to finalTweaks(): anal 0, oral 0, combat 40
 			setHealth(slave, jsRandom(30, 60), 0, 0, 0, 0);
 			slave.behavioralFlaw = either("arrogant", "bitchy");
 			setMissingParents(slave); // set .father so the princess will be a full sibling
@@ -882,7 +882,7 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			slave.butt = random(2, 4);
 			slave.intelligence = random(15, 100);
 			slave.intelligenceImplant = 30;
-			slave.skill.entertainment = 45;
+			// skills moved to finalTweaks(): entertainment 45
 			slave.counter.birthsTotal = 2;
 			setHealth(slave, jsRandom(30, 60), 0, 0, 0, 0);
 			slave.behavioralFlaw = either("arrogant", "bitchy");
@@ -962,6 +962,15 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			return slave;
 		}
 
+		// apply some prince and queen traits after princess generated, to prevent unintentional inheritance
+		function finalTweaks() {
+			queen.skill.entertainment = 45;
+			prince.muscles = 50;
+			prince.skill.anal = 0;
+			prince.skill.oral = 0;
+			prince.skill.combat = 40;
+		}
+
 		/** @param {FC.SlaveState} slave */
 		function orphan(slave) {
 			// Remove family links from 'child' slaves acquired without their parents
-- 
GitLab


From a2d7a086b2b10b7feb10a8b5b5abba9d0ea37ade Mon Sep 17 00:00:00 2001
From: Anu <anulithic@gmail.com>
Date: Tue, 11 Feb 2025 18:37:45 -0800
Subject: [PATCH 2/3] Avoid precocious puberty in prince/princess

---
 src/events/RE/reRoyalBlood.js | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/events/RE/reRoyalBlood.js b/src/events/RE/reRoyalBlood.js
index 4ff60fbda47..7ca5dd6085d 100644
--- a/src/events/RE/reRoyalBlood.js
+++ b/src/events/RE/reRoyalBlood.js
@@ -818,6 +818,9 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			slave.boobs = Math.min(slave.boobs, 400);
 			slave.vagina = 0;
 			slave.preg = -1;
+			if (slave.physicalAge < slave.pubertyAgeXX) {
+				slave.pubertyXX = 0;
+			}
 			slave.pubicHStyle = "waxed";
 			slave.underArmHStyle = "waxed";
 			slave.hips = 0;
@@ -845,6 +848,9 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			}
 			slave.devotion = random(-80, -60);
 			slave.trust = random(-50, -60);
+			if (slave.physicalAge < slave.pubertyAgeXY) {
+				slave.pubertyXY = 0;
+			}
 			slave.butt = random(0, 1);
 			// moved to finalTweaks(): muscles = 50
 			slave.intelligence = random(15, 100);
-- 
GitLab


From 84366ab40c9a7f26b9438fd327ab315297ac767e Mon Sep 17 00:00:00 2001
From: Anu <anulithic@gmail.com>
Date: Tue, 11 Feb 2025 18:51:54 -0800
Subject: [PATCH 3/3] Name royal nationality in intro text, and don't give
 prepubescent princess contraceptives

---
 src/events/RE/reRoyalBlood.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/events/RE/reRoyalBlood.js b/src/events/RE/reRoyalBlood.js
index 7ca5dd6085d..8ac38b1bfe0 100644
--- a/src/events/RE/reRoyalBlood.js
+++ b/src/events/RE/reRoyalBlood.js
@@ -48,7 +48,7 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 
 		App.Events.addParagraph(el, [`Of course, nothing in the Free Cities is free and international aid is no exception. This new arcology owner is no fool, however, and has outlined a number of rewards to be delivered to his most generous benefactors.`]);
 
-		App.Events.addParagraph(el, [`Though the King himself is dead, murdered in his bed by bloodthirsty revolutionaries, the rest of his family and the majority of his court have been captured and enslaved by their former subjects. The new arcology owner, having decided that a large injection of credits or a shipment of goods is superior to deflowering a royal pussy or asshole, has directed his followers to slake their lust and vengeance on the King's ${wife3} and court rather than his children, though they too are past the age of majority.`]);
+		App.Events.addParagraph(el, [`Though the ${queen.nationality} King himself is dead, murdered in his bed by bloodthirsty revolutionaries, the rest of his family and the majority of his court have been captured and enslaved by their former subjects. The new arcology owner, having decided that a large injection of credits or a shipment of goods is superior to deflowering a royal pussy or asshole, has directed his followers to slake their lust and vengeance on the King's ${wife3} and court rather than his children, though they too are past the age of majority.`]);
 
 		App.Events.addParagraph(el, [`Time is short, but you are well placed to acquire some choice slaves. With an adequate donation${(activeSF) ? `, or the use of ${V.SF.Lower}` : ``}, of course.`]);
 
@@ -820,6 +820,7 @@ App.Events.RERoyalBlood = class RERoyalBlood extends App.Events.BaseEvent {
 			slave.preg = -1;
 			if (slave.physicalAge < slave.pubertyAgeXX) {
 				slave.pubertyXX = 0;
+				slave.preg = 0;
 			}
 			slave.pubicHStyle = "waxed";
 			slave.underArmHStyle = "waxed";
-- 
GitLab