extends Node const XP_PER_ENEMY: int = 3 const XP_PER_BOSS: int = 30 func _ready() -> void: EventBus.entity_died.connect(_on_entity_died) func _on_entity_died(entity: Node) -> void: if not entity or not is_instance_valid(entity): return if not entity.is_in_group("enemies"): return var is_boss: bool = entity.is_in_group("boss") var data_source: Node = BossData if is_boss else EnemyData var scale_val: Variant = data_source.get_stat(entity, "scale") var scale: float = scale_val if scale_val != null else 1.0 var base_xp: int = XP_PER_BOSS if is_boss else XP_PER_ENEMY PlayerData.add_xp(int(base_xp * scale))