Exemplo n.º 1
0
        void hudUpdateTimer_Tick(object sender, EventArgs e)
        {
            try
            {
                if (equipmentTracker.RemainingTimeBeforeNextEmptyItem == TimeSpan.MaxValue)
                {
                    VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "Mana", "");
                }
                else
                {
                    VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "Mana", (equipmentTracker.NumberOfInactiveItems > 0 ? "*" : "") + string.Format("{0:d}h{1:d2}m", (int)equipmentTracker.RemainingTimeBeforeNextEmptyItem.TotalHours, equipmentTracker.RemainingTimeBeforeNextEmptyItem.Minutes));
                }

                var nextItemToBeDepleted = inventoryTracker.NextItemToBeDepleted(TimeSpan.FromHours(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "Comps Time 1h", (nextItemToBeDepleted == null) ? "" : nextItemToBeDepleted.GetTimeToDepletion(TimeSpan.FromHours(1)).TotalHours.ToString("N1") + "h");

                var freePackSlots = Util.GetFreePackSlots(CoreManager.Current.CharacterFilter.Id);
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "Pack Slots", (freePackSlots == 0) ? "" : freePackSlots.ToString(CultureInfo.InvariantCulture));

                // DPS Given
                var dpsGivenOverOneMinute = combatTracker.GetDamageGivenOverTime(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "DPS Out 1m", (dpsGivenOverOneMinute == 0) ? "" : dpsGivenOverOneMinute.ToString("N0"));

                var dpsGivenOverFiveMinutes = combatTracker.GetDamageGivenOverTime(TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "DPS Out 5m", (dpsGivenOverFiveMinutes == 0) ? "" : dpsGivenOverFiveMinutes.ToString("N0"));

                var dpsGivenOverOneHour = combatTracker.GetDamageGivenOverTime(TimeSpan.FromHours(1), TimeSpan.FromSeconds(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "DPS Out 1h", (dpsGivenOverOneHour == 0) ? "" : dpsGivenOverOneHour.ToString("N0"));

                // DPS Received
                var dpsReceivedOverOneMinute = combatTracker.GetDamageReceivedOverTime(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "DPS In 1m", (dpsReceivedOverOneMinute == 0) ? "" : dpsReceivedOverOneMinute.ToString("N0"));

                var dpsReceivedOverFiveMinutes = combatTracker.GetDamageReceivedOverTime(TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "DPS In 5m", (dpsReceivedOverFiveMinutes == 0) ? "" : dpsReceivedOverFiveMinutes.ToString("N0"));

                var dpsReceivedOverOneHour = combatTracker.GetDamageReceivedOverTime(TimeSpan.FromHours(1), TimeSpan.FromSeconds(1));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "DPS In 1h", (dpsReceivedOverOneHour == 0) ? "" : dpsReceivedOverOneHour.ToString("N0"));

                // Area Items
                int playerCount  = -1;
                int monsterCount = 0;

                foreach (var wo in CoreManager.Current.WorldFilter.GetLandscape())
                {
                    if (wo.ObjectClass == ObjectClass.Player)
                    {
                        playerCount++;
                    }

                    if (wo.ObjectClass == ObjectClass.Monster)
                    {
                        monsterCount++;
                    }
                }

                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "Players", (playerCount <= 0) ? "" : playerCount.ToString(CultureInfo.InvariantCulture));
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "Monsters", (monsterCount == 0) ? "" : monsterCount.ToString(CultureInfo.InvariantCulture));

                // Game Info
                var itemsInIDQueue = CoreManager.Current.IDQueue.ActionCount;
                VirindiHUDs.UIs.StatusModel.UpdateEntry("Mag-Tools", "ID Queue", (itemsInIDQueue == 0) ? "" : itemsInIDQueue.ToString(CultureInfo.InvariantCulture));
            }
            catch (Exception ex) { Debug.LogException(ex); }
        }