show starting player

This commit is contained in:
Viktor Rådberg
2023-09-22 14:34:23 +02:00
parent d21e827eb8
commit d9b2caa24a
5 changed files with 51 additions and 21 deletions

View File

@@ -9,6 +9,7 @@ import ExtraCountersBar from '../Counters/ExtraCountersBar';
import PlayerMenu from '../PlayerMenu/PlayerMenu'; import PlayerMenu from '../PlayerMenu/PlayerMenu';
import Health from './Health'; import Health from './Health';
import { usePlayers } from '../../Hooks/usePlayers'; import { usePlayers } from '../../Hooks/usePlayers';
import { useGlobalSettings } from '../../Hooks/useGlobalSettings';
const LifeCounterContentWrapper = styled.div<{ const LifeCounterContentWrapper = styled.div<{
$backgroundColor: string; $backgroundColor: string;
@@ -166,6 +167,7 @@ type LifeCounterProps = {
const LifeCounter = ({ player, opponents }: LifeCounterProps) => { const LifeCounter = ({ player, opponents }: LifeCounterProps) => {
const { updatePlayer, updateLifeTotal } = usePlayers(); const { updatePlayer, updateLifeTotal } = usePlayers();
const { showStartingPlayer } = useGlobalSettings();
const [showPlayerMenu, setShowPlayerMenu] = useState(false); const [showPlayerMenu, setShowPlayerMenu] = useState(false);
const [recentDifference, setRecentDifference] = useState(0); const [recentDifference, setRecentDifference] = useState(0);
@@ -209,7 +211,9 @@ const LifeCounter = ({ player, opponents }: LifeCounterProps) => {
return ( return (
<LifeCounterContentWrapper $backgroundColor={player.color}> <LifeCounterContentWrapper $backgroundColor={player.color}>
<LifeCounterWrapper $rotation={player.settings.rotation}> <LifeCounterWrapper $rotation={player.settings.rotation}>
{player.isStartingPlayer && player.showStartingPlayer && ( {showStartingPlayer &&
player.isStartingPlayer &&
player.showStartingPlayer && (
<PlayerNoticeWrapper <PlayerNoticeWrapper
$rotation={player.settings.rotation} $rotation={player.settings.rotation}
$backgroundColor={theme.palette.primary.main} $backgroundColor={theme.palette.primary.main}

View File

@@ -106,6 +106,8 @@ const Start = () => {
setShowPlay, setShowPlay,
initialGameSettings, initialGameSettings,
setInitialGameSettings, setInitialGameSettings,
showStartingPlayer,
setShowStartingPlayer,
} = useGlobalSettings(); } = useGlobalSettings();
const [openModal, setOpenModal] = useState(false); const [openModal, setOpenModal] = useState(false);
@@ -222,6 +224,7 @@ const Start = () => {
}); });
}} }}
/> />
<Spacer height="0.7rem" />
<FormLabel>Starting Health</FormLabel> <FormLabel>Starting Health</FormLabel>
<Slider <Slider
title="Starting Health" title="Starting Health"
@@ -239,6 +242,7 @@ const Start = () => {
}) })
} }
/> />
<Spacer height="1rem" />
<ToggleButtonsWrapper> <ToggleButtonsWrapper>
<ToggleContainer> <ToggleContainer>
@@ -268,7 +272,7 @@ const Start = () => {
}} }}
/> />
</ToggleContainer> </ToggleContainer>
<Spacer width="2rem" /> <Spacer width="1rem" />
<ToggleContainer> <ToggleContainer>
<FormLabel>Keep Awake</FormLabel> <FormLabel>Keep Awake</FormLabel>
<Switch <Switch
@@ -278,6 +282,16 @@ const Start = () => {
</ToggleContainer> </ToggleContainer>
</ToggleButtonsWrapper> </ToggleButtonsWrapper>
<ToggleButtonsWrapper>
<ToggleContainer>
<FormLabel>Show Start Player</FormLabel>
<Switch
checked={showStartingPlayer}
onChange={() => setShowStartingPlayer(!showStartingPlayer)}
/>
</ToggleContainer>
</ToggleButtonsWrapper>
<FormLabel>Layout</FormLabel> <FormLabel>Layout</FormLabel>
<LayoutOptions <LayoutOptions
numberOfPlayers={playerOptions.numberOfPlayers} numberOfPlayers={playerOptions.numberOfPlayers}
@@ -288,7 +302,9 @@ const Start = () => {
/> />
</FormControl> </FormControl>
<Paragraph style={{ textAlign: 'center', maxWidth: '75%' }}> <Paragraph
style={{ textAlign: 'center', maxWidth: '75%', fontSize: '0.7rem' }}
>
If you're on iOS, this page works better if you{' '} If you're on iOS, this page works better if you{' '}
<strong>hide the toolbar</strong> or{' '} <strong>hide the toolbar</strong> or{' '}
<strong>add the app to your home screen</strong>. <strong>add the app to your home screen</strong>.

View File

@@ -20,6 +20,8 @@ export type GlobalSettingsContextType = {
setShowPlay: (showPlay: boolean) => void; setShowPlay: (showPlay: boolean) => void;
initialGameSettings: InitialSettings | null; initialGameSettings: InitialSettings | null;
setInitialGameSettings: (initialGameSettings: InitialSettings) => void; setInitialGameSettings: (initialGameSettings: InitialSettings) => void;
showStartingPlayer: boolean;
setShowStartingPlayer: (showStartingPlayer: boolean) => void;
}; };
export const GlobalSettingsContext = export const GlobalSettingsContext =

View File

@@ -24,13 +24,17 @@ export const theme = createTheme({
}, },
}, },
components: { components: {
MuiSlider: { MuiFormLabel: {
styleOverrides: { styleOverrides: {
root: { root: {
marginBottom: '2.5em', fontSize: '1rem',
}, },
},
},
MuiSlider: {
styleOverrides: {
markLabel: { markLabel: {
fontSize: '1.2em', fontSize: '1rem',
color: '#F5F5F5', color: '#F5F5F5',
}, },
valueLabel: { valueLabel: {
@@ -39,20 +43,20 @@ export const theme = createTheme({
background: '#5E714C', background: '#5E714C',
}, },
track: { track: {
height: '1em', height: '0.7rem',
}, },
rail: { rail: {
height: '1em', height: '0.7rem',
}, },
mark: { mark: {
width: '0.5em', width: '0.5rem',
height: '0.5em', height: '0.5rem',
borderRadius: '50%', borderRadius: '50%',
display: 'none', display: 'none',
}, },
thumb: { thumb: {
width: '1.7em', width: '1.3rem',
height: '1.7em', height: '1.3rem',
}, },
}, },
}, },

View File

@@ -20,6 +20,7 @@ export const GlobalSettingsProvider = ({
const [showPlay, setShowPlay] = useState<boolean>( const [showPlay, setShowPlay] = useState<boolean>(
savedShowPlay ? savedShowPlay === 'true' : false savedShowPlay ? savedShowPlay === 'true' : false
); );
const [showStartingPlayer, setShowStartingPlayer] = useState(true);
const [initialGameSettings, setInitialGameSettings] = const [initialGameSettings, setInitialGameSettings] =
useState<InitialSettings | null>( useState<InitialSettings | null>(
@@ -112,6 +113,8 @@ export const GlobalSettingsProvider = ({
setShowPlay, setShowPlay,
initialGameSettings, initialGameSettings,
setInitialGameSettings, setInitialGameSettings,
showStartingPlayer,
setShowStartingPlayer,
}; };
}, [ }, [
active, active,
@@ -122,6 +125,7 @@ export const GlobalSettingsProvider = ({
release, release,
request, request,
showPlay, showPlay,
showStartingPlayer,
type, type,
]); ]);