diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js
index 69ada836db9589aa11488f96bb36ee57ecc50932..ada1ff4100603f83626a51bad5e52ce8fc4cc141 100644
--- a/src/npc/generate/heroCreator.js
+++ b/src/npc/generate/heroCreator.js
@@ -22,15 +22,11 @@ App.Utils.buildHeroArray = function() {
 	let array = [].concat(...chunks);
 	delete V.heroSlaves;
 
-	for (let hero = 0; hero < array.length; hero++) {
-		if (V.seePreg !== 1 && [900089, 900102].includes(array[hero].ID)) {
-			array.splice(hero, 1);
-			hero--;
-		} else if (V.heroSlavesPurchased.includes(array[hero].ID)) {
-			array.splice(hero, 1);
-			hero--;
-		}
-	}
+	/** @type {function(App.Entity.SlaveState):boolean} */
+	const disallowedPregnantSlave = (s) => (V.seePreg !== 1 && s.preg > 0);
+	/** @type {function(App.Entity.SlaveState):boolean} */
+	const underAgedSlave = (s) => (s.actualAge < V.minimumSlaveAge);
+	array.deleteWith((s) => V.heroSlavesPurchased.includes(s.ID) || disallowedPregnantSlave(s) || underAgedSlave(s));
 
 	const collator = new Intl.Collator('en', {usage: "sort", ignorePunctuation: true});
 	return array.sort((a, b) => collator.compare(a.slaveName, b.slaveName));