Últimas Palavras
![]()
Resumo
Define previamente qual jogador terá a conduta revelada quando o usuário morrer.
Como Funciona
Durante a noite, o jogador pode selecionar um alvo quantas vezes quiser ao longo da partida — não há limite de uso. Ao selecionar, aponta para qualquer jogador vivo ou morto. Quando o portador da habilidade for eliminado (por votação, Execução ou Infecção), a conduta do jogador apontado é revelada publicamente para todos na mesa, caso ele ainda esteja vivo.
Leitura de Design
É uma ameaça pós-morte que obriga o restante da mesa a considerar o custo de eliminar o portador cedo demais.
Parâmetros Atuais no Projeto
| Campo | Valor |
|---|---|
| ID técnico | LastWords |
| Conduta | Conduta Desconhecida |
| Categoria | Utilidade |
| Momento de uso | Noite |
| Momento do efeito | Ao ser eliminado |
| Alvo | Outro jogador |
| Tipo de uso | Selecionar |
| Usos | Ilimitado para remarcar |
| Duração | Dispara na própria morte |
Implementação Técnica
- Cliente:
LastWordsAbilityvalida fase (NightStart) e que a habilidade não foi usada. Despacha viaPlayerActionManager.UseSystemAbility(Id, targetId). - Servidor (uso):
LastWordsStrategysimplesmente atualizacaster.LastWordsTarget = targetId. Não marcaAbilityUsed— o jogador pode remarcar o alvo quantas vezes quiser ao longo da partida. - Disparo automático:
PlayerUtility.HandleLastWordsé chamada sempre que o portador morre, em três cenários:- Morte por Execução (
ExecutionStrategy) - Morte por votação (
ResolveDayEnd) - Morte por Infecção (
InfectionResolver)
- Morte por Execução (
- Efeito: Se
LastWordsTargetapontar para um jogador vivo, a conduta dele é revelada globalmente viatarget.GlobalRevealedConductetarget.IsConductRevealed = true. A revelação usaPlayerUtility.GetRevealedConduct, então Manipulação de Dados e Dupla Identidade influenciam o resultado.
Campos de PlayerData Modificados
| Campo | Efeito |
|---|---|
caster.LastWordsTarget | ID do alvo; atualizado livremente, sem custo de carga |
target.IsConductRevealed | Definido como true ao disparar |
target.GlobalRevealedConduct | Conduta resolvida gravada para visibilidade global |
Estado no Projeto Atual
- Implementada com seleção persistente e disparo automático na morte.
- Se a implementação final mudar no jogo, esta nota deve acompanhar o código e não o contrário.