using Cal; using System; using System.Collections.Generic; namespace ET { public class SkillLogicDstroySystem : DestroySystem { public override void Destroy(SkillLogic self) { self.dataX10000 = 1; self.dataOldX10000 = 1; self.owner = null; self.skillLogicConfig = null; self.skillAI = null; self.lastCDTime = 0; self.skillLevel = 0; foreach (var item in self.skillOptionLogics) { SkillOptionFactory.Recycle(item); } self.skillOptionLogics.Clear(); } } public static class SkillLogicSystem { public static void HandleEvent(this SkillLogic self, SkillEventCondition skillEventCondition, ISkillSender skillSender) { if (self?.skillLogicConfig?.skillEventDic == null) return; if (!self.skillLogicConfig.skillEventDic.TryGetValue(skillEventCondition, out var skillOptionBaseList)) { return; } foreach (var option in skillOptionBaseList) { var skillOptionLogicBase = SkillOptionFactory.AcquireSkillOptionLogic(option); self.skillOptionLogics.Add(skillOptionLogicBase); skillOptionLogicBase.HandleEvent(skillSender); } } public static void UpdateLevel(this SkillLogic self) { throw new NotImplementedException(); } } }