miduo_client/Assets/ManagedResources/~Lua/Modules/Mission/BHController.lua

62 lines
2.1 KiB
Lua
Raw Normal View History

2020-08-06 17:52:32 +08:00
local BHController = {}
2020-05-09 13:31:21 +08:00
local this = BHController
--- 注册事件节点
this.BHNodeList = {
Battle = require("Modules/Mission/Behaviour/BHBattle"),
Buff = require("Modules/Mission/Behaviour/BHBuff"),
DeletePoint = require("Modules/Mission/Behaviour/BHDeletePoint"),
MapProgressChange = require("Modules/Mission/Behaviour/BHMapProgressChange"),
MoveTo = require("Modules/Mission/Behaviour/BHMoveTo"),
NewPoint = require("Modules/Mission/Behaviour/BHNewPoint"),
ParseMission = require("Modules/Mission/Behaviour/BHParseMission"),
ShowProgress = require("Modules/Mission/Behaviour/BHShowProgress"),
ShowReward = require("Modules/Mission/Behaviour/BHShowReward"),
SpendGoods = require("Modules/Mission/Behaviour/BHSpendGoods"),
}
--- 按数组顺序执行
function this.SeqExcuteNodeArray(nodeInfoList, func)
-- 检测数组正确性
if not nodeInfoList or #nodeInfoList == 0 then
return
end
-- 递归执行节点,保证顺序执行
local index = 1
local function StartExcute(...)
-- 获取节点id
local BHNodeInfo = nodeInfoList[index]
if BHNodeInfo then
-- 下标后移,未下一次递归做准备
index = index + 1
-- 获取节点执行
local option = BHNodeInfo[1]
-- 判断是参数还是构建参数的方法
local arg = BHNodeInfo[2]
if type(arg) == "function" then
arg = arg(...)
end
local BHNode = this.BHNodeList[option]
if not BHNode then
2020-06-23 18:36:24 +08:00
Log(Language[11357] .. option)
2020-05-09 13:31:21 +08:00
return
end
-- 单事件节点执行完成回调
local function NodeDoneFunc(...)
if BHNodeInfo[3] and type(BHNodeInfo[3]) == "function" then
BHNodeInfo[3](...)
end
end
BHNode.Excute(arg, StartExcute, NodeDoneFunc)
else
-- 递归结束
if func then func() end
end
end
-- 开始执行
StartExcute()
end
2020-06-23 18:36:24 +08:00
return this