コード例 #1
0
        public virtual async Task KillStealAsync()
        {
            var damageEtherShock = Ethershock.GetAbilityData("damage");
            var talent           = UnitExtensions.GetAbilityById(this.Owner, AbilityId.special_bonus_unique_shadow_shaman_3);

            if (talent?.Level > 0)
            {
                damageEtherShock += talent.GetAbilitySpecialData("value");
            }

            damageEtherShock *= GetSpellAmp();

            var killstealTarget =
                EntityManager <Hero> .Entities.FirstOrDefault(
                    x =>
                    x.IsAlive && x.Team != this.Owner.Team && !x.IsIllusion &&
                    x.Health < damageEtherShock *(1 - x.MagicDamageResist) &&
                    Ethershock.CanBeCasted() && !UnitExtensions.IsMagicImmune(x) &&
                    Ensage.SDK.Extensions.EntityExtensions.Distance2D(Owner, x.NetworkPosition) <=
                    Ethershock.CastRange);

            if (killstealTarget != null)
            {
                Ethershock.UseAbility(killstealTarget);
                await Await.Delay(GetAbilityDelay(killstealTarget, Ethershock));
            }
        }
コード例 #2
0
        protected override void OnActivate()
        {
            this.Blast    = UnitExtensions.GetAbilityById(this.Owner, AbilityId.skeleton_king_hellfire_blast);
            this.Ultimate = UnitExtensions.GetAbilityById(this.Owner, AbilityId.skeleton_king_reincarnation);

            this.Context.Inventory.Attach(this);

            base.OnActivate();
        }
コード例 #3
0
ファイル: Lifestealer.cs プロジェクト: fynaris/Ensage
        protected override void OnActivate()
        {
            this.Rage       = UnitExtensions.GetAbilityById(this.Owner, AbilityId.life_stealer_rage);
            this.OpenWounds = UnitExtensions.GetAbilityById(this.Owner, AbilityId.life_stealer_open_wounds);

            this.Context.Inventory.Attach(this);

            base.OnActivate();
        }
コード例 #4
0
        protected override void OnActivate()
        {
            this.KillStealHandler = UpdateManager.Run(this.KillStealAsync, true);
            this.KillStealHandler.RunAsync();

            this.Remnant   = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_static_remnant);
            this.Vortex    = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_electric_vortex);
            this.Lightning = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_ball_lightning);
            this.Overload  = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_overload);

            foreach (var item in Inventory.Value.Items)
            {
                switch (item.Id)
                {
                case Ensage.AbilityId.item_bloodthorn:
                    this.BloodThorn = item.Item;
                    break;

                case Ensage.AbilityId.item_sheepstick:
                    this.SheepStick = item.Item;
                    break;

                case Ensage.AbilityId.item_medallion_of_courage:
                    this.Medallion = item.Item;
                    break;

                case Ensage.AbilityId.item_solar_crest:
                    this.SolarCrest = item.Item;
                    break;

                case Ensage.AbilityId.item_orchid:
                    this.Orchid = item.Item;
                    break;

                case Ensage.AbilityId.item_rod_of_atos:
                    this.RodofAtos = item.Item;
                    break;

                case Ensage.AbilityId.item_veil_of_discord:
                    this.VeilofDiscord = item.Item;
                    break;

                case Ensage.AbilityId.item_shivas_guard:
                    this.ShivasGuard = item.Item;
                    break;

                case Ensage.AbilityId.item_mjollnir:
                    this.Mjollnir = item.Item;
                    break;
                }
            }

            this.Inventory.Value.CollectionChanged += this.OnInventoryChanged;

            base.OnActivate();
        }
コード例 #5
0
        protected override void OnActivate()
        {
            base.OnActivate();

            this.conjureImage = UnitExtensions.GetAbilityById(this.owner, AbilityId.terrorblade_conjure_image);
            this.mirrorImage  = UnitExtensions.GetAbilityById(this.owner, AbilityId.naga_siren_mirror_image);
            this.doppelWalk   = UnitExtensions.GetAbilityById(this.owner, AbilityId.phantom_lancer_doppelwalk);

            this.inventoryMgr.CollectionChanged += this.InventoryChanged;
        }
コード例 #6
0
        protected override void OnActivate()
        {
            base.OnActivate();

            this.context.Inventory.Attach(this);

            this.conjureImage = UnitExtensions.GetAbilityById(this.context.Owner, AbilityId.terrorblade_conjure_image);
            this.mirrorImage  = UnitExtensions.GetAbilityById(this.context.Owner, AbilityId.naga_siren_mirror_image);
            this.doppelWalk   = UnitExtensions.GetAbilityById(this.context.Owner, AbilityId.phantom_lancer_doppelwalk);
        }
コード例 #7
0
        protected override void OnActivate()
        {
            base.OnActivate();

            this.context.Inventory.Attach(this);

            GameDispatcher.OnIngameUpdate += GameDispatcher_OnIngameUpdate;

            this.Imprison = UnitExtensions.GetAbilityById(this.Owner, AbilityId.obsidian_destroyer_astral_imprisonment);
            this.Orb      = UnitExtensions.GetAbilityById(this.Owner, AbilityId.obsidian_destroyer_arcane_orb);
            this.Ulti     = UnitExtensions.GetAbilityById(this.Owner, AbilityId.obsidian_destroyer_sanity_eclipse);
        }
コード例 #8
0
        protected override void OnActivate()
        {
            GameDispatcher.OnIngameUpdate += GameDispatcher_OnIngameUpdate;
            this.Decrepify = UnitExtensions.GetAbilityById(this.Owner, AbilityId.pugna_decrepify);
            this.Blast     = UnitExtensions.GetAbilityById(this.Owner, AbilityId.pugna_nether_blast);
            this.Ward      = UnitExtensions.GetAbilityById(this.Owner, AbilityId.pugna_nether_ward);
            this.Drain     = UnitExtensions.GetAbilityById(this.Owner, AbilityId.pugna_life_drain);

            this.Context.Inventory.Attach(this);

            base.OnActivate();
        }
コード例 #9
0
        protected override void OnActivate()
        {
            GameDispatcher.OnIngameUpdate += GameDispatcher_OnIngameUpdate;
            this.Ethershock = UnitExtensions.GetAbilityById(this.Owner, AbilityId.shadow_shaman_ether_shock);
            this.Hex        = UnitExtensions.GetAbilityById(this.Owner, AbilityId.shadow_shaman_voodoo);
            this.Shackles   = UnitExtensions.GetAbilityById(this.Owner, AbilityId.shadow_shaman_shackles);
            this.Wards      = UnitExtensions.GetAbilityById(this.Owner, AbilityId.shadow_shaman_mass_serpent_ward);

            this.Context.Inventory.Attach(this);

            base.OnActivate();
        }
コード例 #10
0
        protected override void OnActivate()
        {
            GameDispatcher.OnIngameUpdate += GameDispatcher_OnIngameUpdate;
            this.Remnant   = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_static_remnant);
            this.Vortex    = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_electric_vortex);
            this.Lightning = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_ball_lightning);
            this.Overload  = UnitExtensions.GetAbilityById(this.Owner, AbilityId.storm_spirit_overload);



            this.context.Inventory.Attach(this);

            base.OnActivate();
        }
コード例 #11
0
ファイル: ODSharp.cs プロジェクト: ihatevim/ensagebemine
        protected override void OnActivate()
        {
            GameDispatcher.OnIngameUpdate += GameDispatcher_OnIngameUpdate;

            this.Imprison = UnitExtensions.GetAbilityById(this.Owner, AbilityId.obsidian_destroyer_astral_imprisonment);
            this.Orb      = UnitExtensions.GetAbilityById(this.Owner, AbilityId.obsidian_destroyer_arcane_orb);
            this.Ulti     = UnitExtensions.GetAbilityById(this.Owner, AbilityId.obsidian_destroyer_sanity_eclipse);

            foreach (var item in Inventory.Value.Items)
            {
                switch (item.Id)
                {
                case Ensage.AbilityId.item_bloodthorn:
                    this.BloodThorn = item.Item;
                    break;

                case Ensage.AbilityId.item_sheepstick:
                    this.SheepStick = item.Item;
                    break;

                case Ensage.AbilityId.item_hurricane_pike:
                    this.HurricanePike = item.Item;
                    break;

                case Ensage.AbilityId.item_blink:
                    this.BlinkDagger = item.Item;
                    break;

                case Ensage.AbilityId.item_orchid:
                    this.Orchid = item.Item;
                    break;

                case Ensage.AbilityId.item_rod_of_atos:
                    this.RodofAtos = item.Item;
                    break;

                case Ensage.AbilityId.item_veil_of_discord:
                    this.VeilofDiscord = item.Item;
                    break;

                case AbilityId.item_shivas_guard:
                    this.ShivasGuard = item.Item;
                    break;
                }
            }

            this.Inventory.Value.CollectionChanged += this.OnInventoryChanged;

            base.OnActivate();
        }
コード例 #12
0
ファイル: Nevermore.cs プロジェクト: beminee/BAIO
        protected override void OnActivate()
        {
            base.OnActivate();
            var factory  = this.Config.Hero.Factory;
            var itemMenu = this.Config.Hero.ItemMenu;

            this.DrawRazeRange = factory.Item("Draw Raze Indicators", true);
            this.DrawRazeRange.Item.Tooltip = "When enabled, will draw raze indicators.";
            this.PriRaze = factory.Item("Make sure razes hit", true);
            this.PriRaze.Item.Tooltip =
                "When enabled, will stop razes if not guaranteed hit, but skip some attacks in return.";
            this.UltiCombo = factory.Item("Ulti Key", new KeyBind(70));
            this.UltiCombo.Item.Tooltip   = "Will use ulti with available items on target.";
            this.EullessUlti              = factory.Item("Use ulti without eul too", false);
            this.EullessUlti.Item.Tooltip = "Will use ulti without euls too. Only activate with good ping/fps";
            this.DrawingX = factory.Item("Drawing X", new Slider(0, 0, 1800));
            this.DrawingY = factory.Item("Drawing Y", new Slider(0, 0, 1800));

            this.BkbToggle      = itemMenu.Item("Bkb Toggle", new KeyBind(71, KeyBindType.Toggle, true));
            this.EtherealHeroes = itemMenu.Item("Ethereal Blade",
                                                new HeroToggler(new Dictionary <string, bool>(), true, false, true));
            this.VeilOfDiscordHeroes = itemMenu.Item("Veil Of Discord",
                                                     new HeroToggler(new Dictionary <string, bool>(), true, false, true));
            this.HexHeroes = itemMenu.Item("Hex",
                                           new HeroToggler(new Dictionary <string, bool>(), true, false, false));
            this.OrchidBloodthornHeroes = itemMenu.Item("Orchid/Bloodthorn",
                                                        new HeroToggler(new Dictionary <string, bool>(), true, false, true));
            this.OrchidBloodthornHeroes = itemMenu.Item("Orchid/Bloodthorn",
                                                        new HeroToggler(new Dictionary <string, bool>(), true, false, true));
            this.AtosHeroes = itemMenu.Item("Rod of Atos",
                                            new HeroToggler(new Dictionary <string, bool>(), true, false, true));
            this.HalberdHeroes = itemMenu.Item("Heaven's Halberd",
                                               new HeroToggler(new Dictionary <string, bool>(), true, false, true));
            this.UseBlink = itemMenu.Item("Use blink in combo?", true);

            this.Particle   = this.Context.Particle;
            this.Prediction = this.Context.Prediction;

            UpdateManager.Subscribe(OnUpdate, 20);

            Unit.OnModifierAdded            += this.OnRazeAdded;
            Unit.OnModifierRemoved          += this.OnRazeRemoved;
            this.Context.RenderManager.Draw += this.OnDraw;

            this.RazeShort  = UnitExtensions.GetAbilityById(this.Owner, AbilityId.nevermore_shadowraze1);
            this.RazeMedium = UnitExtensions.GetAbilityById(this.Owner, AbilityId.nevermore_shadowraze2);
            this.RazeLong   = UnitExtensions.GetAbilityById(this.Owner, AbilityId.nevermore_shadowraze3);
            this.Ulti       = UnitExtensions.GetAbilityById(this.Owner, AbilityId.nevermore_requiem);
        }
コード例 #13
0
ファイル: Combo.cs プロジェクト: s1lent1111/Ensage-Sharp
        protected override void OnActivate()
        {
            me = Context.Owner as Hero;
            GameDispatcher.OnIngameUpdate += GameDispatcher_OnIngameUpdate;

            Q = ExUnit.GetAbilityById(me, AbilityId.storm_spirit_static_remnant);
            W = ExUnit.GetAbilityById(me, AbilityId.storm_spirit_electric_vortex);
            R = ExUnit.GetAbilityById(me, AbilityId.storm_spirit_ball_lightning);
            E = ExUnit.GetAbilityById(me, AbilityId.storm_spirit_overload);

            if (Config.DrawingDamageEnabled.Value)
            {
                Drawing.OnDraw += DrawingDamagePanel;
            }
            context.Inventory.Attach(this);

            base.OnActivate();
        }
コード例 #14
0
        private void OnOnIngameUpdate(EventArgs args)
        {
            Mode = OrbwalkingMode.Idle;
            if (Game.IsPaused || Game.IsChatOpen)
            {
                return;
            }
            if (Members.Menu.Item("Combo.key").GetValue <KeyBind>().Active)
            {
                Mode = OrbwalkingMode.Combo;
            }
            else if (Mode == OrbwalkingMode.Idle)
            {
                _globalTarget = null;
                EffectManager.Remove("attackTarget" + Owner.Handle);
                return;
            }
            if (TurnEndTime > Game.RawGameTime)
            {
                return;
            }
            var target = GetTarget();

            if (!UnitExtensions.HasModifier(Owner, "modifier_templar_assassin_meld"))
            {
                var tempTarget = GetTarget(false);
                if (tempTarget != null)
                {
                    var blink   = Owner.GetItemById(AbilityId.item_blink);
                    var tempPos = new Vector3();
                    if (blink != null && blink.CanBeCasted() && blink.CanHit(tempTarget, ref tempPos) &&
                        !_sleeper.Sleeping(blink))
                    {
                        blink.UseAbility(tempPos);
                        _sleeper.Sleep(300, blink);
                    }
                    if (!UnitExtensions.HasModifier(tempTarget, "modifier_templar_assassin_trap_slow"))
                    {
                        var trap = UnitExtensions.GetAbilityById(ObjectManager.LocalHero,
                                                                 AbilityId.templar_assassin_psionic_trap);
                        var trapNearTarget =
                            EntityManager <Unit> .Entities.FirstOrDefault(
                                x =>
                                x.IsValid && x.Name == "npc_dota_templar_assassin_psionic_trap" &&
                                Ensage.SDK.Extensions.EntityExtensions.Distance2D(tempTarget, x.Position) <= 400);

                        if (trapNearTarget != null)
                        {
                            if (!_sleeper.Sleeping(trap + "activate"))
                            {
                                var activator = trapNearTarget.Spellbook.Spell1;
                                if (activator.CanBeCasted())
                                {
                                    activator.UseAbility();
                                }
                                _sleeper.Sleep(300, trap + "activate");
                            }
                        }
                        else if (trap.CanBeCasted())
                        {
                            if (!_sleeper.Sleeping(trap + "place"))
                            {
                                trap.UseAbility(tempTarget.Position);
                                _sleeper.Sleep(300, trap + "place");
                            }
                        }
                    }
                }
            }
            if ((target == null || !CanAttack(target)) && CanMove())
            {
                if (Move(Game.MousePosition))
                {
                    return;
                }
            }

            if (target != null && CanAttack(target))
            {
                LastTarget = target;
                var refraction = UnitExtensions.GetAbilityById(ObjectManager.LocalHero, AbilityId.templar_assassin_refraction);
                if (refraction.CanBeCasted() && !_sleeper.Sleeping(refraction))
                {
                    refraction.UseAbility();
                    _sleeper.Sleep(300, refraction);
                }
                var meld = UnitExtensions.GetAbilityById(ObjectManager.LocalHero, AbilityId.templar_assassin_meld);
                if (meld.CanBeCasted() && !_sleeper.Sleeping(meld))
                {
                    meld.UseAbility();
                    _sleeper.Sleep(300, meld);
                }
                Attack(target);
            }
            if (LastTarget != null && LastTarget.IsValid && LastTarget.IsAlive)
            {
                EffectManager.DrawRange(LastTarget, "attackTarget" + Owner.Handle, 60, Color.Red);
            }
            else
            {
                EffectManager.Remove("attackTarget" + Owner.Handle);
            }
        }