Modified job_card visually and added calculation for print time based on xp, reward and amount

This commit is contained in:
jepsu 2026-06-26 18:17:08 +03:00
parent 85da74ad1d
commit ba657ab23a
2 changed files with 27 additions and 8 deletions

View file

@ -3,17 +3,31 @@ extends PanelContainer
signal job_accepted
var job_data: JobData
var job_time: float
var job_material: String
@onready var job_name: Label = $MarginContainer/VBoxContainer/HBoxContainer2/PartName
@onready var job_amount: Label = $MarginContainer/VBoxContainer/HBoxContainer3/PartAmount
@onready var job_reward: Label = $MarginContainer/VBoxContainer/HBoxContainer/RewardLabel
@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
func initialize_job(data: JobData) -> void:
job_data = data
job_material = 'PLA'
job_time = calculate_time()
job_name.text = job_data.job_name
job_amount.text = "Amount: " + str(job_data.job_amount)
job_reward.text = "Reward: " + str(job_data.job_reward) + ""
job_experience.text = "Experience: " + str(job_data.job_experience)
job_amount.text = 'Amount: %d pcs' % job_data.job_amount
job_reward.text = 'Reward: %.2f' % job_data.job_reward
job_experience.text = 'Experience: %.0f xp | ' % job_data.job_experience
job_time_label.text = 'Time: %.2f s' % job_time
job_material_label.text = '| %s' % job_material
func _on_accept_job_pressed() -> void:
job_accepted.emit(self)
func calculate_time() -> float:
var print_time: float = sqrt(job_data.job_experience + job_data.job_reward) * job_data.job_amount
var round_time: float = round(print_time * 100) / 100
return round_time

View file

@ -17,6 +17,9 @@ func initialize_printer(data: PrinterData) -> void:
progress_bar.value = 0
_on_select_job_pressed()
func start_job() -> void:
pass
func _on_sell_button_pressed() -> void:
PlayerData.give_money.emit(printer_data.printer_price * PlayerData.sell_multiplier)
queue_free()
@ -38,12 +41,14 @@ func _on_start_button_pressed() -> void:
if select_job.get_item_text(0) == "No jobs accepted":
print("No job selected")
else:
PlayerData.give_money.emit(selected_job.job_reward)
if PlayerData.jobs.size() == 1:
PlayerData.jobs.clear()
else:
PlayerData.jobs.remove_at(selected_job_index)
start_job()
#PlayerData.give_money.emit(selected_job.job_reward)
#if PlayerData.jobs.size() == 1:
# PlayerData.jobs.clear()
#else:
# PlayerData.jobs.remove_at(selected_job_index)
_on_select_job_pressed()
func _on_select_job_item_selected(index: int) -> void:
selected_job = select_job.get_item_metadata(index)