Add generator buffs (additional test required)
This commit is contained in:
48
generator_buff_tile.gd
Normal file
48
generator_buff_tile.gd
Normal file
@@ -0,0 +1,48 @@
|
||||
class_name GeneratorBuffTile
|
||||
extends HBoxContainer
|
||||
|
||||
signal buy_pressed(buff_id: StringName)
|
||||
|
||||
@onready var _icon: TextureRect = $Icon
|
||||
@onready var _text_label: Label = $TextLabel
|
||||
@onready var _level_label: Label = $LevelLabel
|
||||
@onready var _effect_label: Label = $EffectLabel
|
||||
@onready var _cost_label: Label = $CostLabel
|
||||
@onready var _buy_button: Button = $BuyButton
|
||||
|
||||
var _buff_id: StringName = &""
|
||||
|
||||
func set_buff(buff: GeneratorBuffData) -> void:
|
||||
if buff == null:
|
||||
_buff_id = &""
|
||||
_icon.texture = null
|
||||
_icon.visible = false
|
||||
_text_label.text = "Unknown Buff"
|
||||
return
|
||||
|
||||
var buff_id_text: String = String(buff.id).strip_edges()
|
||||
_buff_id = StringName(buff_id_text)
|
||||
|
||||
_icon.texture = buff.icon
|
||||
_icon.visible = buff.icon != null
|
||||
_text_label.text = buff.text if not buff.text.strip_edges().is_empty() else buff_id_text
|
||||
|
||||
func set_runtime(level: int, effect_text: String, cost_text: String, can_buy: bool, is_maxed: bool) -> void:
|
||||
_level_label.text = "Lv %d" % maxi(level, 0)
|
||||
_effect_label.text = effect_text
|
||||
|
||||
if is_maxed:
|
||||
_cost_label.text = "Max level"
|
||||
_buy_button.text = "Max"
|
||||
_buy_button.disabled = true
|
||||
return
|
||||
|
||||
_cost_label.text = cost_text
|
||||
_buy_button.text = "Buy"
|
||||
_buy_button.disabled = not can_buy
|
||||
|
||||
func _on_buy_button_pressed() -> void:
|
||||
if _buff_id == &"":
|
||||
return
|
||||
|
||||
buy_pressed.emit(_buff_id)
|
||||
Reference in New Issue
Block a user