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

261 lines
8.1 KiB
Lua

require('Actor/ActorCommon')
local questActorProxy = require('Actor/Quest/QuestActorProxy')
local Quest304 = class("Quest304", questActorProxy)
Quest304.defaultAlias = "Quest304"
local this = nil
local super = nil
local uActor = nil
local questID = 0
function Quest304:OnPreInit()
this = self
super = self.__super
questID = this.mainQuestID
super:OnPreInit()
end
function Quest304:OnPostInit()
uActor = self.uActor
super:OnPostInit()
end
-- local config begin
local q304Cfg = require('Actor/Quest/Q304/Q304Config')
local subIDs = q304Cfg.SubIDs
local amborData = q304Cfg.AmborData
local windData = q304Cfg.WindData
local featherData = q304Cfg.FeatherData
local dragonData = q304Cfg.DragonData
-- local config end
function Quest304:CreateUActor(alias)
local uActor = actorUtils.CreateActor(self, ActorType.QUEST_ACTOR, alias)
uActor = actorUtils.CreateQuestActor(questID, uActor)
return uActor
end
-- local param begin
-- local param end
-- local method begin
local function FlyByCutscene()
this:PlayFreeCutscene(q304Cfg.DragonCircleCutScene,nil, nil)
end
local function MengdeWindPrepare()
print("MengdeFeahterPrepare")
local RiseDir = {x=0,y=0,z=0}
this:SpawnGadget(windData.WindGadgetID, windData.wind1Pos, M.Dir2Euler(RiseDir), "Wind1")
this:SpawnGadget(windData.WindGadgetID, windData.wind2Pos, M.Dir2Euler(RiseDir), "Wind2")
this:SpawnGadget(windData.WindGadgetID, windData.wind3Pos, M.Dir2Euler(RiseDir), "Wind3")
this:SpawnGadget(windData.WindGadgetID, windData.wind4Pos, M.Dir2Euler(RiseDir), "Wind4")
this:SpawnGadget(windData.WindGadgetID, windData.wind5Pos, M.Dir2Euler(RiseDir), "Wind5")
this:SpawnGadget(windData.WindGadgetID, windData.wind6Pos, M.Dir2Euler(RiseDir), "Wind6")
this:SpawnGadget(windData.WindGadgetID, windData.wind7Pos, M.Dir2Euler(RiseDir), "Wind7")
this:SpawnGadget(windData.WindGadgetID, windData.wind8Pos, M.Dir2Euler(RiseDir), "Wind8")
this:SpawnGadget(windData.WindGadgetID, windData.wind9Pos, M.Dir2Euler(RiseDir), "Wind9")
this:SpawnGadget(windData.WindGadgetID, windData.wind10Pos, M.Dir2Euler(RiseDir), "Wind10")
this:SpawnGadget(windData.WindGadgetID, windData.wind11Pos, M.Dir2Euler(RiseDir), "Wind11")
this:SpawnGadget(windData.WindGadgetID, windData.wind12Pos, M.Dir2Euler(RiseDir), "Wind12")
this:SpawnGadget(windData.WindGadgetID, windData.wind13Pos, M.Dir2Euler(RiseDir), "Wind13")
-- this:SpawnGadget(windData.WallGadgetID, windData.WallPos, M.Dir2Euler(RiseDir), "Wall")
this:SpawnLocalGadget("Wall", windData.WallGadgetID, windData.WallPos, M.Dir2Euler(RiseDir))
this:SpawnLocalGadget("Skybox", windData.SkyboxGadgetID, windData.SkyboxPos, M.Dir2Euler(RiseDir))
--local Dragon = actorMgr:CreateActorWithPos(dragonData.Dragon, dragonData.DragonScript, dragonData.DragonID, 0, dragonData.DragonPos[1], dragonData.DragonDir[1], true, false)
--Dragon:FlyCircle()
--Dragon:FlyByCutscene()
FlyByCutscene()
globalActor:ChangeWeather ("Blustery")
end
local function MengdeWindDestroy()
print("MengdeFeahterDestroy")
globalActor:UnSpawn("Wind1")
globalActor:UnSpawn("Wind2")
globalActor:UnSpawn("Wind3")
globalActor:UnSpawn("Wind4")
globalActor:UnSpawn("Wind5")
globalActor:UnSpawn("Wind6")
globalActor:UnSpawn("Wind7")
globalActor:UnSpawn("Wind8")
globalActor:UnSpawn("Wind9")
globalActor:UnSpawn("Wind10")
globalActor:UnSpawn("Wind11")
globalActor:UnSpawn("Wind12")
globalActor:UnSpawn("Wind13")
globalActor:UnSpawn("Wall")
globalActor:UnSpawn("Skybox")
this:StopFreeCutscene(q304Cfg.DragonCircleCutScene, false)
-- local Dragon = actorMgr:GetActor(dragonData.Dragon)
-- if Dragon ~= nil then
-- Dragon:Destroy(false)
-- end
globalActor:ChangeWeather ("ClearSky")
end
local function AmborHide(actor)
actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.hiddenPos, amborData.hiddenDir,
true, false, nil, false)
end
local function AmborFeather1(actor)
local Ambor = actorMgr:GetActor(amborData.Ambor)
-- local Ambor = actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.arguePos, amborData.argueDir, true, false)
-- actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.feather1Pos, amborData.feather1Dir, true, false)
Ambor:AddPriorityInter(InterTimingType.BTN, q304Cfg.AmborNoReplyInter)
Ambor:RunToTask(amborData.feather1Pos,
function(self, task)
self:ClearFollowTask()
self:ClearPriorityInter(InterTimingType.BTN)
-- actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.feather1Pos, amborData.feather1Dir, true, false)
end
)
end
local function OnStart30400()
MengdeWindPrepare()
end
local function OnFinished30400(quest)
this:ActionSafeCall(AmborFeather1)
end
local function OnStart30401(quest)
end
local function OnStart30402(quest)
this:ActionSafeCall(AmborHide)
this:SpawnGadget(featherData.FeatherGadgetID, featherData.feather1Pos, featherData.feather1Dir, "Feather1")
end
local function OnStart30403()
this:NarratorOnlyTask(q304Cfg.AmborNarratorFlow1)
local quest = actorMgr:GetActor(q304Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
local function OnStart30404(quest)
this:SpawnGadget(featherData.FeatherGadgetID, featherData.feather2Pos, featherData.feather2Dir, "Feather2")
end
local function OnStart30405()
this:NarratorOnlyTask(q304Cfg.AmborNarratorFlow2)
local quest = actorMgr:GetActor(q304Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
local function OnStart30406(quest)
this:SpawnGadget(featherData.FeatherGadgetID, featherData.feather3Pos, featherData.feather3Dir, "Feather3")
end
local function OnStart30407()
this:NarratorOnlyTask(q304Cfg.AmborNarratorFlow3)
local quest = actorMgr:GetActor(q304Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
local function OnStart30408(quest)
this:SpawnGadget(featherData.FeatherGadgetID, featherData.feather4Pos, featherData.feather4Dir, "Feather4")
end
local function OnStart30409()
actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.feather4Pos, amborData.feather4Dir, true, false)
MengdeWindDestroy()
end
local function OnRewind30401()
actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.feather1Pos, amborData.feather1Dir, true, false)
MengdeWindPrepare()
end
local function OnRewind30403()
MengdeWindPrepare()
end
local function OnRewind30405()
MengdeWindPrepare()
end
local function OnRewind30407()
MengdeWindPrepare()
end
-- local method end
function Quest304:OnMainStart(quest)
end
function Quest304:OnSubStart(quest)
local questID = quest.QuestId
if questID == subIDs.q30401 then
OnStart30401(quest)
elseif questID == subIDs.q30402 then
OnStart30402(quest)
elseif questID == subIDs.q30403 then
OnStart30403()
elseif questID == subIDs.q30404 then
OnStart30404(quest)
elseif questID == subIDs.q30405 then
OnStart30405()
elseif questID == subIDs.q30406 then
OnStart30406(quest)
elseif questID == subIDs.q30407 then
OnStart30407()
elseif questID == subIDs.q30408 then
OnStart30408(quest)
elseif questID == subIDs.q30409 then
OnStart30409()
elseif questID == subIDs.q30400 then
OnStart30400()
end
end
function Quest304:OnSubFinished(quest)
local questID = quest.QuestId
if questID == subIDs.q30400 then
OnFinished30400(quest)
end
end
function Quest304:OnRewind30403(quest)
local questID = quest.QuestId
if questID == subIDs.q30403 then
OnRewind30403()
elseif questID == subIDs.q30405 then
OnRewind30405()
elseif questID == subIDs.q30407 then
OnRewind30407()
elseif questID == subIDs.q30401 then
OnRewind30401()
end
end
function Quest304:OnMainFinished(quest)
end
function Quest304:Start()
end
function Quest304:OnDestroy()
end
return Quest304