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