private void UpdateMinResourceRequirement(PlayerReader playerReader, ActionBarCostReader actionBarCostReader)
        {
            var tuple = actionBarCostReader.GetCostByActionBarSlot(playerReader, this);

            if (tuple.Item2 != 0)
            {
                int oldValue = 0;
                switch (tuple.Item1)
                {
                case PowerType.Mana:
                    oldValue = MinMana;
                    MinMana  = tuple.Item2;
                    break;

                case PowerType.Rage:
                    oldValue = MinRage;
                    MinRage  = tuple.Item2;
                    break;

                case PowerType.Energy:
                    oldValue  = MinEnergy;
                    MinEnergy = tuple.Item2;
                    break;
                }

                int formCost = 0;
                if (HasFormRequirement() && FormEnum != Core.Form.None && playerReader.FormCost.ContainsKey(FormEnum))
                {
                    formCost = playerReader.FormCost[FormEnum];
                }

                logger.LogInformation($"[{Name}] Update {tuple.Item1} cost to {tuple.Item2} from {oldValue}" + (formCost > 0 ? $" +{formCost} Mana to change {FormEnum} Form" : ""));
            }
        }
        public void AddonRefresh()
        {
            Refresh();

            // 20 - 29
            BagReader.Read();

            // 30 - 31
            equipmentReader.Read();

            // 44
            ActionBarCostReader.Read();

            LevelTracker.Update();

            PlayerReader.UpdateCreatureLists();

            areaDb.Update(worldMapAreaDb.GetAreaId(PlayerReader.ZoneId));

            seq++;

            if (seq >= 10)
            {
                seq = 0;
                AddonDataChanged?.Invoke(this, new EventArgs());
            }
        }
示例#3
0
        private void UpdateMinResourceRequirement(ActionBarCostReader actionBarCostReader)
        {
            var tuple = actionBarCostReader.GetCostByActionBarSlot(Key);

            if (tuple.Item2 != 0)
            {
                int oldValue = 0;
                switch (tuple.Item1)
                {
                case PowerType.Mana:
                    oldValue = MinMana;
                    MinMana  = tuple.Item2;
                    break;

                case PowerType.Rage:
                    oldValue = MinRage;
                    MinRage  = tuple.Item2;
                    break;

                case PowerType.Energy:
                    oldValue  = MinEnergy;
                    MinEnergy = tuple.Item2;
                    break;
                }

                logger.LogInformation($"Updated {tuple.Item1} cost of {this.Name} to {tuple.Item2} from {oldValue}");
            }
        }
        public void Reset()
        {
            Initialized = false;

            PlayerReader.Reset();

            UIMapId.Reset();

            ActionBarCostReader.Reset();
            SpellBookReader.Reset();
            TalentReader.Reset();
            CreatureHistory.Reset();

            Initialized = true;
        }
        public void AddonRefresh()
        {
            Refresh();

            CreatureHistory.Update(PlayerReader.TargetGuid, PlayerReader.TargetHealthPercentage);

            BagReader.Read();
            EquipmentReader.Read();

            ActionBarCostReader.Read();

            GossipReader.Read();

            SpellBookReader.Read();
            TalentReader.Read();

            LevelTracker.Update();

            if ((DateTime.Now - lastFrontendUpdate).TotalMilliseconds >= FrontendUpdateIntervalMs)
            {
                AddonDataChanged?.Invoke(this, EventArgs.Empty);
                lastFrontendUpdate = DateTime.Now;
            }
        }