extends Sprite2D @onready var ATB = $battle_menu/ATB @onready var ActionState = $battle_menu/ActionState var NextAction var ActionReady = false func _ready(): var menu = $battle_menu var item = menu.add_action($Combatant/Actions/attack) item.action_selected.connect(do_action) item.action.action_finished.connect(action_done) item = menu.add_action($Combatant/Actions/spin_attack) item.action_selected.connect(do_action) item.action.action_finished.connect(action_done) func _process(delta): var combatant = $Combatant if ActionReady and ATB.value == 100: NextAction.execute() ActionState.text = "Action Executing: %s" % NextAction.ActionName combatant.ATBCurrent = 0 ATB.value = 0 ActionReady = false return combatant.tick_atb(delta) ATB.value = combatant.ATBCurrent func do_action(action): ActionState.text = "Action Queued: %s" % action.ActionName NextAction = action ActionReady = true func action_done(): ActionState.text = ""