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) { skillOption = skillOptionBase.As(); NumericComponent num = target.GetComponent(); ModifierContainerComponent modifierContainer = target.GetComponent(); ModifierLogic logic = modifierContainer.GetModifierLogic(skillOption.modifierId); if (logic == null) { Log.Error($"logic is null where tagertId is:{target.Id} and ownerId is {skillSender.caster.Id}"); return; } modifierContainer.RemoveModifier(logic); logic.dataX10000 = (1 - (float) num.GetAsInt(NumericType.Hp) / num.GetAsInt(NumericType.MaxHp)) / 0.1f; SkillMgrComponent skillMgrComponent = logic.owner.GetComponent(); SkillLogic skillLogic = skillMgrComponent.GetSkill(skillSender.skillConfigId / 100); modifierContainer.ApplyModifier(logic.owner, skillLogic, skillOption.modifierId); } public override void Clear() { } } }