zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/SkillSystem/NewSkill/System/SkillLogicSystem.cs

48 lines
1.5 KiB
C#

using Cal;
using System;
using System.Collections.Generic;
namespace ET
{
public class SkillLogicDstroySystem : DestroySystem<SkillLogic>
{
public override void Destroy(SkillLogic self)
{
self.dataX10000 = 1;
self.dataOldX10000 = 1;
self.owner = null;
self.skillLogicConfig = null;
self.lastCDTime = 0;
self.skillLevel = 0;
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 SkillOptionBase[] skillOptionBaseList))
{
return;
}
foreach (SkillOptionBase option in skillOptionBaseList)
{
SkillOptionLogicBase skillOptionLogicBase = SkillOptionFactory.AcquireSkillOptionLogic(option);
self.skillOptionLogics.Add(skillOptionLogicBase);
skillOptionLogicBase.HandleEvent(skillSender);
}
}
public static void UpdateLevel(this SkillLogic self)
{
throw new NotImplementedException();
}
public static void Clear(this SkillLogic self)
{
self.dataX10000 = 1;
self.dataOldX10000 = 1;
}
}
}