class_name Tavern extends Control @onready var data: Data = $/root/Root/Data @onready var selected: GridContainer = $NinePatchRect3/GridContainer @onready var library: GridContainer = $NinePatchRect2/GridContainer @onready var zone: Control = $NinePatchRect/zone @onready var icon = $NinePatchRect/zone/Icon @onready var nam = $NinePatchRect/zone/Name @onready var rarity = $NinePatchRect/zone/Rarity @onready var description = $NinePatchRect/zone/Description @onready var damage = $NinePatchRect/zone/Damage @onready var buttonBase: PackedScene = load("res://Scenes/UI/spellButton.tscn") var selectedButton: SpellButton # Called when the node enters the scene tree for the first time. func _ready(): var spells: Array[Spell] = data.unlockedSpells.duplicate() for spell: Spell in data.spellbook.spells: if (spell == null): continue spells.erase(spell) var button: SpellButton = buttonBase.instantiate() button.spell = spell button.connect("spellClicked", displaySpell) selected.add_child(button) for spell: Spell in spells: var button: SpellButton = buttonBase.instantiate() button.spell = spell button.connect("spellClicked", displaySpell) library.add_child(button) func displaySpell(spellButton: SpellButton): zone.show() selectedButton = spellButton icon.texture = selectedButton.spell.icon nam.text = "[center]%s[/center]" % selectedButton.spell.name rarity.text = "[center]%s[/center]" % data.Rarity.find_key(selectedButton.spell.rarity) description.text = "[center]%s[/center]" % selectedButton.spell.description var text: String = "Damage: %s\nBackfire Strength: %s\nFire Resistance: %s\nIce Resistance: %s\nPoison Resistance: %s\nStone Resistance: %s" var resistances: Dictionary = selectedButton.spell.blockStrength damage.text = text % [selectedButton.spell.damage, selectedButton.spell.backfireStrength, 100 - resistances[Data.Element.FIRE] * 100, 100 - resistances[Data.Element.ICE] * 100, 100 - resistances[Data.Element.POISON] * 100, 100 - resistances[Data.Element.STONE] * 100]