Ejemplo n.º 1
0
        private static void OnFlee(Vector3 position)
        {
            if (SkillsHandler.Spells[SpellSlot.W].IsReady() &&
                player.CountEnemiesInRange(SkillsHandler.Spells[SpellSlot.W].Range) > 0)
            {
                SkillsHandler.Spells[SpellSlot.W].Cast();
            }

            if (SkillsHandler.Spells[SpellSlot.E].IsReady())
            {
                if (!EActive)
                {
                    SkillsHandler.Spells[SpellSlot.E].Cast(position);
                }
                else
                {
                    if (CurrentEPosition.Distance(position) < 25)
                    {
                        if (CurrentEPosition.IsSafePositionEx() && CurrentEPosition.PassesNoEIntoEnemiesCheck())
                        {
                            SkillsHandler.Spells[SpellSlot.E].Cast();
                        }
                    }
                }
            }

            Orbwalking.Orbwalk(null, Game.CursorPos);
        }
Ejemplo n.º 2
0
        private static void CheckEvade()
        {
            if (EStart != Vector3.Zero &&
                EEnd != Vector3.Zero &&
                EvadeHelper.EvadeDetectedSkillshots.Any(
                    skillshot =>
                    skillshot.SpellData.IsDangerous &&
                    skillshot.SpellData.DangerValue >= 3 &&
                    skillshot.IsAboutToHit((int)TimeFromCurrentToEnd, EEnd)))
            {
                if (CurrentEPosition.IsSafePosition())
                {
                    SkillsHandler.Spells[SpellSlot.E].Cast();
                }
            }
            var rSkills = EvadeHelper.EvadeDetectedSkillshots.Where(
                skillshot =>
                skillshot.SpellData.IsDangerous &&
                skillshot.SpellData.DangerValue >= 3 &&
                skillshot.IsAboutToHit(300, ObjectManager.Player.ServerPosition)).ToList();

            if (GetMenuValue <bool>("lissandra.misc.saveR") && SkillsHandler.Spells[SpellSlot.R].IsReady() && rSkills.Any())
            {
                //Let's try this, never done it ayy lmao
                if (
                    rSkills.Any(
                        skillshot =>
                        skillshot.Caster.GetSpellDamage(ObjectManager.Player, skillshot.SpellData.SpellName) >=
                        ObjectManager.Player.Health + 15))
                {
                    //Found at least 1 spell that is gonna kill me. Better immune Kappa.
                    SkillsHandler.Spells[SpellSlot.R].Cast();
                }
            }
        }
Ejemplo n.º 3
0
        private static void OnCombo()
        {
            //TODO The All In Combo.
            var comboTarget = TargetSelector.GetTarget(SkillsHandler.QShard.Range,
                                                       TargetSelector.DamageType.Magical);

            if (comboTarget.IsValidTarget())
            {
                if (GetMenuValue <bool>("lissandra.combo.useQ") &&
                    comboTarget.IsValidTarget(SkillsHandler.QShard.Range) &&
                    SkillsHandler.Spells[SpellSlot.Q].IsReady())
                {
                    var predictionPosition = SkillsHandler.GetQPrediction(comboTarget);
                    if (predictionPosition != null)
                    {
                        //Found a valid Q prediction
                        SkillsHandler.Spells[SpellSlot.Q].Cast((Vector3)predictionPosition);
                    }
                }

                if (GetMenuValue <bool>("lissandra.combo.useW") &&
                    comboTarget.IsValidTarget(SkillsHandler.Spells[SpellSlot.W].Range) &&
                    SkillsHandler.Spells[SpellSlot.W].IsReady() && !comboTarget.IsStunned)
                {
                    SkillsHandler.Spells[SpellSlot.W].Cast();
                }

                if (GetMenuValue <bool>("lissandra.combo.useE") &&
                    comboTarget.IsValidTarget(SkillsHandler.Spells[SpellSlot.E].Range) &&
                    SkillsHandler.Spells[SpellSlot.E].IsReady())
                {
                    if (!EActive)
                    {
                        var comboTargetPosition = Prediction.GetPrediction(comboTarget,
                                                                           TimeToEEnd(ObjectManager.Player.ServerPosition, comboTarget.ServerPosition)).UnitPosition;
                        //TODO This will probably fail horribly because it's such a long delay ayy lmao
                        if (comboTargetPosition.IsSafePositionEx() && comboTargetPosition.PassesNoEIntoEnemiesCheck())
                        {
                            SkillsHandler.Spells[SpellSlot.E].Cast(comboTargetPosition);
                        }
                        else
                        {
                            if (SkillsHandler.Spells[SpellSlot.E].IsInRange(comboTargetPosition) && CurrentEPosition.IsSafePositionEx())
                            {
                                SkillsHandler.Spells[SpellSlot.E].Cast(comboTarget);
                            }
                        }
                    }
                }

                if (GetMenuValue <bool>("lissandra.combo.useR") &&
                    comboTarget.IsValidTarget(SkillsHandler.Spells[SpellSlot.R].Range) &&
                    SkillsHandler.Spells[SpellSlot.R].IsReady())
                {
                    var selfR      = GetMenuValue <Slider>("lissandra.combo.options.selfR").Value;
                    var defensiveR = GetMenuValue <Slider>("lissandra.combo.options.defensiveR").Value;

                    if (player.CountEnemiesInRange(250) >= defensiveR)
                    {
                        SkillsHandler.Spells[SpellSlot.R].CastOnUnit(player);
                    }

                    if (player.Health / player.MaxHealth * 100 < selfR && player.CountEnemiesInRange(SkillsHandler.Spells[SpellSlot.R].Range) > 0)
                    {
                        SkillsHandler.Spells[SpellSlot.R].CastOnUnit(player);
                    }

                    if (GetMenuValue <bool>("lissandra.combo.options.alwaysR"))
                    {
                        SkillsHandler.Spells[SpellSlot.R].CastOnUnit(comboTarget);
                    }

                    if ((player.GetSpellDamage(comboTarget, SpellSlot.R) * 1.2) > comboTarget.Health + 10 &&
                        Menu.Item("lissandra.combo.options.whitelistR" + comboTarget.CharData.BaseSkinName) != null &&
                        Menu.Item("lissandra.combo.options.whitelistR" + comboTarget.CharData.BaseSkinName)
                        .GetValue <bool>() == false)
                    {
                        SkillsHandler.Spells[SpellSlot.R].CastOnUnit(comboTarget);
                    }

                    if (GetComboDamage(comboTarget) > comboTarget.Health + 10 &&
                        Menu.Item("lissandra.combo.options.whitelistR" + comboTarget.CharData.BaseSkinName) != null &&
                        Menu.Item("lissandra.combo.options.whitelistR" + comboTarget.CharData.BaseSkinName)
                        .GetValue <bool>() == false)
                    {
                        SkillsHandler.Spells[SpellSlot.R].CastOnUnit(comboTarget);
                    }
                }

                if (ShouldUseIgnite(comboTarget) && player.Distance(comboTarget) <= 600)
                {
                    player.Spellbook.CastSpell(SkillsHandler.IgniteSlot, comboTarget);
                }
            }
        }