Use a single currency changed signal
This commit is contained in:
@@ -4,8 +4,7 @@ extends Node
|
||||
# ==========================================
|
||||
# SIGNALS
|
||||
# ==========================================
|
||||
signal gold_changed(new_amount: BigNumber)
|
||||
signal gems_changed(new_amount: BigNumber)
|
||||
signal currency_changed(currency_type: CurrencyType, new_amount: BigNumber)
|
||||
signal generator_state_changed(generator_id: StringName, state: Dictionary)
|
||||
|
||||
enum CurrencyType { gold, gems }
|
||||
@@ -34,25 +33,25 @@ func _ready() -> void:
|
||||
# ==========================================
|
||||
func add_gold(amount: BigNumber) -> void:
|
||||
gold.add_in_place(amount)
|
||||
gold_changed.emit(gold)
|
||||
currency_changed.emit(CurrencyType.gold, gold)
|
||||
|
||||
func spend_gold(cost: BigNumber) -> bool:
|
||||
if gold.is_greater_than(cost) or gold.is_equal_to(cost):
|
||||
var negative_cost = BigNumber.new(-cost.mantissa, cost.exponent)
|
||||
gold.add_in_place(negative_cost)
|
||||
gold_changed.emit(gold)
|
||||
currency_changed.emit(CurrencyType.gold, gold)
|
||||
return true
|
||||
return false
|
||||
|
||||
func add_gems(amount: BigNumber) -> void:
|
||||
gems.add_in_place(amount)
|
||||
gems_changed.emit(gems)
|
||||
currency_changed.emit(CurrencyType.gems, gems)
|
||||
|
||||
func spend_gems(cost: BigNumber) -> bool:
|
||||
if gems.is_greater_than(cost) or gems.is_equal_to(cost):
|
||||
var negative_cost = BigNumber.new(-cost.mantissa, cost.exponent)
|
||||
gems.add_in_place(negative_cost)
|
||||
gems_changed.emit(gems)
|
||||
currency_changed.emit(CurrencyType.gems, gems)
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user