/// <summary> /// Modifies this modifier by the other modifier. /// </summary> /// <param name="modifier"></param> /// <param name="scale"></param> /// <param name="reduceMultipliers"></param> public void ModifyModifier(Modifier modifier, double scale = 1, bool reduceMultipliers = false) { if (ModifiersF != null && modifier.ModifiersF != null) { ModifiersF = Statics.MultiplyDictionaries(ModifiersF, modifier.ModifiersF); } if (ModifiersA != null && modifier.ModifiersA != null) { ModifiersA = Statics.AddDictionaries(ModifiersA, modifier.ModifiersA); } if (ModifiersAAfter != null && modifier.ModifiersAAfter != null) { ModifiersAAfter = Statics.AddDictionaries(ModifiersAAfter, modifier.ModifiersAAfter); } }
/// <summary> /// Returns a dictionary of the Druids stats in all the stats specified in Statics.statList /// </summary> /// <returns></returns> public Dictionary <string, double> GetStats() { Dictionary <string, double> result = new Dictionary <string, double>(); foreach (string stat in Statics.statList) { result[stat] = 0; } foreach (KeyValuePair <string, Entity> entry in Entities) { Dictionary <string, double> thingStats = Entities[entry.Key].GetStats(); result = Statics.AddDictionaries(result, thingStats); } result = (from e in result select new { Name = e.Key, Count = Modifier.Modify(Modifiers.Values, e.Key, e.Value) }).ToDictionary(item => item.Name, item => item.Count); return(result); }