mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-26 11:10:58 +02:00
BLADEBURNER: Typesafety / refactoring (#1154)
This commit is contained in:
@@ -15,10 +15,10 @@ import Select, { SelectChangeEvent } from "@mui/material/Select";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import { Adjuster } from "./Adjuster";
|
||||
import { Player } from "@player";
|
||||
import { CityName } from "@enums";
|
||||
import { Skills as AllSkills } from "../../Bladeburner/Skills";
|
||||
import { SkillNames } from "../../Bladeburner/data/SkillNames";
|
||||
import { BladeSkillName, CityName } from "@enums";
|
||||
import { Skills as AllSkills } from "../../Bladeburner/data/Skills";
|
||||
import { Bladeburner } from "../../Bladeburner/Bladeburner";
|
||||
import { getEnumHelper } from "../../utils/EnumHelper";
|
||||
|
||||
const bigNumber = 1e27;
|
||||
|
||||
@@ -57,24 +57,23 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
|
||||
};
|
||||
|
||||
// Skill functions
|
||||
const [skill, setSkill] = useState(SkillNames.BladesIntuition);
|
||||
const [skillName, setSkillName] = useState(BladeSkillName.bladesIntuition);
|
||||
function setSkillDropdown(event: SelectChangeEvent): void {
|
||||
setSkill(event.target.value);
|
||||
if (!getEnumHelper("BladeSkillName").isMember(event.target.value)) return;
|
||||
setSkillName(event.target.value);
|
||||
}
|
||||
const modifySkill = (modifier: number) => (levelchange: number) => {
|
||||
if (bladeburner.skills[AllSkills[skill].name] == null) resetSkill();
|
||||
if (!isNaN(levelchange)) {
|
||||
bladeburner.skills[AllSkills[skill].name] += levelchange * modifier;
|
||||
bladeburner.setSkillLevel(skillName, bladeburner.getSkillLevel(skillName) + levelchange * modifier);
|
||||
bladeburner.updateSkillMultipliers();
|
||||
}
|
||||
};
|
||||
const addTonsOfSkill = () => {
|
||||
if (bladeburner.skills[AllSkills[skill].name] == null) resetSkill();
|
||||
bladeburner.skills[AllSkills[skill].name] += bigNumber;
|
||||
bladeburner.setSkillLevel(skillName, bladeburner.getSkillLevel(skillName) + bigNumber);
|
||||
bladeburner.updateSkillMultipliers();
|
||||
};
|
||||
const resetSkill = () => {
|
||||
bladeburner.skills[AllSkills[skill].name] = 0;
|
||||
bladeburner.setSkillLevel(skillName, 0);
|
||||
bladeburner.updateSkillMultipliers();
|
||||
};
|
||||
|
||||
@@ -82,6 +81,7 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
|
||||
const AllContracts = bladeburner.contracts;
|
||||
const [contractTarget, setContract] = useState(AllContracts.Tracking.name);
|
||||
function setContractDropdown(event: SelectChangeEvent): void {
|
||||
if (!getEnumHelper("BladeContractName").isMember(event.target.value)) return;
|
||||
setContract(event.target.value);
|
||||
}
|
||||
const modifyContractLevel = (modifier: number) => (levelchange: number) => {
|
||||
@@ -117,6 +117,7 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
|
||||
const AllOperations = bladeburner.operations;
|
||||
const [operationTarget, setOperation] = useState(AllOperations.Investigation.name);
|
||||
function setOperationDropdown(event: SelectChangeEvent): void {
|
||||
if (!getEnumHelper("BladeOperationName").isMember(event.target.value)) return;
|
||||
setOperation(event.target.value);
|
||||
}
|
||||
const modifyOperationLevel = (modifier: number) => (levelchange: number) => {
|
||||
@@ -232,7 +233,7 @@ export function BladeburnerDev({ bladeburner }: { bladeburner: Bladeburner }): R
|
||||
<td align="center">
|
||||
<FormControl>
|
||||
<InputLabel id="skills-select"></InputLabel>
|
||||
<Select labelId="skills-select" id="skills-dropdown" onChange={setSkillDropdown} value={skill}>
|
||||
<Select labelId="skills-select" id="skills-dropdown" onChange={setSkillDropdown} value={skillName}>
|
||||
{Object.values(AllSkills).map((skill) => (
|
||||
<MenuItem key={skill.name} value={skill.name}>
|
||||
{skill.name}
|
||||
|
||||
@@ -20,7 +20,6 @@ import { NumberInput } from "../../ui/React/NumberInput";
|
||||
import { Hashes } from "../../ui/React/Hashes";
|
||||
import { Router } from "../../ui/GameRoot";
|
||||
import { Page } from "../../ui/Router";
|
||||
import { Bladeburner } from "../../Bladeburner/Bladeburner";
|
||||
import { GangConstants } from "../../Gang/data/Constants";
|
||||
import { checkForMessagesToSend } from "../../Message/MessageHelpers";
|
||||
import { getEnumHelper } from "../../utils/EnumHelper";
|
||||
@@ -72,7 +71,7 @@ export function General({ parentRerender }: { parentRerender: () => void }): Rea
|
||||
|
||||
// Blade functions
|
||||
const joinBladeburner = () => {
|
||||
Player.bladeburner = new Bladeburner();
|
||||
Player.startBladeburner();
|
||||
parentRerender();
|
||||
};
|
||||
const leaveBladeburner = () => {
|
||||
|
||||
Reference in New Issue
Block a user