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

185 lines
4.8 KiB
Lua

require('Actor/ActorCommon')
local npcActorProxy = require('Actor/Npc/NpcActorProxy')
local Gaia301 = class("Gaia301", npcActorProxy)
local q301Cfg = require('Actor/Quest/Q301/Config/Q301Config')
local gaiaData = q301Cfg.GaiaData
Gaia301.defaultAlias = "Gaia"
-- local method
function Gaia301:StartBeFollow1()
self:ClearFollowTask()
self:BeFollowTask(gaiaData.firstPos, gaiaData.BeFollowLen, gaiaData.BeFollowFailedLen,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
--self:Destroy(false)
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:TurnTo(M.Euler2DirXZ(gaiaData.bornDir))
self:Standby()
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
self:CheckNpcTalk()
end
end,
function(self, task)
self:Standby()
end
)
end
function Gaia301:Sleep()
self:DoFreeStyle(1)
end
function Gaia301:OnSleep()
print("OnSleep")
self:ClearFollowTask()
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.NORMAL)
task:StartEvent('+',self.Sleep)
task:PauseEvent('+', self.Sleep)
task:ResumeEvent('+', self.Sleep)
task:FinishEvent('+', self.Sleep)
end
function Gaia301:StartBeFollow2()
self:ClearFollowTask()
self:BeFollowTask(gaiaData.secondPos, gaiaData.BeFollowLen, gaiaData.BeFollowFailedLen,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
--self:Destroy(false)
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:TurnTo(M.Euler2DirXZ(gaiaData.bornDir))
self:OnSleep()
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
end,
function(self, task)
self:Standby()
end
)
end
function Gaia301:StartBeFollow5()
print("GaiaFollow5")
self:ClearFollowTask()
self:BeFollowTask(gaiaData.fifthPos, gaiaData.BeFollowLen, gaiaData.BeFollowFailedLen,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:StartBeFollow3()
end
end,
function(self, task)
self:Standby()
end
)
end
function Gaia301:StartBeFollow3()
self:ClearFollowTask()
self:BeFollowTask(gaiaData.thirdPos, gaiaData.BeFollowLen, gaiaData.BeFollowFailedLen,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
--self:Destroy(false)
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:TurnTo(M.Euler2DirXZ(gaiaData.bornDir))
self:Standby()
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
end,
function(self, task)
self:Standby()
end
)
end
function Gaia301:StartBeFollow6()
print("GaiaFollow5")
self:ClearFollowTask()
self:BeFollowTask(gaiaData.sixthPos, gaiaData.BeFollowLen, gaiaData.BeFollowFailedLen,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:StartBeFollow4()
end
end,
function(self, task)
self:Standby()
end
)
end
function Gaia301:StartBeFollow4()
self:ClearFollowTask()
self:BeFollowTask(gaiaData.fourthPos, gaiaData.BeFollowLen, gaiaData.BeFollowFailedLen,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
--self:Destroy(false)
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:TurnTo(M.Euler2DirXZ(gaiaData.bornDir))
self:Standby()
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
end,
function(self, task)
self:Standby()
end
)
end
function Gaia301:Show()
self:ClearFollowTask()
self:WalkToTask(gaiaData.showPos,
function(self, task)
local quest = actorMgr:GetActor(q301Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
self:TurnTo(M.Euler2DirXZ(gaiaData.showDir))
self:Standby()
end
)
end
-- local method end
function Gaia301:Start()
end
return Gaia301