Example #1
0
    /// <summary>
    /// Check room's tilemap's all position that if tile exists there or not.
    /// </summary>
    /// <param name="roomInGame">Room you want to check.</param>
    public void CheckAllTiles(RoomInGame roomInGame)
    {
        Tilemap wallTileMap     = roomInGame.transform.Find("wall").GetComponent <Tilemap>();
        Tilemap platformTileMap = roomInGame.transform.Find("platform").GetComponent <Tilemap>();
        Tilemap ropeTileMap     = roomInGame.transform.Find("rope").GetComponent <Tilemap>();
        Tilemap spikeTileMap    = roomInGame.transform.Find("spike").GetComponent <Tilemap>();

        for (int x = 0; x < 24; x++)
        {
            for (int y = 0; y < 24; y++)
            {
                if (wallTileMap.GetTile(new Vector3Int(x, y, 0)))
                {
                    roomInGame.wallTileInfo[x, y] = true;
                }
                if (platformTileMap.GetTile(new Vector3Int(x, y, 0)))
                {
                    roomInGame.platformTileInfo[x, y] = true;
                }
                if (ropeTileMap.GetTile(new Vector3Int(x, y, 0)))
                {
                    roomInGame.ropeTileInfo[x, y] = true;
                }
                if (spikeTileMap.GetTile(new Vector3Int(x, y, 0)))
                {
                    roomInGame.spikeTileInfo[x, y] = true;
                }
            }
        }
    }
Example #2
0
    public char CheckRopeTile(RoomInGame roomInGame, Vector2Int originPos)
    {
        bool up = false, down = false;

        if (roomInGame.ropeTileInfo[originPos.x, originPos.y + 1])
        {
            up = true;
        }
        if (roomInGame.ropeTileInfo[originPos.x, originPos.y - 1])
        {
            down = true;
        }
        if (up && down)
        {
            return('c');
        }
        else if (up)
        {
            return('d');
        }
        else if (down)
        {
            return('u');
        }
        else
        {
            return('o');
        }
    }
Example #3
0
    public char CheckPlatformTile(RoomInGame roomInGame, Vector2Int originPos)
    {
        bool left = false, right = false;

        if (roomInGame.platformTileInfo[originPos.x + 1, originPos.y] || roomInGame.wallTileInfo[originPos.x + 1, originPos.y])
        {
            right = true;
        }
        if (roomInGame.platformTileInfo[originPos.x - 1, originPos.y] || roomInGame.wallTileInfo[originPos.x - 1, originPos.y])
        {
            left = true;
        }
        if (left && right)
        {
            return('c');
        }
        else if (left)
        {
            return('r');
        }
        else if (right)
        {
            return('l');
        }
        else
        {
            return('o');
        }
    }
Example #4
0
    /// <summary>
    /// Check tile and set name for specified direction.
    /// </summary>
    /// <param name="roomInGame">Room you want to check.</param>
    /// <param name="originPos">Position of tile map you want to check.</param>
    /// <param name="checkPos">Direction you want to check.</param>
    /// <returns></returns>
    public char CheckWallQuarterTile(RoomInGame roomInGame, Vector2Int originPos, Vector2Int checkPos)
    {
        int verticalTile = 0, horizontalTile = 0;

        if (!IsTileInRoom(originPos.x + checkPos.x))
        {
            horizontalTile = 2;
        }
        else if (roomInGame.wallTileInfo[originPos.x + checkPos.x, originPos.y])
        {
            horizontalTile = 1;
        }
        if (!IsTileInRoom(originPos.y + checkPos.y))
        {
            verticalTile = 2;
        }
        else if (roomInGame.wallTileInfo[originPos.x, originPos.y + checkPos.y])
        {
            verticalTile = 1;
        }
        if ((verticalTile == 2 && horizontalTile == 2) || (verticalTile == 0 && horizontalTile == 2) || (verticalTile == 2 && horizontalTile == 0))
        {
            return('3');
        }
        else if (verticalTile == 2)
        {
            return('1');
        }
        else if (horizontalTile == 2)
        {
            return('2');
        }
        else if (verticalTile == 1 && horizontalTile == 1)
        {
            if (roomInGame.wallTileInfo[originPos.x + checkPos.x, originPos.y + checkPos.y])
            {
                return('o');
            }
            else
            {
                return('s');
            }
        }
        else if (verticalTile == 1)
        {
            return('v');
        }
        else if (horizontalTile == 1)
        {
            return('h');
        }
        else
        {
            return('b');
        }
    }
Example #5
0
    public char CheckSpikeTile(RoomInGame roomInGame, Vector2Int originPos)
    {
        Tilemap spikeTileMap = roomInGame.transform.Find("spike").GetComponent <Tilemap>();

        if (spikeTileMap.GetTile(new Vector3Int(originPos.x, originPos.y, 0)).name.Equals("spikeu"))
        {
            return('u');
        }
        else if (spikeTileMap.GetTile(new Vector3Int(originPos.x, originPos.y, 0)).name.Equals("spiked"))
        {
            return('d');
        }
        else if (spikeTileMap.GetTile(new Vector3Int(originPos.x, originPos.y, 0)).name.Equals("spikel"))
        {
            return('l');
        }
        else
        {
            return('r');
        }
    }
Example #6
0
    /// <summary>
    /// Set all tiles of the room.
    /// Cut for every 72 tiles.
    /// </summary>
    /// <param name="roomInGame">Room you want to set.</param>
    /// <returns></returns>
    public IEnumerator SetAllTiles(Room room)
    {
        int        stage           = MapManager.currentStage;
        int        concept         = room.roomConcept;
        RoomInGame roomInGame      = room.roomInGame;
        Tilemap    wallTileMap     = roomInGame.transform.Find("wall").GetComponent <Tilemap>();
        Tilemap    platformTileMap = roomInGame.transform.Find("platform").GetComponent <Tilemap>();
        Tilemap    ropeTileMap     = roomInGame.transform.Find("rope").GetComponent <Tilemap>();
        Tilemap    spikeTileMap    = roomInGame.transform.Find("spike").GetComponent <Tilemap>();

        CheckAllTiles(roomInGame);
        for (int y = 0; y < 24; y++)
        {
            for (int x = 0; x < 24; x++)
            {
                if (roomInGame.wallTileInfo[x, y])
                {
                    string tileName = CheckWallQuarterTile(roomInGame, new Vector2Int(x, y), new Vector2Int(-1, 1)).ToString() +
                                      CheckWallQuarterTile(roomInGame, new Vector2Int(x, y), new Vector2Int(1, 1)).ToString() +
                                      CheckWallQuarterTile(roomInGame, new Vector2Int(x, y), new Vector2Int(-1, -1)).ToString() +
                                      CheckWallQuarterTile(roomInGame, new Vector2Int(x, y), new Vector2Int(1, -1)).ToString();
                    if (wallTilesDistributed[stage, concept].ContainsKey(tileName))
                    {
                        wallTileMap.SetTile(new Vector3Int(x, y, 0), wallTilesDistributed[stage, concept][tileName]);
                    }
                    else
                    {
                        Debug.Log(stage + concept + tileName + " tile is missing!");
                    }
                }
                if (roomInGame.platformTileInfo[x, y] && y != 0 && y != 23)
                {
                    string tileName = CheckPlatformTile(roomInGame, new Vector2Int(x, y)).ToString();
                    if (platformTilesDistributed[stage, concept].ContainsKey(tileName))
                    {
                        platformTileMap.SetTile(new Vector3Int(x, y, 0), platformTilesDistributed[stage, concept][tileName]);
                    }
                    else
                    {
                        Debug.Log(stage + concept + tileName + " tile is missing!");
                    }
                }
                if (roomInGame.ropeTileInfo[x, y])
                {
                    string tileName = CheckRopeTile(roomInGame, new Vector2Int(x, y)).ToString();
                    if (ropeTilesDistributed[stage, concept].ContainsKey(tileName))
                    {
                        ropeTileMap.SetTile(new Vector3Int(x, y, 0), ropeTilesDistributed[stage, concept][tileName]);
                    }
                    else
                    {
                        Debug.Log(stage + concept + tileName + " tile is missing!");
                    }
                }
                if (roomInGame.spikeTileInfo[x, y])
                {
                    string tileName = CheckSpikeTile(roomInGame, new Vector2Int(x, y)).ToString();
                    if (spikeTilesDistributed[stage, concept].ContainsKey(tileName))
                    {
                        spikeTileMap.SetTile(new Vector3Int(x, y, 0), spikeTilesDistributed[stage, concept][tileName]);
                    }
                    else
                    {
                        Debug.Log(stage + concept + tileName + " tile is missing!");
                    }
                }
            }
        }
        yield return(null);
    }