Esempio n. 1
0
        public override void Actualize(object contextObj)
        {
            var context  = (ThoughtContext)contextObj;
            var position = ObjectManager.Player.Distance(Game.CursorPos, true) <= 300 * 300 ? Game.CursorPos : KatarinaUtilities.GetMousePosition();

            KatarinaUtilities.WardJump(context, position.X, position.Y);
        }
Esempio n. 2
0
        public override void Actualize(object contextObj)
        {
            var context = (ThoughtContext)contextObj;

            var ks     = default(KillStealResult);
            var target = context.Targets.FirstOrDefault(x => (ks = CalculateKillSteal(x)) != KillStealResult.CantKill);

            switch (ks)
            {
            case KillStealResult.QKill:
                KatarinaUtilities.CastQ(target);
                break;

            case KillStealResult.WKill:
                KatarinaUtilities.CastW();
                break;

            case KillStealResult.EKill:
                KatarinaUtilities.CastE(target);
                break;

            case KillStealResult.QwKill:
                KatarinaUtilities.CastW();
                break;

            case KillStealResult.QeKill:
                KatarinaUtilities.CastE(target);
                break;

            case KillStealResult.QweKill:
                KatarinaUtilities.CastE(target);
                break;

            case KillStealResult.WeKill:
                KatarinaUtilities.CastW();
                break;

            case KillStealResult.UltKs:
                KatarinaUtilities.CastR();
                break;

            case KillStealResult.FullComboKs:
                KatarinaUtilities.CastE(target);
                KatarinaUtilities.CastQ(target);
                KatarinaUtilities.CastW(target);
                KatarinaUtilities.CastR();
                break;

            case KillStealResult.FullComboItemsKs:
                UseItems(target);
                break;

            case KillStealResult.ItemsKs:
                UseItems(target);
                break;
            }
        }
Esempio n. 3
0
        public override void Actualize(object contextObj)
        {
            var context = (ThoughtContext)contextObj;

            if ((!context.CastingUlt || (context.Plugin.Config.Item("StopUlt").GetValue <bool>()) && context.Target.Unit.Health <
                 (context.Target.DamageContext.QDamage + context.Target.DamageContext.WDamage +
                  context.Target.DamageContext.EDamage)))
            {
                if (context.Plugin.Config.Item("ComboItems").GetValue <bool>())
                {
                    UseItems(context.Target);
                }

                if (context.Plugin.Q.IsReady())
                {
                    KatarinaUtilities.CastQ(context.Target);
                }

                if (context.Plugin.Config.Item("ComboDetonateQ").GetValue <bool>() &&
                    context.Target.Unit.Buffs.Any(x => x.Name == "katarinaqmark"))
                {
                    if (!context.Plugin.Q.IsReady())
                    {
                        KatarinaUtilities.CastE(context.Target);
                    }

                    if (!context.Plugin.E.IsReady())
                    {
                        KatarinaUtilities.CastW(context.Target);
                    }
                }
                else
                {
                    if (context.Plugin.E.IsReady())
                    {
                        KatarinaUtilities.CastE(context.Target);
                    }

                    if (!context.Plugin.E.IsReady())
                    {
                        KatarinaUtilities.CastW(context.Target);
                    }
                }

                if (context.Plugin.R.IsReady())
                {
                    KatarinaUtilities.CastR();
                }
            }

            var igniteTarget = context.Targets.Where(x => x.IgniteCanKill).OrderByDescending(x => x.Unit.Health).FirstOrDefault();

            if (igniteTarget != null)
            {
                KatarinaUtilities.CastIgnite(igniteTarget);
            }
        }
Esempio n. 4
0
        public override void Actualize(object contextObj)
        {
            var context = (ThoughtContext)contextObj;

            if (IsHarassKeyDown())
            {
                KatarinaUtilities.CastQ(context.Target);

                switch (context.Plugin.Config.Item("HarrassQWE").GetValue <StringList>().SelectedIndex)
                {
                case 0:
                    if (context.Plugin.Config.Item("HarassDetonateQ").GetValue <bool>() &&
                        context.Target.Unit.Buffs.Any(x => x.Name == "katarinaqmark"))
                    {
                        if (!context.Plugin.Q.IsReady())
                        {
                            KatarinaUtilities.CastE(context.Target);
                        }

                        if (!context.Plugin.E.IsReady())
                        {
                            KatarinaUtilities.CastW(context.Target);
                        }
                    }
                    else if (!context.Plugin.Config.Item("HarassDetonateQ").GetValue <bool>())
                    {
                        KatarinaUtilities.CastE(context.Target);
                        if (!context.Plugin.E.IsReady() && IsWithinWRange())
                        {
                            KatarinaUtilities.CastW(context.Target);
                        }
                    }
                    break;

                case 1:
                    if (ObjectManager.Player.Distance(context.Target.Unit, true) <
                        Katarina.Instance.W.Range * Katarina.Instance.W.Range)
                    {
                        KatarinaUtilities.CastW(context.Target);
                    }
                    break;
                }
            }

            if (!context.Plugin.Config.Item("FarmKey").GetValue <KeyBind>().Active&& context.Plugin.Config.Item("WHarass").GetValue <bool>() && IsWithinWRange())
            {
                KatarinaUtilities.CastW();
            }
        }
Esempio n. 5
0
        public override void Actualize(object contextObj)
        {
            var context = (ThoughtContext)contextObj;
            var qFarm   = context.Plugin.Config.Item("QFarm").GetValue <bool>();
            var wFarm   = context.Plugin.Config.Item("WFarm").GetValue <bool>();
            var eFarm   = context.Plugin.Config.Item("EFarm").GetValue <bool>();

            foreach (var minion in ObjectManager.Get <Obj_AI_Minion>().Where(x => x != null && x.IsValid && x.IsEnemy))
            {
                //var wDmg = DamageLib.getDmg(minion, DamageLib.SpellType.W);
                var wDmg = ObjectManager.Player.GetSpellDamage(minion, SpellSlot.W);
                var eDmg = ObjectManager.Player.GetSpellDamage(minion, SpellSlot.E);

                if (minion.IsValidTarget(context.Plugin.W.Range))
                {
                    if (qFarm && wFarm)
                    {
                        if (KatarinaUtilities.GetRangedHealthCheck(ObjectManager.Player, minion, SpellSlot.Q, 1000f, Katarina.Instance.Q.Speed) && context.Plugin.Q.IsReady())
                        {
                            KatarinaUtilities.CastQ(minion);
                        }
                        else if (context.Plugin.W.IsReady() && minion.Health <= wDmg * 0.75)
                        {
                            KatarinaUtilities.CastW();
                        }
                    }
                    else if (qFarm && context.Plugin.Q.IsReady() && KatarinaUtilities.GetRangedHealthCheck(ObjectManager.Player, minion, SpellSlot.Q, 1000f, 1400f))
                    {
                        KatarinaUtilities.CastQ(minion);
                    }
                    else if (wFarm && context.Plugin.W.IsReady() && minion.Health <= wDmg)
                    {
                        KatarinaUtilities.CastW();
                    }
                }
                else
                {
                    if (qFarm && KatarinaUtilities.GetRangedHealthCheck(ObjectManager.Player, minion, SpellSlot.Q, 1000f, Katarina.Instance.Q.Speed) && minion.IsValidTarget(context.Plugin.Q.Range))
                    {
                        KatarinaUtilities.CastQ(minion);
                    }
                    if (eFarm && minion.Health <= eDmg * 0.75 && minion.IsValidTarget(context.Plugin.E.Range))
                    {
                        KatarinaUtilities.CastE(minion);
                    }
                }
            }
        }
Esempio n. 6
0
        public void CalculateDamage()
        {
            if (_target == null || !_target.IsValid)
            {
                return;
            }

            _damageContext.PDamage = Katarina.Instance.Q.IsReady()
                                     //? DamageLib.getDmg(_target, DamageLib.SpellType.Q, DamageLib.StageType.Default)
                ? ObjectManager.Player.GetSpellDamage(_target, SpellSlot.Q)
                : 0;
            _damageContext.QDamage = Katarina.Instance.Q.IsReady()
                ? ObjectManager.Player.GetSpellDamage(_target, SpellSlot.Q)
                : 0;
            _damageContext.WDamage = Katarina.Instance.W.IsReady()
                ? ObjectManager.Player.GetSpellDamage(_target, SpellSlot.W)
                : 0;
            _damageContext.EDamage = Katarina.Instance.E.IsReady()
                ? ObjectManager.Player.GetSpellDamage(_target, SpellSlot.E)
                : 0;
            _damageContext.RDamage = Katarina.Instance.R.IsReady()
                ? ObjectManager.Player.GetSpellDamage(_target, SpellSlot.R) * 10
                : 0;

            _damageContext.DFGDamage = Items.CanUseItem((int)ItemIds.DeathfireGrasp)
                ? ObjectManager.Player.GetItemDamage(_target, Damage.DamageItems.Dfg)
                : 0;
            _damageContext.HXGDamage = Items.CanUseItem((int)ItemIds.HextechGunblade)
                ? ObjectManager.Player.GetItemDamage(_target, Damage.DamageItems.Hexgun)
                : 0;
            _damageContext.BWCDamage = Items.CanUseItem((int)ItemIds.BilgewaterCutlass)
                ? ObjectManager.Player.GetItemDamage(_target, Damage.DamageItems.Bilgewater)
                : 0;
            _damageContext.LiandrysDamage = Items.HasItem((int)ItemIds.LiandrysTorment)
                ? KatarinaUtilities.GetLiandrysDamage(this)
                : 0;

            var ignite = ObjectManager.Player.SummonerSpellbook.Spells.FirstOrDefault(x => x.Name == "summonerdot");

            _damageContext.IgniteDamage = ignite != null && ignite.State == SpellState.Ready
                ? ObjectManager.Player.GetSummonerSpellDamage(_target, Damage.SummonerSpell.Ignite)
                : 0;

            if (_target.Health >
                (_damageContext.PDamage + _damageContext.QDamage + _damageContext.EDamage + _damageContext.WDamage +
                 _damageContext.RDamage + _damageContext.ItemDamage))
            {
                _killIndex = 1;
            }

            else if (_target.Health <= _damageContext.QDamage)
            {
                _killIndex = Katarina.Instance.Q.IsReady() ? 2 : 11;
            }
            else if (_target.Health <= _damageContext.WDamage)
            {
                _killIndex = Katarina.Instance.W.IsReady() ? 3 : 11;
            }
            else if (_target.Health <= _damageContext.EDamage)
            {
                _killIndex = Katarina.Instance.E.IsReady() ? 4 : 11;
            }
            else if (_target.Health <= (_damageContext.QDamage + _damageContext.WDamage) && Katarina.Instance.Q.IsReady() &&
                     Katarina.Instance.W.IsReady())
            {
                if (Katarina.Instance.Q.IsReady() && Katarina.Instance.W.IsReady())
                {
                    _killIndex = 5;
                }
                else
                {
                    _killIndex = 11;
                }
            }
            else if (_target.Health <= (_damageContext.QDamage + _damageContext.EDamage) &&
                     Katarina.Instance.Q.IsReady() && Katarina.Instance.E.IsReady())
            {
                if (Katarina.Instance.Q.IsReady() && Katarina.Instance.E.IsReady())
                {
                    _killIndex = 6;
                }
                else
                {
                    _killIndex = 11;
                }
            }
            else if (_target.Health <= (_damageContext.WDamage + _damageContext.EDamage) &&
                     Katarina.Instance.W.IsReady() && Katarina.Instance.E.IsReady())
            {
                if (Katarina.Instance.W.IsReady() && Katarina.Instance.E.IsReady())
                {
                    _killIndex = 7;
                }
                else
                {
                    _killIndex = 11;
                }
            }
            else if (_target.Health <=
                     (_damageContext.QDamage + _damageContext.WDamage + _damageContext.EDamage) &&
                     Katarina.Instance.Q.IsReady() && Katarina.Instance.W.IsReady() &&
                     Katarina.Instance.E.IsReady())
            {
                if (Katarina.Instance.Q.IsReady() && Katarina.Instance.W.IsReady() &&
                    Katarina.Instance.E.IsReady())
                {
                    _killIndex = 8;
                }
                else
                {
                    _killIndex = 11;
                }
            }
            else if ((_target.Health <=
                      (_damageContext.QDamage + _damageContext.WDamage + _damageContext.EDamage +
                       _damageContext.ItemDamage) ||
                      _target.Health <=
                      (_damageContext.QDamage + _damageContext.PDamage + _damageContext.WDamage +
                       _damageContext.EDamage + _damageContext.ItemDamage)) &&
                     Katarina.Instance.Q.IsReady() &&
                     Katarina.Instance.W.IsReady() &&
                     Katarina.Instance.E.IsReady())
            {
                if (Katarina.Instance.Q.IsReady() && Katarina.Instance.W.IsReady() &&
                    Katarina.Instance.E.IsReady())
                {
                    _killIndex = 9;
                }
                else
                {
                    _killIndex = 11;
                }
            }
            else if (_target.Health <=
                     (_damageContext.QDamage + _damageContext.PDamage + _damageContext.WDamage +
                      _damageContext.EDamage + _damageContext.RDamage + _damageContext.ItemDamage))
            {
                if (Katarina.Instance.Q.IsReady() && Katarina.Instance.W.IsReady() &&
                    Katarina.Instance.E.IsReady())
                {
                    _killIndex = 10;
                }
                else
                {
                    _killIndex = 11;
                }
            }
        }