Objetivo
Implementar el sistema de combate con tipos de unidades, fórmula de daño, bonificaciones de terreno y flanqueo, y sistema de experiencia.
Alcance
- Tabla de tipos de unidad: guerrero, arquero, caballero, catapulta, colono, explorador
- Fórmula de daño:
dmg = (ataque / defensa) * 30 * terrain_mod * flank_mod
- Modificadores de terreno: +25% defensa en bosque/colinas, +50% en ciudad
- Flanqueo: −10% defensa por cada unidad enemiga adicional adyacente
- Sistema de experiencia: +10 XP por combate, promoción a 50/100/200 XP
- Tooltip de preview de combate antes de confirmar ataque
- Integración con EventBus: emitir
unit_attacked, unit_died
Skill de referencia
/godot-combat-system
Tareas
Aceptación
Un guerrero ataca a un arquero en bosque: el daño calculado incluye el modificador de terreno, la animación de ataque se reproduce y el XP se acredita al vencedor.
Objetivo
Implementar el sistema de combate con tipos de unidades, fórmula de daño, bonificaciones de terreno y flanqueo, y sistema de experiencia.
Alcance
dmg = (ataque / defensa) * 30 * terrain_mod * flank_modunit_attacked,unit_diedSkill de referencia
/godot-combat-systemTareas
UnitData.gd(recurso):type,hp,max_hp,attack,defense,movement,xpCombatResolver.gd: función puraresolve(attacker, defender, terrain, flankers) -> CombatResultPromotionTree.gd: lista de promociones por tipo de unidad con efectosCombatPreviewTooltip.tscn: muestra daño estimado al hover sobre unidad enemiga en rangoCombatResultes serializable para incluir en la acción ZKAceptación
Un guerrero ataca a un arquero en bosque: el daño calculado incluye el modificador de terreno, la animación de ataque se reproduce y el XP se acredita al vencedor.