Exemple #1
0
        public List <AverageCounter> GetSortedStorage(EResource res, bool asDemanded)
        {
            List <AverageCounter> list = new List <AverageCounter>();
            Array resourceValues       = Enum.GetValues(typeof(EResource));

            foreach (var entry in resourceValues)
            {
                EResource      resDemanded = (EResource)entry;
                AverageCounter avg         = (asDemanded == false ? GetAverage(res, resDemanded) : GetAverage(resDemanded, res));
                if (avg != null)
                {
                    list.Add(avg);
                }
            }

            list.Sort(delegate(AverageCounter a, AverageCounter b) {
                return(a.Value.CompareTo(b.Value));
            });
            // Reverse sorting only if we need the demanded resources
            if (asDemanded == true)
            {
                list.Reverse();
            }
            return(list);
        }
Exemple #2
0
        public AverageCounter GetAverage(EResource res, EResource resDemanded)
        {
            string key = AverageCounter.GetKey(res, resDemanded);

            if (Storage.ContainsKey(key))
            {
                return(Storage[key]);
            }
            return(null);
        }
Exemple #3
0
        public double CountAverage(EResource res, EResource resDemanded, double Value)
        {
            string key = AverageCounter.GetKey(res, resDemanded);

            if (!Storage.ContainsKey(key))
            {
                Storage.Add(key, new AverageCounter(res, resDemanded));
            }
            return(Storage[key].Add(Value, UpperBoundaryExclusive, LowerBoundaryExclusive, HistoricalFactor));
        }