public void AddDamage(DamageTypeName damageType, float amount, float min = 0, float max = 0) { var existing = Damages.Find(x => x.DamageType == damageType); if (existing != null) { existing.Min += min; existing.Max += max; existing.Amount += amount; } else { Damages.Add(new Damage() { DamageType = damageType, Amount = amount, Min = min, Max = max }); } }