public IEnumerable <UnitSpellSum> getUnitTotalSpellHealing(int raid, int encounter, String source)
        {
            HealingEvent[]      events    = getHealingForRaidEncounter(raid, encounter);
            List <HealingEvent> forSource = WowEvent.filterBySource <HealingEvent>(source, events);

            return(HealingEvent.groupBySpell(forSource.ToArray()));
        }
 public void AddHealingEvent(HealingEvent healing)
 {
     if (healing != null)
     {
         healing.eventID = GenerateUUID();
         Instance.healingList.Add(healing);
     }
 }
Esempio n. 3
0
    //Healing

    public void NewHealingEvent()
    {
        HealingEvent healingEvent = new HealingEvent();

        if (player)
        {
            HealthTimesCount++;
            healingEvent.seconds_since_start = timer_since_start;
            healingEvent.health_num          = HealthTimesCount;
        }

        writer.AddHealingEvent(healingEvent);
    }
        internal HealingEvent[] getHealingForRaidEncounter(int raid, int encounter, bool forceRefresh = false)
        {
            if (forceRefresh)
            {
                List <HealingEvent> list = HealingEvent.convert(Cassandra.Instance.GetHealingForRaidEncounter(raid, encounter));
                foreach (HealingEvent evt in list)
                {
                    healingIndex.Put(evt.getKey(), evt);
                }
                return(list.ToArray());
            }

            object[] temp = healingIndex.GetPrefix(HealingEvent.getRaidEncounterPrefix(raid, encounter));

            if (temp.Length == 0)
            {
                return(getHealingForRaidEncounter(raid, encounter, true));
            }

            return(convertToList <HealingEvent>(temp).ToArray());
        }
        private UnitTotalHealing getTotalHealingBySource(int raid, int encounter, String Source, bool forceRefresh = false)
        {
            UnitTotalHealing healing;

            if (forceRefresh)
            {
                HealingEvent[] events = getHealingForRaidEncounter(raid, encounter);

                foreach (UnitTotalHealing unit in HealingEvent.groupBySource(events))
                {
                    healingIndex.Set(String.Format(String.Format("TOTAL:{0}:{1}:{2}:", raid, encounter, unit.Source)), unit);
                }

                healing = (UnitTotalHealing)healingIndex.Get(String.Format("TOTAL:{0}:{1}:{2}:", raid, encounter, Source));

                if (healing == null)
                {
                    throw new ArgumentOutOfRangeException(Source + " does not exist in the encounter");
                }
                else
                {
                    return(healing);
                }
            }

            healing = (UnitTotalHealing)healingIndex.Get(String.Format("TOTAL:{0}:{1}:{2}:", raid, encounter, Source));

            if (healing == null)
            {
                return(getTotalHealingBySource(raid, encounter, Source, true));
            }
            else
            {
                return((UnitTotalHealing)healing);
            }
        }