Análise de Conduta
![]()
Resumo
Faz uma leitura de conduta para descobrir se o alvo é da Ordem, do Caos ou desconhecido.
Como Funciona
Durante a noite, o jogador pode usar esta habilidade uma vez por rodada. Ao usá-la, deve selecionar um jogador vivo. No fim da noite, recebe em privado a conduta aparente do alvo: Ordem, Caos ou Desconhecida. O resultado pode ser distorcido se o alvo estiver sob efeito de Manipulação de Dados ou na primeira leitura de Dupla Identidade.
Leitura de Design
É a leitura social mais direta do jogo, mas abre espaço para blefes e distorções quando encontra habilidades de camuflagem.
Parâmetros Atuais no Projeto
| Campo | Valor |
|---|---|
| ID técnico | BehaviorAnalysis |
| Conduta | Conduta da Ordem |
| Categoria | Informação |
| Momento de uso | Noite |
| Momento do efeito | Fim da noite |
| Alvo | Qualquer jogador |
| Tipo de uso | Selecionar |
| Usos | 1 por rodada |
| Duração | Instantânea |
Implementação Técnica
- A habilidade está cadastrada em
StandardGameConfig.assetcomo uso noturno, alvo selecionável e resolução instantânea. - Cliente:
BehaviorAnalysisAbilityvalida fase (NightStart), verifica que o caster está vivo, habilidade não usada, alvo existe e está vivo. Despacha viaPlayerActionManager.UseSystemAbility(Id, targetId). - Servidor:
BehaviorAnalysisStrategyresolve a conduta do alvo viaPlayerUtility.GetRevealedConduct, que respeita a ordem de prioridade: DataManipulation (se ativa) > Dupla Identidade (primeira leitura mascarada) > conduta real. - O resultado é armazenado em
caster.InvestigatedPlayerscomoInvestigatedPlayerDatacomConductpreenchido eTeam = None(revela apenas conduta, não time). - Entradas anteriores do mesmo alvo são removidas antes de inserir o novo resultado, evitando duplicatas entre rodadas.
- Registrada em
ModuleConfig.csvia DI comoAddSingleton<IAbilityStrategy, BehaviorAnalysisStrategy>.
Interações
- Dupla Identidade: Na primeira leitura, retorna
ConductType.Goode marca o investigador emDoubleIdentityPiercedBy. Leituras seguintes pelo mesmo investigador revelam a conduta real. - Manipulação de Dados: Se o alvo tiver
DataManipulationConduct != None, a conduta falsa tem prioridade absoluta sobre qualquer outra mascaração.
Estado no Projeto Atual
- Implementada de ponta a ponta no cliente e servidor.
- Se a implementação final mudar no jogo, esta nota deve acompanhar o código e não o contrário.