2024-05-27 13:05:36 -04:00

42 lines
2.0 KiB
GDScript

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]