Sistema centralizado de combate usado por todos os modos de batalha do jogo.
/lib/combat/core/
├── damageCalculator.js (231 linhas) - Cálculo de dano, cura e modificadores
├── hitChecker.js (103 linhas) - Sistema de acerto/esquiva
└── elementalSystem.js (37 linhas) - Vantagens elementais
Modo Treinamento IA:
// /lib/combat/battle/engine.js
import { testarAcertoAtaque } from '@/lib/combat/core/hitChecker';
import { calcularDanoAtaque } from '@/lib/combat/core/damageCalculator';Modo PVP:
// /app/api/pvp/room/state/handlers/handleAttack.js
import { testarAcertoAtaque } from '@/lib/combat/core/hitChecker';
import { calcularDanoAtaque } from '@/lib/combat/core/damageCalculator';calcularDanoAtaque()- Dano de ataque básicocalcularDanoHabilidade()- Dano de habilidadescalcularCuraHabilidade()- Cura de habilidades- Aplicação de modificadores: exaustão, vínculo, elemental, crítico, bloqueio
testarAcertoAtaque()- Verifica se ataque básico acertatestarAcertoHabilidade()- Verifica se habilidade acerta- Lógica de evasão, invisibilidade, buffs
calcularMultiplicadorElemental()- Calcula vantagem elemental- Matriz de vantagens/desvantagens entre elementos
Antes:
- ❌
damageCalculator.jsduplicado em 2 lugares (462 linhas) - ❌
hitChecker.jsduplicado em 2 lugares (206 linhas) - ❌
elementalSystem.jsduplicado em 2 lugares (74 linhas) - ❌ Total: ~742 linhas duplicadas
Depois:
- ✅ Arquivo único para cada módulo
- ✅ ~742 linhas eliminadas
- ✅ Garantia de consistência entre modos
- ✅ Manutenção centralizada
- Consistência: Mesmos cálculos em PVP e Treinamento
- Manutenção: Uma mudança afeta todos os modos
- Balanceamento: Ajustes centralizados facilitam equilíbrio
- Redução de Bugs: Sem inconsistências entre duplicatas
- Testes: Testar uma vez garante todos os modos
- 2024-12-04: Biblioteca criada consolidando duplicatas de
/lib/combat/battle/combat/e/app/api/pvp/room/state/combat/