public MongbatHideoutBossPuzzleChestSolutionAndTime GetLastGuess(Mobile m)
        {
            MongbatHideoutBossPuzzleChestSolutionAndTime pcst = null;

            m_Guesses.TryGetValue(m, out pcst);
            return(pcst);
        }
        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 void SubmitSolution(Mobile m, MongbatHideoutBossPuzzleChestSolution solution)
        {
            int correctCylinders, correctColors;

            if (solution.Matches(this.Solution, out correctCylinders, out correctColors))
            {
                LockPick(m);

                DisplayTo(m);
            }
            else
            {
                m_Guesses[m] = new MongbatHideoutBossPuzzleChestSolutionAndTime(DateTime.Now, solution);

                m.SendGump(new MongbatHideoutChestStatusGump(correctCylinders, correctColors));

                DoDamage(m);
            }
        }