Merge pull request #3454 from TheMas3212/fix/gang-singularity-work

Fix inconsistancy with trying to work for gang factions while running a gang
This commit is contained in:
hydroflame 2022-04-14 11:09:50 -04:00 committed by GitHub
commit 0db3dc5feb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -23,7 +23,6 @@ import { findCrime } from "../Crime/CrimeHelpers";
import { CompanyPosition } from "../Company/CompanyPosition"; import { CompanyPosition } from "../Company/CompanyPosition";
import { CompanyPositions } from "../Company/CompanyPositions"; import { CompanyPositions } from "../Company/CompanyPositions";
import { DarkWebItems } from "../DarkWeb/DarkWebItems"; import { DarkWebItems } from "../DarkWeb/DarkWebItems";
import { AllGangs } from "../Gang/AllGangs";
import { CityName } from "../Locations/data/CityNames"; import { CityName } from "../Locations/data/CityNames";
import { LocationName } from "../Locations/data/LocationNames"; import { LocationName } from "../Locations/data/LocationNames";
import { Router } from "../ui/GameRoot"; import { Router } from "../ui/GameRoot";
@ -1047,11 +1046,14 @@ export function NetscriptSingularity(player: IPlayer, workerScript: WorkerScript
const facName = _ctx.helper.string("facName", _facName); const facName = _ctx.helper.string("facName", _facName);
const type = _ctx.helper.string("type", _type); const type = _ctx.helper.string("type", _type);
const focus = _ctx.helper.boolean(_focus); const focus = _ctx.helper.boolean(_focus);
getFaction(_ctx, facName); const faction = getFaction(_ctx, facName);
// if the player is in a gang and the target faction is any of the gang faction, fail // if the player is in a gang and the target faction is any of the gang faction, fail
if (player.inGang() && AllGangs[facName] !== undefined) { if (player.inGang() && faction.name === player.getGangFaction().name) {
workerScript.log("workForFaction", () => `Faction '${facName}' does not offer work at the moment.`); workerScript.log(
"workForFaction",
() => `You can't work for '${facName}' because youre managing a gang for it`,
);
return false; return false;
} }
@ -1066,21 +1068,18 @@ export function NetscriptSingularity(player: IPlayer, workerScript: WorkerScript
workerScript.log("workForFaction", () => txt); workerScript.log("workForFaction", () => txt);
} }
const fac = Factions[facName];
// Arrays listing factions that allow each time of work
switch (type.toLowerCase()) { switch (type.toLowerCase()) {
case "hacking": case "hacking":
case "hacking contracts": case "hacking contracts":
case "hackingcontracts": case "hackingcontracts":
if (!FactionInfos[fac.name].offerHackingWork) { if (!FactionInfos[faction.name].offerHackingWork) {
workerScript.log( workerScript.log(
"workForFaction", "workForFaction",
() => `Faction '${fac.name}' do not need help with hacking contracts.`, () => `Faction '${faction.name}' do not need help with hacking contracts.`,
); );
return false; return false;
} }
player.startFactionHackWork(fac); player.startFactionHackWork(faction);
if (focus) { if (focus) {
player.startFocusing(); player.startFocusing();
Router.toWork(); Router.toWork();
@ -1088,16 +1087,19 @@ export function NetscriptSingularity(player: IPlayer, workerScript: WorkerScript
player.stopFocusing(); player.stopFocusing();
Router.toTerminal(); Router.toTerminal();
} }
workerScript.log("workForFaction", () => `Started carrying out hacking contracts for '${fac.name}'`); workerScript.log("workForFaction", () => `Started carrying out hacking contracts for '${faction.name}'`);
return true; return true;
case "field": case "field":
case "fieldwork": case "fieldwork":
case "field work": case "field work":
if (!FactionInfos[fac.name].offerFieldWork) { if (!FactionInfos[faction.name].offerFieldWork) {
workerScript.log("workForFaction", () => `Faction '${fac.name}' do not need help with field missions.`); workerScript.log(
"workForFaction",
() => `Faction '${faction.name}' do not need help with field missions.`,
);
return false; return false;
} }
player.startFactionFieldWork(fac); player.startFactionFieldWork(faction);
if (focus) { if (focus) {
player.startFocusing(); player.startFocusing();
Router.toWork(); Router.toWork();
@ -1105,16 +1107,19 @@ export function NetscriptSingularity(player: IPlayer, workerScript: WorkerScript
player.stopFocusing(); player.stopFocusing();
Router.toTerminal(); Router.toTerminal();
} }
workerScript.log("workForFaction", () => `Started carrying out field missions for '${fac.name}'`); workerScript.log("workForFaction", () => `Started carrying out field missions for '${faction.name}'`);
return true; return true;
case "security": case "security":
case "securitywork": case "securitywork":
case "security work": case "security work":
if (!FactionInfos[fac.name].offerSecurityWork) { if (!FactionInfos[faction.name].offerSecurityWork) {
workerScript.log("workForFaction", () => `Faction '${fac.name}' do not need help with security work.`); workerScript.log(
"workForFaction",
() => `Faction '${faction.name}' do not need help with security work.`,
);
return false; return false;
} }
player.startFactionSecurityWork(fac); player.startFactionSecurityWork(faction);
if (focus) { if (focus) {
player.startFocusing(); player.startFocusing();
Router.toWork(); Router.toWork();
@ -1122,7 +1127,7 @@ export function NetscriptSingularity(player: IPlayer, workerScript: WorkerScript
player.stopFocusing(); player.stopFocusing();
Router.toTerminal(); Router.toTerminal();
} }
workerScript.log("workForFaction", () => `Started carrying out security work for '${fac.name}'`); workerScript.log("workForFaction", () => `Started carrying out security work for '${faction.name}'`);
return true; return true;
default: default:
workerScript.log("workForFaction", () => `Invalid work type: '${type}`); workerScript.log("workForFaction", () => `Invalid work type: '${type}`);