From 93ff6c93d4812413532ffc44971f37d284739dfd Mon Sep 17 00:00:00 2001 From: Maciekxdabu <40292375+Maciekxdabu@users.noreply.github.com> Date: Mon, 16 May 2022 15:09:43 +0200 Subject: [PATCH] merloj: getallsoldiers() --- .../Assets/Scripts/Managers/TilemapManager.cs | 18 ++++++++++++++++++ The project/Assets/Scripts/Soldier.cs | 12 ++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/The project/Assets/Scripts/Managers/TilemapManager.cs b/The project/Assets/Scripts/Managers/TilemapManager.cs index 4f443ca1..def45bc2 100644 --- a/The project/Assets/Scripts/Managers/TilemapManager.cs +++ b/The project/Assets/Scripts/Managers/TilemapManager.cs @@ -83,6 +83,11 @@ public class TilemapManager : MonoBehaviour tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)), Quaternion.identity).GetComponent(); + if (isAlly) + tiles[x, y].standingSoldier.setOwnTag(Soldier.SoldierType.Ally); + else + tiles[x, y].standingSoldier.setOwnTag(Soldier.SoldierType.Enemy); + if (tiles[x, y].standingSoldier != null) return true; @@ -109,6 +114,19 @@ public class TilemapManager : MonoBehaviour return tiles[x,y].standingSoldier; } + public Soldier[] GetAllSoldiers() + { + List list = new List(); + + foreach (Tile obj in tiles) + { + if (obj.standingSoldier != null) + list.Add(obj.standingSoldier); + } + + return list.ToArray(); + } + public bool MoveSoldier(int x1, int y1, int x2, int y2) { if (GetTileState(x1, y1) == TileState.taken && GetTileState(x2, y2) == TileState.free) diff --git a/The project/Assets/Scripts/Soldier.cs b/The project/Assets/Scripts/Soldier.cs index e6d86f85..8ca787d2 100644 --- a/The project/Assets/Scripts/Soldier.cs +++ b/The project/Assets/Scripts/Soldier.cs @@ -4,7 +4,7 @@ using UnityEngine; public class Soldier : MonoBehaviour { - private enum SoldierType + public enum SoldierType { Ally, Enemy @@ -22,15 +22,15 @@ public class Soldier : MonoBehaviour setEnemyTag(); } - public void setOwnTag(string tag) + public void setOwnTag(SoldierType type) { - ourType = tag; + ourType = type; } public void setEnemyTag() { - if(ourType == "Ally") enemyType = "Enemy"; - else enemyType = "Ally"; + if(ourType == SoldierType.Ally) enemyType = SoldierType.Enemy; + else enemyType = SoldierType.Ally; } void Awake() @@ -45,7 +45,7 @@ public class Soldier : MonoBehaviour void UpdateTarget () { // Enemies are the game objects tagged with the "Enemy" - GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyTag); + GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyType); Debug.Log(enemies.Length); // We have not found enemy yet so the distance to enemy is "infinite" float shortestDistance = Mathf.Infinity;