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)); } }
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(); }
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(); }
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(); }
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; }
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); }
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); }
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(); }
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(); }
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(); }
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(); }
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); }
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(); }
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); } }