CTT/Server/Hotfix/Game/SkillSystem/NewSkill/System/SkillLogicSystem.cs

48 lines
1.5 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
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;
2021-04-11 19:50:39 +08:00
if (!self.skillLogicConfig.skillEventDic.TryGetValue(skillEventCondition, out SkillOptionBase[] skillOptionBaseList))
2021-04-08 20:09:59 +08:00
{
return;
}
2021-04-11 19:50:39 +08:00
foreach (SkillOptionBase option in skillOptionBaseList)
2021-04-08 20:09:59 +08:00
{
2021-04-11 19:50:39 +08:00
SkillOptionLogicBase skillOptionLogicBase = SkillOptionFactory.AcquireSkillOptionLogic(option);
2021-04-08 20:09:59 +08:00
self.skillOptionLogics.Add(skillOptionLogicBase);
skillOptionLogicBase.HandleEvent(skillSender);
}
}
public static void UpdateLevel(this SkillLogic self)
{
throw new NotImplementedException();
}
2021-04-11 19:50:39 +08:00
public static void Clear(this SkillLogic self)
{
self.dataX10000 = 1;
self.dataOldX10000 = 1;
}
2021-04-08 20:09:59 +08:00
}
}