// Root React Component for the Corporation UI import React, { useState, useEffect } from "react"; import makeStyles from "@mui/styles/makeStyles"; import { IPlayer } from "../../PersonObjects/IPlayer"; 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 TableContainer from "@mui/material/TableContainer"; import TableHead from "@mui/material/TableHead"; 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 Divider from "@mui/material/Divider"; import Button from "@mui/material/Button"; import Collapse from "@mui/material/Collapse"; import { colors } from "./Theme"; import { Settings } from "../../Settings/Settings"; interface IProps { player: IPlayer; save: () => void; } function Intelligence({ player }: { player: IPlayer }): React.ReactElement { if (player.intelligence === 0) return <>; const classes = useStyles(); return ( Int  {numeralWrapper.formatSkill(player.intelligence)} ); } function Work({ player }: { player: IPlayer }): React.ReactElement { if (!player.isWorking || player.focus) return <>; const classes = useStyles(); 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, }, }); export function CharacterOverview({ player, save }: IProps): React.ReactElement { const setRerender = useState(false)[1]; 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)}
); }