Voto Secreto

Arte de Voto Secreto|192

Resumo

Transforma a votação pública da rodada em uma votação anônima.

Como Funciona

Durante o início do dia, o jogador pode usar esta habilidade uma vez por partida. Não é necessário selecionar nenhum alvo. O modo de votação da rodada muda para anônimo antes da fase de votação começar: os votos continuam valendo normalmente, mas ninguém consegue ver quem votou em quem durante aquela rodada.

Ativar no início do dia garante que o flag de votação anônima se propague para todos os clientes (via poll do Lobby a cada ~2s) antes do meio do dia começar. Se fosse ativada no meio do dia, jogadores que votassem imediatamente depois ainda enviariam mensagens públicas de voto por causa do cache defasado.

⚠️ Mudança de design decidida (2026-06-21, a implementar). Para dar utilidade da habilidade aos Sobreviventes, decidiu-se que quem usa Voto Secreto continua vendo quem votou em quem — o anonimato vale para o resto da mesa, não para o conjurador. Assim o usuário ganha uma informação privada: cruzar quem de fato votou contra quem dizia desconfiar de quem. A descrição técnica abaixo ainda reflete o comportamento atual (votos ocultos para todos); atualizar quando a mudança for implementada. Contexto e uso pelos bots em Comportamento dos Bots.

Leitura de Design

Troca clareza por paranoia, ideal para quebrar leitura de coalizão e enfraquecer rastros de voto.

Parâmetros Atuais no Projeto

CampoValor
ID técnicoSecretVote
CondutaConduta Desconhecida
CategoriaUtilidade
Momento de usoInício do dia
Momento do efeitoFim do dia
AlvoSistema de votação
Tipo de usoSelecionar
Usos1 por partida
DuraçãoAté o fim do dia

Implementação Técnica

  • Cliente: SecretVoteAbility valida fase (DayStart) e que a habilidade não foi usada. Não requer alvo — age sobre o sistema de votação global. Despacha via PlayerActionManager.UseSystemAbility(Id) sem targetId.
  • Servidor: SecretVoteStrategy marca caster.AbilityUsed = true, persiste o estado e retorna a string especial "SECRET_VOTE_ACTIVATED".
  • Sinalização para o cliente: O resultado "SECRET_VOTE_ACTIVATED" é interceptado pelo GameStateManager no cliente, que ativa o modo de votação anônima na interface — os votos individuais ficam ocultos durante a rodada.
  • O efeito dura até o fim do dia corrente. A votação continua existindo, mas sem exibir publicamente quem votou em quem.

Campos de PlayerData Modificados

CampoEfeito
caster.AbilityUsedMarcado como true
Estado global da partidaSECRET_VOTE_ACTIVATED sinalizado ao cliente para ativar modo anônimo

Estado no Projeto Atual

  • Implementada como ativação de modo especial de votação.
  • Se a implementação final mudar no jogo, esta nota deve acompanhar o código e não o contrário.

Ver Também