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(); 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(Game.Scene, target); return targetableSingleUnit; } } }