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

50 lines
1.8 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 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;
}
2021-04-11 19:50:39 +08:00
TargetableUnitComponent component = skillSender.caster.GetComponent<TargetableUnitComponent>();
2021-04-08 20:09:59 +08:00
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;
}
}
}