fonte public/fxmoves/tmsingle.jsonbuscando… reler
velocidade 1× 0.5× 0.25× zoom 1× 2× 3× grade repetir pausar +100 ms
quadrado interno = o alvo , 1 tile (32 px) · quadrado externo = pegada de 3×3 (96 px, o tamanho da folha do Fogo) · o efeito sai no tile do alvo , não na posição do conjurador — o círculo embaixo é só referência de escala.
disparar Fogo — Zenith Inferno tipo estado
NormalZenith Impact … FogoZenith Inferno … ÁguaZenith Maelstrom … ElétricoZenith Voltage … PlantaZenith Bloom … GeloZenith Glacier … LutadorZenith Onslaught … VenenoZenith Venom … TerraZenith Tremor … VoadorZenith Gale … PsíquicoZenith Mindbreak … InsetoZenith Swarm … PedraZenith Bedrock … FantasmaZenith Requiem … DragãoZenith Wyrmfall … SombrioZenith Eclipse … AçoZenith Alloy … FadaZenith Radiance … O desenho acima é o motor do jogo: castTmSingle → addOtb → drawOtbFx, copiados de app/play/MapView.tsx (type MaxCamada 4065-4065 · OTB_FX 3035-3192 · otbSheet + getOtb 3193-3201 · otbFx + addOtb 3399-3415 · drawOtbFx 3879-3902 · TM SINGLE (tabela + aplicaTmSingleJson + castTmSingle) 4464-4541) por /root/pwg-fxteste-sync.mjs. Cópia c41f3506024c , gerada em 2026-09-06T13:48:56.970Z.
🔴 É CÓPIA. Se o motor mudar no MapView.tsx e ninguém sincronizar, esta tela desenha o motor VELHO sem erro nenhum e a aprovação vira mentira. Confira com pwg-fxteste-sync --ver (rc 1 se divergiu) e regrave com pwg-fxteste-sync. A tabela de camadas NÃO é cópia: vem do mesmotmsingle.json que o jogo lê, pela mesma aplicaTmSingleJson.