最终整理版
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
extends NpcScript
|
||||
|
||||
# Reward items
|
||||
var croissantID : int = DB.GetCellHash("Croissant")
|
||||
var cactusSourCandyID : int = DB.GetCellHash("Cactus Sour Candy")
|
||||
|
||||
#
|
||||
func OnStart():
|
||||
var questState : int = GetQuest(ProgressCommons.Quest.GRAIN_IN_THE_SAND)
|
||||
match questState:
|
||||
ProgressCommons.GRAIN_IN_THE_SAND.INACTIVE:
|
||||
OnInactive()
|
||||
ProgressCommons.GRAIN_IN_THE_SAND.SEARCHED_CRATES:
|
||||
OnReward()
|
||||
ProgressCommons.GRAIN_IN_THE_SAND.REWARDS_WITHDREW:
|
||||
OnComplete()
|
||||
_:
|
||||
OnKeepLooking()
|
||||
|
||||
# Quest states
|
||||
func OnInactive():
|
||||
Mes("欢迎,旅人。你来得正巧,也来得不太巧:架子上的面包刚刚卖空。")
|
||||
Mes("图利姆沙 没有像样的农田,城外除了沙、风和仙人掌,几乎什么都长不稳。")
|
||||
Mes("我的面粉都从 阿尔蒂斯 坐船运来。靠它做出的 沙暴面包,已经养活这座城很多年了。")
|
||||
Mes("今天清晨有一批货到了码头,可这天气来回跑一趟,回来就没力气揉面了。")
|
||||
Mes("阿尔蒂斯 面包坊的货桶上有深蓝色蜡封。你能去码头帮我把里面的面粉袋带回来吗?")
|
||||
|
||||
QuestChoice()
|
||||
|
||||
func QuestChoice(previousChoice : int = -1):
|
||||
Choice("我去码头看看。", OnAccept)
|
||||
if previousChoice != 1:
|
||||
Choice("沙暴面包 是什么?", OnAskBread)
|
||||
if previousChoice != 2:
|
||||
Choice("沙漠里真的种不出粮食吗?", OnAskDesert)
|
||||
Choice("晚点再说。", OnDecline)
|
||||
|
||||
func OnKeepLooking():
|
||||
Mes("码头那边有线索吗?记住,找带深蓝色蜡封的货桶。")
|
||||
Mes("我会把炉火留着,面粉一到就能开工。")
|
||||
|
||||
func OnComplete():
|
||||
Mes("就算热得像站在炉膛旁边,刚出炉的面包也没人舍得错过。")
|
||||
CompleteChoice()
|
||||
|
||||
func CompleteChoice(previousChoice : int = -1):
|
||||
if previousChoice != 0:
|
||||
Choice("给我讲讲 阿尔蒂斯。", OnAskArtis)
|
||||
if previousChoice != 1:
|
||||
Choice("图利姆沙 靠什么活下来?", OnAskCity)
|
||||
if previousChoice != 2:
|
||||
Choice("沙暴面包 是什么?", OnAskBread)
|
||||
if previousChoice != 3:
|
||||
Choice("沙漠里真的种不出粮食吗?", OnAskDesert)
|
||||
if previousChoice != -1:
|
||||
Choice("你忙吧。", OnFarewell)
|
||||
|
||||
# Optional dialogue
|
||||
func OnAskBread():
|
||||
Mes("我的招牌配方:阿尔蒂斯 的细面粉、仙人掌汁代替清水,再加一撮晒干的沙盐。")
|
||||
Mes("这种面包外壳结实,穿过沙暴也不容易碎,第二天早上还带着香气,所以才叫 沙暴面包。")
|
||||
if IsQuestCompleted(ProgressCommons.Quest.GRAIN_IN_THE_SAND):
|
||||
CompleteChoice(2)
|
||||
else:
|
||||
QuestChoice(1)
|
||||
|
||||
func OnAskDesert():
|
||||
Mes("能长的主要是仙人掌。它们很硬气,我们也很会利用:糖果、饮料、药膏,什么都能做。")
|
||||
Mes("可粮食不一样。托诺里 从来不是产麦子的地方,没有商船,城里的炉火会先灭,人的肚子也会跟着空。")
|
||||
if IsQuestCompleted(ProgressCommons.Quest.GRAIN_IN_THE_SAND):
|
||||
CompleteChoice(3)
|
||||
else:
|
||||
QuestChoice(2)
|
||||
|
||||
func OnAskArtis():
|
||||
Mes("阿尔蒂斯 是海对岸 奥罗拉 海岸上的大港,农田肥沃,工匠也多。")
|
||||
Mes("我妹妹就住在那里。她烤的小饼干特别香,我这里用的面粉也来自她的面包坊。")
|
||||
Mes("图利姆沙 市场上一半的货都靠 阿尔蒂斯 商船补给。少了它们,我们能吃的就只剩仙人掌和耐心了。")
|
||||
CompleteChoice(0)
|
||||
|
||||
func OnAskCity():
|
||||
Mes("贸易。图利姆沙 最擅长的不是种地,而是让来自三片大陆的货物在这里停脚。")
|
||||
Mes("港口、城墙、商队、守卫,还有像我这样盯着下一船面粉的人,拼在一起才撑起这座沙漠城市。")
|
||||
Mes("这也说明了一件事:码头上每一个迟到的货桶,都会让城里某个炉子安静下来。")
|
||||
CompleteChoice(1)
|
||||
|
||||
func OnFarewell():
|
||||
Mes("有空再来。只要炉火还亮,就会有一块新面包等着你。")
|
||||
|
||||
# Transitions to next states
|
||||
func OnAccept():
|
||||
SetQuest(ProgressCommons.Quest.GRAIN_IN_THE_SAND, ProgressCommons.GRAIN_IN_THE_SAND.STARTED)
|
||||
|
||||
Mes("太感谢了,朋友。")
|
||||
Mes("找深蓝色蜡封。看到 阿尔蒂斯 的印记,就说明货没错。")
|
||||
|
||||
func OnDecline():
|
||||
Mes("没关系。炉火会等一会儿,只是别让它等到天黑。")
|
||||
|
||||
func OnReward():
|
||||
Mes("你找到了!太好了。")
|
||||
Mes("有了这些面粉,日落前 图利姆沙 就能闻到 沙暴面包 的香味。")
|
||||
|
||||
SetQuest(ProgressCommons.Quest.GRAIN_IN_THE_SAND, ProgressCommons.GRAIN_IN_THE_SAND.REWARDS_WITHDREW)
|
||||
|
||||
AddItem(cactusSourCandyID, 5)
|
||||
AddItem(croissantID, 5)
|
||||
AddKarma(1)
|
||||
AddExp(20)
|
||||
|
||||
Mes("这些给你:可颂 和 仙人掌酸糖。一个是家传手艺,一个是我在沙暴天里琢磨出来的小发明。")
|
||||
Reference in New Issue
Block a user