--是一组Decision,对应的是AI编辑器里的初始界面里的一行配置,特点是具有Priority、CD、进入条件、退出条件等 local PriorityDecisionGroup = class("PriorityDecisionGroup") local ipairs=ipairs local table=table local rawset=rawset function PriorityDecisionGroup:initialize(data) self.Data = data self.EnterCount = 0 self.CD = 0 self.EnterConditionNode = ConditionManager.CreateConditionNode(data.EnterConditionStr) self.ExitConditionNode = ConditionManager.CreateConditionNode(data.ExitConditionStr) if self.ExitConditionNode.ConditionTree == nil then logging.error(LTAG.ERROR, "HYW : AI配置错误!退出条件为空! ID :", data.DecisionDatas[1] and data.DecisionDatas[1].ID or "未知") end self.DecisionDataList = {} self:SetDecisionDataList(self.DecisionDataList,data) end function PriorityDecisionGroup:SetDecisionDataList(list, data) local last = nil for i,v in ipairs(data.DecisionDatas) do if last then rawset(last,"NextDecisionData",v) end table.insert(list,v) last = v end end function PriorityDecisionGroup:IsAvailable(entity) return self.CD <= 0 and self.EnterConditionNode:MeetCondition(entity) and (self.Data.EnterCountLimit == 0 or self.EnterCount < self.Data.EnterCountLimit) end return PriorityDecisionGroup