GSServer-CBT/soggy_resources/lua/Actor/Quest/Q352/Paimon.lua

316 lines
7.4 KiB
Lua
Raw Normal View History

2022-11-21 11:30:31 +03:00
require('Actor/ActorCommon')
local quest352 = require('Actor/Quest/MQ352')
local npcActorProxy = require('Actor/Npc/NpcActorProxy')
local Paimon = class("Paimon", npcActorProxy)
Paimon.defaultAlias = "Paimon"
-- local config begin
--local q351Cfg = require('Actor/Quest/Q351/Q351Config')
--local q352Cfg = require('Quest/Client/Q352ClientConfig')
-- local config end
function Paimon:TransPreCallBack(qCfg)
print("TransPreCallBack")
local avatarEular = self:GetEuler()
self.uActor:SetAvatarEuler(avatarEular)
self:AddPriorityInter(InterTimingType.BTN, qCfg.PlayerBackInter)
local quest = actorMgr:GetActor(qCfg.ActorAlias)
quest:RequestInteraction(qCfg.PaimonData.Paimon)
self:ActionSafeCall(function (actor)
self:ClearPriorityInter(InterTimingType.BTN)
end)
end
function Paimon:TransFinishCallBack(qCfg)
print("TransFinishCallBack")
end
-- local method
--[[ function Paimon:FollowWater()
print("FollowWater")
self:ClearFollowTask()
self:BeFollowTask(q352Cfg.ByWaterPos, q352Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:Standby()
self:TurnTo(M.Euler2DirXZ(q352Cfg.ByWaterDir))
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q352Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q352Cfg)
end,
function(self)
self:TransPreCallBack(q352Cfg)
end
)
end
function Paimon:Follow3()
print("Follow3")
self:ClearFollowTask()
self:BeFollowTask(q352Cfg.PaimonFollow3Pos, q352Cfg.FollowLen,-1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:FollowWater()
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q352Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q352Cfg)
end,
function(self)
self:TransPreCallBack(q352Cfg)
end
)
end
function Paimon:Follow2()
print("Follow2")
self:ClearFollowTask()
self:BeFollowTask(q352Cfg.PaimonFollow2Pos, q352Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:Follow3()
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q352Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q352Cfg)
end,
function(self)
self:TransPreCallBack(q352Cfg)
end
)
end
function Paimon:Follow1()
print("Follow1")
self:ClearFollowTask()
self:BeFollowTask(q352Cfg.PaimonFollow1Pos, q352Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q352Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:Follow2()
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q352Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q352Cfg)
end,
function(self)
self:TransPreCallBack(q352Cfg)
end
)
end
function Paimon:FirstStartFollow1()
print("FirstStartFollow1")
self:ClearFollowTask()
--self:SwitchAirMode(true)
self:BeFollowTask(q351Cfg.FirstStartFollow1Pos, q351Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:FirstStartFollow2()
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q351Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q351Cfg)
end,
function(self)
self:TransPreCallBack(q351Cfg)
end
)
end
function Paimon:FirstStartFollow2()
print("FirstStartFollow2")
self:ClearFollowTask()
self:BeFollowTask(q351Cfg.FirstStartFollow2Pos, q351Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:FirstStartFollow3()
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q351Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q351Cfg)
end,
function(self)
self:TransPreCallBack(q351Cfg)
end
)
end
function Paimon:FirstStartFollow3()
print("FirstStartFollow3")
self:ClearFollowTask()
self:AirModeOff()
self:BeFollowTask(q351Cfg.FirstStartFollow3Pos, q351Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:FirstStartFollowFinish()
end
end,
function(self, task)
self:Standby()
end,
nil
)
self:BeLockTask(q351Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q351Cfg)
end,
function(self)
self:TransPreCallBack(q351Cfg)
end
)
end
function Paimon:FirstStartFollowFinish()
print("FirstStartFollowFinish")
self:ClearFollowTask()
self:BeFollowTask(q351Cfg.FirstClimbPos, q351Cfg.FollowLen, -1,
function(self, task)
if self.BeFollowState == BeFollowState.FAILED then
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(true, nil)
end
self:StopPerformNarrator()
elseif self.BeFollowState == BeFollowState.SUCCESS then
self:DoFreeStyle(0)
self:TurnTo(M.Euler2DirXZ(q351Cfg.FirstClimbDir))
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
if quest ~= nil then
quest:FinishQuest(false, nil)
end
end
end,
function(self, task)
self:Standby()
end
)
self:BeLockTask(q351Cfg.FollowTransLen, 1,
function(self)
self:TransFinishCallBack(q351Cfg)
end,
function(self)
self:TransPreCallBack(q351Cfg)
end
)
end ]]
function Paimon:Vanish(task)
self:Destroy(false)
end
function Paimon:VanishKeep(OnVanish)
self:Disappear(OnVanish)
end
function Paimon:ByQueen()
self:RunToTask(sceneData:GetDummyPoint(3,"Q352Queen").pos,
function(self)
self:AirModeOff()
self:Standby()
self:TurnTo(M.Euler2DirXZ(sceneData:GetDummyPoint(3,"Q352Queen").rot))
end
)
end
function Paimon:AirModeOn()
self:SwitchAirMode(true)
end
function Paimon:AirModeOff()
self:SwitchAirMode(false)
end
-- local method end
Paimon.TaskOnPauseReminder = 1001
Paimon.TaskOnResumeReminder = 1002
function Paimon:Start()
print("start!Paimon")
self:RegisterTaskCB()
end
function Paimon:OnDestroy()
print("Paimon destroied")
self:UnregisterTaskCB()
end
return Paimon