public void Spawn() { isPlanterWaiting = true; List<Hexagon> emptyHex = new List<Hexagon>(); //1:Looking for a spot: for (int i = 0; i < Map.instance.Hexagons.Length; i++) { if ((Map.instance.Hexagons [i].HexState == HexagonState.Empty || Map.instance.Hexagons [i].HexState == HexagonState.CutTree) && !Map.instance.Hexagons [i].isTarget) { int amountOfFungiAroundHex = 0; foreach (var hex in Map.instance.Hexagons [i].SurroundingHexagons) { if (hex.HasFungi) { ++amountOfFungiAroundHex; } } for (int j = 0; j < (amountOfFungiAroundHex*4)+1; ++j) { emptyHex.Add(Map.instance.Hexagons [i]); } } } if (emptyHex.Count == 0) { Destroy(gameObject); _targetHex.ShowOverTile(false, new Color()); return; } _targetHex = emptyHex [Random.Range(0, emptyHex.Count)]; _targetHex.isTarget = true; _targetTr = _targetHex.transform; //Highlight the hexgon _targetHex.StartCoroutine(_targetHex.FlashHexagon(new Color32(1, 71, 99, 255))); //2:Looking for the spawn hexagon _spawnHex = Map.instance.HexBorders [Random.Range(0, Map.instance.HexBorders.Length)]; //4:Enable the movement transform.position = _spawnHex.transform.position; _targetHex.StartCoroutine(MovePlanter()); }
public void Spawn() { isNGOWaiting = true; List<Hexagon> ngoHex = new List<Hexagon>(); //1:Looking for a spot: for (int i = 0; i < Map.instance.Hexagons.Length; i++) { if (Map.instance.Hexagons[i].TileInfection == null && Map.instance.Hexagons[i].HexTree != null && !Map.instance.Hexagons[i].isTarget) ngoHex.Add(Map.instance.Hexagons[i]); } if (ngoHex.Count == 0) return; _targetHex = ngoHex[Random.Range(0, ngoHex.Count)]; _targetHex.ngo = this; _targetHex.isTarget = true; _targetTr = _targetHex.transform; //2:Looking for the spawn hexagon _spawnHex = Map.instance.HexBorders[Random.Range(0, Map.instance.HexBorders.Length)]; //4:Enable the movement transform.position = _spawnHex.transform.position; _targetHex.StartCoroutine(MoveNGO()); }