40 lines
925 B
GDScript
40 lines
925 B
GDScript
extends Window
|
|
|
|
var quest : Quest
|
|
signal quest_accepted()
|
|
|
|
func setup(qst : Quest, board : bool) -> void:
|
|
quest = qst
|
|
quest.status_changed.connect(_on_quest_status_changed)
|
|
%NameField.text = quest.name
|
|
%DifficultyField.text = quest.difficulty_name()
|
|
%LocationField.text = quest.location
|
|
if !board:
|
|
%AcceptButton.hide()
|
|
|
|
if quest.is_taken():
|
|
%StatusField.text = "Taken"
|
|
%AcceptButton.disabled = true
|
|
else:
|
|
%StatusField.text = "OPEN"
|
|
%AcceptButton.disabled = false
|
|
|
|
|
|
func _on_quest_status_changed(status : Quest.Status) -> void:
|
|
if status == Quest.Status.COMPLETED:
|
|
queue_free()
|
|
if quest.is_taken():
|
|
%StatusField.text = "Taken"
|
|
%AcceptButton.disabled = true
|
|
else:
|
|
%StatusField.text = "OPEN"
|
|
%AcceptButton.disabled = false
|
|
|
|
func _on_accept_pressed() -> void:
|
|
Guild.assign_quest(Game.player.data, quest)
|
|
quest_accepted.emit()
|
|
queue_free()
|
|
|
|
func _on_close_button_pressed() -> void:
|
|
queue_free()
|