FindRemnant() public static method

public static FindRemnant ( Vector3 pos = default(Vector3), float range = 200 ) : Unit
pos Vector3
range float
return Unit
Ejemplo n.º 1
0
        private static void CastAbilities(float distance)
        {
            if (!IsEnable)
            {
                return;
            }
            if (!IsComboHero)
            {
                return;
            }
            if (GlobalTarget == null || !GlobalTarget.IsValid || !GlobalTarget.IsVisible || GlobalTarget.IsMagicImmune() || !GlobalTarget.IsAlive)
            {
                return;
            }
            var smash           = Abilities.FindAbility("earth_spirit_boulder_smash");
            var geomagneticGrip = Abilities.FindAbility("earth_spirit_geomagnetic_grip");
            var magnetize       = Abilities.FindAbility("earth_spirit_magnetize");
            var rollingBoulder  = Abilities.FindAbility("earth_spirit_rolling_boulder");
            var stoneCaller     = Abilities.FindAbility("earth_spirit_stone_caller");

            if (distance >= 1000)
            {
                return;
            }
            var pos = GlobalTarget.NetworkPosition;

            if (Helper.IsAbilityEnable(smash.StoredName()) && smash.CanBeCasted())
            {
                if (smash.CanBeCasted() && !_spellSleeper.Sleeping("combo" + smash))
                {
                    var remnant = Helper.FindRemnant();
                    if (stoneCaller.CanBeCasted() && remnant == null)
                    {
                        stoneCaller.UseAbility(Members.MyHero.InFront(75));
                    }
                    if (UsePrediction)
                    {
                        if (smash.CastSkillShot(GlobalTarget))
                        {
                            _spellSleeper.Sleep(500, "combo" + smash);
                            _spellSleeper.Sleep(distance / 900 * 1000 + 1000, "w8" + smash);
                            Printer.Print($"Time: {distance/900*1000 + 500}ms");
                        }
                    }
                    else
                    {
                        smash.UseAbility(GlobalTarget.NetworkPosition);
                        _spellSleeper.Sleep(500, "combo" + smash);
                        _spellSleeper.Sleep(distance / 900 * 1000 + 500, "w8" + smash);
                        Printer.Print($"Time: {distance / 900 * 1000 + 1000}ms");
                    }
                }
            }
            if (Helper.IsAbilityEnable(geomagneticGrip.StoredName()) && geomagneticGrip.CanBeCasted() && !_spellSleeper.Sleeping("combo" + geomagneticGrip))
            {
                if (GlobalTarget.IsStunned())
                {
                    Printer.Print("stunned!");
                }
                if (_spellSleeper.Sleeping("w8" + smash) &&
                    !GlobalTarget.IsStunned())
                {
                }
                else
                {
                    var remnant = Helper.FindRemnant(pos, 250);
                    if (stoneCaller.CanBeCasted() && remnant == null)
                    {
                        stoneCaller.UseAbility(pos);
                        geomagneticGrip.UseAbility(pos, true);
                        Printer.Print("new");
                    }
                    else if (remnant != null)
                    {
                        Printer.Print("finded");
                        geomagneticGrip.UseAbility(remnant.NetworkPosition);
                    }
                    _spellSleeper.Sleep(250, "combo" + geomagneticGrip);
                }
            }
            else if (Helper.IsAbilityEnable(rollingBoulder.StoredName()) && rollingBoulder.CanBeCasted() && !_spellSleeper.Sleeping("combo" + rollingBoulder))
            {
                if (UsePrediction)
                {
                    if (rollingBoulder.CastSkillShot(GlobalTarget))
                    {
                    }
                }
                else /*if (remnant!=null)*/
                {
                    rollingBoulder.UseAbility(GlobalTarget.NetworkPosition);
                }
                _spellSleeper.Sleep(250, "combo" + rollingBoulder);
            }
            else if (rollingBoulder.Cooldown >= 3.5)
            {
                var myPos = Members.MyHero.Position;

                var angle = Members.MyHero.FindAngleBetween(pos, true);
                var point = new Vector3(
                    (float)
                    (myPos.X +
                     100 *
                     Math.Cos(angle)),
                    (float)
                    (myPos.Y +
                     100 *
                     Math.Sin(angle)),
                    0);
                var remnant = Helper.FindRemnant(point, 100) ??
                              Helper.FindRemnantWithModifier(pos, "modifier_earth_spirit_geomagnetic_grip");
                if (stoneCaller.CanBeCasted() && remnant == null &&
                    Members.MyHero.HasModifier("modifier_earth_spirit_rolling_boulder_caster"))
                {
                    if (!_spellSleeper.Sleeping("combo" + rollingBoulder + "Caller"))
                    {
                        Printer.Print($"cd: ({rollingBoulder.Cooldown}) | cant find remnant!");
                        //stoneCaller.UseAbility(point);
                        stoneCaller.UseAbility(Members.MyHero.Position);
                        _spellSleeper.Sleep(2000, "combo" + rollingBoulder + "Caller");
                    }
                }
            }
            if (Helper.IsAbilityEnable(magnetize.StoredName()) && magnetize.CanBeCasted() && !_spellSleeper.Sleeping("combo" + magnetize))
            {
                if (distance <= 300)
                {
                    magnetize.UseAbility();
                    _spellSleeper.Sleep(250, "combo" + magnetize);
                }
            }
            var mod = GlobalTarget.FindModifier("modifier_earth_spirit_magnetize");

            if (Helper.IsAbilityEnable(stoneCaller.StoredName()) && mod != null && mod.RemainingTime <= 0.2 &&
                !_spellSleeper.Sleeping("combo" + stoneCaller) && stoneCaller.CanBeCasted())
            {
                Printer.Print($"remTime: {mod.RemainingTime}");
                stoneCaller.UseAbility(pos);
                _spellSleeper.Sleep(1000, "combo" + stoneCaller);
            }
        }
Ejemplo n.º 2
0
        public static void Game_OnUpdate(EventArgs args)
        {
            if (!IsEnable)
            {
                return;
            }
            if (_combos == null)
            {
                _combos = new MultiSleeper();
            }
            var smash           = Abilities.FindAbility("earth_spirit_boulder_smash");
            var geomagneticGrip = Abilities.FindAbility("earth_spirit_geomagnetic_grip");
            var magnetize       = Abilities.FindAbility("earth_spirit_magnetize");
            var rollingBoulder  = Abilities.FindAbility("earth_spirit_rolling_boulder");
            var stoneCaller     = Abilities.FindAbility("earth_spirit_stone_caller");
            var petrify         = Abilities.FindAbility("earth_spirit_petrify");

            if (Combo1)
            {
                if (smash.CanBeCasted() && !_combos.Sleeping(smash))
                {
                    var remnant = Helper.FindRemnant();
                    if (stoneCaller.CanBeCasted() && remnant == null)
                    {
                        stoneCaller.UseAbility(Prediction.InFront(Members.MyHero, 75));
                    }
                    //stoneCaller.UseAbility(Members.MyHero.Position);
                    smash.UseAbility(Game.MousePosition);
                    _combos.Sleep(500, smash);
                }
            }
            else if (Combo2)
            {
                if (rollingBoulder.CanBeCasted() && !_combos.Sleeping(rollingBoulder))
                {
                    var myPos    = Members.MyHero.Position;
                    var mousePos = Game.MousePosition;

                    var angle = Members.MyHero.FindAngleBetween(mousePos, true);
                    var point = new Vector3(
                        (float)
                        (myPos.X +
                         75 *
                         Math.Cos(angle)),
                        (float)
                        (myPos.Y +
                         75 *
                         Math.Sin(angle)),
                        0);
                    var remnant = Helper.FindRemnant(range: 100);
                    if (stoneCaller.CanBeCasted() && remnant == null)
                    {
                        stoneCaller.UseAbility(point);
                    }
                    rollingBoulder.UseAbility(Game.MousePosition);
                    _combos.Sleep(500, rollingBoulder);
                }
            }
            else if (Combo3)
            {
                var myPos       = Members.MyHero.Position;
                var mousePos    = Game.MousePosition;
                var distance    = myPos.Distance2D(mousePos);
                var myInventory = Members.MyHero.Inventory.Items.ToList();
                var extraRange  = myInventory.Any(x => x.StoredName() == "item_aether_lens") ? 200 : 0;
                if (geomagneticGrip.CanBeCasted() && !_combos.Sleeping(geomagneticGrip) &&
                    distance <= 1100 + extraRange)
                {
                    var remnant = Helper.FindRemnant(mousePos);
                    if (stoneCaller.CanBeCasted() && remnant == null)
                    {
                        stoneCaller.UseAbility(mousePos);
                        geomagneticGrip.UseAbility(mousePos);
                    }
                    else
                    {
                        geomagneticGrip.UseAbility(remnant.NetworkPosition);
                    }

                    _combos.Sleep(500, geomagneticGrip);
                }
            }
            if (Combo4)
            {
                var myPos       = Members.MyHero.Position;
                var mousePos    = Game.MousePosition;
                var distance    = myPos.Distance2D(mousePos);
                var myInventory = Members.MyHero.Inventory.Items.ToList();
                var extraRange  = myInventory.Any(x => x.StoredName() == "item_aether_lens") ? 200 : 0;

                /*Printer.Print(
                 *  $"{rollingBoulder.CanBeCasted()}/{geomagneticGrip.CanBeCasted()}/{!_combos.Sleeping(stoneCaller)}/{distance <= 1000 + extraRange}");*/
                if (rollingBoulder.CanBeCasted() && geomagneticGrip.CanBeCasted() && !_combos.Sleeping(stoneCaller) &&
                    distance <= 11000 + extraRange)
                {
                    var remnant = Helper.FindRemnant(mousePos);
                    if (remnant != null)
                    {
                        geomagneticGrip.UseAbility(remnant.NetworkPosition);
                        rollingBoulder.UseAbility(mousePos);
                        _combos.Sleep(500, stoneCaller);
                    }
                }
            }
        }