Sequestro
![]()
Resumo
Remove um jogador do fluxo normal da rodada, suprimindo participação e encaminhando a eliminação ao final da janela.
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. Durante o dia seguinte, o jogador sequestrado fica impedido de votar, falar e usar habilidades. Ao fim desse dia, o sequestrado é eliminado automaticamente — essa eliminação não pode ser bloqueada pelo Acolhimento.
Leitura de Design
É uma pressão forte porque mistura controle social com ameaça letal, sem depender de consenso da mesa.
Parâmetros Atuais no Projeto
| Campo | Valor |
|---|---|
| ID técnico | Kidnap |
| Conduta | Conduta do Caos |
| Categoria | Ofensiva |
| Momento de uso | Noite |
| Momento do efeito | Fim do dia |
| Alvo | Outro jogador vivo |
| Tipo de uso | Selecionar |
| Usos | 1 por rodada |
| Duração | Até o fim do dia |
Implementação Técnica
- O GameConfig define
Kidnapcomo uso noturno com duração atéOnDayEnd. - Cliente:
KidnapAbilityvalida fase (NightStart), verifica que o caster existe, habilidade não usada, alvo fornecido, alvo existe, não é o próprio caster e está vivo. Despacha viaPlayerActionManager.UseSystemAbility(Id, targetId). - Servidor:
KidnapStrategyaplica dois efeitos simultâneos no alvo:target.IsKidnapped = true— suprime a participação do alvo durante o dia (não pode votar, falar, usar habilidades).target.IsMarkedForDie = true— agenda a eliminação automática no fim do dia, processada porResolveDayEndnoGameplayService.
- Registrada em
ModuleConfig.csvia DI comoAddSingleton<IAbilityStrategy, KidnapStrategy>.
Campos de PlayerData Modificados
| Campo | Efeito |
|---|---|
target.IsKidnapped | Suprime participação diurna |
target.IsMarkedForDie | Eliminação automática no fim do dia |
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.