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

50 lines
1.8 KiB
C#

using Cal;
using System;
using System.Collections.Generic;
namespace ET
{
public static class SelectSingleTargetSystem
{
public static TargetableUnitBase GetTarget(this SelectSingleTarget self, ISkillSender skillSender)
{
if (skillSender?.caster == null)
{
Log.Error($"skillSender is null :{skillSender == null} caster is null :{skillSender?.caster == null}");
return null;
}
TargetableUnitComponent component = skillSender.caster.GetComponent<TargetableUnitComponent>();
if (component == null)
{
Log.Error($"战斗已经结束");
return null;
}
Unit target = null;
switch (self.targetType)
{
case SingleTargetType.:
target = skillSender.caster;
break;
case SingleTargetType.:
target = component.currTarget;
break;
case SingleTargetType.:
target = skillSender.caster;
break;
case SingleTargetType.modifier:
if (skillSender is not ModifierSkillSender modifierSkillSender)
Log.Error($"{skillSender} is not modifier,skillLogicId = {skillSender.skillLogic.skillId}");
else
target = modifierSkillSender.target;
break;
default:
break;
}
TargetableSingleUnit targetableSingleUnit = EntityFactory.Create<TargetableSingleUnit, Unit>(Game.Scene, target);
return targetableSingleUnit;
}
}
}