Ejemplo n.º 1
0
    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());
    }
Ejemplo n.º 2
0
    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());
    }