implement different kinds of power ups (two bullet types not implemented yet)
This commit is contained in:
parent
a5a3ca3013
commit
21f7d1d5f4
5 changed files with 65 additions and 11 deletions
|
@ -1,3 +1,5 @@
|
|||
using System.Diagnostics;
|
||||
|
||||
namespace TanksServer.GameLogic;
|
||||
|
||||
internal sealed class SpawnPowerUp(
|
||||
|
@ -15,7 +17,25 @@ internal sealed class SpawnPowerUp(
|
|||
if (Random.Shared.NextDouble() > _spawnChance * delta.TotalSeconds)
|
||||
return ValueTask.CompletedTask;
|
||||
|
||||
entityManager.SpawnPowerUp();
|
||||
|
||||
var type = Random.Shared.Next(10) < 3
|
||||
? PowerUpType.MagazineSizeUpgrade
|
||||
: PowerUpType.MagazineTypeUpgrade;
|
||||
|
||||
MagazineType? magazineType = type switch
|
||||
{
|
||||
PowerUpType.MagazineTypeUpgrade => Random.Shared.Next(0, 4) switch
|
||||
{
|
||||
0 => MagazineType.Fast,
|
||||
1 => MagazineType.Explosive,
|
||||
2 => MagazineType.Smart,
|
||||
3 => MagazineType.Mine,
|
||||
_ => throw new UnreachableException()
|
||||
},
|
||||
_ => null
|
||||
};
|
||||
|
||||
entityManager.SpawnPowerUp(type, magazineType);
|
||||
return ValueTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue