Update Currency for Player Object and UI
var player
func init():
self.player = $'../../'.get_node("Player")
func _on_purchase():
self.player.data.currency.copper -= $Item/Cost.text.to_init()
# Create a Callable to the Remote Player.gd _on_currency_changed function
var _on_currency_changed = Callable(self.player, "_on_currency_changed")
_on_currency_changed.call() # <-- Call the Callablevar player_id
var data
# Create a Signal for Subscribers to Know when the Player's currency has changed
signal currency_changed
func init():
var players_data = PlayerData.load_savegame("user://players_db.json")
self.data = players_data.players[self.player_id]
self.calculate_currency()
func calculate_currency():
var currency = self.data.currency
while (currency.copper >= 100):
currency.silver += 1
currency.copper -= 100
while (currency.silver >= 100):
currency.gold += 1
currency.silver -= 100
func _on_currency_changed(): # <-- This is remotely called by the Store.gd
self.calculate_currency()
# Emit to all subscribers that the Player's currency has changed and needs updated
self.emit_signal("currency_changed") Last updated