Quest system base
This commit is contained in:
parent
37cd28d611
commit
8a40de576e
20 changed files with 178 additions and 9 deletions
|
|
@ -4,9 +4,44 @@ var base: Base
|
|||
|
||||
var quest: Quest
|
||||
|
||||
const NO_QUEST = "BASE_TAKE_QUEST_FAILED"
|
||||
const HAS_QUEST = "BASE_TAKE_QUEST_SUCCEED"
|
||||
const QUEST_TYPE = {
|
||||
Quest.Type.Elimination: "BASE_QUEST_ELIMINATION",
|
||||
Quest.Type.Delivery: "BASE_QUEST_DELIVERY"
|
||||
}
|
||||
const RESTRICTIONS = {
|
||||
Quest.Restriction.NoDeaths: "BASE_QUEST_RESTRICTION_NO_DEATHS",
|
||||
Quest.Restriction.NoWeapon: "BASE_QUEST_RESTRICTION_NO_WEAPON",
|
||||
Quest.Restriction.Timer: "BASE_QUEST_RESTRICTION_TIMER"
|
||||
}
|
||||
var has_quest: bool = false
|
||||
var answer: String = ""
|
||||
|
||||
func _ready():
|
||||
get_tree().create_timer(0.05).timeout.connect(fetch_quest)
|
||||
|
||||
func fetch_quest():
|
||||
base = get_parent().base
|
||||
quest = base.quest
|
||||
make_answer(quest)
|
||||
|
||||
func make_answer(quest: Quest):
|
||||
has_quest = quest != null
|
||||
if !has_quest:
|
||||
answer = tr(NO_QUEST)
|
||||
return
|
||||
var quest_format = {}
|
||||
match quest.type:
|
||||
Quest.Type.Elimination:
|
||||
quest_format["amount"] = quest.progress_max
|
||||
quest_format["target_class"] = tr(quest.data["target_class"])
|
||||
Quest.Type.Delivery:
|
||||
quest_format["base_name"] = tr(quest.data["base_name"])
|
||||
var restrictions = ""
|
||||
for restriction in quest.restrictions:
|
||||
restrictions += tr(RESTRICTIONS[restriction]) + "\n"
|
||||
quest_format["restrictions"] = restrictions
|
||||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue