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.

🎁 Evidencia = reward mayor

  • Si tu PR incluye capturas de pantalla mostrando esto andando end to end, entra a reward de GrantFox en esta issue.
  • Si además sumás un video demo corto, califica para reward mayor.
  • No es obligatorio, pero pesa mucho en la evaluación.

Qué conviene mostrar en esta issue:

  • Captura del CombatPreviewTooltip al hacer hover sobre un arquero enemigo en bosque, donde se lea el daño estimado ya con el modificador de terreno aplicado.
  • Video corto del caso de aceptación completo: guerrero ataca al arquero en bosque, corre la animación de ataque y el HP del defensor baja según la fórmula.
  • Captura o clip de una unidad cruzando un umbral de XP (50, 100 o 200) y recibiendo la promoción del PromotionTree correspondiente a su tipo.

Pegá las capturas directo en la descripción del PR, arrastrándolas al cuadro de texto de GitHub.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSPart of the GrantFox OSS campaignMaybe RewardedMay be eligible for GrantFox rewardThird CampaignCampaign: Third CampaigngameplayMecanicas de juegogodotPort a Godot 4

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions