namespace Domain { public class Score { public int Value { private set; get; } public readonly int SpawnRate; public readonly int GrowIterations; public float GrowPercentage { private set; get; } public Score(int spawnRate, int growIterations) : this(0, spawnRate, growIterations) { } public Score(int value, int spawnRate, int growIterations) { Value = value; SpawnRate = spawnRate; GrowIterations = growIterations; } public void Add() { Value++; if (Value % GrowIterations == 0) { float relativeScore = Value % (GrowIterations * SpawnRate); if (relativeScore == 0 && Value != 0) relativeScore = GrowIterations * SpawnRate; GrowPercentage = relativeScore / (SpawnRate * GrowIterations); } } } }