// Root React Component for the Corporation UI import React, { useState, useEffect } from "react"; import makeStyles from "@mui/styles/makeStyles"; import { numeralWrapper } from "../../ui/numeralFormat"; import { Reputation } from "./Reputation"; import Table from "@mui/material/Table"; import TableBody from "@mui/material/TableBody"; import TableCell from "@mui/material/TableCell"; import TableRow from "@mui/material/TableRow"; import Paper from "@mui/material/Paper"; import Box from "@mui/material/Box"; import Typography from "@mui/material/Typography"; import Button from "@mui/material/Button"; import Collapse from "@mui/material/Collapse"; import Fab from "@mui/material/Fab"; import VisibilityOffIcon from "@mui/icons-material/VisibilityOff"; import { colors } from "./Theme"; import { Settings } from "../../Settings/Settings"; import { use } from "../../ui/Context"; import { Page } from "../../ui/Router"; interface IProps { save: () => void; } function Intelligence(): React.ReactElement { const player = use.Player(); const classes = useStyles(); if (player.intelligence === 0) return <>; return ( Int  {numeralWrapper.formatSkill(player.intelligence)} ); } function Work(): React.ReactElement { const player = use.Player(); const router = use.Router(); const classes = useStyles(); if (!player.isWorking || player.focus) return <>; return ( <> Work in progress: +{Reputation(player.workRepGained)} rep ); } const useStyles = makeStyles({ cellNone: { borderBottom: "none", padding: 0, margin: 0, }, cell: { padding: 0, margin: 0, }, hp: { color: colors.hp, }, money: { color: colors.money, }, hack: { color: colors.hack, }, combat: { color: colors.combat, }, cha: { color: colors.cha, }, int: { color: colors.int, }, nobackground: { backgroundColor: "#0000", }, }); export function CharacterOverview({ save }: IProps): React.ReactElement { const player = use.Player(); const router = use.Router(); if (router.page() === Page.BitVerse) return <>; const setRerender = useState(false)[1]; const [open, setOpen] = useState(true); useEffect(() => { const id = setInterval(() => setRerender((old) => !old), 600); return () => clearInterval(id); }, []); const classes = useStyles(); return (
HP  {numeralWrapper.formatHp(player.hp)} / {numeralWrapper.formatHp(player.max_hp)} Money  {numeralWrapper.formatMoney(player.money.toNumber())} Hack  {numeralWrapper.formatSkill(player.hacking_skill)} Str  {numeralWrapper.formatSkill(player.strength)} Def  {numeralWrapper.formatSkill(player.defense)} Dex  {numeralWrapper.formatSkill(player.dexterity)} Agi  {numeralWrapper.formatSkill(player.agility)} Cha  {numeralWrapper.formatSkill(player.charisma)}
setOpen((old) => !old)}>
); }