Files
2026-06-03 17:04:06 +08:00

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("开玩笑的。大部分是。")