diff --git a/leaky-ships/components/Gamefield/BorderTiles.tsx b/leaky-ships/components/Gamefield/BorderTiles.tsx index 6e4f081..6400aed 100644 --- a/leaky-ships/components/Gamefield/BorderTiles.tsx +++ b/leaky-ships/components/Gamefield/BorderTiles.tsx @@ -141,7 +141,7 @@ function BorderTiles() { : true), }) } - > + /> ) })} diff --git a/leaky-ships/components/Gamefield/EventBar.tsx b/leaky-ships/components/Gamefield/EventBar.tsx index 8cd2ddd..530bb56 100644 --- a/leaky-ships/components/Gamefield/EventBar.tsx +++ b/leaky-ships/components/Gamefield/EventBar.tsx @@ -329,7 +329,7 @@ function EventBar({ clear }: { clear: () => void }) { return (
- {menu !== "main" && ( + {menu !== "main" ? ( void }) { useGameProps.setState({ menu: "main" }) }, }} - > - )} + /> + ) : null} {items[menu].map((e, i) => { if (!isActiveIndex && menu === "main" && i === 1) return return })} - {menu === "moves" && ( + {menu === "moves" ? ( void }) { payload?.game?.state === "running" && mode >= 0 && target.show, callback: () => { if (selfIndex < 0) return - if (payload?.game?.state === "starting") { - const isReady = !userStates[selfIndex].isReady - setIsReady({ isReady, i: selfIndex }) - socket.emit("isReady", isReady) - } - if (payload?.game?.state === "running") { - const i = (selfUser?.moves ?? []) - .map((e) => e.index) - .reduce((prev, curr) => (curr > prev ? curr : prev), 0) - const props = { - type: modes[mode].type, - x: target.x, - y: target.y, - orientation: target.orientation, - index: (selfUser?.moves ?? []).length ? i + 1 : 0, - } - socket.emit("dispatchMove", props) - setTarget((t) => ({ ...t, show: false })) + switch (payload?.game?.state) { + case "starting": + const isReady = !userStates[selfIndex].isReady + setIsReady({ isReady, i: selfIndex }) + socket.emit("isReady", isReady) + break + + case "running": + const i = (selfUser?.moves ?? []) + .map((e) => e.index) + .reduce((prev, curr) => (curr > prev ? curr : prev), 0) + const props = { + type: modes[mode].type, + x: target.x, + y: target.y, + orientation: target.orientation, + index: (selfUser?.moves ?? []).length ? i + 1 : 0, + } + socket.emit("dispatchMove", props) + setTarget((t) => ({ ...t, show: false })) + break } }, }} - > - )} + /> + ) : null}
) } diff --git a/leaky-ships/components/Gamefield/Gamefield.tsx b/leaky-ships/components/Gamefield/Gamefield.tsx index 7d16a62..b51e92c 100644 --- a/leaky-ships/components/Gamefield/Gamefield.tsx +++ b/leaky-ships/components/Gamefield/Gamefield.tsx @@ -20,7 +20,7 @@ import Ships from "./Ships" export const count = 12 function Gamefield() { - const { isActiveIndex, selfUser } = useIndex() + const { selfUser } = useIndex() const router = useRouter() const { userStates, @@ -110,17 +110,15 @@ function Gamefield() { setMouseCursor((e) => ({ ...e, shouldShow: false })) } > - {/* Bordes */} {/* Collumn lettes and row numbers */} - {/* Ships */} - - {(payload?.game?.state !== "running" || !isActiveIndex) && } + + + - {/* Fog images */} {/* */} diff --git a/leaky-ships/components/Gamefield/Item.tsx b/leaky-ships/components/Gamefield/Item.tsx index d3c03b4..ef6ba83 100644 --- a/leaky-ships/components/Gamefield/Item.tsx +++ b/leaky-ships/components/Gamefield/Item.tsx @@ -40,9 +40,7 @@ function Item({ > - ) : ( - <> - )} + ) : null}
{selfUser?.ships.map((props, i) => )} diff --git a/leaky-ships/components/Gamefield/Targets.tsx b/leaky-ships/components/Gamefield/Targets.tsx index 8d1b98c..ef8fe3b 100644 --- a/leaky-ships/components/Gamefield/Targets.tsx +++ b/leaky-ships/components/Gamefield/Targets.tsx @@ -15,52 +15,57 @@ function Targets() { const { payload, target, targetPreview, mode } = useGameProps() const { ships } = useShips() - if (payload?.game?.state === "running") - return ( - <> - {[ - ...composeTargetTiles(target, mode, activeUser?.hits ?? []).map( - (props, i) => , - ), - ...composeTargetTiles( - targetPreview, - mode, - activeUser?.hits ?? [], - ).map((props, i) => ( - - )), - ]} - - ) + switch (payload?.game?.state) { + case "running": + return ( + <> + {[ + ...composeTargetTiles(target, mode, activeUser?.hits ?? []).map( + (props, i) => , + ), + ...composeTargetTiles( + targetPreview, + mode, + activeUser?.hits ?? [], + ).map((props, i) => ( + + )), + ]} + + ) - if (payload?.game?.state === "starting" && mode >= 0 && targetPreview.show) { - const ship = shipProps(ships, mode, targetPreview) - const { fields, borders, score } = intersectingShip(ships, ship) - return ( - <> - 0} - color={fields.length ? "red" : borders.length ? "orange" : undefined} - key={targetPreview.orientation} - props={ship} - /> - ({ ...e, i, hit: true })), - }} - /> - ({ ...e, i, hit: true })), - colorOverride: "orange", - }} - /> - - ) + case "starting": + if (mode < 0 && !targetPreview.show) return null + const ship = shipProps(ships, mode, targetPreview) + const { fields, borders, score } = intersectingShip(ships, ship) + return ( + <> + 0} + color={ + fields.length ? "red" : borders.length ? "orange" : undefined + } + key={targetPreview.orientation} + props={ship} + /> + ({ ...e, i, hit: true })), + }} + /> + ({ ...e, i, hit: true })), + colorOverride: "orange", + }} + /> + + ) + + default: + return null } - - return <> } export default Targets diff --git a/leaky-ships/components/Grid.tsx b/leaky-ships/components/Grid.tsx index ec1c338..db2e8be 100644 --- a/leaky-ships/components/Grid.tsx +++ b/leaky-ships/components/Grid.tsx @@ -86,7 +86,7 @@ function Grid() { className={classNames("tile", { active: active })} style={{ "--delay": pos + "s" } as CSSProperties} onClick={() => doEffect(x, y)} - >
+ /> ) } diff --git a/leaky-ships/components/Grid2.tsx b/leaky-ships/components/Grid2.tsx index e8dd0b9..65a3f2e 100644 --- a/leaky-ships/components/Grid2.tsx +++ b/leaky-ships/components/Grid2.tsx @@ -87,7 +87,7 @@ function Grid2() { className={classNames("tile", active ? "active" : "inactive")} style={{ "--delay": pos + "s" } as CSSProperties} onClick={() => doEffect(x, y)} - > + /> ) } diff --git a/leaky-ships/components/Lobby/Player.tsx b/leaky-ships/components/Lobby/Player.tsx index 6372ddd..5f6d25c 100644 --- a/leaky-ships/components/Lobby/Player.tsx +++ b/leaky-ships/components/Lobby/Player.tsx @@ -78,9 +78,7 @@ function Player({ icon={faCaretDown} /> - ) : ( - <> - )} + ) : null} - {errorType &&
} - {errorType && ( -
- -
- )} + {errorType ? ( + <> +
+
+ +
+ + ) : null} )