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

50 lines
1.8 KiB
C#
Raw Permalink 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)
{
2023-09-07 00:06:37 +08:00
// Log.Error($"skillSender is null :{skillSender == null} caster is null :{skillSender?.caster == null}");
2021-04-08 20:09:59 +08:00
return null;
}
2023-09-07 00:06:37 +08:00
TargetableUnitComponent targetableUnitComponent = skillSender.caster.GetComponent<TargetableUnitComponent>();
if (targetableUnitComponent == null)
2021-04-08 20:09:59 +08:00
{
2022-05-29 23:02:28 +08:00
Log.Warning($"战斗已经结束");
2021-04-08 20:09:59 +08:00
return null;
}
Unit target = null;
switch (self.targetType)
{
case SingleTargetType.:
target = skillSender.caster;
break;
case SingleTargetType.:
2023-09-07 00:06:37 +08:00
target = targetableUnitComponent.currTarget;
2021-04-08 20:09:59 +08:00
break;
case SingleTargetType.:
target = skillSender.caster;
break;
case SingleTargetType.modifier:
if (skillSender is not ModifierSkillSender modifierSkillSender)
2023-09-07 00:06:37 +08:00
Log.Error($"{skillSender} is not modifier,skillLogicId = {skillSender.skillConfigId}");
2021-04-08 20:09:59 +08:00
else
target = modifierSkillSender.target;
break;
default:
break;
}
TargetableSingleUnit targetableSingleUnit = EntityFactory.Create<TargetableSingleUnit, Unit>(Game.Scene, target);
return targetableSingleUnit;
}
}
}