Add triggers for faction invite check

Manually check for faction invites whenever a server is backdoored, and whenever the player uses ns.singularity.checkFactionInvites
This commit is contained in:
omuretsu 2023-03-07 19:31:54 -05:00
parent 401bfe9f31
commit b9ffb9e42e
3 changed files with 21 additions and 3 deletions

@ -34,6 +34,7 @@ import { dialogBoxCreate } from "../ui/React/DialogBox";
import { checkEnum } from "../utils/helpers/enum";
import { RamCostConstants } from "./RamCostGenerator";
import { isPositiveInteger, PositiveInteger } from "../types";
import { Engine } from "../engine";
export const helpers = {
string,
@ -515,6 +516,9 @@ function hack(
}
if (manual) {
server.backdoorInstalled = true;
// Manunally check for faction invites
Engine.Counters.checkFactionInvitations = 0;
Engine.checkCounters();
}
return moneyGained;
} else {

@ -50,6 +50,7 @@ import { saveObject } from "../SaveObject";
import { calculateCrimeWorkStats } from "../Work/Formulas";
import { findEnumMember } from "../utils/helpers/enum";
import { areFilesEqual } from "../Terminal/DirectoryHelpers";
import { Engine } from "../engine";
export function NetscriptSingularity(): InternalAPI<ISingularity> {
const getAugmentation = function (ctx: NetscriptContext, name: string): Augmentation {
@ -561,13 +562,14 @@ export function NetscriptSingularity(): InternalAPI<ISingularity> {
return helpers.netscriptDelay(ctx, installTime).then(function () {
helpers.log(ctx, () => `Successfully installed backdoor on '${server.hostname}'`);
server.backdoorInstalled = true;
if (SpecialServers.WorldDaemon === server.hostname) {
Router.toBitVerse(false, false);
return Router.toBitVerse(false, false);
}
return Promise.resolve();
// Manunally check for faction invites
Engine.Counters.checkFactionInvitations = 0;
Engine.checkCounters();
});
},
isFocused: (ctx) => () => {
@ -810,6 +812,9 @@ export function NetscriptSingularity(): InternalAPI<ISingularity> {
},
checkFactionInvitations: (ctx) => () => {
helpers.checkSingularityAccess(ctx);
// Manually trigger a check for faction invites
Engine.Counters.checkFactionInvitations = 0;
Engine.checkCounters();
// Make a copy of player.factionInvitations
return Player.factionInvitations.slice();
},

@ -76,6 +76,7 @@ import { hash } from "../hash/hash";
import { apr1 } from "./commands/apr1";
import { changelog } from "./commands/changelog";
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
import { Engine } from "../engine";
export class Terminal {
// Flags to determine whether the player is currently running a hack or an analyze
@ -207,6 +208,10 @@ export class Terminal {
Router.toBitVerse(false, false);
return;
}
// Manunally check for faction invites
Engine.Counters.checkFactionInvitations = 0;
Engine.checkCounters();
let moneyGained = calculatePercentMoneyHacked(server, Player) * BitNodeMultipliers.ManualHackMoney;
moneyGained = Math.floor(server.moneyAvailable * moneyGained);
@ -298,6 +303,10 @@ export class Terminal {
Router.toBitVerse(false, false);
return;
}
// Manunally check for faction invites
Engine.Counters.checkFactionInvitations = 0;
Engine.checkCounters();
this.print(`Backdoor on '${server.hostname}' successful!`);
}
}