Cleaned up shop printer bought backend interaction, moved logic out of ui into gamedata
This commit is contained in:
parent
f057bd2c2c
commit
0d2ef59571
4 changed files with 27 additions and 18 deletions
|
|
@ -15,7 +15,7 @@ extends Resource
|
|||
job_amount = value
|
||||
_generate_job_time()
|
||||
|
||||
# Difficulty from 1 to 5: Easy, Medium, Hard, Pain, Torture
|
||||
# - Difficulty from 1 to 5: Easy, Medium, Hard, Pain, Torture
|
||||
@export var job_difficulty: int = 1:
|
||||
set(value):
|
||||
clamp(value, 1, 5)
|
||||
|
|
|
|||
|
|
@ -3,14 +3,16 @@ extends Node
|
|||
# - Signals
|
||||
signal job_generated(job: Node)
|
||||
signal job_interact
|
||||
signal printer_bought(printer: Node)
|
||||
|
||||
# - Variables - Code managed
|
||||
var job_spawn_timer: Timer
|
||||
var jobs_array: Array[JobData]
|
||||
var current_job_count: int = 0
|
||||
|
||||
# Scenes
|
||||
# - Scenes
|
||||
const JOB_CARD = preload("uid://dvfcie8hqcb0")
|
||||
const PRINTER = preload("uid://33ctlyrpibs3")
|
||||
|
||||
# - Constants - Settings
|
||||
# Jobs
|
||||
|
|
@ -29,6 +31,14 @@ func _ready() -> void:
|
|||
job_spawn_timer.timeout.connect(_on_job_spawn_timer_timeout)
|
||||
job_spawn_timer.start()
|
||||
|
||||
func _on_shop_printer_purchase_req(printer_data: PrinterData) -> void:
|
||||
if PlayerData.try_purchase(printer_data.printer_price):
|
||||
var new_printer = PRINTER.instantiate()
|
||||
printer_bought.emit(new_printer)
|
||||
new_printer.initialize_printer(printer_data)
|
||||
|
||||
|
||||
#region Job generation
|
||||
func _on_job_spawn_timer_timeout() -> void:
|
||||
print("Spawn timer over")
|
||||
#generate_job()
|
||||
|
|
@ -77,8 +87,8 @@ func _on_job_accepted_pressed(accepted_job):
|
|||
GameData.current_job_count -= 1
|
||||
accepted_job.queue_free()
|
||||
job_interact.emit()
|
||||
|
||||
#region Load job resources
|
||||
#endregion
|
||||
#region Utility - Load job resources
|
||||
func load_all_jobs(path: String) -> void:
|
||||
var dir = DirAccess.open(path)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,5 +12,7 @@ func _ready() -> void:
|
|||
new_printer.initialize_printer(printer)
|
||||
new_printer.buy_printer.connect(_buy_printer_pressed)
|
||||
|
||||
printer_purchase_requested.connect(GameData._on_shop_printer_purchase_req)
|
||||
|
||||
func _buy_printer_pressed(bought_printer):
|
||||
printer_purchase_requested.emit(bought_printer.printer_data)
|
||||
|
|
|
|||
|
|
@ -14,36 +14,33 @@ const PRINTER = preload("uid://33ctlyrpibs3")
|
|||
func _ready() -> void:
|
||||
check_debug()
|
||||
|
||||
%Money.text = "Money: " + str(PlayerData.money) + " €"
|
||||
%Experience.value = PlayerData.xp
|
||||
%Level.text = "Level: " + str(PlayerData.level)
|
||||
_on_xp_changed(PlayerData.xp)
|
||||
_on_level_changed(PlayerData.level)
|
||||
_on_money_changed(PlayerData.money)
|
||||
|
||||
PlayerData.xp_changed.connect(_on_xp_changed)
|
||||
PlayerData.level_changed.connect(_on_level_changed)
|
||||
PlayerData.money_changed.connect(_on_money_changed)
|
||||
GameData.job_generated.connect(_on_job_generated)
|
||||
GameData.job_interact.connect(_on_job_interact)
|
||||
GameData.printer_bought.connect(_on_printer_bought)
|
||||
|
||||
# --- Experience, Level and Money update ---
|
||||
func _on_xp_changed(xp):
|
||||
%Experience.value = xp
|
||||
func _on_level_changed(level):
|
||||
%Level.text = "Level: " + str(level)
|
||||
%Level.text = 'Level: %d' % level
|
||||
func _on_money_changed(money):
|
||||
%Money.text = "Money: " + str(money) + "€"
|
||||
%Money.text = 'Money: %.2f €' % money
|
||||
|
||||
func _on_job_generated(job: Node):
|
||||
func _on_job_generated(job: Node) -> void:
|
||||
%JobContainer.add_child(job)
|
||||
|
||||
func _on_job_interact() -> void:
|
||||
jobs_tab_button.text = "Jobs (" + str(GameData.current_job_count) + "/" + str(GameData.MAX_JOBS) + ")"
|
||||
jobs_tab_button.text = 'Jobs (%d / %d)' % [GameData.current_job_count, GameData.MAX_JOBS]
|
||||
|
||||
func _on_printers_printer_purchase_requested(printer_data: PrinterData) -> void:
|
||||
if PlayerData.try_purchase(printer_data.printer_price):
|
||||
%Money.text = "Money: " + str(PlayerData.money) + "€"
|
||||
var new_printer = PRINTER.instantiate()
|
||||
func _on_printer_bought(new_printer: Node) -> void:
|
||||
%PrinterContainer.add_child(new_printer)
|
||||
new_printer.initialize_printer(printer_data)
|
||||
|
||||
#region Debug
|
||||
func check_debug() -> void:
|
||||
|
|
|
|||
Loading…
Reference in a new issue