private static float GetComboDamage(Obj_AI_Base enemy) { // do nothing is there no enemy if (enemy == null) { return(0); } // reset values double damage = 0d; var calcQ_ = _menu.Item("menu.Calc.calcQ").GetValue <bool>(); var calcW_ = _menu.Item("menu.Calc.calcW").GetValue <bool>(); var calcE_ = _menu.Item("menu.Calc.calcE").GetValue <bool>(); var calcR_ = _menu.Item("menu.Calc.calcR").GetValue <bool>(); var calcItems_ = _menu.Item("menu.Calc.calcItems").GetValue <bool>(); var calcSummoners_ = _menu.Item("menu.Calc.calcSummoners").GetValue <bool>(); var AA = _menu.Item("menu.Calc.calcAA").GetValue <Slider>().Value; //Console.WriteLine(Spells.Q.DamageType + " // " + Spells.W.DamageType + " // " + Spells.E.DamageType + " // " + Spells.R.DamageType); // Check Q Spell and Calc #region Q Spell Calc if (Spells.Q.IsReady() && calcQ_) { if (Spells.Q.DamageType == TargetSelector.DamageType.Magical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Magical, Player.GetSpellDamage(enemy, SpellSlot.Q)) * _percentpenetrationmagic; } else if (Spells.Q.DamageType == TargetSelector.DamageType.Physical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Physical, Player.GetSpellDamage(enemy, SpellSlot.Q)) * _percentpenetrationarmor; } else if (Spells.Q.DamageType == TargetSelector.DamageType.True) { damage += Player.CalcDamage(enemy, _Damage.DamageType.True, Player.GetSpellDamage(enemy, SpellSlot.Q)); } } #endregion // Check W Spell and Calc #region W Spell Calc if (Spells.W.IsReady() && calcW_) { if (Spells.W.DamageType == TargetSelector.DamageType.Magical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Magical, Player.GetSpellDamage(enemy, SpellSlot.W)) * _percentpenetrationmagic; } else if (Spells.W.DamageType == TargetSelector.DamageType.Physical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Physical, Player.GetSpellDamage(enemy, SpellSlot.W)) * _percentpenetrationarmor; } else if (Spells.W.DamageType == TargetSelector.DamageType.True) { damage += Player.CalcDamage(enemy, _Damage.DamageType.True, Player.GetSpellDamage(enemy, SpellSlot.W)); } } #endregion // Check E Spell and Calc #region E Spell Calc if (Spells.E.IsReady() && calcE_) { if (Spells.E.DamageType == TargetSelector.DamageType.Magical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Magical, Player.GetSpellDamage(enemy, SpellSlot.E)) * _percentpenetrationmagic; } else if (Spells.E.DamageType == TargetSelector.DamageType.Physical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Physical, Player.GetSpellDamage(enemy, SpellSlot.E)) * _percentpenetrationarmor; } else if (Spells.E.DamageType == TargetSelector.DamageType.True) { damage += Player.CalcDamage(enemy, _Damage.DamageType.True, Player.GetSpellDamage(enemy, SpellSlot.E)); } } #endregion // Check R Spell and Calc #region R Spell Calc if (Spells.R.IsReady() && calcR_) { if (Spells.R.DamageType == TargetSelector.DamageType.Magical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Magical, Player.GetSpellDamage(enemy, SpellSlot.R)) * _percentpenetrationmagic; } else if (Spells.R.DamageType == TargetSelector.DamageType.Physical) { damage += Player.CalcDamage(enemy, _Damage.DamageType.Physical, Player.GetSpellDamage(enemy, SpellSlot.R)) * _percentpenetrationarmor; } else if (Spells.R.DamageType == TargetSelector.DamageType.True) { damage += Player.CalcDamage(enemy, _Damage.DamageType.True, Player.GetSpellDamage(enemy, SpellSlot.R)); } } #endregion damage += Player.GetAutoAttackDamage(enemy, true) * AA; // no need for Autoattack Damage if (calcItems_) { damage = ActiveItems.CalcDamage(enemy, damage); // active Items thanks xSlaice :) } if (Ignite_Ready() && calcSummoners_) { damage += ObjectManager.Player.GetSummonerSpellDamage(enemy, Damage.SummonerSpell.Ignite); } return((float)damage); }
private static void AddOffensiveItem(Menu subMenu, ActiveItems item) { var active = new Menu(item.ActiveName, item.ActiveName); { active.AddItem(new MenuItem(item.ActiveName, item.ActiveName, true).SetValue(true)); active.AddItem(new MenuItem(item.ActiveName + "dmgCalc", "Add to damage Calculation", true).SetValue(true)); active.AddItem(new MenuItem(item.ActiveName + "killAble", "Use only if enemy is killable", true).SetValue(false)); active.AddItem(new MenuItem(item.ActiveName + "always", "Always use", true).SetValue(item.Mode == 1 || item.Mode == 2)); active.AddItem(new MenuItem(item.ActiveName + "myHP", "Use if HP <= %", true).SetValue(new Slider(25))); active.AddItem(new MenuItem(item.ActiveName + "enemyHP", "Use if target HP <= %", true).SetValue(new Slider(50))); subMenu.AddSubMenu(active); } }