mirror of
https://github.com/Vikeo/LifeTrinket.git
synced 2025-11-20 09:48:00 +00:00
wip start menu
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import './App.css';
|
||||
import { Player } from './Types/Player';
|
||||
import { createInitialPlayers } from './Data/getInitialPlayers';
|
||||
import Play from './Components/Views/Play';
|
||||
import StartMenu from './Components/Views/StartMenu';
|
||||
import { InitialSettings } from './Data/getInitialPlayers';
|
||||
import { GridTemplateAreas } from './Data/getGridTemplateAreas';
|
||||
|
||||
export const initialPlayerOptions = {
|
||||
@@ -15,13 +16,12 @@ export const initialPlayerOptions = {
|
||||
const App = () => {
|
||||
const savedPlayers = localStorage.getItem('players');
|
||||
|
||||
const [players, setPlayers] = useState<Player[]>(
|
||||
savedPlayers
|
||||
? JSON.parse(savedPlayers)
|
||||
: createInitialPlayers(initialPlayerOptions)
|
||||
);
|
||||
const [initialPlayerOptions, setInitialPlayerOptions] =
|
||||
useState<InitialSettings | null>(null);
|
||||
|
||||
const [gridAreas, setGridAreas] = useState(initialPlayerOptions.gridAreas);
|
||||
const [players, setPlayers] = useState<Player[]>(
|
||||
savedPlayers ? JSON.parse(savedPlayers) : []
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem('players', JSON.stringify(players));
|
||||
@@ -34,21 +34,20 @@ const App = () => {
|
||||
setPlayers(updatedPlayers);
|
||||
};
|
||||
|
||||
if (players) {
|
||||
if (players && initialPlayerOptions) {
|
||||
return (
|
||||
<Play
|
||||
players={players}
|
||||
onPlayerChange={handlePlayerChange}
|
||||
gridAreas={gridAreas}
|
||||
gridAreas={initialPlayerOptions?.gridAreas}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Play
|
||||
players={players}
|
||||
onPlayerChange={handlePlayerChange}
|
||||
gridAreas={gridAreas}
|
||||
<StartMenu
|
||||
setInitialPlayerOptions={setInitialPlayerOptions}
|
||||
setPlayers={setPlayers}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
import { useState } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { GridTemplateAreas } from '../../Data/getGridTemplateAreas';
|
||||
import { InitialSettings } from '../../Data/getInitialPlayers';
|
||||
import { Player } from '../../Types/Player';
|
||||
|
||||
const MainWrapper = styled.div`
|
||||
@@ -8,12 +11,26 @@ const MainWrapper = styled.div`
|
||||
`;
|
||||
|
||||
type StartProps = {
|
||||
players: Player[];
|
||||
setInitialPlayerOptions: (options: InitialSettings) => void;
|
||||
setPlayers: (updatedPlayer: Player[]) => void;
|
||||
};
|
||||
|
||||
const Start = ({ players, setPlayers }: StartProps) => {
|
||||
return <MainWrapper></MainWrapper>;
|
||||
const Start = ({ setInitialPlayerOptions, setPlayers }: StartProps) => {
|
||||
const [playerOptions, setPlayerOptions] = useState<InitialSettings>({
|
||||
numberOfPlayers: 4,
|
||||
startingLifeTotal: 40,
|
||||
useCommanderDamage: true,
|
||||
gridAreas: GridTemplateAreas.FourPlayers,
|
||||
});
|
||||
const handleFourPlayersSet = () => {
|
||||
setInitialPlayerOptions(playerOptions);
|
||||
};
|
||||
|
||||
return (
|
||||
<MainWrapper>
|
||||
<button onClick={handleFourPlayersSet}>4 Players</button>
|
||||
</MainWrapper>
|
||||
);
|
||||
};
|
||||
|
||||
export default Start;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Player, Rotation } from '../Types/Player';
|
||||
import { GridTemplateAreas } from './getGridTemplateAreas';
|
||||
|
||||
type InitialSettings = {
|
||||
export type InitialSettings = {
|
||||
startingLifeTotal: number;
|
||||
useCommanderDamage: boolean;
|
||||
numberOfPlayers: number;
|
||||
|
||||
Reference in New Issue
Block a user