Example #1
0
        public void OnRemoveEntity(EntityEventArgs args)
        {
            var handle = args.Entity.Handle;

            var disposable = UsableAbilities.FirstOrDefault(x => x.Handle == handle) as IDisposable;

            disposable?.Dispose();

            EvadableAbilities.RemoveAll(x => x.Handle == handle || x.OwnerHandle == handle);
            UsableAbilities.RemoveAll(x => x.Handle == handle);
        }
Example #2
0
        //public async void OnUpdate(EventArgs args)
        //{
        //    if (processing || sleeper.Sleeping || !Game.IsInGame)
        //    {
        //        return;
        //    }

        //    processing = true;

        //    foreach (var unit in ObjectManager.GetEntitiesParallel<Unit>()
        //        .Where(
        //            x => !(x is Building) && x.IsValid && x.IsAlive && x.IsSpawned && (!x.IsIllusion || x.HasModifiers(
        //                                                                                   new[]
        //                                                                                   {
        //                                                                                       "modifier_arc_warden_tempest_double",
        //                                                                                       "modifier_vengefulspirit_hybrid_special",
        //                                                                                       "modifier_morph_hybrid_special"
        //                                                                                   },
        //                                                                                   false))))
        //    {
        //        var abilities = new List<Ability>();

        //        try
        //        {
        //            abilities.AddRange(unit.Spellbook.Spells.ToList());

        //            if (unit.HasInventory)
        //            {
        //                abilities.AddRange(unit.Inventory.Items);
        //            }
        //        }
        //        catch
        //        {
        //            continue;
        //        }

        //        foreach (var ability in abilities.Where(
        //            x => x.IsValid && !addedAbilities.Contains(x.Handle) && x.Level > 0))
        //        {
        //            if (unit.Equals(Hero))
        //            {
        //                var abilityName = ability.Name;

        //                Func<Ability, UsableAbility> func;
        //                if (allyAbilitiesData.CounterAbilities.TryGetValue(abilityName, out func))
        //                {
        //                    Menu.UsableAbilities.AddAbility(abilityName, AbilityType.Counter);
        //                    UsableAbilities.Add(func.Invoke(ability));
        //                }
        //                if (allyAbilitiesData.DisableAbilities.TryGetValue(abilityName, out func))
        //                {
        //                    Menu.UsableAbilities.AddAbility(abilityName, AbilityType.Disable);
        //                    UsableAbilities.Add(func.Invoke(ability));
        //                }
        //                if (allyAbilitiesData.BlinkAbilities.TryGetValue(abilityName, out func))
        //                {
        //                    Menu.UsableAbilities.AddAbility(abilityName, AbilityType.Blink);
        //                    UsableAbilities.Add(func.Invoke(ability));
        //                }
        //            }
        //            else if (unit.Team != HeroTeam || ability.ClassId
        //                     == ClassId.CDOTA_Ability_FacelessVoid_Chronosphere)
        //            {
        //                Func<Ability, EvadableAbility> func;
        //                if (enemyAbilitiesData.EvadableAbilities.TryGetValue(ability.Name, out func))
        //                {
        //                    var evadableAbility = func.Invoke(ability);

        //                    if (Menu.Debug.FastAbilityAdd)
        //                    {
        //                        Menu.EnemiesSettings.AddAbility(evadableAbility);
        //                    }
        //                    else
        //                    {
        //                        await Menu.EnemiesSettings.AddAbility(evadableAbility);
        //                    }

        //                    EvadableAbilities.Add(evadableAbility);
        //                }
        //            }

        //            addedAbilities.Add(ability.Handle);
        //        }
        //    }

        //    sleeper.Sleep(3000);
        //    processing = false;
        //}

        private void EntityOnOnInt64PropertyChange(Entity sender, Int64PropertyChangeEventArgs args)
        {
            if (args.OldValue != 0 || args.NewValue != 1 || args.PropertyName != "m_iIsControllableByPlayer64")
            {
                return;
            }

            if (sender.Team == HeroTeam && sender is Creep)
            {
                EvadableAbilities.RemoveAll(x => x.OwnerHandle == sender.Handle);
            }
        }
Example #3
0
        private void EntityOnOnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args)
        {
            if (args.NewValue == args.OldValue || args.NewValue > 0 || args.PropertyName != "m_iHealth")
            {
                return;
            }

            var creep = sender as Creep;

            if (creep == null || !creep.IsValid)
            {
                return;
            }

            EvadableAbilities.RemoveAll(x => x.OwnerHandle == creep.Handle);
        }