Análise de Conduta

Arte de Análise de Conduta|192

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

CampoValor
ID técnicoBehaviorAnalysis
CondutaConduta da Ordem
CategoriaInformação
Momento de usoNoite
Momento do efeitoFim da noite
AlvoQualquer jogador
Tipo de usoSelecionar
Usos1 por rodada
DuraçãoInstantânea

Implementação Técnica

  • A habilidade está cadastrada em StandardGameConfig.asset como uso noturno, alvo selecionável e resolução instantânea.
  • Cliente: BehaviorAnalysisAbility valida fase (NightStart), verifica que o caster está vivo, habilidade não usada, alvo existe e está vivo. Despacha via PlayerActionManager.UseSystemAbility(Id, targetId).
  • Servidor: BehaviorAnalysisStrategy resolve a conduta do alvo via PlayerUtility.GetRevealedConduct, que respeita a ordem de prioridade: DataManipulation (se ativa) > Dupla Identidade (primeira leitura mascarada) > conduta real.
  • O resultado é armazenado em caster.InvestigatedPlayers como InvestigatedPlayerData com Conduct preenchido e Team = 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.cs via DI como AddSingleton<IAbilityStrategy, BehaviorAnalysisStrategy>.

Interações

  • Dupla Identidade: Na primeira leitura, retorna ConductType.Good e marca o investigador em DoubleIdentityPiercedBy. 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.

Ver Também