2022-04-08 23:28:43 +02:00
|
|
|
import { Clear, ExpandMore, Reply, ReplyAll } from "@mui/icons-material";
|
|
|
|
import {
|
|
|
|
Accordion,
|
|
|
|
AccordionDetails,
|
|
|
|
AccordionSummary,
|
|
|
|
Button,
|
|
|
|
IconButton,
|
|
|
|
MenuItem,
|
|
|
|
Select,
|
|
|
|
SelectChangeEvent,
|
2022-04-10 22:57:34 +02:00
|
|
|
Typography,
|
2022-04-08 23:28:43 +02:00
|
|
|
} from "@mui/material";
|
2021-09-14 02:37:35 +02:00
|
|
|
import React, { useState } from "react";
|
|
|
|
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
|
2022-04-08 23:28:43 +02:00
|
|
|
import { IPlayer } from "../../PersonObjects/IPlayer";
|
2021-09-14 02:37:35 +02:00
|
|
|
|
|
|
|
interface IProps {
|
|
|
|
player: IPlayer;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function Augmentations(props: IProps): React.ReactElement {
|
|
|
|
const [augmentation, setAugmentation] = useState("Augmented Targeting I");
|
|
|
|
|
2021-09-17 01:23:03 +02:00
|
|
|
function setAugmentationDropdown(event: SelectChangeEvent<string>): void {
|
2022-05-29 04:35:20 +02:00
|
|
|
setAugmentation(event.target.value);
|
2021-09-14 02:37:35 +02:00
|
|
|
}
|
|
|
|
function queueAug(): void {
|
|
|
|
props.player.queueAugmentation(augmentation);
|
|
|
|
}
|
|
|
|
|
|
|
|
function queueAllAugs(): void {
|
2021-10-28 05:19:19 +02:00
|
|
|
for (const augName of Object.values(AugmentationNames)) {
|
2021-09-14 02:37:35 +02:00
|
|
|
props.player.queueAugmentation(augName);
|
|
|
|
}
|
|
|
|
}
|
2021-09-16 20:43:39 +02:00
|
|
|
|
|
|
|
function clearAugs(): void {
|
|
|
|
props.player.augmentations = [];
|
|
|
|
}
|
|
|
|
|
2022-04-08 23:28:43 +02:00
|
|
|
function clearQueuedAugs(): void {
|
|
|
|
props.player.queuedAugmentations = [];
|
|
|
|
}
|
|
|
|
|
2021-09-14 02:37:35 +02:00
|
|
|
return (
|
2021-09-18 03:30:02 +02:00
|
|
|
<Accordion TransitionProps={{ unmountOnExit: true }}>
|
2022-04-08 23:28:43 +02:00
|
|
|
<AccordionSummary expandIcon={<ExpandMore />}>
|
2021-10-01 22:22:33 +02:00
|
|
|
<Typography>Augmentations</Typography>
|
2021-09-14 02:37:35 +02:00
|
|
|
</AccordionSummary>
|
|
|
|
<AccordionDetails>
|
2022-04-08 23:28:43 +02:00
|
|
|
<Select
|
|
|
|
onChange={setAugmentationDropdown}
|
|
|
|
value={augmentation}
|
|
|
|
startAdornment={
|
|
|
|
<>
|
|
|
|
<IconButton onClick={queueAllAugs} size="large">
|
|
|
|
<ReplyAll />
|
|
|
|
</IconButton>
|
|
|
|
<IconButton onClick={queueAug} size="large">
|
|
|
|
<Reply />
|
|
|
|
</IconButton>
|
|
|
|
</>
|
|
|
|
}
|
|
|
|
endAdornment={
|
|
|
|
<>
|
|
|
|
<IconButton onClick={clearAugs} size="large">
|
|
|
|
<Clear />
|
|
|
|
</IconButton>
|
|
|
|
</>
|
|
|
|
}
|
|
|
|
>
|
|
|
|
{Object.values(AugmentationNames).map((aug) => (
|
|
|
|
<MenuItem key={aug} value={aug}>
|
|
|
|
{aug}
|
|
|
|
</MenuItem>
|
|
|
|
))}
|
|
|
|
</Select>
|
|
|
|
<Button sx={{ display: "block" }} onClick={clearQueuedAugs}>
|
|
|
|
Clear Queued Augmentations
|
|
|
|
</Button>
|
2021-09-14 02:37:35 +02:00
|
|
|
</AccordionDetails>
|
|
|
|
</Accordion>
|
|
|
|
);
|
|
|
|
}
|