public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); m_Solution = new PuzzleChestSolution(reader); int length = reader.ReadEncodedInt(); for (int i = 0; i < length; i++) { PuzzleChestCylinder cylinder = (PuzzleChestCylinder)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(); PuzzleChestSolutionAndTime sol = new PuzzleChestSolutionAndTime(reader); m_Guesses[m] = sol; } }
public PuzzleChestSolutionAndTime GetLastGuess(Mobile m) { PuzzleChestSolutionAndTime pcst = null; m_Guesses.TryGetValue(m, out pcst); return(pcst); }
public void SubmitSolution(Mobile m, PuzzleChestSolution solution) { int correctCylinders, correctColors; if (solution.Matches(this.Solution, out correctCylinders, out correctColors)) { LockPick(m); DisplayTo(m); } else { m_Guesses[m] = new PuzzleChestSolutionAndTime(DateTime.UtcNow, solution); m.SendGump(new StatusGump(correctCylinders, correctColors)); DoDamage(m); } }