Loading Assets/Scripts/Domain/Model.cs +16 −11 Original line number Diff line number Diff line Loading @@ -3,26 +3,31 @@ public int Score { private set; get; } public readonly int SpawnRate; private bool _needsToSpawn; public readonly int GrowIterations; public Model(int spawnRate) : this(0, spawnRate) { } public float GrowPercentage { private set; get; } public Model(int score, int spawnRate) { public bool NeedsToSpawn { private set; get; } public bool NeedsToAnimate { private set; get; } public Model(int spawnRate, int growIterations) : this(0, spawnRate, growIterations) { } public Model(int score, int spawnRate, int growIterations) { Score = score; SpawnRate = spawnRate; GrowIterations = growIterations; } public void AddScore() { Score++; if (Score % SpawnRate == 0) _needsToSpawn = true; } NeedsToAnimate = NeedsToSpawn = false; public bool NeedsToSpawn() { bool needs = _needsToSpawn; _needsToSpawn = false; return needs; if (Score % GrowIterations == 0) { GrowPercentage = Score / (float)(SpawnRate * GrowIterations); NeedsToAnimate = true; } if (Score % (SpawnRate * GrowIterations) == 0) NeedsToSpawn = true; } } } No newline at end of file Assets/Scripts/Presenter/ExpressionClick.cs +1 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ namespace Presenter { _model.AddScore(); _view.UpdateView(_model.Score); if (_model.NeedsToSpawn()) { if (_model.NeedsToSpawn) { _spawner.SpawnRose(); } } Loading Assets/Scripts/Tests/ModelTests.cs 0 → 100644 +93 −0 Original line number Diff line number Diff line using Domain; using NUnit.Framework; namespace Tests { public class ModelTests { [Test] public void NoPress_NoAnimation() { Model sut = new(20, 5); Assert.IsFalse(sut.NeedsToAnimate); } [Test] public void NotEnoughPresses_NoAnimation() { Model sut = new(20, 5); sut.AddScore(); Assert.IsFalse(sut.NeedsToAnimate); } [Test] public void EnoughPresses_Animation() { Model sut = new(20, 5); for (int i = 0; i < 5; i++) sut.AddScore(); Assert.IsTrue(sut.NeedsToAnimate); } [Test] public void NoPress_NoSpawn() { Model sut = new(20, 5); Assert.IsFalse(sut.NeedsToSpawn); } [Test] public void NotEnoughPresses_NoSpawn() { Model sut = new(20, 5); sut.AddScore(); Assert.IsFalse(sut.NeedsToSpawn); } [Test] public void EnoughPresses_Spawn() { Model sut = new(20, 5); for (int i = 0; i < 20 * 5; i++) { sut.AddScore(); } Assert.IsTrue(sut.NeedsToSpawn); } [Test] public void OneIteration_UpdatesGrowPercentage() { Model sut = new(5, 5); for (int i = 0; i < 5; i++) { sut.AddScore(); } Assert.AreEqual(1f / 5f, sut.GrowPercentage); } [Test] public void AllIterations_GrowCompleted() { Model sut = new(5, 5); for (int i = 0; i < 5 * 5; i++) { sut.AddScore(); } Assert.AreEqual(1f, sut.GrowPercentage); } [Test] public void MoreIterations_ResetsGrowPercentage() { Model sut = new(5, 5); for (int i = 0; i < 6 * 5; i++) { sut.AddScore(); } Assert.AreEqual(1f / 5f, sut.GrowPercentage); } } } No newline at end of file Assets/Scripts/Tests/ModelTests.cs.meta 0 → 100644 +3 −0 Original line number Diff line number Diff line fileFormatVersion: 2 guid: b81eb0f05b9b4ed38c6b881421132fdd timeCreated: 1713269019 No newline at end of file Assets/Scripts/View/Dependencies.cs +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ namespace View { public CustomInput CustomInput { private set; get; } private void Awake() { Model = new Model(20); Model = new Model(20, 5); IExpressionInput input = FindObjectOfType<ExpressionInput>(); IExpressionInput visibility = FindObjectOfType<UIVisibility>(); Loading Loading
Assets/Scripts/Domain/Model.cs +16 −11 Original line number Diff line number Diff line Loading @@ -3,26 +3,31 @@ public int Score { private set; get; } public readonly int SpawnRate; private bool _needsToSpawn; public readonly int GrowIterations; public Model(int spawnRate) : this(0, spawnRate) { } public float GrowPercentage { private set; get; } public Model(int score, int spawnRate) { public bool NeedsToSpawn { private set; get; } public bool NeedsToAnimate { private set; get; } public Model(int spawnRate, int growIterations) : this(0, spawnRate, growIterations) { } public Model(int score, int spawnRate, int growIterations) { Score = score; SpawnRate = spawnRate; GrowIterations = growIterations; } public void AddScore() { Score++; if (Score % SpawnRate == 0) _needsToSpawn = true; } NeedsToAnimate = NeedsToSpawn = false; public bool NeedsToSpawn() { bool needs = _needsToSpawn; _needsToSpawn = false; return needs; if (Score % GrowIterations == 0) { GrowPercentage = Score / (float)(SpawnRate * GrowIterations); NeedsToAnimate = true; } if (Score % (SpawnRate * GrowIterations) == 0) NeedsToSpawn = true; } } } No newline at end of file
Assets/Scripts/Presenter/ExpressionClick.cs +1 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ namespace Presenter { _model.AddScore(); _view.UpdateView(_model.Score); if (_model.NeedsToSpawn()) { if (_model.NeedsToSpawn) { _spawner.SpawnRose(); } } Loading
Assets/Scripts/Tests/ModelTests.cs 0 → 100644 +93 −0 Original line number Diff line number Diff line using Domain; using NUnit.Framework; namespace Tests { public class ModelTests { [Test] public void NoPress_NoAnimation() { Model sut = new(20, 5); Assert.IsFalse(sut.NeedsToAnimate); } [Test] public void NotEnoughPresses_NoAnimation() { Model sut = new(20, 5); sut.AddScore(); Assert.IsFalse(sut.NeedsToAnimate); } [Test] public void EnoughPresses_Animation() { Model sut = new(20, 5); for (int i = 0; i < 5; i++) sut.AddScore(); Assert.IsTrue(sut.NeedsToAnimate); } [Test] public void NoPress_NoSpawn() { Model sut = new(20, 5); Assert.IsFalse(sut.NeedsToSpawn); } [Test] public void NotEnoughPresses_NoSpawn() { Model sut = new(20, 5); sut.AddScore(); Assert.IsFalse(sut.NeedsToSpawn); } [Test] public void EnoughPresses_Spawn() { Model sut = new(20, 5); for (int i = 0; i < 20 * 5; i++) { sut.AddScore(); } Assert.IsTrue(sut.NeedsToSpawn); } [Test] public void OneIteration_UpdatesGrowPercentage() { Model sut = new(5, 5); for (int i = 0; i < 5; i++) { sut.AddScore(); } Assert.AreEqual(1f / 5f, sut.GrowPercentage); } [Test] public void AllIterations_GrowCompleted() { Model sut = new(5, 5); for (int i = 0; i < 5 * 5; i++) { sut.AddScore(); } Assert.AreEqual(1f, sut.GrowPercentage); } [Test] public void MoreIterations_ResetsGrowPercentage() { Model sut = new(5, 5); for (int i = 0; i < 6 * 5; i++) { sut.AddScore(); } Assert.AreEqual(1f / 5f, sut.GrowPercentage); } } } No newline at end of file
Assets/Scripts/Tests/ModelTests.cs.meta 0 → 100644 +3 −0 Original line number Diff line number Diff line fileFormatVersion: 2 guid: b81eb0f05b9b4ed38c6b881421132fdd timeCreated: 1713269019 No newline at end of file
Assets/Scripts/View/Dependencies.cs +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ namespace View { public CustomInput CustomInput { private set; get; } private void Awake() { Model = new Model(20); Model = new Model(20, 5); IExpressionInput input = FindObjectOfType<ExpressionInput>(); IExpressionInput visibility = FindObjectOfType<UIVisibility>(); Loading