Esempio n. 1
0
        private void ComputeMechanicData(long start, long end)
        {
            var presentMechanics         = new HashSet <Mechanic>();
            var presentOnEnemyMechanics  = new HashSet <Mechanic>();
            var presentOnPlayerMechanics = new HashSet <Mechanic>();
            var enemyHash = new HashSet <AbstractSingleActor>();

            foreach (KeyValuePair <Mechanic, List <MechanicEvent> > pair in _mechanicLogs)
            {
                if (pair.Value.Any(x => x.Time >= start && x.Time <= end))
                {
                    presentMechanics.Add(pair.Key);
                    if (pair.Key.IsEnemyMechanic)
                    {
                        presentOnEnemyMechanics.Add(pair.Key);
                    }
                    else if (pair.Key.ShowOnTable)
                    {
                        presentOnPlayerMechanics.Add(pair.Key);
                    }
                }
            }
            // ready enemy list
            foreach (Mechanic m in _mechanicLogs.Keys.Where(x => x.IsEnemyMechanic))
            {
                foreach (MechanicEvent mechanicEvent in _mechanicLogs[m].Where(x => x.Time >= start && x.Time <= end))
                {
                    enemyHash.Add(mechanicEvent.Actor);
                }
            }
            _presentMechanics.Set(start, end, presentMechanics);
            _presentOnEnemyMechanics.Set(start, end, presentOnEnemyMechanics);
            _presentOnPlayerMechanics.Set(start, end, presentOnPlayerMechanics);
            _enemyList.Set(start, end, new List <AbstractSingleActor>(enemyHash));
        }
Esempio n. 2
0
 public FinalToPlayersSupport GetToPlayerSupportStats(ParsedEvtcLog log, long start, long end)
 {
     if (_toPlayerSupportStats == null)
     {
         _toPlayerSupportStats = new CachingCollection <FinalToPlayersSupport>(log);
     }
     if (!_toPlayerSupportStats.TryGetValue(start, end, out FinalToPlayersSupport value))
     {
         value = new FinalToPlayersSupport(log, this, start, end);
         _toPlayerSupportStats.Set(start, end, value);
     }
     return(value);
 }
Esempio n. 3
0
 public IReadOnlyDictionary <long, FinalBuffs> GetBuffs(ParsedEvtcLog log, long start, long end)
 {
     if (_buffs == null)
     {
         _buffs = new CachingCollection <Dictionary <long, FinalBuffs> >(log);
     }
     if (!_buffs.TryGetValue(start, end, out Dictionary <long, FinalBuffs> value))
     {
         value = ComputeBuffs(log, start, end);
         _buffs.Set(start, end, value);
     }
     return(value);
 }
Esempio n. 4
0
        // Gameplay Stats

        public FinalGameplayStats GetGameplayStats(ParsedEvtcLog log, long start, long end)
        {
            if (_gameplayStats == null)
            {
                _gameplayStats = new CachingCollection <FinalGameplayStats>(log);
            }
            if (!_gameplayStats.TryGetValue(start, end, out FinalGameplayStats value))
            {
                value = new FinalGameplayStats(log, start, end, this);
                _gameplayStats.Set(start, end, value);
            }
            return(value);
        }