38 lines
1.0 KiB
GDScript
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
|