Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }