49 lines
1.4 KiB
GDScript
49 lines
1.4 KiB
GDScript
extends HSplitContainer
|
|
|
|
class_name LevelDisplay
|
|
|
|
var currentSkill:Skill
|
|
|
|
var skillIconDisplay:TextureRect
|
|
var skillNameDisplay:Label
|
|
var skillLevelDisplay:Label
|
|
var skillXPBar:ProgressBar
|
|
|
|
func _ready():
|
|
skillIconDisplay = get_node("SkillIcon")
|
|
skillNameDisplay = get_node("VSplitContainer/HSplitContainer/SkillName")
|
|
skillLevelDisplay = get_node("VSplitContainer/HSplitContainer/SkillLevel")
|
|
skillXPBar = get_node("VSplitContainer/XPBar")
|
|
|
|
func _process(_delta):
|
|
if currentSkill != null:
|
|
update_xp_bar()
|
|
update_level()
|
|
update_skill_info(currentSkill)
|
|
|
|
func update_xp_bar():
|
|
skillXPBar.value = currentSkill.currentXP
|
|
skillXPBar.max_value = LevelManager.get_XP_to_next_level(currentSkill.currentLevel)
|
|
var currentXPString = XpDisplayUtils.xpFormater(currentSkill.currentXP, true)
|
|
|
|
if skillXPBar.max_value <= 9999999:
|
|
var maxXPString = XpDisplayUtils.xpFormater(skillXPBar.max_value, true)
|
|
skillXPBar.get_node("XPLabel").text = currentXPString + "/" + maxXPString + "XP"
|
|
else:
|
|
skillXPBar.get_node("XPLabel").text = currentXPString + "XP"
|
|
|
|
func update_level():
|
|
skillLevelDisplay.text = "Lv. " + str(currentSkill.currentLevel)
|
|
|
|
func update_skill_info(skill:Skill):
|
|
if !skill.hidden:
|
|
skillIconDisplay.texture = currentSkill.get_icon()
|
|
skillNameDisplay.text = currentSkill.skillName
|
|
else:
|
|
skillIconDisplay.texture = currentSkill.hiddenIcon
|
|
skillNameDisplay.text = "???"
|
|
|
|
func set_skill(skill:Skill):
|
|
currentSkill = skill
|
|
update_skill_info(currentSkill)
|