public UnitLevelUpChange GetLevelUpChange(double multiplier, double rate)
{
UnitLevelUpChange unitLevelUpChange = new UnitLevelUpChange
{
ChangedValues = new List<LevelUpChangeValue>()
};
foreach (UnitGrowthValue unitGrowthValue in from v in this.UnitGrowthValues
where v.AttributeType.IsUpgradeableAttribute()
select v)
{
if (unitGrowthValue.GuarranteedValue)
{
unitLevelUpChange.ChangedValues.Add(new LevelUpChangeValue
{
AttributeType = unitGrowthValue.AttributeType,
Value = unitGrowthValue.Potential * rate
});
}
else if (unitGrowthValue.Potential > 0.0)
{
unitLevelUpChange.ChangedValues.Add(new LevelUpChangeValue
{
AttributeType = unitGrowthValue.AttributeType,
Value = UnitGrowthProfile.GetRandomAttributeValue(unitGrowthValue.Potential) * multiplier * rate
});
}
}
return unitLevelUpChange;
}
{
UnitLevelUpChange unitLevelUpChange = new UnitLevelUpChange
{
ChangedValues = new List<LevelUpChangeValue>()
};
foreach (UnitGrowthValue unitGrowthValue in from v in this.UnitGrowthValues
where v.AttributeType.IsUpgradeableAttribute()
select v)
{
if (unitGrowthValue.GuarranteedValue)
{
unitLevelUpChange.ChangedValues.Add(new LevelUpChangeValue
{
AttributeType = unitGrowthValue.AttributeType,
Value = unitGrowthValue.Potential * rate
});
}
else if (unitGrowthValue.Potential > 0.0)
{
unitLevelUpChange.ChangedValues.Add(new LevelUpChangeValue
{
AttributeType = unitGrowthValue.AttributeType,
Value = UnitGrowthProfile.GetRandomAttributeValue(unitGrowthValue.Potential) * multiplier * rate
});
}
}
return unitLevelUpChange;
}