public void ClearAll() { LoadLevelList.Clear(); StartTestDriveList.Clear(); FinishTestDriveList.Clear(); StartGameList.Clear(); FinishGameList.Clear(); RoundGameList.Clear(); StartActiveBattleList.Clear(); PlayerLoadList.Clear(); DamageList.Clear(); KillList.Clear(); KillAssistList.Clear(); ScoreList.Clear(); DecalList.Clear(); }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); var hitArcaneBolt = 0.0f; if (target.IsVisible) { // AncientSeal var ancientSeal = Abilities.AncientSeal; if (ancientSeal.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(ancientSeal.ToString())) { abilities.Add(ancientSeal); } // Veil var veil = Abilities.Veil; if (veil != null && veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(veil.ToString())) { abilities.Add(veil); } // Ethereal var ethereal = Abilities.Ethereal; if (ethereal != null && ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(ethereal.ToString())) { abilities.Add(ethereal); } // Shivas var shivas = Abilities.Shivas; if (shivas != null && shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(shivas.ToString())) { abilities.Add(shivas); } // ConcussiveShot var concussiveShot = Abilities.ConcussiveShot; if (concussiveShot.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(concussiveShot.ToString()) && target == concussiveShot.TargetHit) { abilities.Add(concussiveShot); } // ArcaneBolt var arcaneBolt = Abilities.ArcaneBolt; if (arcaneBolt.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(arcaneBolt.ToString())) { abilities.Add(arcaneBolt); if (MultiSleeper.Sleeping($"arcanebolt_{ target.Name }")) { hitArcaneBolt += arcaneBolt.GetDamage(target); } } // Dagon var dagon = Abilities.Dagon; if (dagon != null && dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled("item_dagon_5")) { abilities.Add(dagon); } } var damageCalculation = new Combo(abilities.ToArray()); var damageReduction = -DamageReduction(target, heroes); var damageBlock = DamageBlock(target, heroes); var livingArmor = LivingArmor(target, heroes, damageCalculation.Abilities); var damage = DamageHelpers.GetSpellDamage((damageCalculation.GetDamage(target) + hitArcaneBolt) + damageBlock, 0, damageReduction) - livingArmor; var readyDamage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, true, false) + damageBlock, 0, damageReduction) - livingArmor; var totalDamage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, false, false) + damageBlock, 0, damageReduction) - livingArmor; if (target.IsInvulnerable() || target.HasAnyModifiers(BlockModifiers)) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health)); } }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => !x.IsIllusion && x.IsValid).ToList(); DamageList.Clear(); foreach (var hero in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); var damage = 0.0f; var readyDamage = 0.0f; var totalDamage = 0.0f; if (hero.IsVisible) { // Veil var Veil = Main.Veil; if (Veil != null && Veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Veil.ToString())) { abilities.Add(Veil); } // Ethereal var Ethereal = Main.Ethereal; if (Ethereal != null && Ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Ethereal.ToString())) { abilities.Add(Ethereal); } // Shivas var Shivas = Main.Shivas; if (Shivas != null && Shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Shivas.ToString())) { abilities.Add(Shivas); } // StaticField var StaticField = Main.StaticField; if (StaticField.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(StaticField.ToString())) { abilities.Add(StaticField); } // LightningBolt var LightningBolt = Main.LightningBolt; if (LightningBolt.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(LightningBolt.ToString())) { abilities.Add(LightningBolt); } // Dagon var Dagon = Main.Dagon; if (Dagon != null && Dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Dagon.ToString())) { abilities.Add(Dagon); } // ArcLightning var ArcLightning = Main.ArcLightning; if (ArcLightning.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(ArcLightning.ToString())) { abilities.Add(ArcLightning); } // Nimbus var Nimbus = Main.Nimbus; if (Nimbus.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(Nimbus.ToString())) { abilities.Add(Nimbus); } // Thundergods Wrath var ThundergodsWrath = Main.ThundergodsWrath; if (ThundergodsWrath.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(ThundergodsWrath.ToString())) { abilities.Add(ThundergodsWrath); } } var damageCalculation = new Combo(abilities.ToArray()); var damageReduction = -DamageReduction(hero, heroes); var damageBlock = DamageBlock(hero, heroes); damage += DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(hero) + damageBlock, 0, damageReduction); readyDamage += DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(hero, true, false) + damageBlock, 0, damageReduction); totalDamage += DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(hero, false, false) + damageBlock, 0, damageReduction); damage -= LivingArmor(hero, heroes, damageCalculation.Abilities); readyDamage -= LivingArmor(hero, heroes, damageCalculation.Abilities); totalDamage -= LivingArmor(hero, heroes, damageCalculation.Abilities); if (hero.HasModifier("modifier_abaddon_borrowed_time") || hero.HasModifier("modifier_templar_assassin_refraction_absorb") || hero.HasAnyModifiers("modifier_winter_wyvern_winters_curse_aura", "modifier_winter_wyvern_winters_curse") || hero.IsInvulnerable()) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(hero, damage, readyDamage, totalDamage, hero.Health)); } }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> magicalAbilities = new List <BaseAbility>(); List <BaseAbility> pureAbilities = new List <BaseAbility>(); var damage = 0.0f; var readyDamage = 0.0f; var totalDamage = 0.0f; if (target.IsVisible) { // Veil var Veil = Main.Veil; if (Veil != null && Veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Veil.ToString())) { magicalAbilities.Add(Veil); } // Ethereal var Ethereal = Main.Ethereal; if (Ethereal != null && Ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Ethereal.ToString())) { magicalAbilities.Add(Ethereal); } // Shivas var Shivas = Main.Shivas; if (Shivas != null && Shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Shivas.ToString())) { magicalAbilities.Add(Shivas); } // Dagon var Dagon = Main.Dagon; if (Dagon != null && Dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled("item_dagon_5")) { magicalAbilities.Add(Dagon); } // Impetus var Impetus = Main.Impetus; if (Impetus.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(Impetus.ToString())) { pureAbilities.Add(Impetus); } } Combo[] combo = { new Combo(magicalAbilities.ToArray()), new Combo(pureAbilities.ToArray()) }; float[] block = { MagicalDamageBlock(target, heroes), DamageBlock(target, heroes) }; var damageReduction = -DamageReduction(target, heroes); for (var i = 0; i < 2; i++) { var livingArmor = LivingArmor(target, heroes, combo[i].Abilities); damage += DamageHelpers.GetSpellDamage(Math.Max(0, combo[i].GetDamage(target) + block[i]), 0, damageReduction) - livingArmor; readyDamage += DamageHelpers.GetSpellDamage(Math.Max(0, combo[i].GetDamage(target, true, false) + block[i]), 0, damageReduction) - livingArmor; totalDamage += DamageHelpers.GetSpellDamage(Math.Max(0, combo[i].GetDamage(target, false, false) + block[i]), 0, damageReduction) - livingArmor; } if (target.HasAnyModifiers("modifier_abaddon_borrowed_time", "modifier_item_combo_breaker_buff") || target.HasModifier("modifier_templar_assassin_refraction_absorb") || target.HasAnyModifiers("modifier_winter_wyvern_winters_curse_aura", "modifier_winter_wyvern_winters_curse") || target.IsInvulnerable()) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health)); } }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); List <BaseAbility> abilityHook = new List <BaseAbility>(); if (target.IsVisible) { // Veil var veil = Main.Veil; if (veil != null && veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(veil.ToString())) { abilities.Add(veil); } // Ethereal var ethereal = Main.Ethereal; if (ethereal != null && ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(ethereal.ToString())) { abilities.Add(ethereal); } // Shivas var shivas = Main.Shivas; if (shivas != null && shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(shivas.ToString())) { abilities.Add(shivas); } // hook var hook = Main.Hook; if (hook.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(hook.ToString())) { abilityHook.Add(hook); } // Dagon var dagon = Main.Dagon; if (dagon != null && dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled("item_dagon_5") && Extensions.ShouldCastHook(hook.GetPredictionOutput(hook.GetPredictionInput(target)))) { abilities.Add(dagon); } } Combo[] combo = { new Combo(abilities.ToArray()), new Combo(abilityHook.ToArray()) }; float[] block = { MagicalDamageBlock(target, heroes), DamageBlock(target, heroes) }; var damageReduction = -DamageReduction(target, heroes); var damage = 0.0f; var readyDamage = 0.0f; var totalDamage = 0.0f; for (var i = 0; i < 2; i++) { var livingArmor = LivingArmor(target, heroes, combo[i].Abilities); damage += DamageHelpers.GetSpellDamage(Math.Max(0, combo[i].GetDamage(target) + block[i]), 0, damageReduction) - livingArmor; readyDamage += DamageHelpers.GetSpellDamage(Math.Max(0, combo[i].GetDamage(target, true, false) + block[i]), 0, damageReduction) - livingArmor; totalDamage += DamageHelpers.GetSpellDamage(Math.Max(0, combo[i].GetDamage(target, false, false) + block[i]), 0, damageReduction) - livingArmor; } if (target.IsInvulnerable() || target.HasAnyModifiers(BlockModifiers)) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health)); } }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); if (target.IsVisible) { // Veil var veil = Main.Veil; if (veil != null && veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(veil.ToString())) { abilities.Add(veil); } // Ethereal var ethereal = Main.Ethereal; if (ethereal != null && ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(ethereal.ToString())) { abilities.Add(ethereal); } // Shivas var shivas = Main.Shivas; if (shivas != null && shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(shivas.ToString())) { abilities.Add(shivas); } // ConcussiveShot var soulAssumption = Main.SoulAssumption; if (soulAssumption.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(soulAssumption.ToString()) && soulAssumption.MaxCharges) { abilities.Add(soulAssumption); } // Dagon var dagon = Main.Dagon; if (dagon != null && dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled("item_dagon_5")) { abilities.Add(dagon); } } var damageCalculation = new Combo(abilities.ToArray()); var damageReduction = -DamageReduction(target, heroes); var damageBlock = DamageBlock(target, heroes); var livingArmor = LivingArmor(target, heroes, damageCalculation.Abilities); var damage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target) + damageBlock, 0, damageReduction) - livingArmor; var readyDamage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, true, false) + damageBlock, 0, damageReduction) - livingArmor; var totalDamage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, false, false) + damageBlock, 0, damageReduction) - livingArmor; if (target.IsInvulnerable() || target.HasAnyModifiers("modifier_abaddon_borrowed_time", "modifier_item_combo_breaker_buff") || target.HasModifier("modifier_templar_assassin_refraction_absorb") || target.HasAnyModifiers("modifier_winter_wyvern_winters_curse_aura", "modifier_winter_wyvern_winters_curse")) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health)); } }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); var damageOdds = 0.0f; var readyDamageOdds = 0.0f; var totalDamageOdds = 0.0f; if (target.IsVisible) { // Veil var veil = Main.Veil; if (veil != null && veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(veil.ToString())) { abilities.Add(veil); } // Ethereal var ethereal = Main.Ethereal; if (ethereal != null && ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(ethereal.ToString())) { abilities.Add(ethereal); } // Shivas var shivas = Main.Shivas; if (shivas != null && shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(shivas.ToString())) { abilities.Add(shivas); } // Dagon var dagon = Main.Dagon; if (dagon != null && dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled("item_dagon_5")) { abilities.Add(dagon); } // Overwhelming Odds var overwhelmingOdds = Main.OverwhelmingOdds; if (overwhelmingOdds.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(overwhelmingOdds.ToString())) { var input = new PredictionInput { Owner = Owner, AreaOfEffect = overwhelmingOdds.HasAreaOfEffect, AreaOfEffectTargets = UpdateMode.OverwhelmingOddsUnits, CollisionTypes = overwhelmingOdds.CollisionTypes, Delay = overwhelmingOdds.CastPoint + overwhelmingOdds.ActivationDelay, Speed = overwhelmingOdds.Speed, Range = float.MaxValue, Radius = overwhelmingOdds.Radius, PredictionSkillshotType = overwhelmingOdds.PredictionSkillshotType }; var castPosition = overwhelmingOdds.GetPredictionOutput(input.WithTarget(target)).CastPosition; var damageUnits = overwhelmingOdds.GetDamage(castPosition, target); if (overwhelmingOdds.IsReady && !Owner.IsStunned() && !Owner.IsMuted() && !Owner.IsSilenced()) { if (Owner.Distance2D(castPosition) <= overwhelmingOdds.CastRange) { damageOdds += damageUnits; } readyDamageOdds += damageUnits; } totalDamageOdds += damageUnits; } } var damageCalculation = new Combo(abilities.ToArray()); var damageReduction = -DamageReduction(target, heroes); var damageBlock = MagicalDamageBlock(target, heroes); var livingArmor = LivingArmor(target, heroes, damageCalculation.Abilities); var damage = DamageHelpers.GetSpellDamage((damageCalculation.GetDamage(target) + damageOdds) + damageBlock, 0, damageReduction) - livingArmor; var readyDamage = DamageHelpers.GetSpellDamage((damageCalculation.GetDamage(target, true, false) + readyDamageOdds) + damageBlock, 0, damageReduction) - livingArmor; var totalDamage = DamageHelpers.GetSpellDamage((damageCalculation.GetDamage(target, false, false) + totalDamageOdds) + damageBlock, 0, damageReduction) - livingArmor; if (target.IsInvulnerable() || target.HasAnyModifiers(BlockModifiers)) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health)); } }
private void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); var damage = 0.0f; var readyDamage = 0.0f; var totalDamage = 0.0f; if (target.IsVisible) { // Veil var Veil = Main.Veil; if (Veil != null && Veil.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Veil.ToString())) { abilities.Add(Veil); } // Ethereal var Ethereal = Main.Ethereal; if (Ethereal != null && Ethereal.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Ethereal.ToString())) { abilities.Add(Ethereal); } // Shivas var Shivas = Main.Shivas; if (Shivas != null && Shivas.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled(Shivas.ToString())) { abilities.Add(Shivas); } // Impale var Impale = Main.Impale; if (Impale.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(Impale.ToString())) { abilities.Add(Impale); } // ManaBurn var ManaBurn = Main.ManaBurn; if (ManaBurn.Ability.Level > 0 && Menu.AutoKillStealToggler.Value.IsEnabled(ManaBurn.ToString()) && target.Mana > 80) { abilities.Add(ManaBurn); } // Dagon var Dagon = Main.Dagon; if (Dagon != null && Dagon.Ability.IsValid && Menu.AutoKillStealToggler.Value.IsEnabled("item_dagon_5")) { abilities.Add(Dagon); } // Vendetta var Vendetta = Main.Vendetta; if (Vendetta.Ability.Level > 0) { if (Owner.HasModifier(Vendetta.ModifierName)) { damage += Vendetta.GetDamage(target); } else if (Vendetta.CanBeCasted) { readyDamage += Vendetta.GetDamage(target); } totalDamage += Vendetta.GetDamage(target); } } var damageCalculation = new Combo(abilities.ToArray()); var damageReduction = -DamageReduction(target, heroes); var damageBlock = DamageBlock(target, heroes); damage += DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target) + damageBlock, 0, damageReduction); readyDamage += DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, true, false) + damageBlock, 0, damageReduction); totalDamage += DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, false, false) + damageBlock, 0, damageReduction); damage -= LivingArmor(target, heroes, damageCalculation.Abilities, damage); readyDamage -= LivingArmor(target, heroes, damageCalculation.Abilities, readyDamage); totalDamage -= LivingArmor(target, heroes, damageCalculation.Abilities, totalDamage); if (target.HasAnyModifiers("modifier_abaddon_borrowed_time", "modifier_item_combo_breaker_buff") || target.HasModifier("modifier_templar_assassin_refraction_absorb") || target.HasAnyModifiers("modifier_winter_wyvern_winters_curse_aura", "modifier_winter_wyvern_winters_curse") || target.IsInvulnerable()) { damage = 0.0f; readyDamage = 0.0f; } DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health)); } }
public void OnUpdate() { var heroes = EntityManager <Hero> .Entities.Where(x => x.IsValid && !x.IsIllusion).ToList(); DamageList.Clear(); foreach (var target in heroes.Where(x => x.IsAlive && x.IsEnemy(Owner)).ToList()) { List <BaseAbility> abilities = new List <BaseAbility>(); var damageByAura = 0.0f; var extendUltDamage = 0.0f; var damageByAttack = 0.0f; var damageOfMisc = 0f; bool canAttack = true; if (target.IsVisible) { // Veil var veil = _abilities.Veil; if (veil != null && veil.Ability.IsValid) { abilities.Add(veil); } // Ethereal var ethereal = _abilities.Ethereal; if (ethereal != null && ethereal.Ability.IsValid) { abilities.Add(ethereal); canAttack = false; } // Shivas var shivas = _abilities.Shivas; if (shivas != null && shivas.Ability.IsValid) { abilities.Add(shivas); } //1 var pulseSkill = _abilities.Pulse; if (pulseSkill.Ability.Level > 0) { abilities.Add(pulseSkill); } // Dagon var dagon = _abilities.Dagon; if (dagon != null && dagon.Ability.IsValid) { abilities.Add(dagon); } // ult var ultSkill = _abilities.Scythe; if (ultSkill.Ability.Level > 0) { abilities.Add(ultSkill); } var auraSkill = _abilities.HeartAura; if (auraSkill.Ability.Level > 0) { damageByAura = auraSkill.GetDamage(target, 1); } if (canAttack) { damageByAttack = Owner.GetAttackDamage(target, true); } if (ultSkill.CanBeCasted && ultSkill.CanHit(target)) { extendUltDamage = (damageByAttack + damageByAura) * ultSkill.DamagePerHealth; } } var damageCalculation = new Combo(abilities.ToArray()); var damageReduction = -DamageReduction(target, heroes); var damageBlock = DamageBlock(target, heroes); //没有计算来自装备的伤害加深 damageOfMisc = damageByAttack + damageByAura + DamageHelpers.GetSpellDamage(extendUltDamage, Owner.GetSpellAmplification(), damageReduction); //Console.WriteLine($"{damageByAttack}/{damageByAura}/{extendUltDamage}/{DamageHelpers.GetSpellDamage(extendUltDamage, Owner.GetSpellAmplification(), damageReduction)}"); var livingArmor = LivingArmor(target, heroes, damageCalculation.Abilities); //目前就能打死的 var damage = DamageHelpers.GetSpellDamage((damageCalculation.GetDamage(target) + damageOfMisc) + damageBlock, 0, damageReduction) - livingArmor; //上去就能干死的 var readyDamage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, true, false) + damageOfMisc + damageBlock, 0, damageReduction) - livingArmor; //所有状态完美的总体伤害 var totalDamage = DamageHelpers.GetSpellDamage(damageCalculation.GetDamage(target, false, false) + damageBlock, 0, damageReduction) - livingArmor; if (target.IsInvulnerable() || target.HasAnyModifiers(BlockModifiers)) { damage = 0.0f; readyDamage = 0.0f; } //Console.WriteLine($"{damage}/{readyDamage}/{totalDamage}"); DamageList.Add(new Damage(target, damage, readyDamage, totalDamage, target.Health, abilities.ToArray())); } }