diff --git a/src/Corporation/ui/IndustryOffice.tsx b/src/Corporation/ui/IndustryOffice.tsx
index 57c0682a9..62c6b2205 100644
--- a/src/Corporation/ui/IndustryOffice.tsx
+++ b/src/Corporation/ui/IndustryOffice.tsx
@@ -26,6 +26,7 @@ import Table from "@mui/material/Table";
import TableBody from "@mui/material/TableBody";
import TableRow from "@mui/material/TableRow";
import { TableCell } from "../../ui/React/Table";
+import { Box } from "@mui/material";
interface IProps {
office: OfficeSpace;
@@ -430,51 +431,46 @@ export function IndustryOffice(props: IProps): React.ReactElement {
Size: {props.office.employees.length} / {props.office.size} employees
- Automatically hires an employee and gives him/her a random name}>
-
-
-
-
-
- Upgrade the office's size so that it can hold more employees!}>
-
-
-
-
- setUpgradeOfficeSizeOpen(false)}
- />
-
- {!division.hasResearch("AutoPartyManager") && (
- <>
- Throw an office party to increase your employee's morale and happiness}
- >
-
-
-
+
+
+ Automatically hires an employee and gives him/her a random name}>
+
- Upgrade the office's size so that it can hold more employees!}>
+
+
+ setThrowPartyOpen(false)}
+ open={upgradeOfficeSizeOpen}
+ onClose={() => setUpgradeOfficeSizeOpen(false)}
/>
- >
- )}
-
+ {!division.hasResearch("AutoPartyManager") && (
+ <>
+ Throw an office party to increase your employee's morale and happiness}
+ >
+
+
+ setThrowPartyOpen(false)}
+ />
+ >
+ )}
-
+
+
+
{employeeManualAssignMode ? (
) : (
diff --git a/src/Corporation/ui/IndustryWarehouse.tsx b/src/Corporation/ui/IndustryWarehouse.tsx
index 9b6c7b474..4707afdef 100644
--- a/src/Corporation/ui/IndustryWarehouse.tsx
+++ b/src/Corporation/ui/IndustryWarehouse.tsx
@@ -139,13 +139,13 @@ function WarehouseRoot(props: IProps): React.ReactElement {
{numeralWrapper.formatBigNumber(props.warehouse.size)}
-
-
+
+
This industry uses the following equation for its production:
diff --git a/src/Corporation/ui/MaterialElem.tsx b/src/Corporation/ui/MaterialElem.tsx
index 64471859a..616345cdc 100644
--- a/src/Corporation/ui/MaterialElem.tsx
+++ b/src/Corporation/ui/MaterialElem.tsx
@@ -112,7 +112,7 @@ export function MaterialElem(props: IMaterialProps): React.ReactElement {
return (
-
+
-
+ Purchase your required materials to get production started! : ""}
>
-
- setExportOpen(false)} />
>
)}
-
-
- Get a copy of and read 'The Complete Handbook for Creating a Successful Corporation.' This is a .lit file
- that guides you through the beginning of setting up a Corporation and provides some tips/pointers for
- helping you get started with managing it.
-
- }
- >
-
-
- {corp.public ? : }
-
+
+
+ Get a copy of and read 'The Complete Handbook for Creating a Successful Corporation.' This is a .lit file
+ that guides you through the beginning of setting up a Corporation and provides some tips/pointers for
+ helping you get started with managing it.
+
+ }
+ >
+
+
+ {corp.public ? : }
+
+
>
@@ -125,11 +127,9 @@ function PrivateButtons({ rerender }: IPrivateButtonsProps): React.ReactElement
return (
<>
{findInvestorsTooltip}}>
-
-
-
+
setFindInvestorsopen(false)} rerender={rerender} />
setGoPublicopen(false)} rerender={rerender} />
-
>
);
}
@@ -201,8 +200,8 @@ function PublicButtons({ rerender }: IPublicButtonsProps): React.ReactElement {
const sellSharesTooltip = sellSharesOnCd
? "Cannot sell shares for " + corp.convertCooldownToString(corp.shareSaleCooldown)
: "Sell your shares in the company. The money earned from selling your " +
- "shares goes into your personal account, not the Corporation's. " +
- "This is one of the only ways to profit from your business venture.";
+ "shares goes into your personal account, not the Corporation's. " +
+ "This is one of the only ways to profit from your business venture.";
const issueNewSharesOnCd = corp.issueNewSharesCooldown > 0;
const issueNewSharesTooltip = issueNewSharesOnCd
@@ -212,28 +211,21 @@ function PublicButtons({ rerender }: IPublicButtonsProps): React.ReactElement {
return (
<>
{sellSharesTooltip}}>
-
-
-
+
setSellSharesOpen(false)} rerender={rerender} />
Buy back shares you that previously issued or sold at market price.}>
-
-
-
+
setBuybackSharesOpen(false)} rerender={rerender} />
- {issueNewSharesTooltip}}>
-
-
-
+
setIssueNewSharesOpen(false)} />
setIssueDividendsOpen(true)}>Issue Dividends
setIssueDividendsOpen(false)} />
-
>
);
}
@@ -269,11 +260,9 @@ function BribeButton(): React.ReactElement {
: "Your Corporation is not powerful enough to bribe Faction leaders"
}
>
-
-
-
+
setOpen(false)} />
>
diff --git a/src/Corporation/ui/ResearchModal.tsx b/src/Corporation/ui/ResearchModal.tsx
index fc34c2be3..3c882c2b1 100644
--- a/src/Corporation/ui/ResearchModal.tsx
+++ b/src/Corporation/ui/ResearchModal.tsx
@@ -6,17 +6,18 @@ import { IIndustry } from "../IIndustry";
import { Research } from "../Actions";
import { Node } from "../ResearchTree";
import { ResearchMap } from "../ResearchMap";
+import { Settings } from "../../Settings/Settings";
import { dialogBoxCreate } from "../../ui/React/DialogBox";
import Typography from "@mui/material/Typography";
import Tooltip from "@mui/material/Tooltip";
import Button from "@mui/material/Button";
import Box from "@mui/material/Box";
-import ListItemButton from "@mui/material/ListItemButton";
-import ListItemText from "@mui/material/ListItemText";
import Collapse from "@mui/material/Collapse";
import ExpandMore from "@mui/icons-material/ExpandMore";
import ExpandLess from "@mui/icons-material/ExpandLess";
+import CheckIcon from '@mui/icons-material/Check';
+
interface INodeProps {
n: Node | null;
division: IIndustry;
@@ -42,8 +43,8 @@ function Upgrade({ n, division }: INodeProps): React.ReactElement {
dialogBoxCreate(
`Researched ${n.text}. It may take a market cycle ` +
- `(~${CorporationConstants.SecsPerMarketCycle} seconds) before the effects of ` +
- `the Research apply.`,
+ `(~${CorporationConstants.SecsPerMarketCycle} seconds) before the effects of ` +
+ `the Research apply.`,
);
}
@@ -52,8 +53,8 @@ function Upgrade({ n, division }: INodeProps): React.ReactElement {
color = "info";
}
- const but = (
-
+ const wrapInTooltip = (ele: React.ReactElement): React.ReactElement => {
+ return (
@@ -63,12 +64,22 @@ function Upgrade({ n, division }: INodeProps): React.ReactElement {
}
>
+ {ele}
+
+ )
+ }
+
+ const but = (
+
+ {wrapInTooltip(
-
-
+ )}
);
@@ -76,15 +87,25 @@ function Upgrade({ n, division }: INodeProps): React.ReactElement {
return (
-
- {but}
- setOpen((old) => !old)}>
-
+
+ {wrapInTooltip(
+
+
+ {n.researched && ()}{n.text}
+
+
+ )}
+ setOpen((old) => !old)} sx={{ borderColor: Settings.theme.button, minWidth: 'fit-content' }}>
{open ? : }
-
+
-
+
{n.children.map((m) => (
))}
@@ -108,7 +129,7 @@ export function ResearchModal(props: IProps): React.ReactElement {
return (
-
+
Research points: {props.industry.sciResearch.qty.toFixed(3)}
Multipliers from research:
diff --git a/src/Faction/ui/DonateOption.tsx b/src/Faction/ui/DonateOption.tsx
index c189e3ce1..255c73711 100644
--- a/src/Faction/ui/DonateOption.tsx
+++ b/src/Faction/ui/DonateOption.tsx
@@ -77,7 +77,7 @@ export function DonateOption(props: IProps): React.ReactElement {
}
return (
-
+
{props.disabled ? (
diff --git a/src/Faction/ui/Option.tsx b/src/Faction/ui/Option.tsx
index 1307955d1..9ec2af68b 100644
--- a/src/Faction/ui/Option.tsx
+++ b/src/Faction/ui/Option.tsx
@@ -19,7 +19,7 @@ type IProps = {
export function Option(props: IProps): React.ReactElement {
return (
-
+ {props.buttonText}{props.infoText}
diff --git a/src/Gang/ui/AscensionModal.tsx b/src/Gang/ui/AscensionModal.tsx
index bd9b5d868..82f7c50b6 100644
--- a/src/Gang/ui/AscensionModal.tsx
+++ b/src/Gang/ui/AscensionModal.tsx
@@ -31,7 +31,7 @@ export function AscensionModal(props: IProps): React.ReactElement {
props.onAscend();
const res = gang.ascendMember(props.member);
dialogBoxCreate(
-
+ <>
You ascended {props.member.name}!
-
- {props.member.canAscend() && (
- <>
- setAscendOpen(true)}>Ascend
- setAscendOpen(false)}
- member={props.member}
- onAscend={props.onAscend}
- />
- setHelpOpen(true)}>
-
-
- setHelpOpen(false)}>
-
- Ascending a Gang Member resets the member's progress and stats in exchange for a permanent boost to their
- stat multipliers.
-
-
- The additional stat multiplier that the Gang Member gains upon ascension is based on the amount of exp
- they have.
-
-
- Upon ascension, the member will lose all of its non-Augmentation Equipment and your gang will lose respect
- equal to the total respect earned by the member.
-
-
- >
- )}
>
);
}
diff --git a/src/Gang/ui/RecruitButton.tsx b/src/Gang/ui/RecruitButton.tsx
index 9897557d5..bea1f5e4f 100644
--- a/src/Gang/ui/RecruitButton.tsx
+++ b/src/Gang/ui/RecruitButton.tsx
@@ -24,18 +24,20 @@ export function RecruitButton(props: IProps): React.ReactElement {
if (!gang.canRecruitMember()) {
const respect = gang.getRespectNeededToRecruitMember();
return (
-
-
+
+
Recruit Gang Member
- {numeralWrapper.formatRespect(respect)} respect needed to recruit next member
+ {numeralWrapper.formatRespect(respect)} respect needed to recruit next member
);
}
return (
<>
- setOpen(true)}>Recruit Gang Member
+
+ setOpen(true)}>Recruit Gang Member
+ setOpen(false)} onRecruit={props.onRecruit} />
>
);
diff --git a/src/Gang/ui/TaskSelector.tsx b/src/Gang/ui/TaskSelector.tsx
index 02e3e2013..ff19ff550 100644
--- a/src/Gang/ui/TaskSelector.tsx
+++ b/src/Gang/ui/TaskSelector.tsx
@@ -3,14 +3,15 @@
* the task selector as well as some stats.
*/
import React, { useState } from "react";
-import { numeralWrapper } from "../../ui/numeralFormat";
-import { StatsTable } from "../../ui/React/StatsTable";
-import { MoneyRate } from "../../ui/React/MoneyRate";
import { useGang } from "./Context";
-import { GangMember } from "../GangMember";
+import { TaskDescription } from "./TaskDescription";
+
+import { Box } from "@mui/material";
import MenuItem from "@mui/material/MenuItem";
import Select, { SelectChangeEvent } from "@mui/material/Select";
+import { GangMember } from "../GangMember";
+
interface IProps {
member: GangMember;
onTaskChange: () => void;
@@ -29,16 +30,9 @@ export function TaskSelector(props: IProps): React.ReactElement {
const tasks = gang.getAllTaskNames();
- const data = [
- [`Money:`, ],
- [`Respect:`, `${numeralWrapper.formatRespect(5 * props.member.calculateRespectGain(gang))} / sec`],
- [`Wanted Level:`, `${numeralWrapper.formatWanted(5 * props.member.calculateWantedLevelGain(gang))} / sec`],
- [`Total Respect:`, `${numeralWrapper.formatRespect(props.member.earnedRespect)}`],
- ];
-
return (
- <>
-