mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2024-12-26 07:49:29 +03:00
173 lines
4.2 KiB
Lua
173 lines
4.2 KiB
Lua
|
require('Actor/ActorCommon')
|
||
|
local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||
|
local Quest409 = class("Quest409", questActorProxy)
|
||
|
Quest409.defaultAlias = "Quest409"
|
||
|
|
||
|
local this = nil
|
||
|
local super = nil
|
||
|
local uActor = nil
|
||
|
local questID = 0
|
||
|
local success = false
|
||
|
|
||
|
|
||
|
function Quest409:OnPreInit()
|
||
|
this = self
|
||
|
super = self.__super
|
||
|
questID = this.mainQuestID
|
||
|
super:OnPreInit()
|
||
|
end
|
||
|
function Quest409:OnPostInit()
|
||
|
uActor = self.uActor
|
||
|
super:OnPostInit()
|
||
|
end
|
||
|
|
||
|
-- local config begin
|
||
|
local q409Cfg = require('Actor/Quest/Q409/Q409Config')
|
||
|
local subIDs = q409Cfg.SubIDs
|
||
|
local JudgeData = q409Cfg.JudgeData
|
||
|
|
||
|
|
||
|
-- local config end
|
||
|
|
||
|
function Quest409:CreateUActor(alias)
|
||
|
local uActor = actorUtils.CreateActor(self, ActorType.QUEST_ACTOR, alias)
|
||
|
uActor = actorUtils.CreateQuestActor(questID, uActor)
|
||
|
return uActor
|
||
|
end
|
||
|
|
||
|
local function ChallengePrepare()
|
||
|
print("ChallengePrepare")
|
||
|
actorMgr:CreateActorWithPos("GoalMarker409", "Actor/Gadget/GoalMarker409", 70300004, 0, q409Cfg.KeyPos, q409Cfg.KeyDir, true, false)
|
||
|
this:SpawnMonster(q409Cfg.BallMonsterID, 1, q409Cfg.BallPos1, nil, nil, nil, "Ball1")
|
||
|
this:SpawnMonster(q409Cfg.BallMonsterID, 1, q409Cfg.BallPos2, nil, nil, nil, "Ball2")
|
||
|
this:SpawnMonster(q409Cfg.BallMonsterID, 1, q409Cfg.BallPos3, nil, nil, nil, "Ball3")
|
||
|
end
|
||
|
|
||
|
local function ChallengeDestroy()
|
||
|
local GoalMarker409 = actorMgr:GetActor("GoalMarker409")
|
||
|
if GoalMarker409 ~= nil then
|
||
|
GoalMarker409:DestroySelf()
|
||
|
end
|
||
|
this:UnSpawn("Ball1")
|
||
|
this:UnSpawn("Ball2")
|
||
|
this:UnSpawn("Ball3")
|
||
|
end
|
||
|
|
||
|
local function CountDown()
|
||
|
print("CountDown Finished")
|
||
|
this:CountDownUITerminate()
|
||
|
this:CountNumUITerminate()
|
||
|
ChallengeDestroy()
|
||
|
if q409Cfg.Score < q409Cfg.RequireScore then
|
||
|
success = false
|
||
|
local quest = actorMgr:GetActor(q409Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
print("success == false")
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
elseif q409Cfg.Score >= q409Cfg.RequireScore then
|
||
|
success = true
|
||
|
local quest = actorMgr:GetActor(q409Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
print("success == true")
|
||
|
quest:FinishQuest(false, nil)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function StartCount(actor)
|
||
|
this:CountDownUIStart(q409Cfg.MatchTime, 10, 3)
|
||
|
this:CountNumUIStart()
|
||
|
this:CallDelay(q409Cfg.MatchTime+4,CountDown)
|
||
|
end
|
||
|
|
||
|
local function OnStart40901(quest)
|
||
|
this:ActionSafeCall(
|
||
|
function (this)
|
||
|
actorMgr:CreateActorWithPos(JudgeData.Judge, JudgeData.JudgeScript, JudgeData.JudgeID, 0, JudgeData.JudgePos, JudgeData.JudgeDir, true, false)
|
||
|
end
|
||
|
)
|
||
|
end
|
||
|
|
||
|
local function OnStart40902(quest)
|
||
|
print("40902 start: chanllenge start")
|
||
|
q409Cfg.Score = 0
|
||
|
ChallengePrepare()
|
||
|
this:ActionSafeCall(StartCount)
|
||
|
end
|
||
|
|
||
|
local function OnFinished40902()
|
||
|
print("Chanllenge finish")
|
||
|
this:CountDownUITerminate()
|
||
|
this:CountNumUITerminate()
|
||
|
this:UnCallFunc(CountDown)
|
||
|
ChallengeDestroy()
|
||
|
end
|
||
|
|
||
|
local function OnFailed40902()
|
||
|
print("OnFailed40902")
|
||
|
end
|
||
|
|
||
|
local function OnStart40905()
|
||
|
print("40905 start: fail the task")
|
||
|
local quest = actorMgr:GetActor(q409Cfg.ActorAlias)
|
||
|
if quest ~= nil then
|
||
|
quest:FinishQuest(true, nil)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function OnRewind40901()
|
||
|
end
|
||
|
local function OnRewind40904()
|
||
|
end
|
||
|
|
||
|
-- local method end
|
||
|
|
||
|
function Quest409:OnMainStart(quest)
|
||
|
|
||
|
end
|
||
|
|
||
|
function Quest409:OnSubStart(quest)
|
||
|
local questID = quest.QuestId
|
||
|
if questID == subIDs.q40901 then
|
||
|
OnStart40901(quest)
|
||
|
elseif questID == subIDs.q40902 then
|
||
|
OnStart40902(quest)
|
||
|
elseif questID == subIDs.q40905 then
|
||
|
OnStart40905()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Quest409:OnSubFinished(quest)
|
||
|
local questID = quest.QuestId
|
||
|
if questID == subIDs.q40902 then
|
||
|
OnFinished40902()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Quest409:OnSubFailed(quest)
|
||
|
local questID = quest.QuestId
|
||
|
if questID == subIDs.q40902 then
|
||
|
OnFailed40902()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Quest409:OnRewind(quest)
|
||
|
local questID = quest.QuestId
|
||
|
if questID == subIDs.q40901 then
|
||
|
OnRewind40901()
|
||
|
elseif questID == subIDs.q40904 then
|
||
|
OnRewind40904()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Quest409:OnMainFinished(quest)
|
||
|
end
|
||
|
|
||
|
function Quest409:Start()
|
||
|
end
|
||
|
|
||
|
function Quest409:OnDestroy()
|
||
|
end
|
||
|
|
||
|
return Quest409
|