using Cal; namespace ET { public class SkillOptionLogic_反伤 : SkillOptionLogicBase { public override SkillOptionType skillOptionType => SkillOptionType.反伤; public override SkillOptionBase skillOptionBase { get; set; } SkillOption_反伤 skillOption; public override void HandleEvent(ISkillSender skillSender) { skillOption = skillOptionBase.As(); SelectTargetHelper.GetTarget(skillOption.selectTarget, skillSender, (target, skillSender) => { if (skillSender is not ModifierSkillSender modifierSkillSender) { Log.Error($"skillSender is not modifierSkillSender"); return; } //反伤伤害 受击者 Unit attacker = skillSender.caster; //反伤伤害 发起者 Unit beAtker = modifierSkillSender.target; AttackComponent attackComponent = attacker.GetComponent(); BallisticData damageData = attackComponent.GetAttackData(); if (!SkillHelper.GetParam(skillOption.param, skillSender.skillLogic.skillConfigId, out float value)) return; damageData.ChangeValue(damageData.value * value / 100); beAtker.GetComponent().AttackTarget(attacker, damageData, skillSender, false); }); } } }