Sequestro

Arte de Sequestro|192

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

CampoValor
ID técnicoKidnap
CondutaConduta do Caos
CategoriaOfensiva
Momento de usoNoite
Momento do efeitoFim do dia
AlvoOutro jogador vivo
Tipo de usoSelecionar
Usos1 por rodada
DuraçãoAté o fim do dia

Implementação Técnica

  • O GameConfig define Kidnap como uso noturno com duração até OnDayEnd.
  • Cliente: KidnapAbility valida 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 via PlayerActionManager.UseSystemAbility(Id, targetId).
  • Servidor: KidnapStrategy aplica 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 por ResolveDayEnd no GameplayService.
  • Registrada em ModuleConfig.cs via DI como AddSingleton<IAbilityStrategy, KidnapStrategy>.

Campos de PlayerData Modificados

CampoEfeito
target.IsKidnappedSuprime participação diurna
target.IsMarkedForDieEliminação automática no fim do dia
caster.AbilityUsedMarcado 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.

Ver Também