From 882f784b42669c762a5c9ee8309fc0da5be23380 Mon Sep 17 00:00:00 2001 From: jepsu Date: Tue, 23 Jun 2026 22:06:18 +0300 Subject: [PATCH] Fixed the game and applied PlayerData global file --- player_data.gd | 7 +++++++ printer.gd | 1 + printer_card.gd | 1 + printers.gd | 2 +- ui.gd | 17 ++++++++++------- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/player_data.gd b/player_data.gd index a31ea43..a78a1f4 100644 --- a/player_data.gd +++ b/player_data.gd @@ -35,3 +35,10 @@ func _on_give_experience(amount: float) -> void: func _on_give_money(amount: float) -> void: money += amount + +func try_purchase(amount) -> bool: + if amount <= money: + money -= amount + return true + else: + return false diff --git a/printer.gd b/printer.gd index d11a605..e29a41a 100644 --- a/printer.gd +++ b/printer.gd @@ -5,4 +5,5 @@ var printer_data: PrinterData func initialize_printer(data: PrinterData) -> void: printer_data = data + #print("Creating bought printer: " + printer_data.printer_manufacturer) model.text = printer_data.printer_manufacturer + printer_data.printer_type diff --git a/printer_card.gd b/printer_card.gd index ae97e49..ece2880 100644 --- a/printer_card.gd +++ b/printer_card.gd @@ -20,3 +20,4 @@ func initialize_printer(data: PrinterData) -> void: func _on_buy_button_pressed() -> void: buy_printer.emit(self) + print("Shop tab printer clicked: " + self.printer_data.printer_manufacturer) diff --git a/printers.gd b/printers.gd index 6209fb7..20e0d49 100644 --- a/printers.gd +++ b/printers.gd @@ -13,5 +13,5 @@ func _ready() -> void: new_printer.buy_printer.connect(_buy_printer_pressed) func _buy_printer_pressed(bought_printer): - print("Printer model: " + bought_printer.printer_data.printer_type) + #print("Printer model: " + bought_printer.printer_data.printer_type) printer_purchase_requested.emit(bought_printer.printer_data) diff --git a/ui.gd b/ui.gd index e44e6dd..295c4bd 100644 --- a/ui.gd +++ b/ui.gd @@ -3,7 +3,7 @@ extends Control @export var jobs_array: Array[JobData] @export var job_limit: int = 5 var jobs_tab_button: Button -const job_scene = preload("uid://dvfcie8hqcb0") +const JOB_SCENE = preload("uid://dvfcie8hqcb0") const PRINTER = preload("uid://33ctlyrpibs3") func _ready() -> void: @@ -12,6 +12,7 @@ func _ready() -> void: %Level.text = "Level: " + str(PlayerData.level) jobs_tab_button = $VBoxContainer/MainArea/RightColumn/TabSwitcher/TabButtons/JobsTabButton + PlayerData.xp_changed.connect(_on_xp_changed) PlayerData.level_changed.connect(_on_level_changed) PlayerData.money_changed.connect(_on_money_changed) @@ -21,13 +22,16 @@ func generate_job(): if not job_count.size() >= job_limit: var random_job: JobData = jobs_array.pick_random() - var new_job = job_scene.instantiate() + var new_job = JOB_SCENE.instantiate() %JobContainer.add_child(new_job) new_job.initialize_job(random_job) job_count = %JobContainer.get_children() jobs_tab_button.text = "Jobs (" + str(job_count.size()) + "/" + str(job_limit) + ")" new_job.job_accepted.connect(_on_job_accepted_pressed) +# --- Experience, Level and Money update --- +func _on_xp_changed(xp): + %Experience.value = xp func _on_level_changed(level): %Level.text = "Level: " + str(level) func _on_money_changed(money): @@ -35,9 +39,7 @@ func _on_money_changed(money): func _on_job_accepted_pressed(accepted_job): print("Job accepted") - #give_experience(accepted_job.job_data.job_experience) PlayerData.give_experience.emit(accepted_job.job_data.job_experience) - #give_money(accepted_job.job_data.job_reward) PlayerData.give_money.emit(accepted_job.job_data.job_reward) accepted_job.queue_free() @@ -48,8 +50,9 @@ func _on_job_spawner_timeout() -> void: generate_job() func _on_printers_printer_purchase_requested(printer_data: PrinterData) -> void: - if printer_data.printer_price <= PlayerData.money: - #money -= printer_data.printer_price - #%Money.text = "Money: " + str(money) + "€" + #print("Signal reached UI: " + printer_data.printer_manufacturer) + if PlayerData.try_purchase(printer_data.printer_price): + %Money.text = "Money: " + str(PlayerData.money) + "€" var new_printer = PRINTER.instantiate() + %PrinterContainer.add_child(new_printer) new_printer.initialize_printer(printer_data)