Revamp goals as resources

This commit is contained in:
2026-03-19 23:46:24 +01:00
parent 3c8709c834
commit bcf228447d
25 changed files with 561 additions and 343 deletions

View File

@@ -37,6 +37,7 @@ func _ready() -> void:
GameState.generator_state_changed.connect(_on_generator_state_changed)
GameState.generator_buff_level_changed.connect(_on_generator_buff_level_changed)
GameState.generator_buff_unlocked_changed.connect(_on_generator_buff_unlocked_changed)
_name_label.text = _generator.data.name if _generator.data != null else "Generator"
_build_buff_rows()
@@ -71,6 +72,12 @@ func _on_generator_buff_level_changed(generator_id: StringName, _buff_id: String
_refresh_generator_ui()
func _on_generator_buff_unlocked_changed(generator_id: StringName, _buff_id: StringName, _unlocked: bool) -> void:
if generator_id != _generator.get_generator_id():
return
_refresh_generator_ui()
func _on_buy_buff_pressed(buff_id: StringName) -> void:
_generator.buy_buff(buff_id)
_refresh_generator_ui()
@@ -108,6 +115,19 @@ func _refresh_buff_rows(can_interact: bool) -> void:
continue
var buff: GeneratorBuffData = row.buff
var buff_unlocked: bool = _generator.is_buff_unlocked(buff.id)
if not buff_unlocked:
var locked_hint: String = "Locked"
var unlock_goal_currency: Resource = buff.get_unlock_goal_currency()
if buff.has_unlock_goal() and unlock_goal_currency != null:
var goal_currency_id: StringName = GameState.get_currency_id(unlock_goal_currency)
var currency_name: String = GameState.get_currency_name(goal_currency_id)
var required_text: String = buff.get_unlock_goal_amount().to_string_suffix(2)
locked_hint = "Unlock at %s %s" % [required_text, currency_name]
row.tile.set_runtime(0, "Locked", locked_hint, false, false)
continue
var level: int = _generator.get_buff_level(buff.id)
var effect_text: String = buff.get_effect_description(level)