diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index ff132f1b933430dfe5d1d1be0313437b6fc2b3b5..3a3c7298a13b5739032c6b1cbc4ea35caf60fd33 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -251,7 +251,6 @@ App.Data.resetOnNGPlus = { personalShares: 0, publicShares: 0, SF: {}, - shelterGirlsIDs: [], // Only needed in endweek loop recuriterOffice: 0, focus: "social engineering", thisWeeksFSWares: 0, diff --git a/src/endWeek/endWeek.js b/src/endWeek/endWeek.js new file mode 100644 index 0000000000000000000000000000000000000000..7ef4ccfc42363b602100d61ade5d346cd019449c --- /dev/null +++ b/src/endWeek/endWeek.js @@ -0,0 +1,340 @@ +window.endWeek = (function() { + function doEndWeek() { + // purge SugarCube's expired state cache + State.expired.length = 0; + + // report setup + setupLastWeeksCash(); + setupLastWeeksRep(); + + // globals setup + resetSlaveMarkets(); + resetSlaveCounters(); + for (const s of V.slaves) { + slavePrep(s); + } + setUseWeights(); + saveWeekTotals(); + + // pass time for objects that need it + organs(); + prosthetics(); + nursery(); + food(); + PC(); + + // week end is done, move on to gameover or SA reports + resetMiscGlobals(); + advance(); + } + + function resetSlaveMarkets() { + V.gingering = 0; + delete V.slaveMarket; + for (const school of [ "TSS", "GRI", "SCP", "LDE", "TGA", "HA", "TFS", "TCR", "NUL" ]) { + V[school].schoolSale = 0; + } + } + + function resetSlaveCounters() { + V.inflatedSlavesCum = 0; + V.inflatedSlavesMilk = 0; + V.subSlaves = 0; + } + + function slavePrep(s) { + if (s.inflationMethod === 1 || s.inflationMethod === 2) { + if (s.inflationType === "milk") { + V.inflatedSlavesMilk++; + } else if (s.inflationType === "cum") { + V.inflatedSlavesCum++; + } + } + if (s.assignment === "be a subordinate slave" && s.subTarget === 0) { + V.subSlaves++; + } + s.lastWeeksCashIncome = 0; + s.lastWeeksRepIncome = 0; + s.lastWeeksRepExpenses = 0; + } + + function setUseWeights() { + V.oralUseWeight = 5; + V.vaginalUseWeight = 5; + V.analUseWeight = 5; + V.mammaryUseWeight = 1; + V.penetrativeUseWeight = 1; + + if (V.OralEncouragement === 1) { + V.oralUseWeight += 2; + V.vaginalUseWeight -= 1; + V.analUseWeight -= 1; + } else if (V.VaginalEncouragement === 1) { + V.oralUseWeight -= 1; + V.vaginalUseWeight += 2; + V.analUseWeight -= 1; + } else if (V.AnalEncouragement === 1) { + V.oralUseWeight -= 1; + V.vaginalUseWeight -= 1; + V.analUseWeight += 2; + } + + if (V.OralDiscouragement === 1) { + V.oralUseWeight -= 2; + V.vaginalUseWeight += 1; + V.analUseWeight += 1; + } + if (V.VaginalDiscouragement === 1) { + V.oralUseWeight += 1; + V.vaginalUseWeight -= 2; + V.analUseWeight += 1; + } + if (V.AnalDiscouragement === 1) { + V.oralUseWeight += 1; + V.vaginalUseWeight += 1; + V.analUseWeight -= 2; + } + + if (V.sexualOpeness === 1) { + V.penetrativeUseWeight += 1; + } + } + + function saveWeekTotals() { + V.cashLastWeek = V.cash; + V.repLastWeek = V.rep; + V.foodLastWeek = V.food; + } + + function organs() { + function advanceOrgan(o) { + if (o.weeksToCompletion > 0) { + if (V.organFarmUpgrade === 3) { + o.weeksToCompletion -= 4; + } else if (V.organFarmUpgrade === 2) { + o.weeksToCompletion -= 2; + } else { + o.weeksToCompletion--; + } + } + } + + for (const organ of V.organs) { + advanceOrgan(organ); + } + + // move completed non-incubator organs to V.completedOrgans + V.organs = V.organs.filter(function(o) { + if (o.weeksToCompletion <= 0) { + V.completedOrgans.push(o); + return false; + } + return true; + }); + + for (const organ of V.incubatorOrgans) { + advanceOrgan(organ); + } + + // TODO: nurseryOrgans too, if those ever exist... + } + + function prosthetics() { + for (const p of V.adjustProsthetics) { + if (p.workLeft > 0) { + if (V.prostheticsUpgrade === 3) { + p.workLeft -= 40; + } else if (V.prostheticsUpgrade === 2) { + p.workLeft -= 20; + } else { + p.workLeft -= 10; + } + if (p.workLeft <= 0){ + V.adjustProstheticsCompleted++; + } + } + } + } + + function nursery() { + for (const c of V.cribs) { + c.growTime--; + c.birthWeek++; + if (c.birthWeek >= 52) { + c.birthWeek = 0; + c.actualAge++; + } + if (c.actualAge >= 3) { + App.Facilities.Nursery.infantToChild(c); + } + } + } + + function food() { + function foodConsumption(s) { + if (s.diet === "restricted") { + return 1.8; + } else if (s.diet === "slimming") { + return 1.9; + } else if (s.diet === "muscle building") { + return 2.1; + } else if (s.diet === "fattening") { + return 2.2; + } else { + return 2; + } + } + + if (V.foodMarket > 0) { + V.foodConsumption = ((V.lowerClass*V.foodRate.lower) + (V.middleClass*V.foodRate.middle) + (V.upperClass*V.foodRate.upper) + (V.topClass*V.foodRate.top)); + V.foodConsumption += V.slaves.reduce((acc, cur) => acc += foodConsumption(cur), 0); + V.food -= Math.max(V.foodConsumption, V.food); + V.foodConsumption = 0; + } + } + + function PC() { + V.PC.sexualEnergy = 4; + if (V.PCSlutContacts === 2) { + V.PC.sexualEnergy -= 3; + } + if (V.personalAttention === "sex") { + V.PC.sexualEnergy += 2; + } + if (V.PC.physicalAge >= 80) { + V.PC.sexualEnergy -= 6; + } else if (V.PC.physicalAge >= 72) { + V.PC.sexualEnergy -= 5; + } else if (V.PC.physicalAge >= 65) { + V.PC.sexualEnergy -= 4; + } else if (V.PC.physicalAge >= 58) { + V.PC.sexualEnergy -= 3; + } else if (V.PC.physicalAge >= 50) { + V.PC.sexualEnergy -= 2; + } else if (V.PC.physicalAge >= 42) { + V.PC.sexualEnergy -= 1; + } else if (V.PC.physicalAge >= 35) { + V.PC.sexualEnergy += 0; + } else if (V.PC.physicalAge >= 31) { + V.PC.sexualEnergy += 1; + } else if (V.PC.physicalAge >= 28) { + V.PC.sexualEnergy += 2; + } else if (V.PC.physicalAge >= 21) { + V.PC.sexualEnergy += 3; + } else if (V.PC.physicalAge >= 13) { + V.PC.sexualEnergy += 4; + } else if (V.PC.physicalAge === 12) { + V.PC.sexualEnergy += 1; + } else if (V.PC.physicalAge === 11) { + V.PC.sexualEnergy -= 2; + } else if (V.PC.physicalAge >= 0) { + V.PC.sexualEnergy -= 6; + } + if (V.PC.balls >= 10) { + V.PC.sexualEnergy += 2; + } else if (V.PC.balls >= 5) { + V.PC.sexualEnergy++; + } + if (V.PC.preg > 20) { + if (V.PC.pregMood === 2) { + V.PC.sexualEnergy += 4; + } else { + V.PC.sexualEnergy -= 3; + } + } else if (V.PC.preg > 0) { + V.PC.sexualEnergy -= 1; + } else { + if (V.PC.fertDrugs === 1) { + V.PC.sexualEnergy++; + } + if (V.PC.forcedFertDrugs > 0) { + V.PC.sexualEnergy += 2; + } + } + if (V.PC.staminaPills > 0) { + V.PC.sexualEnergy += 2; + } + if (V.PC.preg > 0) { + WombProgress(V.PC, 1, 1); + WombNormalizePreg(V.PC); + V.PC.pregWeek = V.PC.preg; + let newBelly = WombGetVolume(V.PC); + if (newBelly >= V.PC.belly) { + V.PC.belly = newBelly; + } else if (V.PC.belly > 500) { + V.PC.belly *= .75; + } + V.PC.fertDrugs = 0; + } else if (V.PC.belly > 0) { + if (V.PC.belly < 100) { + V.PC.belly = 0; + } else { + V.PC.belly *= .75; + } + } + if (V.PC.pregWeek < 0) { + V.PC.pregWeek++; + } + } + + function resetMiscGlobals() { + // if a global is going to be used by the end-of-week reports, it must be reset here instead of in Next Week + V.showEncyclopedia = 0; + V.expiree = 0; + V.retiree = 0; + + V.HGEnergy = 0; + V.HGCum = 0; + V.HGSlaveSuccess = 0; + V.HeadGirl = 0; + V.Recruiter = 0; + V.Madam = 0; + V.unMadam = 0; + V.madamCashBonus = 0; + V.whorePriceAdjustment = {}; + V.DJ = 0; + V.unDJ = 0; + V.DJRepBonus = 0; + V.Milkmaid = 0; + V.Farmer = 0; + V.Collectrix = 0; + V.Stewardess = 0; + V.Schoolteacher = 0; + V.Wardeness = 0; + V.Concubine = 0; + V.Attendant = 0; + V.Matron = 0; + V.Nurse = 0; + V.Bodyguard = 0; + V.Stud = 0; + V.StudCum = 0; + V.fuckSlaves = 0; + V.freeSexualEnergy = 0; + V.publicServants = 0; + V.cumSlaves = 0; + V.averageDick = 0; + V.slavesWithWorkingDicks = 0; + V.slaveJobValues = {}; + } + + function advance() { + if (V.slaves.length < 1) { + V.gameover = "no slaves"; + Engine.play("Gameover"); + } else if (V.arcologies[0].ownership < V.arcologies[0].minority) { + V.gameover = "ownership"; + Engine.play("Gameover"); + } else { + Engine.play("Slave Assignments Report"); + } + } + + function confirmEndWeek() { + if (!V.sideBarOptions.confirmWeekEnd || confirm("Are you sure you want to end the week?")) { + window.LoadLockID = LoadScreen.lock(); + setTimeout(doEndWeek, 0); // execute immediately, but after the event loop runs, so the loading screen gets shown + } + } + + return confirmEndWeek; +})(); diff --git a/src/gui/storyCaptionWidgets.tw b/src/gui/storyCaptionWidgets.tw index 899efabf70500af9cb4998577518c781e6ce5bf9..7e20114b35f6e1f0b7f361f1ed75cf47575d0522 100644 --- a/src/gui/storyCaptionWidgets.tw +++ b/src/gui/storyCaptionWidgets.tw @@ -7,7 +7,7 @@ <<if _Pass != "End Week">> <<if _Pass == "Main">> <strong> - <div id="endWeekButton"><<link "$nextButton">><</link>> @@.cyan;[Ent]@@</div> + <div id="endWeekButton"><<link "END WEEK">><<run endWeek()>><</link>> @@.cyan;[Ent]@@</div> </strong> <<if $rulesAssistantAuto == 1 && DefaultRulesError()>> <div>@@.yellow;WARNING: Rules Assistant has rules with errors!@@</div> @@ -26,15 +26,6 @@ </div></strong> <</if>> <</if>> - <<script>> - $(document).one(':passageend', () => { - $('#endWeekButton').click(() => { - if (!V.sideBarOptions.confirmWeekEnd || confirm("Are you sure you want to end the week?")) { - Engine.play(V.nextLink); - } - }); - }); - <</script>> <</widget>> <<widget "security">> diff --git a/src/js/economyJS.js b/src/js/economyJS.js index 7c2032e16c4a131449fa30acec9ee4daaed06d6b..5f3464847d262fcc6ff229a1ec46567f17a33e68 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -2637,6 +2637,7 @@ window.setupLastWeeksCash = function() { V.lastWeeksCashIncome = new App.Data.Records.LastWeeksCash(); V.lastWeeksCashExpenses = new App.Data.Records.LastWeeksCash(); V.lastWeeksCashProfits = new App.Data.Records.LastWeeksCash(); + V.lastWeeksCashErrors = "Errors: "; // Here we reset our tracked totals on week end, and add the default categories to all objects V.lastWeeksGatheredTotals = {}; @@ -2652,4 +2653,5 @@ window.setupLastWeeksRep = function() { V.lastWeeksRepIncome = new App.Data.Records.LastWeeksRep(); V.lastWeeksRepExpenses = new App.Data.Records.LastWeeksRep(); V.lastWeeksRepProfits = new App.Data.Records.LastWeeksRep(); + V.lastWeeksRepErrors = "Errors: "; }; diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw deleted file mode 100644 index 4375e86ecb7d94a4289f7c1d70c607c7965e74f4..0000000000000000000000000000000000000000 --- a/src/uncategorized/endWeek.tw +++ /dev/null @@ -1,268 +0,0 @@ -:: End Week [nobr] - -<<set State.expired.length = 0>> - -<<run setupLastWeeksCash()>> -<<run setupLastWeeksRep()>> - -<<set $gingering = 0, $oralUseWeight = 5, $vaginalUseWeight = 5, $analUseWeight = 5, $mammaryUseWeight = 1, $penetrativeUseWeight = 1, $inflatedSlavesMilk = 0, $inflatedSlavesCum = 0, $subSlaves = 0>> -<<unset $slaveMarket>> - -<<if $OralEncouragement == 1>> - <<set $oralUseWeight += 2, $vaginalUseWeight -= 1, $analUseWeight -= 1>> -<<elseif $VaginalEncouragement == 1>> - <<set $oralUseWeight -= 1, $vaginalUseWeight += 2, $analUseWeight -= 1>> -<<elseif $AnalEncouragement == 1>> - <<set $oralUseWeight -= 1, $vaginalUseWeight -= 1, $analUseWeight += 2>> -<</if>> -<<if $OralDiscouragement == 1>> - <<set $oralUseWeight -= 2, $vaginalUseWeight += 1, $analUseWeight += 1>> -<</if>> -<<if $VaginalDiscouragement == 1>> - <<set $oralUseWeight += 1, $vaginalUseWeight -= 2, $analUseWeight += 1>> -<</if>> -<<if $AnalDiscouragement == 1>> - <<set $oralUseWeight += 1, $vaginalUseWeight += 1, $analUseWeight -= 2>> -<</if>> -<<if $sexualOpeness == 1>> - <<set $penetrativeUseWeight++>> -<</if>> - -<<run $slaves.forEach(function(s) { - if (s.inflationMethod == 1 || s.inflationMethod == 2) { - if (s.inflationType == "milk") { - $inflatedSlavesMilk++; - } else if (s.inflationType == "cum") { - $inflatedSlavesCum++; - } - } - if (s.assignment == "be a subordinate slave" && s.subTarget == 0) { - $subSlaves++; - } - s.lastWeeksCashIncome = 0; - s.lastWeeksRepIncome = 0; - s.lastWeeksRepExpenses = 0; -})>> - -<<if $organs.length > 0>> - <<run $organs.forEach(function(o) { - if (o.weeksToCompletion > 0) { - if ($organFarmUpgrade == 3) { - o.weeksToCompletion -= 4; - } else if ($organFarmUpgrade == 2) { - o.weeksToCompletion -= 2; - } else { - o.weeksToCompletion--; - } - } - })>> - <<set $organs = $organs.filter(function(o) { - if (o.weeksToCompletion <= 0) { - $completedOrgans.push(o); - return false; - } - return true; - })>> -<</if>> - -<<if $incubatorOrgans.length > 0>> - <<run $incubatorOrgans.forEach(function(io) { - if (io.weeksToCompletion > 0) { - if ($organFarmUpgrade == 3) { - io.weeksToCompletion -= 4; - } else if ($organFarmUpgrade == 2) { - io.weeksToCompletion -= 2; - } else { - io.weeksToCompletion--; - } - } - })>> -<</if>> - -<<if $nurseryBabies > 0>> - <<run $cribs.forEach(function(c) { - c.growTime--; - c.birthWeek++; - if (c.birthWeek >= 52) { - c.birthWeek = 0; - c.actualAge++; - } - if (c.actualAge >= 3) { - App.Facilities.Nursery.infantToChild(c); - } - })>> -<</if>> - -/* for potential future use -<<if $nurseryOrgans.length > 0>> - <<run $nurseryOrgans.forEach(function(no) { - if (no.weeksToCompletion > 0) { - if ($organFarmUpgrade == 3) { - no.weeksToCompletion -= 4; - } else if ($organFarmUpgrade == 2) { - no.weeksToCompletion -= 2; - } else { - no.weeksToCompletion--; - } - } - })>> -<</if>> -*/ - -<<if $adjustProsthetics.length > 0>> - <<run $adjustProsthetics.forEach(function(p) { - if (p.workLeft > 0) { - if ($prostheticsUpgrade == 3) { - p.workLeft -= 40; - } else if ($prostheticsUpgrade == 2) { - p.workLeft -= 20; - } else { - p.workLeft -= 10; - } - if (p.workLeft <= 0){ - $adjustProstheticsCompleted++; - } - } - })>> -<</if>> - -/% Begin section: ensure minimum age is set (game may have been loaded from a non-modded version). %/ -<<if $minimumSlaveAge <= 18 && $minimumSlaveAge > 0>> -<<else>> - <<set $minimumSlaveAge = 18>> - <<set $pedo_mode = 0>> - <<if $fertilityAge <= 18 && $fertilityAge > 0>> - <<else>> - <<set $fertilityAge = 13>> - <</if>> - <<if $potencyAge <= 18 && $potencyAge > 0>> - <<else>> - <<set $potencyAge = 13>> - <</if>> -<</if>> -/% End section: ensure minimum age is set. %/ - -<<set $TSS.schoolSale = 0, $GRI.schoolSale = 0, $SCP.schoolSale = 0, $LDE.schoolSale = 0, $TGA.schoolSale = 0, $HA.schoolSale = 0, $TFS.schoolSale = 0, $TCR.schoolSale = 0, $NUL.schoolSale = 0, $showEncyclopedia = 0, $shelterGirlsIDs = [], $cashLastWeek = $cash, $repLastWeek = $rep, $foodLastWeek = $food>> - -<<if $foodMarket > 0>> - <<set $foodConsumption = (($lowerClass*$foodRate.lower) + ($middleClass*$foodRate.middle) + ($upperClass*$foodRate.upper) + ($topClass*$foodRate.top))>> - <<run $slaves.forEach(function(s) { - if (s.diet == "restricted") { - V.foodConsumption += 1.8; - } else if (s.diet == "slimming") { - V.foodConsumption += 1.9; - } else if (s.diet == "muscle building") { - V.foodConsumption += 2.1; - } else if (s.diet == "fattening") { - V.foodConsumption += 2.2; - } else { - V.foodConsumption += 2; - } - })>> - - <<set $food -= $foodConsumption>> - <<if $food < 0>> - <<set $food = 0>> - <</if>> - <<set $foodConsumption = 0>> -<</if>> - -<<set $lastWeeksCashErrors = "Errors: ">> -<<set $lastWeeksRepErrors = "Errors: ">> - -<<set $retiree = 0>> -<<set $expiree = 0>> - -<<set $PC.sexualEnergy = 4>> -<<if $PCSlutContacts == 2>> - <<set $PC.sexualEnergy -= 3>> -<</if>> -<<if $personalAttention == "sex">> - <<set $PC.sexualEnergy += 2>> -<</if>> -<<if $PC.physicalAge >= 80>> - <<set $PC.sexualEnergy -= 6>> -<<elseif $PC.physicalAge >= 72>> - <<set $PC.sexualEnergy -= 5>> -<<elseif $PC.physicalAge >= 65>> - <<set $PC.sexualEnergy -= 4>> -<<elseif $PC.physicalAge >= 58>> - <<set $PC.sexualEnergy -= 3>> -<<elseif $PC.physicalAge >= 50>> - <<set $PC.sexualEnergy -= 2>> -<<elseif $PC.physicalAge >= 42>> - <<set $PC.sexualEnergy -= 1>> -<<elseif $PC.physicalAge >= 35>> - <<set $PC.sexualEnergy += 0>> -<<elseif $PC.physicalAge >= 31>> - <<set $PC.sexualEnergy += 1>> -<<elseif $PC.physicalAge >= 28>> - <<set $PC.sexualEnergy += 2>> -<<elseif $PC.physicalAge >= 21>> - <<set $PC.sexualEnergy += 3>> -<<elseif $PC.physicalAge >= 13>> - <<set $PC.sexualEnergy += 4>> -<<elseif $PC.physicalAge == 12>> - <<set $PC.sexualEnergy += 1>> -<<elseif $PC.physicalAge == 11>> - <<set $PC.sexualEnergy -= 2>> -<<elseif $PC.physicalAge >= 0>> - <<set $PC.sexualEnergy -= 6>> -<</if>> -<<if $PC.balls >= 10>> - <<set $PC.sexualEnergy += 2>> -<<elseif $PC.balls >= 5>> - <<set $PC.sexualEnergy++>> -<</if>> -<<if $PC.preg > 20>> - <<if $PC.pregMood == 2>> - <<set $PC.sexualEnergy += 4>> - <<else>> - <<set $PC.sexualEnergy -= 3>> - <</if>> -<<elseif $PC.preg > 0>> - <<set $PC.sexualEnergy -= 1>> -<<else>> - <<if $PC.fertDrugs == 1>> - <<set $PC.sexualEnergy++>> - <</if>> - <<if $PC.forcedFertDrugs > 0>> - <<set $PC.sexualEnergy += 2>> - <</if>> -<</if>> -<<if $PC.staminaPills > 0>> - <<set $PC.sexualEnergy += 2>> -<</if>> -<<if $PC.preg > 0>> - <<set WombProgress($PC, 1, 1)>> - <<set WombNormalizePreg($PC), $PC.pregWeek = $PC.preg>> - <<set _newBelly = WombGetVolume($PC)>> - <<if _newBelly >= $PC.belly>> - <<set $PC.belly = _newBelly>> - <<elseif $PC.belly > 500>> - <<set $PC.belly *= .75>> - <</if>> - <<if $PC.fertDrugs != 0>> - <<set $PC.fertDrugs = 0>> - <</if>> -<<elseif $PC.belly > 0>> - <<if $PC.belly < 100>> - <<set $PC.belly = 0>> - <<else>> - <<set $PC.belly *= .75>> - <</if>> -<</if>> -<<if $PC.pregWeek < 0>> - <<set $PC.pregWeek++>> -<</if>> - -<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $Recruiter = 0, $Madam = 0, $unMadam = 0, $madamCashBonus = 0, $whorePriceAdjustment = {}, $DJ = 0, $unDJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Farmer = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Matron = 0, $Nurse = 0, $Bodyguard = 0, $Stud = 0, $StudCum = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0, $slaveJobValues = {}>> - -/* GAMEOVERS */ -<<if $slaves.length < 1>> - <<set $gameover = "no slaves">><<goto "Gameover">> -<<elseif $arcologies[0].ownership < $arcologies[0].minority>> - <<set $gameover = "ownership">><<goto "Gameover">> -<<else>> - <<goto "Slave Assignments Report">> -<</if>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index d8b335a78de372ab5b163c0879eb2a9e27f5362f..8cc93cd68cea3bbb83789b630bf1b6d4284bc61c 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -15,7 +15,7 @@ <<run penthouseCensus()>> -<<set $nextButton = "END WEEK", $nextLink = "End Week", $showEncyclopedia = 1, $encyclopedia = "How to Play">> +<<set $showEncyclopedia = 1, $encyclopedia = "How to Play">> <<set $costs = Math.trunc(calculateCosts.predict())>> <<set $currentRule = $defaultRules[0]>> diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index 428f88a704990be9813e9109bb650dfa881fc63c..8f67962e66065242f80c275874d8187ab218f970 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -332,7 +332,7 @@ /% These are variables that either should be made into _temp vars or should be Zeroed out once done with them instead of here. This can also interfere with debugging or hide NaN's as zeroing things out would clear a NaN. Also could stop from NaN's getting worse? %/ /% Integer and float variables. No real need to zero them out but doesn't hurt to have them in a known state, though this might mask variables NaN'ing out. Takes up the least amount of Memory besides a "" string. %/ <<set $i = 0, $j = 0, $averageProsperity = 0, $motherSlave = -1, $daughterSlave = -1, $devMother = -1, $devDaughter = -1, $alphaTwin = -1, $betaTwin = -1, $youngerSister = -1, $olderSister = -1, $recruiterSlave = -1>> -<<set $boobsID = -1, $boobsInterestTargetID = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $cumslutInterestTargetID = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $sadistID = -1, $sadistInterestTargetID = -1, $masochistID = -1, $masochistInterestTargetID = -1, $domID = -1, $dominantInterestTargetID = -1, $subID = -1, $submissiveInterestTargetID = -1>> +<<set $boobsID = -1, $boobsInterestTargetID = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $cumslutInterestTargetID = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $sadistID = -1, $sadistInterestTargetID = -1, $masochistID = -1, $masochistInterestTargetID = -1, $domID = -1, $dominantInterestTargetID = -1, $subID = -1, $submissiveInterestTargetID = -1, $shelterGirlID = -1>> /% Other arrays %/ <<set $events = [], $RESSevent = [], $RESSTRevent = [], $RETSevent = [], $RECIevent = [], $RecETSevent = [], $REFIevent = [], $REFSevent = [], $PESSevent = [], $PETSevent = [], $FSAcquisitionEvents = [], $FSNonconformistEvents = [], $REAnalCowgirlSubIDs = [], $REButtholeCheckinIDs = [], $recruit = [], $RETasteTestSubIDs = [], $rebelSlaves = [], $REBoobCollisionSubIDs = [], $REIfYouEnjoyItSubIDs = [], $RESadisticDescriptionSubIDs = [], $REShowerForceSubIDs = [], $RESimpleAssaultIDs = [], $RECockmilkInterceptionIDs = [], $REInterslaveBeggingIDs = [], $bedSlaves = [], $eligibleSlaves = []>> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 22bcbcd49499fe049522d10bb14e93dd2efcc83f..81b2cf1d8d66600f6ff4485465c19679af6d643a 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -75,7 +75,9 @@ <</if>> <<if $shelterAbuse <= 5>> - <<if $shelterGirlsIDs.length > 0>> + <<set _shelterGirls = $slaves.filter(isShelterGirl)>> + <<if _shelterGirls.length > 0>> + <<set $shelterGirlID = _shelterGirls.random().ID>> <<set $events.push("RE shelter inspection")>> <</if>> <</if>> diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw index 4ee0a5eb8e59e76c80a160f16bc8928010405c0b..58cf6af091d2f7489f10cf4d6d90b720cd986b90 100644 --- a/src/uncategorized/reShelterInspection.tw +++ b/src/uncategorized/reShelterInspection.tw @@ -40,17 +40,8 @@ <<set $activeSlave.sexualQuirk = either("apathetic", "idealistic")>> <<set $activeSlave.clothes = either("conservative clothing", "nice business attire")>> -<<set _slave = $shelterGirlsIDs.random()>> -<<set _Inspectee = getSlave(_slave)>> -<<set _originSlave = $genePool.find(function(s) { return s.ID == _slave; })>> -/* -* this check is currently unnecessary but if in the future the shelter girl IDs list is changed to updated only when acquiring shelter girls, this should be enabled -* -<<if (ndef _Inspectee)>> - <<set $shelterGirlsIDs.delete(_slave)>> - <<goto "Random Nonindividual Event">> -<</if>> -*/ +<<set _Inspectee = getSlave($shelterGirlID)>> +<<set _originSlave = $genePool.find(function(s) { return s.ID == $shelterGirlID; })>> <<setLocalPronouns _Inspectee>> <<setLocalPronouns $activeSlave 2>> diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw index 98571c44315af9a6e00c75f8d055b2693798d321..dad68e96fb5fb912269ee2119f09b225f70de189 100644 --- a/src/uncategorized/slaveAssignmentsReport.tw +++ b/src/uncategorized/slaveAssignmentsReport.tw @@ -862,10 +862,6 @@ $sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValue <</if>> <</if>> -<<if isShelterSlave($slaves[$i])>> - <<set $shelterGirlsIDs.push($slaves[$i].ID)>> -<</if>> - <<if $slaves[$i].bellyPain != 0>> <<set $slaves[$i].bellyPain = 0>> <</if>> @@ -1127,3 +1123,6 @@ $sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValue <<if ($researchLab.level > 0)>> <<include "Lab Report">><br><br> <</if>> + +/* release loading screen as soon as the event loop can run */ +<<run setTimeout(LoadScreen.unlock, 0, window.LoadLockID)>>