diff --git a/src/endWeek/slaveAssignmentReport.js b/src/endWeek/slaveAssignmentReport.js index 62721203d638b137d2e52420127304c7a08b99ad..504fc7d72887c91a61dcad2d299f4b94a3bf70f9 100644 --- a/src/endWeek/slaveAssignmentReport.js +++ b/src/endWeek/slaveAssignmentReport.js @@ -789,11 +789,11 @@ App.EndWeek.slaveAssignmentReport = function() { if (!canWalk(slave)) { _printSlaveUnassignedNote(slave, "is no longer independently mobile", `and cannot fight any more. ${getPronouns(slave).he} has been removed from ${App.Entity.facilities.pit.name} roster`); - V.fighterIDs.delete(slave.ID); + removeJob(slave, Job.PIT, true); } else if (!canHold(slave)) { _printSlaveUnassignedNote(slave, "is no longer able to strike", `and cannot fight any more. ${getPronouns(slave).he} has been removed from ${App.Entity.facilities.pit.name} roster`); - V.fighterIDs.delete(slave.ID); + removeJob(slave, Job.PIT, true); } } } diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 03933f6408ec545edbc53c56778d00b68c6b4daa..64098f25463e2189ed1ba1e9832580923b5060a1 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -1552,16 +1552,14 @@ globalThis.DefaultRules = (function() { if (rule.pitRules !== undefined && rule.pitRules !== null) { if (V.pit > 0) { if (rule.pitRules === 0) { - V.fighterIDs = V.fighterIDs.filter(e => e !== slave.ID); + removeJob(slave, Job.PIT, true); r += `<br>${slave.slaveName} has been removed from the pit.`; } else { if (App.Entity.facilities.pit.job().checkRequirements(slave).length !== 0) { - V.fighterIDs = V.fighterIDs.filter(e => e !== slave.ID); + removeJob(slave, Job.PIT, true); r += `<br>${slave.slaveName} is not eligible to fight.`; } else { - if (!V.fighterIDs.includes(slave.ID)) { - V.fighterIDs.push(slave.ID); - } + assignJob(slave, Job.PIT); r += `<br>${slave.slaveName} has been automatically assigned to fight in the pit.`; } } diff --git a/src/js/assignJS.js b/src/js/assignJS.js index 130bd855d4008e6d24d0c198ee7567629e0c092a..3572b229856ea7a1dac2edbf8ed1c891f41b80c6 100644 --- a/src/js/assignJS.js +++ b/src/js/assignJS.js @@ -12,7 +12,9 @@ globalThis.assignJob = function(slave, job) { // handle non-exclusive pseudo-assignments as special cases if (job === Job.PIT) { - V.fighterIDs.push(slave.ID); + if (!V.fighterIDs.includes(slave.ID)) { + V.fighterIDs.push(slave.ID); + } V.JobIDMap[Job.PIT].add(slave.ID); return r; } else if (job === Job.LURCHER) { diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index d84b14450243e26a2678f2c90f7815dede1841dd..b05da6946cf664dc26d7a17a5dcf4809535d962f 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -110,9 +110,8 @@ <<switch $surgeryType>> <<case "amp" "amp1" "ampA2" "ampL2" "blind" "fuckdoll" "mindbreak" "PLimb interface1" "PLimb interface2" "PLimb interface3" "remove eyes" "removeLimbs">> /* unassign if necessary */ - <<set _ID = getSlave($AS).ID>> - <<if _ID == $LurcherID>><<set $LurcherID = 0>><</if>> - <<run $fighterIDs.deleteWith((f) => f === _ID)>> + <<= removeJob(getSlave($AS), Job.LURCHER, true)>> + <<= removeJob(getSlave($AS), Job.PIT, true)>> <<= removeJob(getSlave($AS), getSlave($AS).assignment)>> <</switch>>