diff --git a/src/game/engine/src/entities/unit.gd b/src/game/engine/src/entities/unit.gd index ceef0742..d93d36b8 100644 --- a/src/game/engine/src/entities/unit.gd +++ b/src/game/engine/src/entities/unit.gd @@ -121,6 +121,21 @@ func _populate_from_data() -> void: # ── Per-turn refresh (called by turn_processor.gd) ──────────────────── +## Accumulate experience points from combat or events. Called by +## CombatResolver after each resolved engagement for surviving units. +func gain_xp(amount: int) -> void: + if amount <= 0: + return + xp += amount + + +## Whether this unit is eligible to pick a new promotion. Arena-mode games +## don't use the promotion system, so this is a minimal stub returning false. +## Replace with a real threshold check when the promotion pipeline is built. +func can_promote() -> bool: + return false + + ## Reset per-turn state flags. Called at the top of each player turn. func refresh_turn() -> void: movement_remaining = get_movement()