108 lines
5.5 KiB
GDScript
108 lines
5.5 KiB
GDScript
extends NpcScript
|
|
|
|
#
|
|
const QUEST_ID : int = ProgressCommons.Quest.TULIMSHAR_OLD_FRIENDSHIP
|
|
var sealedLettersID : int = DB.GetCellHash("Sealed Letters")
|
|
var heavyEnvelopeID : int = DB.GetCellHash("Heavy Envelope")
|
|
|
|
#
|
|
func OnStart():
|
|
var questState : int = GetQuest(QUEST_ID)
|
|
match questState:
|
|
ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.INACTIVE:
|
|
QuestInactive()
|
|
ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.STARTED:
|
|
QuestStarted()
|
|
ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.ENVELOPES_FOUND:
|
|
QuestEnvelopesFound()
|
|
ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.LETTERS_DELIVERED:
|
|
QuestRewards()
|
|
ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.REWARDS_WITHDREW:
|
|
QuestCompleted()
|
|
|
|
func QuestInactive():
|
|
Mes("小心脚下,新的仙人掌刚冒头,刺比看起来更快。")
|
|
Mes("抱歉,我不太习惯有人来这张长椅边聊天。离开宫里以后,访客就少多了。")
|
|
Mes("我以前是宫廷顾问。几年前辞了职,那地方每个人肩上都压着太多东西。")
|
|
Mes("现在这里只有我、土和仙人掌。至少种出来的东西能帮城里人熬过旱季。")
|
|
Mes("你有没有反复想过同一个决定?如果当时换一种说法、晚一点开口,事情会不会完全不同?")
|
|
Choice("你在想什么?", Lore)
|
|
Choice("我该走了。", Dismiss)
|
|
|
|
func QuestStarted():
|
|
Mes("还在找吗?西墙走廊不欢迎没有许可的人。")
|
|
Choice("再说说博恩斯。", Lore)
|
|
Choice("信在哪里?", Directions)
|
|
Choice("我会处理。", Dismiss)
|
|
|
|
func QuestEnvelopesFound():
|
|
Mes("你找到了。好,好。")
|
|
Mes("把封好的信交给议员博恩斯。我刚才看见你离开后,他立刻进了走廊。")
|
|
Mes("他的直觉一直很准。也可能是你太努力不被发现,反而弄出了动静。总之,他会在那里面。")
|
|
|
|
func QuestRewards():
|
|
if HasItem(heavyEnvelopeID):
|
|
Mes("你回来了。他说了什么。")
|
|
Mes("这个信封,很重。")
|
|
Mes("...")
|
|
Mes("金币。他把金币放在这里,还写了我的名字。")
|
|
Mes("女王 第一次把我们派到同一段城墙时,我们各自留了一份钱给对方。万一哪天事情糟到必须离开,至少还有路费。")
|
|
Mes("我以为我走之后,他早就把这份用掉了。如果他真用了,我也不会怪他。")
|
|
Mes("我配不上这封信。它该给一个比我更懂得做朋友的人。")
|
|
Mes("拿着吧。你一个下午做成的事,比我们这些年做得都多。")
|
|
RemoveItem(heavyEnvelopeID)
|
|
AddGP(1000)
|
|
SetQuest(QUEST_ID, ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.REWARDS_WITHDREW)
|
|
else:
|
|
Mes("你找到博恩斯了吗?他在西墙走廊里。")
|
|
|
|
func QuestCompleted():
|
|
Mes("今年的仙人掌长势不错。看起来,只要根还在,很多东西都能重新开始。")
|
|
Mes("我一直在想,我应该去那条走廊。不是今天,但我已经决定会去。")
|
|
Mes("他一直留着那些信。这说明有些门并没有真的关死,对吧?")
|
|
|
|
func Lore():
|
|
Mes("我曾经有个同僚,议员博恩斯。很聪明的人,什么都能修,什么都能造。")
|
|
Mes("只是他话少。比起解释一堵墙为什么该重修,他宁愿直接把墙拆了再砌好。")
|
|
Mes("而我负责和人打交道:排班、调解争执、让每个人知道下一步该做什么。")
|
|
Mes("我们一起撑住这些城墙很多年。在 女王 手下,这不算小事。")
|
|
Choice("后来发生了什么?", Conflict)
|
|
Choice("我该走了。", Dismiss)
|
|
|
|
func Conflict():
|
|
Mes("女王 的命令越来越多,而且永远要按她的方式做。")
|
|
Mes("我开始制定规程。什么事都写流程,什么错误都加一条规则。我以为只要把一切整理清楚,压力就不会压垮大家。")
|
|
Mes("博恩斯不这么看。他说我只是把更多压力堆到已经快撑不住的人身上。")
|
|
Mes("可他也会直接动手、直接决定,不告诉我,也不告诉别人。我总是在事后才知道。")
|
|
Mes("我们都想守住同一段墙。只是走着走着,我们不再讨论怎么守,而是在争谁的办法才算正确。")
|
|
Mes("现在回头看,我犯过太多错,没资格说自己全对。但那时候,我们谁也不肯退一步。")
|
|
Mes("最后他让我离开。我真的离开了。我不为这件事骄傲,只是当时觉得自己碍了所有人的路。")
|
|
Mes("那已经是很多年前了,可我还是常常想起。")
|
|
if GetQuest(QUEST_ID) == ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.INACTIVE:
|
|
Choice("我能帮上什么吗?", Quest)
|
|
Choice("听起来很遗憾。", Dismiss)
|
|
|
|
func Quest():
|
|
Mes("其实,也许有。")
|
|
Mes("就在我们左边的西墙走廊尽头,穿过议员博恩斯的巡逻区,有个小房间,里面有一排书架。")
|
|
Mes("书架上有一个信封。那是我们当年被 女王 分派到不同岗位时写给彼此的信,在一切变坏之前。")
|
|
Mes("我不知道它能不能改变什么。但也许他重新读到那些字,会想起我们并不总是这样。")
|
|
Mes("走廊有守卫巡逻。贴着阴影走,别站进亮处。被发现的话,守卫会把你带出去。")
|
|
Choice("我去取。", Accept)
|
|
Choice("现在不行。", Decline)
|
|
|
|
func Directions():
|
|
Mes("就在左边西墙走廊的尽头,图书架上方。")
|
|
Mes("记住,别进亮处。守卫接到的是严格命令:没有许可的人一律带离。")
|
|
|
|
func Accept():
|
|
SetQuest(QUEST_ID, ProgressCommons.TULIMSHAR_OLD_FRIENDSHIP.STARTED)
|
|
Mes("谢谢你,真的。")
|
|
Directions()
|
|
|
|
func Decline():
|
|
Chat("我明白。这对陌生人来说,确实要求太多了。")
|
|
|
|
func Dismiss():
|
|
Chat("好吧。仙人掌不会自己照顾自己。")
|