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, Action); } private async ETTask Action(Unit target, ISkillSender skillSender) { AttackComponent attacker = target.GetComponent(); if (!SkillHelper.GetParam(this.skillOption.param, skillSender.skillConfigId, out float value)) return; if (!(skillSender is ModifierSkillSender modifierSkillSender)) { Log.Error($"skillSender = {skillSender} is not ModifierSkillSender"); return; } // ModifierContainerComponent modifierContainerComponent = target.GetComponent(); // ModifierLogic modifierLogic =modifierContainerComponent.GetModifierLogic(modifierSkillSender.modifierId); ModifierLogic modifierLogic = modifierSkillSender.modifierLogic; if (modifierLogic == null) return; float valueInt = value; modifierLogic.multiDamageX10000 = valueInt - attacker.multipleDamageX10000; // logic.SetMultipleDamage(valueInt); attacker.multipleDamageX10000 = valueInt; } } }