extends Node enum PlayerClass { TANK, DAMAGE, HEALER } var current_class: int = PlayerClass.DAMAGE @export var tank_set: AbilitySet @export var damage_set: AbilitySet @export var healer_set: AbilitySet @onready var player: CharacterBody3D = get_parent() func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("class_tank"): set_class(PlayerClass.TANK) elif event.is_action_pressed("class_damage"): set_class(PlayerClass.DAMAGE) elif event.is_action_pressed("class_healer"): set_class(PlayerClass.HEALER) func set_class(new_class: int) -> void: current_class = new_class EventBus.class_changed.emit(player, current_class) func get_class_icon() -> String: match current_class: PlayerClass.TANK: return "T" PlayerClass.DAMAGE: return "D" PlayerClass.HEALER: return "H" return "" func get_ability_set() -> AbilitySet: match current_class: PlayerClass.TANK: return tank_set PlayerClass.DAMAGE: return damage_set PlayerClass.HEALER: return healer_set return damage_set