예제 #1
0
    public void SetUpTiles()
    {
        if (HasSetUpTiles)
        {
            return;
        }

        foreach (Tile tile in GetComponentsInChildren <Tile>())
        {
            tile.ParentBoard = this;
            LocalTileCollection[tile.EntityPosition] = tile;
            WorldTileCollection[tile.GetPosition()]  = tile;
        }

        // Parse the board and look for the entities using the parser
        BoardEntities = GetComponentInChildren <EntityParser>(true);

        if (BoardEntities == null)
        {
            Debug.LogWarning("No Entities present on board. This means that the board is a pure open terrain.");
            return;
        }

        foreach (EnemyUnit unit in BoardEntities.GetEnemyUnits())
        {
            unit.SetPosition(new Point(unit.GetPosition().x + (BoardDimensions.x * BoardOffset), 0, unit.GetPosition().z));
            if (EnemyCollection.ContainsKey(unit.GetPosition()))
            {
                continue;
            }
            EnemyCollection.Add(unit.GetPosition(), unit);
        }

        foreach (EnviromentalUnit unit in BoardEntities.GetEntities())
        {
            unit.SetUpPosition(BoardOffset, BoardDimensions.x);
            if (EntityCollection.ContainsKey(unit.GetPosition()))
            {
                continue;
            }
            EntityCollection.Add(unit.GetPosition(), unit);
        }

        HasSetUpTiles = true;
    }