Files
pomchronicles/quest_panel_entry.gd

41 lines
1.1 KiB
GDScript

extends PanelContainer
var _enabled: bool
var enabled: bool:
get:
return _enabled
set(value):
enable(value)
var quest : Quest
@onready var status_label = %StatusLabel
func enable(en: bool) -> void:
_enabled = en
if en:
mouse_filter=Control.MOUSE_FILTER_STOP
else:
mouse_filter=Control.MOUSE_FILTER_IGNORE
func setup(qst : Quest) -> void:
quest = qst
quest.status_changed.connect(_on_quest_status_changed)
%NameLabel.text = quest.name
#TODO: Add star rating
#%LevelLabel.text = str(data.level)
%StatusLabel.text = ("Taken ()" % [quest.questor.full_name()]) if quest.taken else "OPEN"
#TODO: Change portrait
func _on_gui_input(event: InputEvent) -> void:
var evt = event as InputEventMouseButton
if evt and evt.button_index == MOUSE_BUTTON_LEFT and evt.pressed:
print("Quest clicked!")
func _on_quest_status_changed(status: Quest.Status) -> void:
match(status):
Quest.Status.OPEN: status_label.text = "OPEN"
Quest.Status.COMPLETED: queue_free()
Quest.Status.IN_PROGRESS: status_label.text = "IN PROGRESS"
_: status_label.text = "Taken"