Falsificação

Arte de Falsificação|192

Resumo

Marca um jogador morto para copiar a habilidade dele e usá-la temporariamente na rodada seguinte.

Como Funciona

Durante a noite, o jogador pode usar esta habilidade uma vez por rodada. Ao usá-la, deve selecionar um jogador que esteja morto. No fim da noite, o jogador recebe uma cópia temporária da habilidade do morto escolhido e pode usá-la na próxima rodada. A cópia dura exatamente uma rodada e depois a habilidade original é restaurada automaticamente.

Leitura de Design

É uma ferramenta de adaptação; o valor dela depende do cadáver disponível e da leitura de qual habilidade vale roubar naquele contexto.

Parâmetros Atuais no Projeto

CampoValor
ID técnicoForgery
CondutaConduta Desconhecida
CategoriaUtilidade
Momento de usoMeio do dia
Momento do efeitoFim da noite
AlvoJogador morto da última rodada
Tipo de usoSelecionar e confirmar
Usos1 por rodada
Duração1 rodada

Implementação Técnica

  • Cliente: ForgeryAbility valida fase (NightStart), verifica que o caster está vivo e habilidade não usada. Despacha via PlayerActionManager.UseSystemAbility(Id, targetId).
  • Servidor (uso): ForgeryStrategy valida que o alvo está morto e grava caster.ForgeryTargetId = targetId. Marca caster.AbilityUsed = true. Nenhuma cópia acontece ainda.
  • Servidor (resolução): Em GameplayService.ResolveNight, o método estático ForgeryStrategy.ApplyCopy é chamado para cada jogador vivo com ForgeryTargetId preenchido:
    • Cria uma nova AbilityData com o nome "{habilidade original} (Cópia)".
    • Guarda a habilidade atual em caster.OriginalAbility.
    • Define caster.CopiedAbilityTurnsLeft = 2 — a cópia sobrevive ao NightEnd da rodada corrente e expira no DayStart da rodada seguinte.
  • Reversão automática: PlayerUtility.ResetAbilitiesForNewRound decrementa CopiedAbilityTurnsLeft a cada rodada. Quando chega a zero, caster.Ability é restaurada para OriginalAbility e AbilityUsed é resetado para a habilidade original poder ser usada novamente.

Campos de PlayerData Modificados

CampoEfeito
caster.ForgeryTargetIdID do jogador morto cujo a habilidade será copiada
caster.AbilitySubstituída pela cópia temporária em NightEnd
caster.OriginalAbilityHabilidade original salva para restauração futura
caster.CopiedAbilityTurnsLeftContador de rodadas restantes (inicia em 2)
caster.AbilityUsedMarcado como true na seleção; resetado na reversão

Estado no Projeto Atual

  • Implementada com cópia diferida no fim da noite e reversão automática em rodada futura.
  • Se a implementação final mudar no jogo, esta nota deve acompanhar o código e não o contrário.

Histórico

  • Nome legado no material importado: Parasita.

Ver Também