GSServer-CBT/soggy_resources/lua/Actor/Quest/MQ380.lua
Akbar Yahya e0d4d8040c melon
2022-11-21 16:30:31 +08:00

146 lines
4.1 KiB
Lua

require('Actor/ActorCommon')
local questActorProxy = require('Actor/Quest/QuestActorProxy')
local Quest380 = class("Quest380", questActorProxy)
Quest380.defaultAlias = "Quest380"
local q380Cfg = require('Quest/Client/Q380ClientConfig')
local subIDs = q380Cfg.SubIDs
local qinData = q380Cfg.QinData
local dilucData = q380Cfg.DilucData
local paimonData = q380Cfg.PaimonData
local treasureData = q380Cfg.TreasureData
-- Generated
function Quest380:OnSubStartHandlerBuild()
self.subStartHandlers = {}
self.subStartHandlers["38001"] = self.OnSubStart38001
self.subStartHandlers["38002"] = self.OnSubStart38002
self.subStartHandlers["38003"] = self.OnSubStart38003
self.subStartHandlers["38004"] = self.OnSubStart38004
end
function Quest380:OnSubFinishHandlerBuild()
self.subFinishHandlers = {}
self.subFinishHandlers["38001"] = self.OnSubFinish38001
self.subFinishHandlers["38002"] = self.OnSubFinish38002
self.subFinishHandlers["38003"] = self.OnSubFinish38003
self.subFinishHandlers["38004"] = self.OnSubFinish38004
end
-- local param begin
-- local param end
-- local method begin
--@region sub start handlers
function Quest380:OnSubStart38001(quest)
print("38001 start:...")
-- local quest = actorMgr:GetActor(q380Cfg.ActorAlias)
-- if quest ~= nil then
-- quest:FinishQuest(false, nil)
-- end
actorMgr:CreateActorWithPos("Q380Trigger", "Actor/Gadget/Q380TriggerArea", 70900002, 0, sceneData:GetDummyPoint(3,"DUMMY_POS 3003390").pos, sceneData:GetDummyPoint(3,"DUMMY_POS 3003390").rot, true, false)
end
function Quest380:OnSubStart38002(quest)
print("38002 start:...")
-- TODO: Do sth on sub quest 38002 start
end
function Quest380:OnSubStart38003(quest)
print("38003 start:...")
-- TODO: Do sth on sub quest 38002 start
self:SpawnChest(treasureData.GadgetID, treasureData.bornPos, treasureData.bornDir, "Chest380", 3, treasureData.DropId ,treasureData.ShowCutscene)
end
function Quest380:OnSubStart38004(quest)
print("38004 start:...")
-- TODO: Do sth on sub quest 38002 start
self:CallDelay(1, self.EnterDialog)
end
function Quest380:CreateNPC()
actorMgr:CreateActorWithPos(paimonData.Paimon, paimonData.PaimonScript, paimonData.PaimonID, 0, paimonData.bornPos, paimonData.bornDir, true)
actorMgr:CreateActorWithPos(dilucData.Diluc, dilucData.DilucScript, dilucData.DilucID, 0, dilucData.bornPos, dilucData.bornDir, true)
actorMgr:CreateActorWithPos(qinData.Qin, qinData.QinScript, qinData.QinID, 0, qinData.bornPos, qinData.bornDir, true)
end
function Quest380:StartDialog()
self:RequestInteraction(qinData.Qin)
end
function Quest380:EnterDialog()
self:ShowBlackScreen(0.5, 1.0, 0.5, self.CreateNPC, self.StartDialog)
end
--@endregion
--@region sub finish handlers
function Quest380:OnSubFinish38001(quest)
print("OnFinished 38001")
end
function Quest380:OnSubFinish38002(quest)
print("OnFinished 38002")
end
function Quest380:OnSubFinish38003(quest)
print("OnFinished 38002")
end
function Quest380:OnSubFinish38004(quest)
print("OnFinished 38004")
self:ActionSafeCall(self.ExitDialog)
end
function Quest380:DestroyNPC()
self:ActionSafeCall(
function(self)
local paimon = actorMgr:GetActor(paimonData.Paimon)
if paimon ~= nil then
paimon:Destroy(false)
end
end
)
self:ActionSafeCall(
function(self)
local qin = actorMgr:GetActor(qinData.Qin)
if qin ~= nil then
qin:Destroy(false)
end
end
)
self:ActionSafeCall(
function(self)
local diluc = actorMgr:GetActor(dilucData.Diluc)
if diluc ~= nil then
diluc:Destroy(false)
end
end
)
end
function Quest380:TellStory(quest)
self:CallDelay(1.5, self.StartStory)
end
function Quest380:StartStory(quest)
self:NarratorOnlyTask(q380Cfg.StoryNarrator, nil, "Story")
end
function Quest380:ExitDialog()
self:ShowBlackScreen(0.5, 1.0, 0.5, self.DestroyNPC, self.TellStory)
end
--@endregion
function Quest380:Start()
end
function Quest380:OnDestroy()
end
return Quest380