Quest restrictions (2/3) and current quest info

This commit is contained in:
2ndbeam 2024-06-02 20:40:10 +03:00
commit 9bff79e019
13 changed files with 53 additions and 16 deletions

View file

@ -3,10 +3,7 @@ extends Node
var base: Base
## Quest this node holds
var quest: Quest:
set(value):
has_quest = value != null
quest = value
var quest: Quest
## Const of answer when quest is null
const NO_QUEST = "BASE_TAKE_QUEST_FAILED"
@ -23,8 +20,11 @@ const RESTRICTIONS = {
Quest.Restriction.NoWeapon: "BASE_QUEST_RESTRICTION_NO_WEAPON",
Quest.Restriction.Timer: "BASE_QUEST_RESTRICTION_TIMER"
}
var has_quest: bool = false
## Answer about fetching quest
var answer: String = ""
## Last quest info
var info: String = ""
func _ready():
get_tree().create_timer(0.05).timeout.connect(fetch_quest)
@ -34,11 +34,17 @@ func fetch_quest():
quest = base.quest
make_answer(quest)
## Makes quest fetch answer
func make_answer(quest: Quest):
var has_quest = quest != null
if !has_quest:
answer = tr(NO_QUEST)
return
get_info(quest)
answer = tr(HAS_QUEST).format({"quest_info": info})
## Gets quest info
func get_info(quest: Quest):
var quest_format = {}
match quest.type:
Quest.Type.Elimination:
@ -52,11 +58,11 @@ func make_answer(quest: Quest):
quest_format["restrictions"] = restrictions
quest_format["reward"] = quest.reward_money
var quest_info = tr(QUEST_TYPE[quest.type]).format(quest_format)
var final_format = {"quest_info": quest_info}
answer = tr(HAS_QUEST).format(final_format)
info = quest_info
## Assigns quest to player by returning it and nullifying self quest
func assign_to_player() -> Quest:
quest.data["given_by"] = base.base_name
quest.status = Quest.Status.Taken
var temp_quest = quest
quest = null