示例#1
0
    public static Room SetAsset(Room room, DungeonDict roomSet)
    {
        switch (room.ID)
        {
        case 0:         // Room is Normal

            // Room has 4 Doors
            if (room.hasRoomUp && room.hasRoomRight && room.hasRoomDown && room.hasRoomLeft)
            {
                room.roomAsset = roomSet.GetCenter();
            }

            // Room has 3 Doors
            else if (room.hasRoomUp && room.hasRoomRight && !room.hasRoomDown && room.hasRoomLeft)      //No door Down
            {
                room.roomAsset = roomSet.GetTUp();
            }
            else if (room.hasRoomUp && room.hasRoomRight && room.hasRoomDown && !room.hasRoomLeft)      //No door Left
            {
                room.roomAsset = roomSet.GetTRight();
            }
            else if (!room.hasRoomUp && room.hasRoomRight && room.hasRoomDown && room.hasRoomLeft)      //No Door Up
            {
                room.roomAsset = roomSet.GetTDown();
            }
            else if (room.hasRoomUp && !room.hasRoomRight && room.hasRoomDown && room.hasRoomLeft)      //No Door Right
            {
                room.roomAsset = roomSet.GetTLeft();
            }

            // Room is Corner
            else if (room.hasRoomUp && room.hasRoomRight && !room.hasRoomDown && !room.hasRoomLeft)       //Up and Right
            {
                room.roomAsset = roomSet.GetCornerUpRight();
            }
            else if (room.hasRoomUp && !room.hasRoomRight && !room.hasRoomDown && room.hasRoomLeft)       //Up and Left
            {
                room.roomAsset = roomSet.GetCornerUpLeft();
            }
            else if (!room.hasRoomUp && room.hasRoomRight && room.hasRoomDown && !room.hasRoomLeft)       //Down and Right
            {
                room.roomAsset = roomSet.GetCornerDownRight();
            }
            else if (!room.hasRoomUp && !room.hasRoomRight && room.hasRoomDown && room.hasRoomLeft)       //Down and Left
            {
                room.roomAsset = roomSet.GetCornerDownLeft();
            }

            // Room is Corrior
            else if (!room.hasRoomUp && room.hasRoomRight && !room.hasRoomDown && room.hasRoomLeft)       //Horizontal
            {
                room.roomAsset = roomSet.GetCorridorHorizontal();
            }
            else if (room.hasRoomUp && !room.hasRoomRight && room.hasRoomDown && !room.hasRoomLeft)       //Vertical
            {
                room.roomAsset = roomSet.GetCorridorVertical();
            }

            // Room is Sackgasse
            else if (room.hasRoomUp && !room.hasRoomRight && !room.hasRoomDown && !room.hasRoomLeft)       //Up
            {
                room.roomAsset = roomSet.GetEndUp();
            }
            else if (!room.hasRoomUp && room.hasRoomRight && !room.hasRoomDown && !room.hasRoomLeft)       //Right
            {
                room.roomAsset = roomSet.GetEndRight();
            }
            else if (!room.hasRoomUp && !room.hasRoomRight && room.hasRoomDown && !room.hasRoomLeft)       //Down
            {
                room.roomAsset = roomSet.GetEndDown();
            }
            else if (!room.hasRoomUp && !room.hasRoomRight && !room.hasRoomDown && room.hasRoomLeft)       //Left
            {
                room.roomAsset = roomSet.GetEndLeft();
            }

            // Fallback
            else
            {
                room.roomAsset = roomSet.ErrorRoom;
            }

            break;

        case 1:         // Room is Entrance
            room.roomAsset = roomSet.GetEntrance();
            break;

        case 2:                 // Room is Boss room
            if (room.hasRoomUp) //Up
            {
                room.roomAsset = roomSet.GetBossUp();
            }
            if (room.hasRoomRight)      //Right
            {
                room.roomAsset = roomSet.GetBossRight();
            }
            if (room.hasRoomDown)       //Down
            {
                room.roomAsset = roomSet.GetBossDown();
            }
            if (room.hasRoomLeft)       //Left
            {
                room.roomAsset = roomSet.GetBossLeft();
            }
            break;

        default:
            Debug.LogWarning("Bruh");
            break;
        }

        return(room);
    }