Intervenção
![]()
Resumo
Cancela a execução pendente do fim do dia e impede que o condenado morra naquela janela.
Como Funciona
No fim do dia, depois que a votação já encerrou e um jogador foi condenado, o jogador pode usar esta habilidade uma vez por partida. Não é necessário selecionar nenhum alvo. Imediatamente, a execução pendente é cancelada e o condenado não morre naquela rodada.
Leitura de Design
É um salva-vidas político para o time maligno e pode virar a narrativa de uma rodada inteira com uma única decisão.
Parâmetros Atuais no Projeto
| Campo | Valor |
|---|---|
| ID técnico | Intervention |
| Conduta | Conduta do Caos |
| Categoria | Utilidade |
| Momento de uso | Fim do dia |
| Momento do efeito | Imediato no fim do dia |
| Alvo | Sistema de votação |
| Tipo de uso | Selecionar |
| Usos | 1 por partida |
| Duração | Instantânea |
Implementação Técnica
- Cliente:
InterventionAbilityvalida fase (DayEnd) e que a habilidade não foi usada. Não requer alvo — age sobre o sistema de votação global. Despacha viaPlayerActionManager.UseSystemAbility(Id)semtargetId. - Servidor:
InterventionStrategymarcacaster.AbilityUsed = true, chama_stateService.ClearPendingExecution(context, lobbyId)e depois_stateService.SaveMatchState(...). - A chamada
ClearPendingExecutionremove a fila de execução pendente do estado da partida, de modo que emResolveDayEndnão haverá ninguém para executar. - A Intervenção não cancela jogadores marcados com
IsMarkedForDie(Sequestro). Apenas a execução por votação é anulada.
Campos de PlayerData Modificados
| Campo | Efeito |
|---|---|
caster.AbilityUsed | Marcado como true |
| Estado global da partida | Fila de execução pendente limpa via ClearPendingExecution |
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.