♻️ Implemented FightersFormation to keep track of the fight entered state of the fighters
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
|
||||
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||
|
||||
public class FighterFormation
|
||||
{
|
||||
private readonly List<FightWorld.Fighter?> _fighters;
|
||||
|
||||
public FighterFormation(int slots = 3)
|
||||
{
|
||||
_fighters = [];
|
||||
for (var i = 0; i < slots; i++)
|
||||
{
|
||||
_fighters.Add(null);
|
||||
}
|
||||
}
|
||||
|
||||
public FightWorld.Fighter? GetFighterAtPosition(int position)
|
||||
{
|
||||
Debug.Assert(position >= 0, "position>=0");
|
||||
Debug.Assert(position < _fighters.Count, "position does not exist");
|
||||
|
||||
return _fighters[position];
|
||||
}
|
||||
|
||||
public void SetFighterAtPosition(int position, FightWorld.Fighter value)
|
||||
{
|
||||
Debug.Assert(position >= 0, "position>=0");
|
||||
Debug.Assert(position < _fighters.Count, "position does not exist");
|
||||
|
||||
_fighters[position] = value;
|
||||
}
|
||||
|
||||
public bool ContainsFighter(FightWorld.Fighter fighter)
|
||||
{
|
||||
return _fighters.Contains(fighter);
|
||||
}
|
||||
|
||||
public int GetFirstEmptySlot()
|
||||
{
|
||||
for (var i = 0; i < _fighters.Count; i++)
|
||||
{
|
||||
if (_fighters[i] == null)
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int GetEmptySlotCount()
|
||||
{
|
||||
return _fighters.Count(fighter => fighter == null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user