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#
Executable File

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 targetableUnitComponent = skillSender.caster.GetComponent<TargetableUnitComponent>();
if (targetableUnitComponent == null)
{
Log.Warning($"战斗已经结束");
return null;
}
Unit target = null;
switch (self.targetType)
{
case SingleTargetType.:
target = skillSender.caster;
break;
case SingleTargetType.:
target = targetableUnitComponent.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.skillConfigId}");
else
target = modifierSkillSender.target;
break;
default:
break;
}
TargetableSingleUnit targetableSingleUnit = EntityFactory.Create<TargetableSingleUnit, Unit>(Game.Scene, target);
return targetableSingleUnit;
}
}
}