public MongbatHideoutBossPuzzleChestSolution(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            int length = reader.ReadEncodedInt();

            for (int i = 0; ; i++)
            {
                if (i < length)
                {
                    MongbatHideoutBossPuzzleChestCylinder cylinder = (MongbatHideoutBossPuzzleChestCylinder)reader.ReadInt();

                    if (i < m_Cylinders.Length)
                    {
                        m_Cylinders[i] = cylinder;
                    }
                }
                else if (i < m_Cylinders.Length)
                {
                    m_Cylinders[i] = RandomCylinder();
                }
                else
                {
                    break;
                }
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadEncodedInt();

            m_Solution = new MongbatHideoutBossPuzzleChestSolution(reader);

            int length = reader.ReadEncodedInt();

            for (int i = 0; i < length; i++)
            {
                MongbatHideoutBossPuzzleChestCylinder cylinder = (MongbatHideoutBossPuzzleChestCylinder)reader.ReadInt();

                if (length == m_Hints.Length)
                {
                    m_Hints[i] = cylinder;
                }
            }
            if (length != m_Hints.Length)
            {
                InitHints();
            }

            int guesses = reader.ReadEncodedInt();

            for (int i = 0; i < guesses; i++)
            {
                Mobile m = reader.ReadMobile();
                MongbatHideoutBossPuzzleChestSolutionAndTime sol = new MongbatHideoutBossPuzzleChestSolutionAndTime(reader);

                m_Guesses[m] = sol;
            }
        }
 public MongbatHideoutBossPuzzleChestSolution(MongbatHideoutBossPuzzleChestCylinder first, MongbatHideoutBossPuzzleChestCylinder second, MongbatHideoutBossPuzzleChestCylinder third, MongbatHideoutBossPuzzleChestCylinder fourth, MongbatHideoutBossPuzzleChestCylinder fifth)
 {
     First  = first;
     Second = second;
     Third  = third;
     Fourth = fourth;
     Fifth  = fifth;
 }
 private void AddCylinder(int x, int y, MongbatHideoutBossPuzzleChestCylinder cylinder)
 {
     if (cylinder != MongbatHideoutBossPuzzleChestCylinder.None)
     {
         AddItem(x, y, (int)cylinder);
     }
     else
     {
         AddItem(x + 9, y, (int)cylinder);
     }
 }
            private void AddPedestal(int x, int y, MongbatHideoutBossPuzzleChestCylinder cylinder, int switchID, bool initialState)
            {
                AddItem(x, y, 0xB10);
                AddItem(x - 23, y + 12, 0xB12);
                AddItem(x + 23, y + 12, 0xB13);
                AddItem(x, y + 23, 0xB11);

                if (cylinder != MongbatHideoutBossPuzzleChestCylinder.None)
                {
                    AddItem(x, y + 2, 0x51A);
                    AddCylinder(x - 1, y + 19, cylinder);
                }
                else
                {
                    AddItem(x, y + 2, 0x521);
                }

                AddRadio(x + 7, y + 65, 0x867, 0x86A, initialState, switchID);
            }
 private void AddRightCylinderButton(int x, int y, MongbatHideoutBossPuzzleChestCylinder cylinder, int buttonID)
 {
     AddBackground(x, y, 30, 30, 0x13EC);
     AddCylinder(x - 7, y + 10, cylinder);
     AddButton(x - 26, y + 9, 0x13A8, 0x4B9, buttonID, GumpButtonType.Reply, 0);
 }