feat(jogo): expediente dos mortos, jogo de zumbis em primeira pessoa
Etapa 1 inteira (logica com 100% de cobertura, cena 3D, toque, sons, bancada de desempenho, e2e) e a base da etapa 2 (mapa novo no Tiled, texturas, imagens dos itens, sons conferidos, golpe recortado e medido). Pagina /jogo fora do menu e do sitemap ate a medicao no celular.
This commit is contained in:
1 parent
c7d09d63d4
commit
67b32fcab3
118 files changed
+16730
No files matched your search
@@ -0,0 +1,34 @@
|
||||
import type { Metadata } from "next";
|
||||
import Bancada from "../Bancada";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Bancada do jogo",
|
||||
robots: { index: false, follow: false },
|
||||
};
|
||||
|
||||
/** Inteiro da busca, dentro de `[min, max]`; ausente ou inválido vira `padrao`. */
|
||||
function inteiro(
|
||||
valor: string | string[] | undefined,
|
||||
padrao: number,
|
||||
min: number,
|
||||
max: number,
|
||||
) {
|
||||
const numero = Number.parseInt(String(valor), 10);
|
||||
return Number.isFinite(numero)
|
||||
? Math.min(max, Math.max(min, numero))
|
||||
: padrao;
|
||||
}
|
||||
|
||||
export default async function BancadaPage({
|
||||
searchParams,
|
||||
}: {
|
||||
searchParams: Promise<Record<string, string | string[] | undefined>>;
|
||||
}) {
|
||||
const busca = await searchParams;
|
||||
return (
|
||||
<Bancada
|
||||
zumbis={inteiro(busca.zumbis, 16, 1, 64)}
|
||||
seg={inteiro(busca.seg, 20, 2, 120)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user