bitburner-src/src/DevMenu/ui/TimeSkip.tsx

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2021-09-14 02:37:35 +02:00
import React from "react";
2021-09-17 01:23:03 +02:00
import Accordion from "@mui/material/Accordion";
import AccordionSummary from "@mui/material/AccordionSummary";
import AccordionDetails from "@mui/material/AccordionDetails";
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
2021-09-14 02:37:35 +02:00
2021-09-17 01:23:03 +02:00
import Button from "@mui/material/Button";
2021-09-14 02:37:35 +02:00
import { IPlayer } from "../../PersonObjects/IPlayer";
import { saveObject } from "../../SaveObject";
import { IEngine } from "../../IEngine";
// Update as additional BitNodes get implemented
interface IProps {
player: IPlayer;
engine: IEngine;
}
export function TimeSkip(props: IProps): React.ReactElement {
function timeskip(time: number) {
return () => {
props.player.lastUpdate -= time;
props.engine._lastUpdate -= time;
saveObject.saveGame(props.engine.indexedDb);
setTimeout(() => location.reload(), 1000);
};
}
return (
<Accordion>
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
2021-09-18 01:43:08 +02:00
<h2>Time skip</h2>
2021-09-14 02:37:35 +02:00
</AccordionSummary>
<AccordionDetails>
<Button onClick={timeskip(60 * 1000)}>1 minute</Button>
<Button onClick={timeskip(60 * 60 * 1000)}>1 hour</Button>
<Button onClick={timeskip(24 * 60 * 60 * 1000)}>1 day</Button>
</AccordionDetails>
</Accordion>
);
}