void _onConenctedToMaster()
        {
            if (messageShown)
            {
                return;
            }
            messageShown = true;

            StateMachine.Instance.MakeTransition(typeof(StateInitialize));
            ConnectionController.Instance.LoadLevelAsyncViaPhoton(SceneType.MainMenu.ToString());

            if (M3GameCache.GetIsFriendlyBattle())
            {
                EventListenerForPrivateChallenge.ShowUserIsNotAvailablePopup(
                    LocalizationManager.Instance.GetString(LocalizationKeys.CANNOT_JOIN_BATTLE), () => {
                }
                    );
            }
            else
            {
                if (UserPreferenceManager.GetAIBattleCompletionState() == 0)
                {
                    EventListenerForPrivateChallenge.ShowUserIsNotAvailablePopup(
                        LocalizationManager.Instance.GetString(LocalizationKeys.OTHER_PLAYER), () => {
                    }
                        );
                }
            }
        }
Example #2
0
        void _OnFindBattlePartner(object sender, System.EventArgs args)
        {
            findBattlePartner = true;

            VersusScreen.Instance.StartAnimation();
            M3GameCache.SetBattleType(BattleType.RandomPVP);
        }
Example #3
0
        protected override void DoOfflineBattle()
        {
            if (battleField != null)
            {
                if (battleField.IsGameActive)    //game has already begun.
                {
                    return;
                }
                else if (battleField.IsGameEnd)    //game has already ended.
                {
                    return;
                }
                //wait for player disconnected callback.
            }

            if (M3GameCache.GetIsFriendlyBattle())
            {
                DoCannotDoBattle();
            }
            else
            {
                Helpers.Utility.LogMessage("StateOnlineBattle: Going for offlineBattle");
                Events.EventManager.Instance.BattleFieldSceneUnloadedHandler += onBattleFieldSceneUnloaded;
                if (SceneManager.GetActiveScene().name == SceneUtil.GetSceneName(SceneType.BattleField))
                {
                    ConnectionController.Instance.LoadLevelAsyncViaPhoton(SceneUtil.GetSceneName(SceneType.BattleReloadScene));
                }
                else
                {
                    onBattleFieldSceneUnloaded(null, null);
                }
            }
        }
        public override void OnStateEnter()
        {
            base.OnStateEnter();
            challengeMode = Utils.STR_RANDOM;
            VersusScreen.Instance.StartAnimation();
            M3GameCache.SetBattleType(BattleType.RandomPVP);
            ConnectionController.Instance.M3OnJoinedRoom               += _onJoinedRoom;
            ConnectionController.Instance.M3OnPhotonJoinRoomFailed     += _onJoinRoomFailed;
            ConnectionController.Instance.M3OnPhotonPlayerConnected    += _onPhotonPlayerConnected;
            ConnectionController.Instance.M3OnPhotonPlayerDisconnected += _onPhotonPlayerDisconnected;

            Events.EventManager.Instance.UpdatePhotonRoomPropertiesHandler += _onUpdateRoomProperties;
            // ConnectionController.Instance.M3OnDisconnectedFromPhoton += _onDisconnectedFromPhoton;

            DoWaitForBattlePartner();
        }
Example #5
0
        public override void OnStateEnter()
        {
            base.OnStateEnter();
            M3GameCache.SetBattleType(BattleType.RandomPVP);
            ConnectionController.Instance.M3OnDisconnectedFromPhoton += _onDisconnect;
            ConnectionController.Instance.M3OnConnectedToMaster      += _onConnect;

            Events.EventManager.Instance.MainMenuLoadCompleteHandler += _onMainMenuSceneLoaded;
            Events.EventManager.Instance.FindBattlePartnerHandler    += _onFindBattlePartner;

            if (_data == null)
            {
                //no data was passed.
            }
            else
            {
                Dictionary <string, object> parameters = new Dictionary <string, object>();
                parameters = _data as Dictionary <string, object>;

                if (parameters.ContainsKey(StateWaitForChallenge.FIND_BATTLE_PARTNER))
                {
                    findBattlePartner = (bool)parameters[StateWaitForChallenge.FIND_BATTLE_PARTNER];
                }
            }

            if (ConnectionController.Instance.ConnectedAndOnline)
            {
                ConnectionController.Instance.Disconnect(); //then wait for disconnect callback.
            }
            else if (PhotonNetwork.connecting)
            {
                //Wait for connect Callback
            }
            else
            {
                if (ConnectionController.Instance.offlineMode)
                {
                    _onConnect();
                }
                else
                {
                    ConnectionController.Instance.SwitchToOfflineMode();
                }
            }
        }
Example #6
0
        void _OnFindBattlePartner(object sender, System.EventArgs args)
        {
            findBattlePartner = true;

            VersusScreen.Instance.StartAnimation();
            M3GameCache.SetBattleType(BattleType.RandomPVP);

            M3PUN.Utils.UpdatePhotonPlayerProperties();

            if (ConnectionController.Instance.ConnectedAndOnline)
            {
                DoFindMatch();
            }
            else
            {
                VersusScreen.Instance.StartAnimation();
                StateMachine.Instance.MakeTransition(typeof(StateGoForAIBattle));
            }
        }
Example #7
0
        void DoOfflineBattle()
        {
            if (doingOfflineBattle)
            {
                return;
            }

            doingOfflineBattle = true;

            string nickName   = M3GameCache.GetAINickName();
            int    leaderId   = M3GameCache.GetAILeaderCardId();
            int    trophies   = M3GameCache.GetAITrophies();
            int    arenaLevel = M3GameCache.GetAIArenaLevel();
            int    userLevel  = M3GameCache.GetAIUserLevel();
            string guildName  = M3GameCache.GetAIGuildName();

            VersusScreen.Instance.SetOpponentAttribs(nickName, string.Empty, leaderId, trophies, arenaLevel, userLevel, guildName);
            UserPreferenceManager.SetAIBattleCompletionState(1);
        }
Example #8
0
 protected void DoOfflineBattleAfterReload()
 {
     if (M3GameCache.GetIsFriendlyBattle())
     {
         VersusScreen.Instance.StopAnimation();
         StateMachine.Instance.MakeTransition(typeof(StateBattleEndCannotBattle));
     }
     else
     {
         Helpers.Utility.LogMessage("StateGoForOnlineBattle: Going for offlineBattle");
         VersusScreen.Instance.RestartAnimation();
         Events.EventManager.Instance.BattleFieldSceneUnloadedHandler += onBattleFieldSceneUnloaded;
         if (SceneManager.GetActiveScene().name == SceneUtil.GetSceneName(SceneType.BattleField))
         {
             ConnectionController.Instance.LoadLevelAsyncViaPhoton(SceneUtil.GetSceneName(SceneType.BattleReloadScene));
         }
         else
         {
             onBattleFieldSceneUnloaded(null, null);
         }
     }
 }
Example #9
0
 void _onPrivateChallengeStartBattleHandler(object sender, Events.ChallengeArgs args)
 {
     M3GameCache.SetBattleType(privateChallengeArgs.BattleType);
     StateMachine.Instance.MakeTransition(typeof(StateGoForOnlineBattle));
 }