using Cal; namespace ET { public class SkillOptionLogic_应用Modifier: SkillOptionLogicBase { public override SkillOptionType skillOptionType => SkillOptionType.应用Modifier; public override SkillOptionBase skillOptionBase { get; set; } SkillOption_应用Modifier skillOption; public override void HandleEvent(ISkillSender skillSender) { skillOption = skillOptionBase.As(); SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, Action); } private async ETTask Action(Unit target, ISkillSender skillSender) { var owner = skillSender.caster; SkillMgrComponent skillMgrComponent = owner.GetComponent(); SkillLogic skillLogic = skillMgrComponent.GetSkill(skillSender.skillConfigId/100); ModifierContainerComponent modifierComponent = target.GetComponent(); if (!skillLogic || skillLogic.skillLogicConfig == null || skillLogic.skillLogicConfig.modifierDic == null) { Log.Error($"{owner.Id} has no skill: skillId is {skillSender.skillConfigId}, 1 {skillLogic} 2 {skillLogic?.skillLogicConfig} 3 {skillLogic?.skillLogicConfig?.modifierDic}"); } modifierComponent.ApplyModifier(skillSender.caster, skillLogic, this.skillOption.modifierId); } } }