Falsificação
![]()
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
| Campo | Valor |
|---|---|
| ID técnico | Forgery |
| Conduta | Conduta Desconhecida |
| Categoria | Utilidade |
| Momento de uso | Meio do dia |
| Momento do efeito | Fim da noite |
| Alvo | Jogador morto da última rodada |
| Tipo de uso | Selecionar e confirmar |
| Usos | 1 por rodada |
| Duração | 1 rodada |
Implementação Técnica
- Cliente:
ForgeryAbilityvalida fase (NightStart), verifica que o caster está vivo e habilidade não usada. Despacha viaPlayerActionManager.UseSystemAbility(Id, targetId). - Servidor (uso):
ForgeryStrategyvalida que o alvo está morto e gravacaster.ForgeryTargetId = targetId. Marcacaster.AbilityUsed = true. Nenhuma cópia acontece ainda. - Servidor (resolução): Em
GameplayService.ResolveNight, o método estáticoForgeryStrategy.ApplyCopyé chamado para cada jogador vivo comForgeryTargetIdpreenchido:- Cria uma nova
AbilityDatacom o nome"{habilidade original} (Cópia)". - Guarda a habilidade atual em
caster.OriginalAbility. - Define
caster.CopiedAbilityTurnsLeft = 2— a cópia sobrevive aoNightEndda rodada corrente e expira noDayStartda rodada seguinte.
- Cria uma nova
- Reversão automática:
PlayerUtility.ResetAbilitiesForNewRounddecrementaCopiedAbilityTurnsLefta cada rodada. Quando chega a zero,caster.Abilityé restaurada paraOriginalAbilityeAbilityUsedé resetado para a habilidade original poder ser usada novamente.
Campos de PlayerData Modificados
| Campo | Efeito |
|---|---|
caster.ForgeryTargetId | ID do jogador morto cujo a habilidade será copiada |
caster.Ability | Substituída pela cópia temporária em NightEnd |
caster.OriginalAbility | Habilidade original salva para restauração futura |
caster.CopiedAbilityTurnsLeft | Contador de rodadas restantes (inicia em 2) |
caster.AbilityUsed | Marcado 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.