private void ReturnToTitleScene(string buttonCaption)
 {
     NextSceneParameters.Clear();
     NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, "start");
     NextSceneType = typeof(TitleScene);
     Deactivate();
 }
Exemple #2
0
        protected override void CompleteActivation()
        {
            _firstDialog = NextSceneParameters.Get <string>(First_Dialog_Parameter_Name);

            if (_firstDialog == Rate_Game_Dialog)
            {
                DisplayRatingUnlockedContent();
            }
            else if (string.IsNullOrEmpty(_firstDialog))
            {
                _firstDialog = Default_First_Dialog;
            }
            else if ((_firstDialog == "start") && (Data.Profile.RateBuyRemindersOn))
            {
                _firstDialog = Reminder_Dialog;
            }

            if (_firstDialog != "unlocks")
            {
                UnlockFullVersionContent();
            }

            _titlePopup.Activate();
            _doNotExitOnTitleDismiss = false;

            base.CompleteActivation();
        }
Exemple #3
0
        public override void Activate()
        {
            SafeAreaOuterLimits = new Rectangle(0, 0, Definitions.IsWideScreen ? Wide_Buffer_Width : Standard_Buffer_Width, Buffer_Height);

            _raceStarted = false;
            _levelData   = new Data.RaceLevelData();

            RaceAreaName = NextSceneParameters.Get <string>(Race.RaceGameplayScene.Course_Area_Parameter);

            base.Activate();

            ((PlayerMotionEngine)_player.MotionEngine).DifficultySpeedBoosterUnit = NextSceneParameters.Get <int>(Race.RaceGameplayScene.Course_Speed_Parameter);

            _player.ClearSkin();
            _player.SkinBones(AvatarComponentManager.SideFacingAvatarSkin(PlayerSkinSlotIndex));
            _player.CustomSkinSlotIndex = PlayerSkinSlotIndex;

            if (InputProcessor != null)
            {
                ((PlayerMotionEngine)_player.MotionEngine).InputProcessor = InputProcessor;
                InputProcessor.AddButtonArea(PowerUpButton.In_Game_Button_Name, _powerUpButton.Center, _powerUpButton.Radius, false);
            }

            SetCoordinatorsForRace();
            SetUpOpponentAttackEffects();

            ReadyToRace = false;
            Paused      = false;
        }
        public override void Activate()
        {
            base.Activate();

            _startSequenceTimer.Reset();

            ControllerPool.SetControllersToGameplayMode();

            Communication.SubSceneCommunicator playerOneCommunicator = new Communication.SubSceneCommunicator();
            Communication.SubSceneCommunicator playerTwoCommunicator = new Communication.SubSceneCommunicator();

            playerOneCommunicator.OtherPlayerDataSource = playerTwoCommunicator;
            playerTwoCommunicator.OtherPlayerDataSource = playerOneCommunicator;

            _playerOneGameplayContainer.InputProcessor      = ControllerPool.Controllers.PlayerOne;
            _playerOneGameplayContainer.Communicator        = playerOneCommunicator;
            _playerOneGameplayContainer.PlayerSkinSlotIndex = NextSceneParameters.Get <int>(Player_One_Avatar_Skin_Parameter);
            _playerOneGameplayContainer.BufferArea          = CreateDisplayArea(0);
            _playerOneGameplayContainer.Activate();

            _playerTwoGameplayContainer.InputProcessor      = ControllerPool.Controllers.PlayerTwo;
            _playerTwoGameplayContainer.Communicator        = playerTwoCommunicator;
            _playerTwoGameplayContainer.PlayerSkinSlotIndex = NextSceneParameters.Get <int>(Player_Two_Avatar_Skin_Parameter);
            _playerTwoGameplayContainer.BufferArea          = CreateDisplayArea(1);
            _playerTwoGameplayContainer.Activate();

            _dialogContainer.BufferArea = ScaledBufferFrame;
            _dialogContainer.Activate();
        }
Exemple #5
0
        private void HandleNavigationDialogDismiss(string buttonCaption)
        {
            NextSceneType = typeof(TitleScene);
            NextSceneParameters.Set("music-already-running", true);

            Deactivate();
        }
Exemple #6
0
        public override void Activate()
        {
            base.Activate();

            ((ResultsDialog)_dialogs["results"]).Outcome      = NextSceneParameters.Get <Definitions.RaceOutcome>(Outcome_Parameter_Name);
            ((ResultsDialog)_dialogs["results"]).LivesAwarded = NextSceneParameters.Get <bool>("race-lives-awarded");
        }
Exemple #7
0
 protected override void CompleteDeactivation()
 {
     if (!NextSceneParameters.Get <bool>("music-already-running"))
     {
         MusicManager.StopMusic();
     }
     base.CompleteDeactivation();
 }
Exemple #8
0
 private void ReturnToTitleScene()
 {
     NextSceneParameters.Clear();
     NextSceneParameters.Set("music-already-running", true);
     NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, "start");
     NextSceneType = typeof(TitleScene);
     Deactivate();
 }
        public override void Activate()
        {
            base.Activate();

            ((ResultsDialog)_dialogs["results"]).Outcome = NextSceneParameters.Get <Definitions.RaceOutcome>(Outcome_Parameter_Name);
            ((ResultsDialog)_dialogs["results"]).PlayerOneSkinSlotIndex = NextSceneParameters.Get <int>(RaceGameplayScene.Player_One_Avatar_Skin_Parameter);
            ((ResultsDialog)_dialogs["results"]).PlayerTwoSkinSlotIndex = NextSceneParameters.Get <int>(RaceGameplayScene.Player_Two_Avatar_Skin_Parameter);
        }
Exemple #10
0
        private void HandleAvatarSelection(string parameterName, int parameterValue)
        {
            NextSceneParameters.Set(parameterName, parameterValue);

            if ((_playerOneAvatarCarousel.SelectedAvatarSkinSlot > -1) && (_playerTwoAvatarCarousel.SelectedAvatarSkinSlot > -1))
            {
                DismissAvatarSelectors();
            }
        }
Exemple #11
0
 private void AwardLivesForWin()
 {
     if (Data.Profile.Lives < Data.Profile.Race_Win_Lives_Max)
     {
         Data.Profile.Lives += Data.Profile.Race_Win_Lives_Reward;
         Data.Profile.Save();
         NextSceneParameters.Set("race-lives-awarded", true);
     }
 }
Exemple #12
0
        private void ExitFollowingFocusLoss()
        {
            _communicator.Active = false;

            NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, TitleScene.Race_Aborted_Dialog);
            NextSceneType     = typeof(TitleScene);
            CrossfadeDuration = 0;
            Deactivate();
            CrossfadeDuration = Default_Crossfade_Duration;
        }
Exemple #13
0
        private void HandleBackDialogDismiss(string buttonCaption)
        {
            NextSceneType = typeof(TitleScene);

            if (_maintainsTitleSceneMusic)
            {
                NextSceneParameters.Set("music-already-running", true);
            }

            Deactivate();
        }
 public void SubsceneDeactivationHandler(Type nextSceneType)
 {
     if (CurrentState == Status.Active)
     {
         NextSceneParameters.Set(RaceFinishScene.Outcome_Parameter_Name, RaceOutcome);
         NextSceneParameters.Set(Player_One_Avatar_Skin_Parameter, _playerOneGameplayContainer.PlayerSkinSlotIndex);
         NextSceneParameters.Set(Player_Two_Avatar_Skin_Parameter, _playerTwoGameplayContainer.PlayerSkinSlotIndex);
         NextSceneType = nextSceneType;
         Deactivate();
     }
 }
Exemple #15
0
        protected override void CompleteDeactivation()
        {
            ((RaceOpponentListDialog)_dialogs["opponents"]).TearDownCommunicator();

            if (NextSceneParameters.Get <string>(Gameplay.Race.RaceGameplayScene.Course_Area_Parameter) != null)
            {
                MusicManager.StopMusic();
            }

            base.CompleteDeactivation();
        }
Exemple #16
0
        public override void Activate()
        {
            if (!NextSceneParameters.Get <bool>("music-already-running"))
            {
                MusicManager.PlayLoopedMusic("title");
            }

            _musicToStartOnDeactivation = "";

            base.Activate();
        }
Exemple #17
0
        private void HandleQuitTimerActionComplete()
        {
            if (_quitRaceDialog.Active)
            {
                _quitRaceDialog.DismissWithReturnValue("");
                _communicator.Message = "";

                NextSceneParameters.Set(RaceFinishScene.Outcome_Parameter_Name, Definitions.RaceOutcome.Incomplete);
                SwitchToResultsScene();
            }
        }
Exemple #18
0
        private void HandleDisconnectAcknowledge(string buttonCaption)
        {
            Definitions.RaceOutcome outcome = AllLapsCompleted ? Definitions.RaceOutcome.OwnPlayerWin : Definitions.RaceOutcome.Incomplete;

            if (outcome == Definitions.RaceOutcome.OwnPlayerWin)
            {
                AwardLivesForWin();
            }

            NextSceneParameters.Set(RaceFinishScene.Outcome_Parameter_Name, outcome);
            SwitchToResultsScene();
        }
Exemple #19
0
        private void StartRaceForSelectedCourse(string courseName)
        {
            var areaData = (from el in Data.Profile.SimpleAreaData where el.Attribute("name").Value == courseName select el).First();

            NextSceneParameters.Set(RaceGameplayScene.Course_Area_Parameter, courseName);
            NextSceneParameters.Set(RaceGameplayScene.Course_Speed_Parameter, (int)areaData.Attribute("speed"));

            Data.Profile.DecreasePlaysToNextRatingReminder();

            NextSceneType = typeof(RaceGameplayScene);
            Deactivate();
        }
Exemple #20
0
        private void HandleAreaSelectionAction(string buttonCaption)
        {
            if (buttonCaption == "Select")
            {
                var areaData = (from el in Data.Profile.SimpleAreaData where el.Attribute("name").Value == _areaCarousel.Selection select el).First();
                NextSceneParameters.Set(RaceGameplayScene.Course_Area_Parameter, _areaCarousel.Selection);
                NextSceneParameters.Set(RaceGameplayScene.Course_Speed_Parameter, (int)areaData.Attribute("speed"));

                NextSceneType = typeof(RaceGameplayScene);
            }

            _areaCarousel.DismissWithReturnValue(buttonCaption);
        }
Exemple #21
0
        private void HandleExitTimerActionComplete()
        {
            if (CurrentState == Status.Active)
            {
                if (_progressCoordinator.Result == Definitions.RaceOutcome.OwnPlayerWin)
                {
                    AwardLivesForWin();
                }

                NextSceneParameters.Set(RaceFinishScene.Outcome_Parameter_Name, _progressCoordinator.Result);
                SwitchToResultsScene();
            }
        }
Exemple #22
0
        private void HandleBackDialogDismiss(string buttonCaption)
        {
            NextSceneType = typeof(TitleScene);

            if (buttonCaption == "Rate")
            {
                NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, TitleScene.Rate_Game_Dialog);
            }

            NextSceneParameters.Set("music-already-running", true);

            Deactivate();
        }
        private void ExitScene()
        {
            if (_displayReminderOnExit)
            {
                NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, "reminder");
            }
            else
            {
                NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, "survival-levels");
            }

            NextSceneType = typeof(TitleScene);
            Deactivate();
        }
Exemple #24
0
        public override void Activate()
        {
            if (!NextSceneParameters.Get <bool>("button-caption"))
            {
                BackButtonCaption = "OK";
            }

            foreach (InputProcessorBase processor in _inputProcessors)
            {
                processor.AllowDirectionalRepeat = true;
            }

            MusicManager.StopMusic();
            base.Activate();
        }
        public override void Activate()
        {
            Profile.SyncPlayerLives();
            if (_levelData != null)
            {
                ObjectsToSerialize.Remove(_levelData);
            }

            _attemptsAtCurrentLevel = NextSceneParameters.Get <int>("attempt-count");

            _levelComplete = false;
            _rankingCoordinator.Reset();
            _levelData = new SurvivalLevelData();
            _levelData.AttemptsAtLevel = _attemptsAtCurrentLevel;

            ObjectsToSerialize.Add(_levelData);
            StatusDisplay.CurrentLevelData     = _levelData;
            StatusDisplay.FreezeDisplayedScore = false;
            RaceAreaName = "";

            base.Activate();

            if (Profile.PauseOnSceneActivation)
            {
                if (!_rankingCoordinator.LevelCompleted)
                {
                    if (Profile.CurrentAreaData.Name == "Tutorial")
                    {
                        _tutorialRunner.CheckForStepTrigger(_player.WorldPosition);
                    }
                    if (!_paused)
                    {
                        EnablePause();
                    }
                }
                Profile.PauseOnSceneActivation = false;
            }

            if (!RecoveredFromTombstone)
            {
                ((PlayerMotionEngine)_player.MotionEngine).DifficultySpeedBoosterUnit = Profile.CurrentAreaData.SpeedStep;
                _readyPopup.Activate();
            }
            else if (_rankingCoordinator.LevelCompleted)
            {
                HandleLevelCleared();
            }
        }
        protected override void CompleteActivation()
        {
            _firstDialog = NextSceneParameters.Get <string>(First_Dialog_Parameter_Name);
            if (string.IsNullOrEmpty(_firstDialog))
            {
                _firstDialog = Default_First_Dialog;
            }

            if (!Definitions.Simulate_Trial_Mode)
            {
                UnlockFullVersionContent();
            }

            _titlePopup.Activate();

            base.CompleteActivation();
        }
        public override void Activate()
        {
            _returnToGame = NextSceneParameters.Get <bool>("return-to-game");

            Type[]        types                 = Assembly.GetExecutingAssembly().GetTypes();
            List <string> providers             = new List <string>();
            Dictionary <string, string> lookups = new Dictionary <string, string>();

            foreach (Type t in types)
            {
                PropertyInfo pi = t.GetProperty(Bopscotch.Definitions.KeyChain, BindingFlags.NonPublic | BindingFlags.Static);
                if (pi != null)
                {
                    providers.Add(t.FullName);
                    lookups.Add(t.FullName, pi.GetValue(null).ToString());
                }
            }
            providers = providers.OrderBy(x => x.LastIndexOf('.')).ToList();

            string sk = "";

            foreach (string p in providers)
            {
                sk = sk + lookups[p];
            }

            _connection              = new InAppBillingServiceConnection(Bopscotch.Game1.Activity, sk);
            _connection.OnConnected += LoadProducts;

            MainActivity.BillingServiceConnection = _connection;

            base.Activate();

            MusicManager.StopMusic();

            ActivateDialog("loading-store");
        }
        private void HandleDialogClose(string selectedOption)
        {
            switch (selectedOption)
            {
            case "Continue":
                if (!_tutorialRunner.DisplayingHelp)
                {
                    _paused = false;
                }
                break;

            case "Skip Level":
                HandleLevelSkip();
                break;

            case "Quit":
                NextSceneParameters.Set(TitleScene.First_Dialog_Parameter_Name, "start");
                NextSceneParameters.Set("music-already-running", false);
                NextSceneType = typeof(TitleScene);
                Profile.PauseOnSceneActivation = false;
                Deactivate();
                break;

            case "Add Lives":
                NextSceneParameters.Set("return-to-game", true);
                NextSceneType = typeof(StoreScene);
                Deactivate();
                break;

            case "OK":
                _paused = false;
                _tutorialRunner.ClearCurrentStep();

                break;
            }
        }
Exemple #29
0
        public override void Activate()
        {
            _raceStarted = false;
            _levelData   = new RaceLevelData();

            RaceAreaName = NextSceneParameters.Get <string>(Course_Area_Parameter);

            base.Activate();

            if (RecoveredFromTombstone)
            {
                ExitFollowingFocusLoss();
            }
            else
            {
                _player.PlayerEventCallback = HandlePlayerEvent;
                ((PlayerMotionEngine)_player.MotionEngine).DifficultySpeedBoosterUnit = NextSceneParameters.Get <int>(Course_Speed_Parameter);

                //_opponentMarker.SetForRaceStart(_player.WorldPosition, _player.Mirror);
                SetCoordinatorsForRace(NextSceneParameters.Get <string>(Course_Area_Parameter));
                SetUpOpponentAttackEffects();
                _waitingMessage.Activate();
            }
        }
Exemple #30
0
 protected virtual void CompleteActivation()
 {
     NextSceneParameters.Clear();
     CurrentState = Status.Active;
 }