Exemplo n.º 1
0
 public Button(AbilityId id, TypeEnum type, bool isActive)
 {
     Id        = id;
     TextureId = id.ToString();
     Type      = type;
     IsActive  = isActive;
 }
Exemplo n.º 2
0
        private void Spells(Hero hero, AbilityId abilityId, Vector3 position)
        {
            try
            {
                var isDangerousSpell = DangerousAbility.DangerousSpells.Contains(abilityId);
                if (hero == null)
                {
                    Verification.EntityVerification(position, "npc_dota_hero_default", abilityId, 0, isDangerousSpell);
                    return;
                }

                if (hero.IsAlly(EntityManager.LocalHero))
                {
                    return;
                }

                if (!hero.IsVisible || PartialMapHackMenu.WhenIsVisibleItem && isDangerousSpell)
                {
                    Verification.EntityVerification(position, hero.Name, abilityId, hero.Player.Id + 1, isDangerousSpell);
                }
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Exemplo n.º 3
0
        private bool IsItemIgnored(IEnumerable <Ability9> currentItems, AbilityId itemId)
        {
            if (!itemId.CanBePurchased(this.owner.Team))
            {
                return(true);
            }

            switch (itemId)
            {
            case AbilityId.item_energy_booster:
            {
                if (currentItems.Any(x => x.Id == AbilityId.item_arcane_boots))
                {
                    return(true);
                }

                break;
            }

            case AbilityId.item_tome_of_knowledge:
            {
                if (this.owner.Hero.Level >= GameData.MaxHeroLevel)
                {
                    return(true);
                }

                break;
            }
            }

            return(false);
        }
Exemplo n.º 4
0
        public PowerTreadsSwitcher(Manager manager, MenuManager menu, AbilityId abilityId)
        {
            this.manager = manager;
            this.menu    = menu.AutoActionsMenu.PowerTreadsMenu;
            recoveryMenu = menu.RecoveryMenu;
            order        = new Order();

            AbilityId = abilityId;
            Refresh();

            foreach (var ability in manager.MyHero.Abilities.Where(x => x.GetManaCost(0) > 0))
            {
                this.menu.AddAbility(ability.StoredName(), true);
            }

            manager.OnAbilityAdd    += OnAbilityAdd;
            manager.OnAbilityRemove += OnAbilityRemove;
            updateHandler            = UpdateManager.Subscribe(OnUpdate, 100, this.menu.IsEnabled);
            if (this.menu.IsEnabled)
            {
                Unit.OnModifierAdded   += OnModifierAdded;
                Unit.OnModifierRemoved += OnModifierRemoved;
                Player.OnExecuteOrder  += OnExecuteOrder;
            }
            this.menu.OnEnabledChange += MenuOnEnabledChange;
        }
Exemplo n.º 5
0
        public uint CountWards(AbilityId id)
        {
            var items = hero.Inventory.Items.Concat(hero.Inventory.Backpack).Where(x => x.IsValid).ToList();

            return((uint)(items.Where(x => x.Id == id).Sum(x => x.CurrentCharges) + items.Where(x => x.Id == DispenserId)
                          .Sum(x => id == AbilityId.item_ward_observer ? x.CurrentCharges : x.SecondaryCharges)));
        }
Exemplo n.º 6
0
 public static void Render(this IConsole console, Ability ability, AbilityId id)
 {
     console.WriteTitle($"{id}");
     console.WriteProperty("Name", ability.Name);
     console.WriteProperty("Effect1", $"{ability.Effect1} ({ability.Effect1Amount})");
     console.WriteProperty("Effect2", $"{ability.Effect2} ({ability.Effect2Amount})");
 }
 public SynthActionAttribute(ActionType type, AbilityId id, string name, uint cp)
 {
     this.type = type;
     this.name = name;
     this.cp   = cp;
     this.id   = id;
 }
Exemplo n.º 8
0
        private static Stats GetItemStats(AbilityId itemId)
        {
            if (ItemStats.TryGetValue(itemId, out var stats))
            {
                return(stats);
            }

            var data = Ability.GetAbilityDataById(itemId).AbilitySpecialData.ToList();

            if (data.Any(x => BonusAllStats.Contains(x.Name)))
            {
                stats = Stats.All;
            }
            else
            {
                if (data.Any(x => BonusHealth.Contains(x.Name)))
                {
                    stats |= Stats.Health;
                }

                if (data.Any(x => BonusMana.Contains(x.Name)))
                {
                    stats |= Stats.Mana;
                }
            }

            ItemStats[itemId] = stats;
            return(stats);
        }
Exemplo n.º 9
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (AbilityId != 0L)
            {
                hash ^= AbilityId.GetHashCode();
            }
            if (Type != 0)
            {
                hash ^= Type.GetHashCode();
            }
            if (PassiveId != 0)
            {
                hash ^= PassiveId.GetHashCode();
            }
            if (MoveId != 0)
            {
                hash ^= MoveId.GetHashCode();
            }
            if (Value != 0)
            {
                hash ^= Value.GetHashCode();
            }
            if (U6 != 0)
            {
                hash ^= U6.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Exemplo n.º 10
0
        public uint CountWards(AbilityId id)
        {
            var items = this.Unit.BaseInventory.MainItems.Concat(this.Unit.BaseInventory.BackpackItems).ToList();

            return((uint)(items.Where(x => x.Id == id).Sum(x => x.CurrentCharges) + items.Where(x => x.Id == DispenserId)
                          .Sum(x => id == AbilityId.item_ward_observer ? x.CurrentCharges : x.SecondaryCharges)));
        }
Exemplo n.º 11
0
        public SpecialData(Entity talentOwner, AbilityId talentId)
        {
            try
            {
                this.talent = EntityManager9.BaseAbilities.FirstOrDefault(x => x.Id == talentId && x.Owner?.Handle == talentOwner.Handle);

                if (this.talent != null)
                {
                    this.talentValue = this.talent.AbilitySpecialData.First(x => x.Name == "value").Value;
                    this.getDataFunc = this.GetTalentValue;
                }
                else
                {
                    this.getDataFunc = _ => 1;
                }
            }
            catch
            {
                this.getDataFunc = _ => 0;

                var ex = new BrokenAbilityException(talentId.ToString());
                if (this.talent?.IsValid == true)
                {
                    ex.Data["Ability"] = new
                    {
                        Ability = this.talent.Name
                    };
                }

                Logger.Error(ex);
            }
        }
Exemplo n.º 12
0
        private Unit9 GetUnitToPurchase(AbilityId itemId)
        {
            if (GameManager.GameMode == GameMode.Turbo)
            {
                return(this.owner);
            }

            var flags = itemId.GetShopFlags();

            if ((this.GetUnitShopFlags(this.owner) & flags) != 0)
            {
                return(this.owner);
            }

            var courier = EntityManager9.Units.FirstOrDefault(x => x.IsCourier && x.IsAlly(this.owner) && x.IsAlive);

            if (courier == null)
            {
                return(null);
            }

            if ((this.GetUnitShopFlags(courier) & flags) != 0)
            {
                return(courier);
            }

            return(null);
        }
Exemplo n.º 13
0
        public static Ability FindSpell322(this Unit unit, AbilityId abilityId, bool cache = false)
        {
            if (!cache)
            {
                return(unit.Spellbook.Spells.FirstOrDefault(x => x.GetAbilityId() == abilityId));
            }

            Ability ability;
            var     n = unit.Handle + abilityId.ToString();

            if (!AbilityDictionary.TryGetValue(n, out ability) || ability == null || !ability.IsValid ||
                Utils.SleepCheck("Common.FindSpell322." + abilityId))
            {
                ability = unit.Spellbook.Spells.FirstOrDefault(x => x.GetAbilityId() == abilityId);
                if (AbilityDictionary.ContainsKey(n))
                {
                    AbilityDictionary[n] = ability;
                }
                else
                {
                    AbilityDictionary.TryAdd(n, ability);
                }

                Utils.Sleep(1000, "Common.FindSpell322." + abilityId);
            }

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

            return(ability);
        }
Exemplo n.º 14
0
        public AbilityHolder(Ability ability)
        {
            Ability      = ability;
            Handle       = ability.Handle;
            Name         = ability.Name;
            MaximumLevel = Ability.MaximumLevel;
            Owner        = (Hero)ability.Owner;
            Id           = Ability.Id;
            AbilityState = ability.AbilityState;
            Texture      = Ability is Item
                ? Textures.GetItemTexture(ability.Name)
                : Textures.GetSpellTexture(ability.Name);

            Cooldown    = Ability.Cooldown;
            IsUltimate  = ability.AbilityType == AbilityType.Ultimate;
            IsHidden    = ability.IsHidden;
            AbilitySlot = ability.AbilitySlot;
            Item        = ability as Item;
            if (Item != null)
            {
                Cost = Item.Cost;
            }
            UpdateManager.BeginInvoke(async() =>
            {
                while (ability.IsValid)
                {
                    AbilityState = ability.AbilityState;
                    Cooldown     = Ability.Cooldown;
                    IsHidden     = ability.IsHidden;
                    AbilitySlot  = ability.AbilitySlot;
                    await Task.Delay(300);
                }
                //Log.Debug($"[{Owner.Name}] end for -> {Id}");
            });
        }
Exemplo n.º 15
0
 public void ActivateAbility(AbilityId selectableAbility, Vector3 instantiatePosition)
 {
     if (abilities[selectableAbility].active.instantiable != null)
     {
         Instantiate(abilities[selectableAbility].active.instantiable, instantiatePosition, Quaternion.identity);
     }
 }
Exemplo n.º 16
0
 // Token: 0x06000ECB RID: 3787 RVA: 0x0002789C File Offset: 0x00025A9C
 public Alacrity(Ability baseAbility)
 {
     AbilityId[] array = new AbilityId[3];
     RuntimeHelpers.InitializeArray(array, fieldof(< PrivateImplementationDetails > .54CB4A334BD6A28780BD9A51B9F27C7F5A14F512).FieldHandle);
     this.RequiredOrbs = array;
     base..ctor(baseAbility);
     this.invokeHelper = new InvokeHelper <Alacrity>(this);
 }
Exemplo n.º 17
0
 // Token: 0x06000ED7 RID: 3799 RVA: 0x0000D17A File Offset: 0x0000B37A
 public ColdSnap(Ability baseAbility)
 {
     AbilityId[] array = new AbilityId[3];
     RuntimeHelpers.InitializeArray(array, fieldof(< PrivateImplementationDetails >.D2E837ABB7592BEF49070A3169FE7133D3E84FA3).FieldHandle);
     this.RequiredOrbs = array;
     base..ctor(baseAbility);
     this.invokeHelper = new InvokeHelper <ColdSnap>(this);
 }
Exemplo n.º 18
0
 // Token: 0x06000367 RID: 871 RVA: 0x000042FD File Offset: 0x000024FD
 public uint GetWardsCount(AbilityId id)
 {
     if (id != AbilityId.item_ward_observer)
     {
         return(this.SentryCount);
     }
     return(this.ObserversCount);
 }
Exemplo n.º 19
0
        public static Item GetItemById(this Unit unit, AbilityId abilityId)
        {
            if (!unit.HasInventory)
            {
                return(null);
            }

            return(unit.Inventory.Items.FirstOrDefault(x => x != null && x.IsValid && x.Id == abilityId));
        }
Exemplo n.º 20
0
 // Token: 0x06000EB6 RID: 3766 RVA: 0x0000CF46 File Offset: 0x0000B146
 public GhostWalk(Ability baseAbility)
 {
     AbilityId[] array = new AbilityId[3];
     RuntimeHelpers.InitializeArray(array, fieldof(< PrivateImplementationDetails >.E3E33884B4D5DBE5E296A8F85BD91D9EF88B779D).FieldHandle);
     this.RequiredOrbs = array;
     base..ctor(baseAbility);
     base.IsInvisibility = true;
     this.invokeHelper   = new InvokeHelper <GhostWalk>(this);
 }
Exemplo n.º 21
0
 // Token: 0x06000368 RID: 872 RVA: 0x00004311 File Offset: 0x00002511
 public void SetWardsCount(AbilityId id, uint count)
 {
     if (id == AbilityId.item_ward_observer)
     {
         this.ObserversCount = count;
         return;
     }
     this.SentryCount = count;
 }
Exemplo n.º 22
0
        public StockInfo GetStockInfo(AbilityId id, Team team = Team.Undefined)
        {
            if (team == Team.Undefined)
            {
                team = this.Owner.Team;
            }

            return(Game.StockInfo.FirstOrDefault(e => e.AbilityId == id && e.Team == team));
        }
Exemplo n.º 23
0
        public static void CastItem(Hero hero, AbilityId abilityId)
        {
            var Item = hero.Inventory.Items.FirstOrDefault(x => x.Id == abilityId);

            if (Item != null /* && Item.Level > 0*/ && Item.Cooldown == 0 /*&& ManaCheck(Item.ManaCost, hero.Mana)*/)
            {
                Item.Cast();
            }
        }
Exemplo n.º 24
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="abilityId"></param>
 /// <returns></returns>
 public static System.Type Get(AbilityId abilityId)
 {
     System.Type abilityType;
     if (_table.TryGetValue(abilityId, out abilityType))
     {
         return(abilityType);
     }
     return(null);
 }
Exemplo n.º 25
0
        public AutoMagicStick(Manager manager, MenuManager menu, AbilityId abilityId)
        {
            this.manager = manager;
            this.menu    = menu.AutoActionsMenu.AutoHealsMenu.AutoMagicStickMenu;

            AbilityId = abilityId;
            Refresh();

            UpdateManager.Subscribe(OnUpdate, 100);
        }
Exemplo n.º 26
0
        public AutoIronTalon(Manager manager, MenuManager menu, AbilityId abilityId)
        {
            this.manager = manager;
            this.menu    = menu.AutoActionsMenu.IronTalonMenu;

            AbilityId = abilityId;
            Refresh();

            UpdateManager.Subscribe(OnUpdate, 500);
        }
Exemplo n.º 27
0
        public static int GetPrice(this AbilityId itemId)
        {
            if (ItemPrice.TryGetValue(itemId, out var price))
            {
                return(price);
            }

            ItemPrice[itemId] = Ability.GetKeyValueById(itemId).GetKeyValue("ItemCost")?.GetInt32() ?? 0;
            return(price);
        }
Exemplo n.º 28
0
        public TranquilDrop(Manager manager, MenuManager menu, AbilityId abilityId)
        {
            this.manager = manager;
            this.menu    = menu.AbilityHelperMenu.TranquilMenu;

            AbilityId = abilityId;

            this.menu.OnTranquilDrop += OnTranquilDrop;
            updateHandler             = UpdateManager.Subscribe(OnUpdate, 100, false);
        }
Exemplo n.º 29
0
        public BlinkAdjustment(Manager manager, MenuManager menu, AbilityId abilityId)
        {
            this.manager = manager;
            this.menu    = menu.AbilityHelperMenu.BlinkMenu;

            AbilityId = abilityId;
            Refresh();

            Player.OnExecuteOrder += OnExecuteOrder;
        }
Exemplo n.º 30
0
        public AutoLivingArmor(Manager manager, MenuManager menu, AbilityId abilityId)
        {
            this.manager = manager;
            this.menu    = menu.AutoActionsMenu.AutoHealsMenu.LivingArmorMenu;

            AbilityId = abilityId;
            Refresh();

            UpdateManager.Subscribe(OnUpdate, 300);
        }
Exemplo n.º 31
0
 private Ability(AbilityId id, string name, string description)
 {
     Id = id;
     Name = name;
     Description = description;
 }