public void OnPuzzleComplete(BaseRoomPuzzle puzzle)
 {
     if (puzzleCompletion.ContainsKey(puzzle))
     {
         puzzleCompletion[puzzle] = true;
         bool allPuzzlesComplete = true;
         foreach (bool key in puzzleCompletion.Keys)
         {
             allPuzzlesComplete &= key;
         }
         if (allPuzzlesComplete)
         {
             NotifyListeners((int)RoomSuccessState.Success);
         }
     }
 }
 public void OnPuzzleFailed(BaseRoomPuzzle puzzle)
 {
     NotifyListeners((int)RoomSuccessState.Fail);
 }