extends Control onready var hero = get_node("../..") onready var bar = get_node("Bar") onready var available = get_node("Available") export var cost = 1 export var ability_name = "Ability" export var display_progress = true export var action = "" # This is intended to be public var disabled = false func _ready(): get_node("Name").text = ability_name var description if action: var primary = InputMap.get_action_list(action)[0] if primary is InputEventMouseButton: if primary.button_index == BUTTON_LEFT: description = "Click" elif primary.button_index == BUTTON_RIGHT: description = "Right Click" else: description = "Scroll Click" else: description = primary.as_text() else: description = "" get_node("Button").text = description func is_pressed(): return Input.is_action_pressed(action) func _process(delta): if action and Input.is_action_pressed(action): available.rect_position = Vector2(-25, -25) # Centered / not offset else: available.rect_position = Vector2(-30, -30) if disabled: available.hide() bar.value = 0 else: if display_progress: if cost == 0: bar.value = 100 if hero.charge > 0 else 0 else: bar.value = 100 * hero.charge / cost if hero.charge > cost: available.show() else: available.hide()