TYPESAFETY: Strict internal typing for AugmentationName (#608)

This commit is contained in:
Snarling
2023-06-16 17:52:42 -04:00
committed by GitHub
parent 12b5c00d14
commit a4b826683e
70 changed files with 2649 additions and 3221 deletions
+17 -23
View File
@@ -1,8 +1,8 @@
import { Paper, Table, TableBody, Box, IconButton, Typography, Container, Tooltip } from "@mui/material";
import { MoreHoriz, Info } from "@mui/icons-material";
import React, { useState } from "react";
import { BitNodes, defaultMultipliers, getBitNodeMultipliers } from "../BitNode/BitNode";
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
import { BitNodes } from "../BitNode/BitNode";
import { currentNodeMults } from "../BitNode/BitNodeMultipliers";
import { BitNodeMultipliersDisplay } from "../BitNode/ui/BitnodeMultipliersDescription";
import { HacknetServerConstants } from "../Hacknet/data/Constants";
import { getPurchaseServerLimit } from "../Server/ServerPurchases";
@@ -15,7 +15,6 @@ import { Modal } from "./React/Modal";
import { Money } from "./React/Money";
import { StatsRow } from "./React/StatsRow";
import { StatsTable } from "./React/StatsTable";
import { isEqual } from "lodash";
import { useRerender } from "./React/hooks";
interface EmployersModalProps {
@@ -211,12 +210,7 @@ export function CharacterStats(): React.ReactElement {
timeRows.push(["Total", convertTimeMsToTimeElapsedString(Player.totalPlaytime)]);
let showBitNodeMults = false;
if (Player.sourceFileLvl(5) > 0) {
const n = Player.bitNodeN;
const maxSfLevel = n === 12 ? Infinity : 3;
const mults = getBitNodeMultipliers(n, Math.min(Player.sourceFileLvl(n) + 1, maxSfLevel));
showBitNodeMults = !isEqual(mults, defaultMultipliers);
}
if (Player.sourceFileLvl(5) > 0) showBitNodeMults = true;
return (
<Container maxWidth="lg" disableGutters sx={{ mx: 0 }}>
<Typography variant="h4">Stats</Typography>
@@ -355,12 +349,12 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Hacking Money",
value: Player.mults.hacking_money,
effValue: Player.mults.hacking_money * BitNodeMultipliers.ScriptHackMoney,
effValue: Player.mults.hacking_money * currentNodeMults.ScriptHackMoney,
},
{
mult: "Hacking Growth",
value: Player.mults.hacking_grow,
effValue: Player.mults.hacking_grow * BitNodeMultipliers.ServerGrowthRate,
effValue: Player.mults.hacking_grow * currentNodeMults.ServerGrowthRate,
},
]}
color={Settings.theme.hack}
@@ -370,12 +364,12 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Hacking Level",
value: Player.mults.hacking,
effValue: Player.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,
effValue: Player.mults.hacking * currentNodeMults.HackingLevelMultiplier,
},
{
mult: "Hacking Experience",
value: Player.mults.hacking_exp,
effValue: Player.mults.hacking_exp * BitNodeMultipliers.HackExpGain,
effValue: Player.mults.hacking_exp * currentNodeMults.HackExpGain,
},
]}
color={Settings.theme.hack}
@@ -385,7 +379,7 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Strength Level",
value: Player.mults.strength,
effValue: Player.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,
effValue: Player.mults.strength * currentNodeMults.StrengthLevelMultiplier,
},
{
mult: "Strength Experience",
@@ -399,7 +393,7 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Defense Level",
value: Player.mults.defense,
effValue: Player.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,
effValue: Player.mults.defense * currentNodeMults.DefenseLevelMultiplier,
},
{
mult: "Defense Experience",
@@ -413,7 +407,7 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Dexterity Level",
value: Player.mults.dexterity,
effValue: Player.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,
effValue: Player.mults.dexterity * currentNodeMults.DexterityLevelMultiplier,
},
{
mult: "Dexterity Experience",
@@ -427,7 +421,7 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Agility Level",
value: Player.mults.agility,
effValue: Player.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,
effValue: Player.mults.agility * currentNodeMults.AgilityLevelMultiplier,
},
{
mult: "Agility Experience",
@@ -441,7 +435,7 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Charisma Level",
value: Player.mults.charisma,
effValue: Player.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,
effValue: Player.mults.charisma * currentNodeMults.CharismaLevelMultiplier,
},
{
mult: "Charisma Experience",
@@ -459,7 +453,7 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Hacknet Node Production",
value: Player.mults.hacknet_node_money,
effValue: Player.mults.hacknet_node_money * BitNodeMultipliers.HacknetNodeMoney,
effValue: Player.mults.hacknet_node_money * currentNodeMults.HacknetNodeMoney,
},
{
mult: "Hacknet Node Purchase Cost",
@@ -490,13 +484,13 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Faction Reputation Gain",
value: Player.mults.faction_rep,
effValue: Player.mults.faction_rep * BitNodeMultipliers.FactionWorkRepGain,
effValue: Player.mults.faction_rep * currentNodeMults.FactionWorkRepGain,
color: Settings.theme.rep,
},
{
mult: "Salary",
value: Player.mults.work_money,
effValue: Player.mults.work_money * BitNodeMultipliers.CompanyWorkMoney,
effValue: Player.mults.work_money * currentNodeMults.CompanyWorkMoney,
color: Settings.theme.money,
},
]}
@@ -511,13 +505,13 @@ export function CharacterStats(): React.ReactElement {
{
mult: "Crime Money",
value: Player.mults.crime_money,
effValue: Player.mults.crime_money * BitNodeMultipliers.CrimeMoney,
effValue: Player.mults.crime_money * currentNodeMults.CrimeMoney,
color: Settings.theme.money,
},
]}
color={Settings.theme.combat}
/>
{Player.canAccessBladeburner() && BitNodeMultipliers.BladeburnerRank > 0 && (
{Player.canAccessBladeburner() && currentNodeMults.BladeburnerRank > 0 && (
<MultiplierTable
rows={[
{
+1 -1
View File
@@ -24,7 +24,7 @@ interface IProps {
export function AugmentationAccordion(props: IProps): React.ReactElement {
const [open, setOpen] = useState(false);
let displayName = props.aug.name;
let displayName: string = props.aug.name;
if (props.level != null) {
if (props.aug.name === AugmentationName.NeuroFluxGovernor) {
displayName += ` - Level ${props.level}`;
+7 -7
View File
@@ -24,7 +24,7 @@ import { Router } from "../GameRoot";
import { Page } from "../Router";
import { Player } from "@player";
import { StatsProgressOverviewCell } from "./StatsProgressBar";
import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers";
import { currentNodeMults } from "../../BitNode/BitNodeMultipliers";
import { Box, Tooltip } from "@mui/material";
@@ -73,12 +73,12 @@ const formattedVals: Record<RowName, () => string> = {
const skillMultUpdaters: Record<SkillRowName, () => number> = {
//Used by skill bars to calculate the mult
Hack: () => Player.mults.hacking * BitNodeMultipliers.HackingLevelMultiplier,
Str: () => Player.mults.strength * BitNodeMultipliers.StrengthLevelMultiplier,
Def: () => Player.mults.defense * BitNodeMultipliers.DefenseLevelMultiplier,
Dex: () => Player.mults.dexterity * BitNodeMultipliers.DexterityLevelMultiplier,
Agi: () => Player.mults.agility * BitNodeMultipliers.AgilityLevelMultiplier,
Cha: () => Player.mults.charisma * BitNodeMultipliers.CharismaLevelMultiplier,
Hack: () => Player.mults.hacking * currentNodeMults.HackingLevelMultiplier,
Str: () => Player.mults.strength * currentNodeMults.StrengthLevelMultiplier,
Def: () => Player.mults.defense * currentNodeMults.DefenseLevelMultiplier,
Dex: () => Player.mults.dexterity * currentNodeMults.DexterityLevelMultiplier,
Agi: () => Player.mults.agility * currentNodeMults.AgilityLevelMultiplier,
Cha: () => Player.mults.charisma * currentNodeMults.CharismaLevelMultiplier,
Int: () => 1,
};