Files
mmo/scripts/player/player_class.gd
2026-03-29 16:05:31 +02:00

38 lines
1.0 KiB
GDScript

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