/// <summary> /// Function called by the stop cast event. /// </summary> /// <param name="sender">Sender Spell-book</param> /// <param name="args">Spell-book Stop Data</param> private static void Spellbook_OnStopCast(Spellbook sender, SpellbookStopCastEventArgs args) { var target = sender.Owner as Obj_AI_Hero; if (target == null) { return; } if (!target.Spellbook.IsCastingSpell && !target.Spellbook.IsChanneling && !target.Spellbook.IsCharging) { CastingInterruptableSpellDictionary.Remove(target.NetworkId); } }
/// <summary> /// Function called by the stop cast event. /// </summary> /// <param name="sender"> /// Sender Spell-book /// </param> private static void EventInterruptableSpell(Obj_AI_Base sender) { var target = sender as AIHeroClient; if (target == null) { return; } if (!target.Spellbook.IsCastingSpell && !target.Spellbook.IsChanneling && !target.Spellbook.IsCharging) { CastingInterruptableSpellDictionary.Remove(target.NetworkId); } }
/// <summary> /// Function called by update tick event. /// </summary> /// <param name="args"><see cref="System.EventArgs" /> event data</param> private static void Game_OnGameUpdate(EventArgs args) { foreach (var hero in GameObjects.Heroes.Where( hero => CastingInterruptableSpellDictionary.ContainsKey(hero.NetworkId) && !hero.Spellbook.IsCastingSpell && !hero.Spellbook.IsChanneling && !hero.Spellbook.IsCharging)) { CastingInterruptableSpellDictionary.Remove(hero.NetworkId); } if (OnInterruptableTarget == null) { return; } foreach (var newArgs in GameObjects.EnemyHeroes.Select(GetInterruptableTargetData).Where(newArgs => newArgs != null)) { OnInterruptableTarget(newArgs.Sender, newArgs); } }
/// <summary> /// Function called by update tick event. /// </summary> private static void EventInterruptableSpell() { foreach (var hero in GameObjects.Heroes.Where( hero => CastingInterruptableSpellDictionary.ContainsKey(hero.NetworkId) && !hero.Spellbook.IsCastingSpell && !hero.Spellbook.IsChanneling && !hero.Spellbook.IsCharging)) { CastingInterruptableSpellDictionary.Remove(hero.NetworkId); } if (OnInterruptableTarget == null) { return; } foreach (var newArgs in GameObjects.EnemyHeroes.Select(GetInterruptableTargetData).Where(newArgs => newArgs != null)) { OnInterruptableTarget(MethodBase.GetCurrentMethod().DeclaringType, newArgs); } }