diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index b748bfaf42ff7d5a0bcfa3e231e73a69fbbdfb1d..4a33309be7527b7d23479dd55d44930de38fcb47 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -1693,7 +1693,7 @@ globalThis.FacilityDatatypeCleanup = (function() { V.arcade = Math.max(+V.arcade, 0) || 0; V.arcadeUpgradeInjectors = Math.clamp(+V.arcadeUpgradeInjectors, 0, 1) || 0; V.arcadeUpgradeCollectors = Math.clamp(+V.arcadeUpgradeCollectors, 0, 1.5) || 0; - V.arcadeUpgradeFuckdolls = Math.clamp(+V.arcadeUpgradeFuckdolls, 0, 2) || 0; + V.arcadeUpgradeFuckdolls = Math.clamp(+V.arcadeUpgradeFuckdolls, 0, 3) || 0; V.arcadeUpgradeHealth = Math.clamp(+V.arcadeUpgradeHealth, -1, 2) || 0; } diff --git a/src/endWeek/reports/arcadeReport.js b/src/endWeek/reports/arcadeReport.js index e3954cd1e7275dc3fe9ff434f560fc693019a40b..4b7455f76a72c7197828b7cbb75f8eba182e8baa 100644 --- a/src/endWeek/reports/arcadeReport.js +++ b/src/endWeek/reports/arcadeReport.js @@ -244,14 +244,19 @@ App.EndWeek.arcadeReport = function() { App.Events.addNode(el, r, "div", "indent"); } - if (V.arcadeUpgradeFuckdolls === 2) { + if (V.arcadeUpgradeFuckdolls > 1) { const fuckdolls = slaves.filter(s => fuckdollQualifier(s)); if (fuckdolls.length > 0) { + // ascending sort by sexAmount...least popular slaves are converted first + fuckdolls.sort((a, b) => b.sexAmount - a.sexAmount); for (const fuckdoll of fuckdolls) { const {he} = getPronouns(fuckdoll); App.UI.DOM.appendNewElement("div", el, `${fuckdoll.slaveName} is low-quality merchandise, so ${he} has been converted into a Fuckdoll.`, "indent"); removeSlave(fuckdoll); V.fuckdolls++; + if (V.arcadeUpgradeFuckdolls === 2) { + break; // convert at most one per week on this setting + } } } else { App.UI.DOM.appendNewElement("div", el, `No slaves have failed quality inspection for Fuckdoll conversion. ${arcadeNameCaps} will remain overcrowded this week.`, "indent"); diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js index b30e47e753eae6a327a09ff866b5ca509949f187..2ab584e145ef490b18d00262d9e2cd330ad66fd1 100644 --- a/src/npc/generate/newSlaveIntro.js +++ b/src/npc/generate/newSlaveIntro.js @@ -4665,7 +4665,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = }); - if (App.Entity.facilities.arcade.hasFreeSpace || V.arcadeUpgradeFuckdolls === 2) { + if (App.Entity.facilities.arcade.hasFreeSpace || V.arcadeUpgradeFuckdolls > 1) { choice({ linkName: `Send ${him} straight to the Arcade`, result(slave) { @@ -4678,7 +4678,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest = r.push(S.HeadGirl.slaveName); } r.push(`to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what ${V.arcadeName} is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of ${V.arcadeName}, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth${(slave.vagina > -1) ? `, parts ${his} pussylips,` : ``} or presses against ${his} poor anus.`); - if (V.arcade <= App.Entity.facilities.arcade.employeesIDs().size) { + if (!App.Entity.facilities.arcade.hasFreeSpace) { r.push(`Mere`); if (V.showInches === 2) { r.push(`yards`); diff --git a/src/uncategorized/arcade.tw b/src/uncategorized/arcade.tw index c4c9d54d5735556b876039b8b9878cf3144dd97f..db8d593a71dc340e0b385a23e7999cf4a47ab44d 100644 --- a/src/uncategorized/arcade.tw +++ b/src/uncategorized/arcade.tw @@ -159,12 +159,17 @@ <<if $arcadeUpgradeFuckdolls == 1>> equipped to convert inmates into standard Fuckdolls. The converter can be put to work on your order. <div class="choices"> - [[Turn on conversion|Arcade][$arcadeUpgradeFuckdolls = 2]] + [[Turn on conversion|Arcade][$arcadeUpgradeFuckdolls = 2]] | [[Turn on bulk conversion|Arcade][$arcadeUpgradeFuckdolls = 3]] </div> <<elseif $arcadeUpgradeFuckdolls == 2>> equipped to convert inmates into standard Fuckdolls. The converter is currently active and will convert the least popular girl at the end of the week. <div class="choices"> - [[Turn off conversion|Arcade][$arcadeUpgradeFuckdolls = 1]] + [[Turn off conversion|Arcade][$arcadeUpgradeFuckdolls = 1]] | [[Switch to bulk conversion|Arcade][$arcadeUpgradeFuckdolls = 3]] + </div> + <<elseif $arcadeUpgradeFuckdolls == 3>> + equipped to convert inmates into standard Fuckdolls. The converter is currently active and will convert underperforming girls at the end of the week. + <div class="choices"> + [[Turn off conversion|Arcade][$arcadeUpgradeFuckdolls = 1]] | [[Switch to single conversion|Arcade][$arcadeUpgradeFuckdolls = 2]] </div> <<else>> <<set _Tmult2 = Math.trunc(5000*$upgradeMultiplierArcology)>>