Merge pull request #2689 from nickofolas/fix/singularity-focus

Fix Singularity focus arg issues
This commit is contained in:
hydroflame 2022-01-18 17:00:12 -05:00 committed by GitHub
commit ae83eeacb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 20 deletions

@ -35,7 +35,9 @@ export function GymLocation(props: IProps): React.ReactElement {
function train(stat: string): void {
const loc = props.loc;
props.p.startClass(props.router, calculateCost(), loc.expMult, stat);
props.p.startClass(calculateCost(), loc.expMult, stat);
props.p.startFocusing();
props.router.toWork();
}
function trainStrength(): void {

@ -34,7 +34,9 @@ export function UniversityLocation(props: IProps): React.ReactElement {
function take(stat: string): void {
const loc = props.loc;
player.startClass(router, calculateCost(), loc.expMult, stat);
player.startClass(calculateCost(), loc.expMult, stat);
player.startFocusing();
router.toWork();
}
function study(): void {

@ -343,7 +343,7 @@ export function NetscriptSingularity(
workerScript.log("universityCourse", () => `Invalid class name: ${className}.`);
return false;
}
player.startClass(Router, costMult, expMult, task);
player.startClass(costMult, expMult, task);
if (focus) {
player.startFocusing();
Router.toWork();
@ -433,19 +433,19 @@ export function NetscriptSingularity(
switch (stat.toLowerCase()) {
case "strength".toLowerCase():
case "str".toLowerCase():
player.startClass(Router, costMult, expMult, CONSTANTS.ClassGymStrength);
player.startClass(costMult, expMult, CONSTANTS.ClassGymStrength);
break;
case "defense".toLowerCase():
case "def".toLowerCase():
player.startClass(Router, costMult, expMult, CONSTANTS.ClassGymDefense);
player.startClass(costMult, expMult, CONSTANTS.ClassGymDefense);
break;
case "dexterity".toLowerCase():
case "dex".toLowerCase():
player.startClass(Router, costMult, expMult, CONSTANTS.ClassGymDexterity);
player.startClass(costMult, expMult, CONSTANTS.ClassGymDexterity);
break;
case "agility".toLowerCase():
case "agi".toLowerCase():
player.startClass(Router, costMult, expMult, CONSTANTS.ClassGymAgility);
player.startClass(costMult, expMult, CONSTANTS.ClassGymAgility);
break;
default:
workerScript.log("gymWorkout", () => `Invalid stat: ${stat}.`);
@ -653,7 +653,9 @@ export function NetscriptSingularity(
!(
player.workType == CONSTANTS.WorkTypeFaction ||
player.workType == CONSTANTS.WorkTypeCompany ||
player.workType == CONSTANTS.WorkTypeCompanyPartTime
player.workType == CONSTANTS.WorkTypeCompanyPartTime ||
player.workType == CONSTANTS.WorkTypeCreateProgram ||
player.workType == CONSTANTS.WorkTypeStudyClass
)
) {
throw helper.makeRuntimeErrorMsg("setFocus", "Cannot change focus for current job");
@ -1269,7 +1271,7 @@ export function NetscriptSingularity(
return false;
}
player.startCreateProgramWork(Router, p.name, create.time, create.level);
player.startCreateProgramWork(p.name, create.time, create.level);
if (focus) {
player.startFocusing();
Router.toWork();

@ -215,7 +215,7 @@ export interface IPlayer {
singularityStopWork(): string;
startBladeburner(p: any): void;
startFactionWork(faction: Faction): void;
startClass(router: IRouter, costMult: number, expMult: number, className: string): void;
startClass(costMult: number, expMult: number, className: string): void;
startCorporation(corpName: string, additionalShares?: number): void;
startCrime(
router: IRouter,
@ -247,7 +247,7 @@ export interface IPlayer {
quitJob(company: string): void;
hasJob(): boolean;
createHacknetServer(): HacknetServer;
startCreateProgramWork(router: IRouter, programName: string, time: number, reqLevel: number): void;
startCreateProgramWork(programName: string, time: number, reqLevel: number): void;
queueAugmentation(augmentationName: string): void;
receiveInvite(factionName: string): void;
updateSkillLevels(): void;

@ -220,7 +220,7 @@ export class PlayerObject implements IPlayer {
singularityStopWork: () => string;
startBladeburner: (p: any) => void;
startFactionWork: (faction: Faction) => void;
startClass: (router: IRouter, costMult: number, expMult: number, className: string) => void;
startClass: (costMult: number, expMult: number, className: string) => void;
startCorporation: (corpName: string, additionalShares?: number) => void;
startCrime: (
router: IRouter,
@ -253,7 +253,7 @@ export class PlayerObject implements IPlayer {
hasJob: () => boolean;
process: (router: IRouter, numCycles?: number) => void;
createHacknetServer: () => HacknetServer;
startCreateProgramWork: (router: IRouter, programName: string, time: number, reqLevel: number) => void;
startCreateProgramWork: (programName: string, time: number, reqLevel: number) => void;
queueAugmentation: (augmentationName: string) => void;
receiveInvite: (factionName: string) => void;
updateSkillLevels: () => void;

@ -1253,14 +1253,12 @@ export function getWorkRepGain(this: IPlayer): number {
/* Creating a Program */
export function startCreateProgramWork(
this: IPlayer,
router: IRouter,
programName: string,
time: number,
reqLevel: number,
): void {
this.resetWorkStatus();
this.isWorking = true;
this.focus = true;
this.workType = CONSTANTS.WorkTypeCreateProgram;
//Time needed to complete work affected by hacking skill (linearly based on
@ -1289,7 +1287,6 @@ export function startCreateProgramWork(
}
this.createProgramName = programName;
router.toWork();
}
export function createProgramWork(this: IPlayer, numCycles: number): boolean {
@ -1337,10 +1334,9 @@ export function finishCreateProgramWork(this: IPlayer, cancelled: boolean): stri
return "You've finished creating " + programName + "! The new program can be found on your home computer.";
}
/* Studying/Taking Classes */
export function startClass(this: IPlayer, router: IRouter, costMult: number, expMult: number, className: string): void {
export function startClass(this: IPlayer, costMult: number, expMult: number, className: string): void {
this.resetWorkStatus();
this.isWorking = true;
this.focus = true;
this.workType = CONSTANTS.WorkTypeStudyClass;
this.workCostMult = costMult;
this.workExpMult = expMult;
@ -1353,7 +1349,6 @@ export function startClass(this: IPlayer, router: IRouter, costMult: number, exp
this.workDexExpGainRate = earnings.workDexExpGainRate;
this.workAgiExpGainRate = earnings.workAgiExpGainRate;
this.workChaExpGainRate = earnings.workChaExpGainRate;
router.toWork();
}
export function takeClass(this: IPlayer, numCycles: number): boolean {

@ -50,7 +50,9 @@ export function ProgramsRoot(): React.ReactElement {
sx={{ my: 1 }}
onClick={(event) => {
if (!event.isTrusted) return;
player.startCreateProgramWork(router, program.name, create.time, create.level);
player.startCreateProgramWork(program.name, create.time, create.level);
player.startFocusing();
router.toWork();
}}
>
{program.name}