public void Show(WorldMap.ViewModel viewModel, WorldSheet.Row worldRow, StageType stageType) { _sharedViewModel = viewModel; _sharedViewModel.SelectedStageId .Subscribe(stageId => UpdateStageInformation( stageId, States.Instance.CurrentAvatarState?.level ?? 1) ) .AddTo(gameObject); _sharedViewModel.WorldInformation.TryGetWorld(worldRow.Id, out var worldModel); UpdateStageInformation(_sharedViewModel.SelectedStageId.Value, States.Instance.CurrentAvatarState.level); if (_sharedViewModel.SelectedStageId.Value == 1) { stageHelpButton.Show(); } else { stageHelpButton.Hide(); } _stageType = stageType; SetBottomMenu(stageType); world.Set(worldRow); var questStageId = Game.Game.instance.States .CurrentAvatarState.questList .OfType <WorldQuest>() .Where(x => !x.Complete) .OrderBy(x => x.Goal) .FirstOrDefault()? .Goal ?? -1; world.ShowByStageId(_sharedViewModel.SelectedStageId.Value, questStageId); if (worldModel.IsUnlocked) { UnlockWorld(worldModel.GetNextStageIdForPlay(), worldModel.GetNextStageId()); } else { LockWorld(); } base.Show(); }