diff --git a/Controllers/SpawnableController.cs b/Controllers/SpawnableController.cs index ae3a7c9..314bd24 100644 --- a/Controllers/SpawnableController.cs +++ b/Controllers/SpawnableController.cs @@ -24,7 +24,8 @@ public class SpawnableController : ControllerBase var spawnable = new Spawnable { Name = req.Name.ToLower(), - SpawnRate = req.SpawnRate + SpawnRate = req.SpawnRate, + CollectAction = req.CollectAction }; await _spawnableService.CreateAsync(spawnable); diff --git a/GameAuthApi.Tests/SpawnableControllerTests.cs b/GameAuthApi.Tests/SpawnableControllerTests.cs index 452d58c..c18e7ba 100644 --- a/GameAuthApi.Tests/SpawnableControllerTests.cs +++ b/GameAuthApi.Tests/SpawnableControllerTests.cs @@ -17,10 +17,16 @@ public class SpawnableControllerTests public async Task Create_ReturnsOk() { var svc = new Mock(config); - svc.Setup(s => s.CreateAsync(It.IsAny())).Returns(Task.CompletedTask).Verifiable(); + svc.Setup(s => s.CreateAsync(It.Is(sp => sp.CollectAction == "gather"))) + .Returns(Task.CompletedTask).Verifiable(); var controller = new SpawnableController(svc.Object); - var result = await controller.Create(new CreateSpawnableRequest { Name = "item", SpawnRate = 50 }); + var result = await controller.Create(new CreateSpawnableRequest + { + Name = "item", + SpawnRate = 50, + CollectAction = "gather" + }); Assert.IsType(result); svc.Verify(); diff --git a/Models/DTOs/CreateSpawnableRequest.cs b/Models/DTOs/CreateSpawnableRequest.cs index 862ac0b..c5fcd2c 100644 --- a/Models/DTOs/CreateSpawnableRequest.cs +++ b/Models/DTOs/CreateSpawnableRequest.cs @@ -4,4 +4,7 @@ public class CreateSpawnableRequest { public string Name { get; set; } public int SpawnRate { get; set; } + + // Action players must perform to collect the item + public string CollectAction { get; set; } } diff --git a/Models/Spawnable.cs b/Models/Spawnable.cs index fe64ff6..6b2c96e 100644 --- a/Models/Spawnable.cs +++ b/Models/Spawnable.cs @@ -11,4 +11,7 @@ public class Spawnable public string Name { get; set; } public int SpawnRate { get; set; } + + // Action required by the player to collect this spawnable item + public string CollectAction { get; set; } }