“Por Favor Não Corte Minha Cabeça!” é um jogo festivo carregado de sangue e risadas onde os jogadores tentam sobreviver a um acampamento de verão que está sendo aterrorizado pelo assassino Escalpo (GEEKS N’ ORCS, 2019).
Disponível para compra tanto na Amazon quanto na Steam, o jogo de cartas simula um acampamento onde os jogadores disputam sua sobrevivência com o Escalpo de modo a coletar as “bolsinhas de vida” (pontos do jogo) de cada turno.
Uma vez que cada um dos jogadores foi o Escalpo do turno, vence o jogo aquele que possui mais pontos.
Neste repositório está contida uma representação deste jogo num ambiente online multijogador através de uma aplicação web utilizando sockets.
Como o projeto é feito em Javascript, é necessário possuir a versão 18.18.2 do Node.
Garanta que você possua a versão do Node especificada com o comando:
$ node -v
v18.18.2
Uma vez que a versão do Node esteja correta, obtém-se o código fonte da aplicação seguindo os seguintes passos:
$ git clone https://github.com/luskas8/card-game.git
$ cd card-game
$ npm run install-dev-deps
Certifique-se de criar um arquivo .env
no diretório raiz da aplicação contendo as variáveis de ambiente presentes no arquivo .env.example
ou então adicione estas variáveis direto no ambiente.
$ cp .env.example .env
Uma vez que o código fonte esteja na sua máquina, que as dependências do projeto estejam instaladas, e que as variáveis de ambiente estejam corretas, basta levantar aplicação com o comando:
$ npm run dev
- Remover informação de quem é o host do jogador
hostId = socketId
- Cartas escolhidas estarem no turno e não no jogador
{'playerId': [<card-1>, <card-2>]}
- Remover "ready"
- Escalpo ficar na Rodada (Round) (killerId = socketId)
- Criar função getKillerIds (função do Game)
- Remover
_playersNotWasKillerSocketID
e transformar numa função deGame
que itera pelos players do jogo e dos killerIds da rodada - Transformar
GameStates
em "o jogo foi iniciado ou não?" (booleano = wasGameStarted) (ajustar função start) - Matar
inUse
eplayerSocketId
doCharacter
e transformar em função deGame (getAvailableCharacters)
- Matar funções
reset
efindByFavoriteAction
de Character - Começar o jogo retorna o
killerId
e atribuí a ação favorita para o Zeca - Melhorar os testes das entidades
- Resetar o jogo quando já começou mas teve uma desconexão que resultou em menos jogadores que o mínimo permitido
- Reconexão