mirror of
https://github.com/Vikeo/LifeTrinket.git
synced 2025-11-16 07:47:59 +00:00
reset game button
This commit is contained in:
@@ -13,14 +13,7 @@ import { Player, Rotation } from '../../Types/Player';
|
||||
import { WakeLock } from '../../Types/WakeLock';
|
||||
import { useFullscreen } from '../../Hooks/useFullscreen';
|
||||
import { theme } from '../../Data/theme';
|
||||
|
||||
type SettingsProps = {
|
||||
player: Player;
|
||||
opponents: Player[];
|
||||
onChange: (updatedPlayer: Player) => void;
|
||||
resetCurrentGame: () => void;
|
||||
wakeLock: WakeLock;
|
||||
};
|
||||
import { InitialSettings } from '../../Data/getInitialPlayers';
|
||||
|
||||
const SettingsContainer = styled.div<{
|
||||
$rotation: Rotation;
|
||||
@@ -135,11 +128,22 @@ const CheckboxContainer = styled.div<{ $rotation: Rotation }>`
|
||||
}}
|
||||
`;
|
||||
|
||||
type SettingsProps = {
|
||||
player: Player;
|
||||
opponents: Player[];
|
||||
onChange: (updatedPlayer: Player) => void;
|
||||
resetCurrentGame: () => void;
|
||||
wakeLock: WakeLock;
|
||||
setShowPlayerMenu: (showPlayerMenu: boolean) => void;
|
||||
};
|
||||
|
||||
const Settings = ({
|
||||
player,
|
||||
onChange,
|
||||
resetCurrentGame,
|
||||
wakeLock,
|
||||
opponents,
|
||||
setShowPlayerMenu,
|
||||
}: SettingsProps) => {
|
||||
const { disableFullscreen, enableFullscreen, isFullscreen } = useFullscreen();
|
||||
const isSide =
|
||||
@@ -168,11 +172,50 @@ const Settings = ({
|
||||
};
|
||||
|
||||
const handleResetGame = () => {
|
||||
resetCurrentGame();
|
||||
const savedGameSettings = localStorage.getItem('initialGameSettings');
|
||||
|
||||
const initialGameSettings: InitialSettings = savedGameSettings
|
||||
? JSON.parse(savedGameSettings)
|
||||
: null;
|
||||
|
||||
if (!initialGameSettings) {
|
||||
resetCurrentGame();
|
||||
}
|
||||
|
||||
const startingPlayerIndex = Math.floor(
|
||||
Math.random() * initialGameSettings.numberOfPlayers
|
||||
);
|
||||
|
||||
[player, ...opponents].forEach((player: Player) => {
|
||||
player.commanderDamage.map((damage) => {
|
||||
damage.damageTotal = 0;
|
||||
damage.partnerDamageTotal = 0;
|
||||
});
|
||||
|
||||
player.extraCounters.map((counter) => {
|
||||
counter.value = 0;
|
||||
});
|
||||
|
||||
player.lifeTotal = initialGameSettings.startingLifeTotal;
|
||||
|
||||
player.hasLost = false;
|
||||
|
||||
const isStartingPlayer = player.index === startingPlayerIndex;
|
||||
|
||||
player.isStartingPlayer = isStartingPlayer;
|
||||
|
||||
if (player.isStartingPlayer) {
|
||||
player.showStartingPlayer = true;
|
||||
}
|
||||
|
||||
onChange(player);
|
||||
});
|
||||
localStorage.setItem('playing', 'false');
|
||||
setShowPlayerMenu(false);
|
||||
};
|
||||
|
||||
const handleNewGame = () => {
|
||||
handleResetGame();
|
||||
resetCurrentGame();
|
||||
};
|
||||
|
||||
const toggleFullscreen = () => {
|
||||
@@ -348,6 +391,22 @@ const Settings = ({
|
||||
>
|
||||
Keep Awake
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="contained"
|
||||
style={{
|
||||
cursor: 'pointer',
|
||||
userSelect: 'none',
|
||||
fontSize: buttonFontSize,
|
||||
padding: '0 4px 0 4px',
|
||||
}}
|
||||
onClick={handleResetGame}
|
||||
role="checkbox"
|
||||
aria-checked={wakeLock.active}
|
||||
aria-label="Reset Game"
|
||||
>
|
||||
Reset Game
|
||||
</Button>
|
||||
</ButtonsSections>
|
||||
</SettingsContainer>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user