Investigação Profunda
![]()
Resumo
Marca um alvo à noite para receber a revelação do time dele ao final da resolução noturna.
Como Funciona
Durante a noite, o jogador pode usar esta habilidade uma vez por rodada. Ao usá-la, deve selecionar um jogador vivo que não seja ele mesmo. No fim da noite, recebe em privado o time real do alvo: Sobrevivente, Fascista, Fanático ou Mercenário. Diferente da Análise de Conduta, revela o time e não a conduta — mas ainda pode ser mascarado pela primeira leitura de Dupla Identidade.
Leitura de Design
É uma leitura mais profunda do que Análise de Conduta porque trabalha com time real, não apenas aparência superficial.
Parâmetros Atuais no Projeto
| Campo | Valor |
|---|---|
| ID técnico | DeepInvestigation |
| Conduta | Conduta da Ordem |
| Categoria | Informação |
| Momento de uso | Noite |
| Momento do efeito | Fim da noite |
| Alvo | Outro jogador vivo |
| Tipo de uso | Selecionar |
| Usos | 1 por rodada |
| Duração | Instantânea |
Implementação Técnica
- Cliente:
DeepInvestigationAbilityvalida fase (NightStart), verifica que a habilidade não foi usada. Despacha viaPlayerActionManager.UseSystemAbility(Id, targetId). - Servidor (uso):
InvestigationStrategyvalida que o alvo não é o próprio caster, está vivo e existe. Gravacaster.DeepInvestigationTarget = targetIde marcacaster.AbilityUsed = true. Nenhuma revelação acontece ainda. - Servidor (resolução): Em
GameplayService.ResolveNight, cada jogador comDeepInvestigationTargetpreenchido recebe o resultado:- Chama
PlayerUtility.GetRevealedTeam(target, caster.Id)para resolver o time com as mascarações cabíveis. - Adiciona uma entrada em
caster.InvestigatedPlayerscomTeampreenchido eConduct = None(revela time, não conduta).
- Chama
- Diferença em relação à Análise de Conduta: revela time (
Survivor,Fascist, etc.), não conduta (Good,Bad,Unknown). É uma informação mais específica e difícil de falsificar. - Interação com Dupla Identidade:
GetRevealedTeamaplica as mesmas regras — na primeira leitura por aquele investigador, retornaTeamType.Survivor.
Campos de PlayerData Modificados
| Campo | Efeito |
|---|---|
caster.DeepInvestigationTarget | ID do alvo; lido em ResolveNight |
caster.InvestigatedPlayers | Entrada adicionada com Team resolvido e Conduct = None |
caster.AbilityUsed | Marcado como true |
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.