48 lines
1.5 KiB
C#
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.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();
|
|
}
|
|
}
|
|
}
|