import React, { useState } from "react"; import { Accordion, AccordionSummary, AccordionDetails, Button, FormControl, IconButton, InputLabel, MenuItem, Select, SelectChangeEvent, Typography, } from "@mui/material"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import ReplyAllIcon from "@mui/icons-material/ReplyAll"; import ReplyIcon from "@mui/icons-material/Reply"; import { Player } from "@player"; import { FactionName } from "@enums"; import { Adjuster } from "./Adjuster"; import { Factions } from "../../Faction/Factions"; import { getRecordValues } from "../../Types/Record"; import { getEnumHelper } from "../../utils/EnumHelper"; const bigNumber = 1e12; export function FactionsDev(): React.ReactElement { const [factionName, setFactionName] = useState(FactionName.Illuminati); function setFactionDropdown(event: SelectChangeEvent): void { if (!getEnumHelper("FactionName").isMember(event.target.value)) return; setFactionName(event.target.value); } function receiveInvite(): void { Player.receiveInvite(factionName); } function receiveAllInvites(): void { Object.values(FactionName).forEach((faction) => Player.receiveInvite(faction)); } function modifyFactionRep(modifier: number): (x: number) => void { return function (reputation: number): void { const fac = Factions[factionName]; if (!isNaN(reputation)) { fac.playerReputation += reputation * modifier; } }; } function resetFactionRep(): void { const fac = Factions[factionName]; fac.playerReputation = 0; } function modifyFactionFavor(modifier: number): (x: number) => void { return function (favor: number): void { const fac = Factions[factionName]; if (!isNaN(favor)) { fac.favor += favor * modifier; } }; } function resetFactionFavor(): void { const fac = Factions[factionName]; fac.favor = 0; } function tonsOfRep(): void { for (const faction of getRecordValues(Factions)) { faction.playerReputation = bigNumber; } } function resetAllRep(): void { for (const faction of getRecordValues(Factions)) { faction.playerReputation = 0; } } function tonsOfFactionFavor(): void { for (const faction of getRecordValues(Factions)) { faction.favor = bigNumber; } } function resetAllFactionFavor(): void { for (const faction of getRecordValues(Factions)) { faction.favor = 0; } } return ( }> Factions
Faction: Faction
Reputation: modifyFactionRep(1)(bigNumber)} add={modifyFactionRep(1)} subtract={modifyFactionRep(-1)} reset={resetFactionRep} />
Favor: modifyFactionFavor(1)(2000)} add={modifyFactionFavor(1)} subtract={modifyFactionFavor(-1)} reset={resetFactionFavor} />
All Reputation:
All Favor:
); }