96 lines
3.9 KiB
GDScript
96 lines
3.9 KiB
GDScript
extends NpcScript
|
|
|
|
const QUEST_ID = ProgressCommons.Quest.SANDSTORM_NATHAN_WATER
|
|
|
|
#
|
|
func OnStart():
|
|
Mes("你好,我是看守内森。平时我在港口站岗,今天被派来守这个快把人烤熟的矿洞入口。")
|
|
Mes("如果我说话有点乱,那是太阳先动的手。")
|
|
|
|
var questState : ProgressCommons.SANDSTORM_NATHAN_WATER = GetQuest(QUEST_ID) as ProgressCommons.SANDSTORM_NATHAN_WATER
|
|
Choice("这里就是沙漠风暴矿洞入口?", OnEntrance)
|
|
match questState:
|
|
ProgressCommons.SANDSTORM_NATHAN_WATER.STARTED:
|
|
Choice("关于那瓶水。", OnWaitingWater)
|
|
ProgressCommons.SANDSTORM_NATHAN_WATER.REWARDS_WITHDREW:
|
|
Choice("现在感觉好点了吗?", OnComplete)
|
|
Choice("我先去别处看看。", Farewell)
|
|
|
|
func Farewell():
|
|
Chat("小心脚下,沙子会把旧轨道盖得像没存在过一样。")
|
|
|
|
# Default dialogue flow
|
|
func OnEntrance():
|
|
Mes("没错。旧矿道就在这口井旁边,风从里面吹出来时会带着铁锈味。")
|
|
Mes("以前矿工每天从这里进出。后来沙暴越来越重,沙蝎和别的东西也把下层当成了巢。")
|
|
Mes("艾基努的人已经进去了,他们要确认矿道能不能重新开放。说实话,我更希望答案是不能。")
|
|
|
|
Choice("我就是来加入侦察的。", OnJoinThem)
|
|
|
|
func OnJoinThem():
|
|
Mes("真的?你看起来不像矿工。没有镐,也没有一脸认命的表情。")
|
|
|
|
Choice("我不是来采矿的,只负责侦察。", OnJustScouting)
|
|
|
|
func OnJustScouting():
|
|
Mes("明白了。那就进去吧,里面的人应该正等你。")
|
|
Mes("先别急着深入。入口层确认安全后,再考虑往废弃矿层和更深处走。")
|
|
Mes("如果你听见像石头在呼吸的声音,别逞强,先退回来。")
|
|
|
|
Choice("谢谢,内森。", OnNiceDay)
|
|
if GetQuest(QUEST_ID) == ProgressCommons.SANDSTORM_NATHAN_WATER.INACTIVE:
|
|
Choice("有什么能帮你的吗?", OnJobEasier)
|
|
|
|
func OnNiceDay():
|
|
Chat("等我能回港口看海,那才叫好日子。")
|
|
|
|
# Water quest
|
|
func OnJobEasier():
|
|
Mes("既然你问了,我确实想要一瓶水。")
|
|
Mes("不是喝的,我还有一点能喝的。")
|
|
Mes("我只是想把水倒在脸上,让自己别像挂在太阳底下的肉干。")
|
|
Mes("这请求听起来很蠢,但在这里站半天后,你会理解的。")
|
|
|
|
Choice("我理解,我会帮你找一瓶。", AcceptQuest)
|
|
Choice("抱歉,我现在有更紧急的事。", RefuseQuest)
|
|
|
|
func RefuseQuest():
|
|
Mes("没事,我懂。忘了我提过这事吧。")
|
|
Mes("大概就是因为我太会抱怨,才被派到这里来。")
|
|
Action(Farewell)
|
|
|
|
func AcceptQuest():
|
|
Mes("我就知道你会懂。水是生命,浇脸上的水也是。")
|
|
Narrate("内森低头看了看脚边被风埋住一半的靴子。")
|
|
Mes("我会在这里等你。反正我想走也走不了。")
|
|
SetQuest(QUEST_ID, ProgressCommons.SANDSTORM_NATHAN_WATER.STARTED)
|
|
if HasItem(DB.GetCellHash("Water Bottle")):
|
|
Choice("我身上正好有一瓶。", OnDeliverWater)
|
|
Choice("我去找找。", Farewell)
|
|
|
|
func OnWaitingWater():
|
|
Mes("是你啊。抱歉,风沙一大,我看谁都像会走路的土堆。")
|
|
Mes("找到水瓶了吗?")
|
|
if HasItem(DB.GetCellHash("Water Bottle")):
|
|
Choice("找到了。", OnDeliverWater)
|
|
Choice("还没有,我继续找。", Farewell)
|
|
|
|
func OnDeliverWater():
|
|
var waterBottleHash : int = DB.GetCellHash("Water Bottle")
|
|
if HasItem(waterBottleHash):
|
|
RemoveItem(waterBottleHash)
|
|
SetQuest(QUEST_ID, ProgressCommons.SANDSTORM_NATHAN_WATER.REWARDS_WITHDREW)
|
|
Mes("谢谢你,朋友。终于能喘口气了。")
|
|
Narrate("内森把你带来的水迅速倒在脸上和脖子上。")
|
|
Narrate("水顺着盔甲缝隙流进沙地,很快就被热风带走。")
|
|
AddExp(50)
|
|
AddGP(100)
|
|
Action(OnComplete)
|
|
else:
|
|
Action(Farewell)
|
|
|
|
func OnComplete():
|
|
Mes("这正是我需要的。你不知道这有多救命。")
|
|
Mes("现在我只需要再来一瓶。")
|
|
Chat("开玩笑的。大部分是。")
|