Acolhimento
![]()
Resumo
Escolhe um alvo para ser salvo da execução pública caso ele seja o condenado da rodada.
Como Funciona
Durante o meio do dia, o jogador pode usar esta habilidade uma vez por partida. Ao usá-la, deve selecionar um jogador vivo que não seja ele mesmo. No fim do dia, se o jogador escolhido for o mais votado e condenado pela mesa, a execução é cancelada e ele não morre. A proteção não funciona contra Sequestro.
Leitura de Design
É uma resposta de alto impacto para reverter consenso precipitado e criar dúvida sobre quem está protegendo quem.
Parâmetros Atuais no Projeto
| Campo | Valor |
|---|---|
| ID técnico | Shelter |
| Conduta | Conduta da Ordem |
| Categoria | Defensiva |
| Momento de uso | Meio do dia |
| Momento do efeito | Fim do dia |
| Alvo | Outro jogador vivo |
| Tipo de uso | Selecionar |
| Usos | 1 por partida |
| Duração | Até o fim do dia |
Implementação Técnica
- Cliente:
ShelterAbilityvalida fase (DayMiddle), verifica que o caster está vivo, habilidade não usada, alvo fornecido, existe no estado, não é o próprio caster e está vivo. Despacha viaPlayerActionManager.UseSystemAbility(Id, targetId). - Servidor:
ShelterStrategygravacaster.ShelterTarget = targetIde marcacaster.AbilityUsed = true. Não protege imediatamente — apenas registra a intenção. - Resolução (
ResolveDayEnd): O servidor percorre todos os jogadores vivos verificando se algumShelterTargetaponta para o condenado pendente. Se sim, a execução pendente é cancelada antes de ser processada. Todos osShelterTargetsão limpos ao fim da fase. - Limitação importante: O Acolhimento não protege contra Sequestro. Jogadores com
IsMarkedForDie = truesão processados separadamente emResolveDayEnde morrem independentemente de qualquer abrigo ativo.
Campos de PlayerData Modificados
| Campo | Efeito |
|---|---|
caster.ShelterTarget | ID do jogador protegido; verificado em ResolveDayEnd |
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.