Skip to content

Godot: sistema de combate (tipos, terreno, flanqueo, experiencia) #40

Description

@leocagli

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

  • UnitData.gd (recurso): type, hp, max_hp, attack, defense, movement, xp
  • CombatResolver.gd: función pura resolve(attacker, defender, terrain, flankers) -> CombatResult
  • PromotionTree.gd: lista de promociones por tipo de unidad con efectos
  • CombatPreviewTooltip.tscn: muestra daño estimado al hover sobre unidad enemiga en rango
  • Conectar resultado de combate con sistema de animaciones (#godot-animations)
  • Verificar que CombatResult es serializable para incluir en la acción ZK

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gameplayMecanicas de juegogodotPort a Godot 4

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions