feat: formation in middle

soldiers allign on the left and right of where we clicked
This commit is contained in:
Krzysztof Rudnicki 2022-05-30 13:48:37 +02:00
parent 6146d64dba
commit 4cdc53a377

View File

@ -18,18 +18,21 @@ public class Formation : MonoBehaviour
List<Entity> soldiers = squad.GetSoldiers();
Dictionary<Entity, Vector2Int> soldiersNewCoordinates = new Dictionary<Entity, Vector2Int>();
int soldierNumber = 0;
int add = 1;
foreach (Entity Entity in soldiers)
{
soldiersNewCoordinates.Add(Entity, CalculateSoldierCoordinates(soldierNumber, coordinates));
soldiersNewCoordinates.Add(Entity, CalculateSoldierCoordinates(soldierNumber, coordinates, add));
soldierNumber++;
add *= -1;
}
return soldiersNewCoordinates;
}
// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/in-parameter-modifier
private Vector2Int CalculateSoldierCoordinates(in int soldierNumber, in Vector2Int coordinates)
private Vector2Int CalculateSoldierCoordinates(int soldierNumber, in Vector2Int coordinates,in int add)
{
// Horizontal line we change x
soldierNumber = add * soldierNumber;
TilemapManager.TileState tileState = TilemapManager.GetTileState(coordinates.x + soldierNumber, coordinates.y);
if ( tileState == TilemapManager.TileState.free)
{
@ -47,4 +50,5 @@ public class Formation : MonoBehaviour
}
}