From b918871be21ee5b6b7c89d73f848e39fe9443463 Mon Sep 17 00:00:00 2001 From: jepsu Date: Sun, 28 Jun 2026 21:50:47 +0300 Subject: [PATCH] Added owned printers to playerdata --- Scenes/Global/game_data.gd | 1 + Scenes/Global/player_data.gd | 12 +++++++++--- Scenes/Job/job_card.gd | 10 ++++++++++ Scenes/Printer/printer.gd | 5 +++-- Scenes/Printer/printer.tscn | 1 + Scenes/UI/ui.gd | 3 +-- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Scenes/Global/game_data.gd b/Scenes/Global/game_data.gd index ad063a4..977ede8 100644 --- a/Scenes/Global/game_data.gd +++ b/Scenes/Global/game_data.gd @@ -38,6 +38,7 @@ func _on_shop_printer_purchase_req(printer_data: PrinterData) -> void: var new_printer = PRINTER.instantiate() printer_bought.emit(new_printer) new_printer.initialize_printer(printer_data) + PlayerData.owned_printers += 1 #region Job generation diff --git a/Scenes/Global/player_data.gd b/Scenes/Global/player_data.gd index 967bb29..0f4e2c9 100644 --- a/Scenes/Global/player_data.gd +++ b/Scenes/Global/player_data.gd @@ -3,8 +3,9 @@ extends Node var xp: float = 0: set(value): xp = value + xp_changed.emit(xp) -var money: float = 500: +var money: float = 200: set(value): money = value money_changed.emit(money) @@ -14,11 +15,16 @@ var level: int = 1: level = value level_changed.emit(level) -var max_order_amount: int = 10: +var max_order_amount: int = 3: set(value): max_order_amount = value max_order_amount_changed.emit(max_order_amount) +var owned_printers: int = 0: + set(value): + owned_printers = value + owned_printers_changed.emit(value) + var sell_multiplier: float = 0.5 var jobs: Array[JobData] @@ -28,6 +34,7 @@ signal xp_changed(new_xp) signal money_changed(new_money) signal level_changed(new_level) signal max_order_amount_changed(new_max_order_amount) +signal owned_printers_changed(new_amount) # Signal - functions signal give_experience(xp_amount) @@ -44,7 +51,6 @@ func _on_give_experience(amount: float) -> void: while xp >= xp_required_for_level(level): xp -= xp_required_for_level(level) level += 1 - xp_changed.emit(xp) func _on_give_money(amount: float) -> void: money += amount diff --git a/Scenes/Job/job_card.gd b/Scenes/Job/job_card.gd index 2ef5171..9da7029 100644 --- a/Scenes/Job/job_card.gd +++ b/Scenes/Job/job_card.gd @@ -11,7 +11,11 @@ var job_material: String @onready var job_experience: Label = $MarginContainer/VBoxContainer/HBoxContainer3/PartExperience @onready var job_time_label: Label = $MarginContainer/VBoxContainer/HBoxContainer/TimeLabel @onready var job_material_label: Label = $MarginContainer/VBoxContainer/HBoxContainer2/PartMaterial +@onready var skip_job_button: Button = $MarginContainer/VBoxContainer/HBoxContainer/SkipJob +func _ready() -> void: + PlayerData.owned_printers_changed.connect(_on_owned_printers_changed) + _on_owned_printers_changed(PlayerData.owned_printers) func initialize_job(data: JobData) -> void: job_data = data @@ -37,6 +41,12 @@ func calculate_time() -> String: else: return '%.2f s' % round_time +func _on_owned_printers_changed(owned_printers: int) -> void: + if owned_printers == 0: + skip_job_button.disabled = true + return + skip_job_button.disabled = false + func _on_accept_job_pressed() -> void: job_accepted.emit(self) GameData.refresh_printer_dropdown.emit() diff --git a/Scenes/Printer/printer.gd b/Scenes/Printer/printer.gd index 4807bcf..4e7ff25 100644 --- a/Scenes/Printer/printer.gd +++ b/Scenes/Printer/printer.gd @@ -50,14 +50,14 @@ func _process(delta) -> void: func reset_status() -> void: is_printing = false - _on_select_job_pressed() - set_status() time_left_label.visible = false progress_bar.visible = false progress_bar.value = 0 time_left = 0 select_job.disabled = false start_button.disabled = false + _on_select_job_pressed() + set_status() func set_status() -> void: if is_printing: @@ -84,6 +84,7 @@ func _on_refresh_printer_dropdown() -> void: func _on_sell_button_pressed() -> void: PlayerData.give_money.emit(printer_data.printer_price * PlayerData.sell_multiplier) + PlayerData.owned_printers -= 1 queue_free() func _on_select_job_pressed() -> void: diff --git a/Scenes/Printer/printer.tscn b/Scenes/Printer/printer.tscn index 9eb4e09..bca15ea 100644 --- a/Scenes/Printer/printer.tscn +++ b/Scenes/Printer/printer.tscn @@ -53,6 +53,7 @@ text = "Time left: 15.0" [node name="ProgressBar" type="ProgressBar" parent="MarginContainer/MainArea/PrintInfo" unique_id=768246659] layout_mode = 2 +theme_override_styles/fill = ExtResource("2_dlbos") max_value = 1.0 [node name="Buttons" type="HBoxContainer" parent="MarginContainer/MainArea" unique_id=248340191] diff --git a/Scenes/UI/ui.gd b/Scenes/UI/ui.gd index 4808093..fec1fc9 100644 --- a/Scenes/UI/ui.gd +++ b/Scenes/UI/ui.gd @@ -12,8 +12,7 @@ const PRINTER = preload("uid://33ctlyrpibs3") func _ready() -> void: check_debug() - #_on_xp_changed(PlayerData.xp) - %Experience.value = 0 + _on_xp_changed(PlayerData.xp) _on_level_changed(PlayerData.level) _on_money_changed(PlayerData.money)