BUGFIX: Contracts now fail if there are 0 of them remaining (#889)

This commit is contained in:
TheAimMan 2023-10-30 03:11:51 -04:00 committed by GitHub
parent 0bdab7bec8
commit 2a149df13e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions

@ -1663,7 +1663,13 @@ export class Bladeburner {
if (!this.action) {
throw new Error("Bladeburner.action is not an ActionIdentifier Object");
}
//Check to see if action is a contract, and then to verify a sleeve didn't finish it first
if (this.action.type === 2) {
const remainingActions = this.contracts[this.action.name].count;
if (remainingActions < 1) {
return this.resetAction();
}
}
// If the previous action went past its completion time, add to the next action
// This is not added immediately in case the automation changes the action
this.actionTimeCurrent += seconds + this.actionTimeOverflow;

@ -40,14 +40,14 @@ export class SleeveBladeburnerWork extends SleeveWorkClass {
if (this.actionType === "Contracts") {
const action = Player.bladeburner.getActionObject(actionIdent);
if (!action) throw new Error(`Error getting ${this.actionName} action object`);
if (action.count <= 0) return sleeve.stopWork();
if (action.count < 1) return sleeve.stopWork();
}
while (this.cyclesWorked > this.cyclesNeeded(sleeve)) {
if (this.actionType === "Contracts") {
const action = Player.bladeburner.getActionObject(actionIdent);
if (!action) throw new Error(`Error getting ${this.actionName} action object`);
if (action.count <= 0) return sleeve.stopWork();
if (action.count < 1) return sleeve.stopWork();
}
const retValue = Player.bladeburner.completeAction(sleeve, actionIdent, false);
if (this.actionType === "General") {