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(); Unit owner = skillSender.caster; SkillLogic skillLogic = skillSender.skillLogic; TargetableUnitComponent targetComponent = owner.GetComponent(); int aliveCount = targetComponent.GetTagetAliveCount(); if (aliveCount >= 4) return; if (!SkillHelper.GetParam(skillOption.param, skillLogic.skillConfigId, out float value)) return; if (skillSender is not ModifierSkillSender modifierSkillSender) { Log.Error($"skillSender = {skillSender} is not ModifierSkillSender"); return; } ModifierLogic modifierLogic = modifierSkillSender.modifierLogic; if (modifierLogic == null) return; float valueInt = 1 + (value - 1) / (aliveCount + 0.01f); modifierLogic.multiDamageX10000 = valueInt - skillLogic.GetMultipleDamage(); skillLogic.SetMultipleDamage( valueInt); } } }