Example #1
0
	public void StartFight()
	{
		UIManager.Instance.ChangeScreen(EScreen.Fight);
		BattleState = EBattleState.BattleOn;
		HitCount = 0;
		SceneManager.Instance.EnemyGroupComp.EnemyComp.Restart();
	}
Example #2
0
        public override void Update(float fDeltaTime)
        {
            base.Update(fDeltaTime);
            if (m_bSceneLoaded == false)
            {
                return;
            }

            if (m_state == EBattleState.Ready)
            {
                float x = m_battleField.BattleFieldObj.transform.position.x + m_viewSceneSpeed * fDeltaTime;
                if (x > m_viewSceneTarget.x)
                {
                    x = m_viewSceneTarget.x;
                }

                m_battleField.BattleFieldObj.transform.position = new Vector2(x, m_viewSceneTarget.y);

                if (m_startFightTime > 0 && ServerTimeHelper.Instance.ServerTime >= m_startFightTime)
                {
                    m_battleField.BattleFieldObj.transform.position = m_viewSceneTarget;
                    m_state = EBattleState.Fighting;
                    OnStartBattle();
                }
            }
            else if (m_state == EBattleState.Fighting)
            {
                m_battleField.Update(fDeltaTime);
            }

            if (GameCore.Instance.IsOfflineMode)
            {
                BattleServer.Instance.Update(fDeltaTime);
            }
        }
Example #3
0
        private void OnSyncClockComplete()
        {
            m_state = EBattleState.Preparing;
            ProtoCSStartBattle proto = new ProtoCSStartBattle();

            NetworkMgr.Instance.Send(proto);
        }
Example #4
0
	public void EndFight()
	{
		BattleState = EBattleState.NotInBattle;
		UIManager.Instance.WidgetCloud.PlayIn();
		GameManager.Instance.ScheduleTimerAction(1.5f, ()=>{
			UIManager.Instance.WidgetCloud.PlayOut();
			SceneManager.Instance.SwitchToPlayerScene();
		});
		UIManager.Instance.ChangeScreen(EScreen.Build);
	}
    public void ChangeState(EBattleState eNextState, byte[] data = null, bool bRefresh = false)
    {
        if (m_eCurrentState != eNextState || bRefresh == true)
        {
            m_ePreviousState = m_eCurrentState;
            m_States[(int)m_ePreviousState].DoEnd();

            m_eCurrentState = eNextState;
            m_Owner.StartCoroutine(m_States[(int)m_eCurrentState].DoStart(data));
        }
    }
    public IEnumerator Initialize(BattleScene owner)
    {
        m_Owner = owner;

        m_ePreviousState = m_eCurrentState = EBattleState.BattleState_Load;

        for (int i = (int)EBattleState.BattleState_Load; i < (int)EBattleState.BattleState_Max; i++)
        {
            m_States[i].Initialize(m_Owner, this);
        }

        yield return(m_States[(int)m_eCurrentState].DoStart());
    }
    public void ChangeSubState(EBattleState battleState)
    {
        _stateStartTime = TimeUtils.TimestampMilliseconds;

        switch (battleState)
        {
        case EBattleState.E_WIN:
        {
            GameAudioManager.SharedInstance.StopSound(0);
            GameAudioManager.SharedInstance.PlaySound("Audio/Sounds/GSB_youwin");

            if (WinLabel != null)
            {
                WinLabel.gameObject.SetActive(true);
            }

            if (Player != null)
            {
                Player.CancelSelection();
            }

            _stateTime = 4000;

            break;
        }

        case EBattleState.E_LOSE:
        {
            GameAudioManager.SharedInstance.StopSound(0);
            GameAudioManager.SharedInstance.PlaySound("Audio/Sounds/GSB_gameover");

            if (LoseLabel != null)
            {
                LoseLabel.gameObject.SetActive(true);
            }

            if (Player != null)
            {
                Player.CancelSelection();
            }

            _stateTime = 4000;

            break;
        }
        }

        _battleSubState = battleState;
    }
Example #8
0
        private void Reset()
        {
            OnRestartBattle();
            m_battleField.Reset();
            m_state          = EBattleState.None;
            m_startFightTime = 0;

            Vector2 startPos = new Vector2(-6, 0);

            m_battleField.BattleFieldObj.transform.position = startPos;

            LevelMapData data = LevelConfig.Instance.GetLevelMapData(GameCore.Instance.m_globalData.CurrLevel);

            m_battleField.InitLevel(data);
            m_battleLocalCal.InitLevel(data, m_battleField.Balls);

            m_battleField.IsWaitFireBall = false;
        }
Example #9
0
 private void SyncClock()
 {
     m_state = EBattleState.SyncClock;
     ServerTimeHelper.Instance.SyncClock(OnSyncClockComplete);
 }
Example #10
0
        public override void HandleMessage(ProtoBase proto)
        {
            switch (proto.MessageID)
            {
            case MessageId.SC_StartLevel:
            {
                ProtoSCStartLevel startLevel = proto as ProtoSCStartLevel;
                GameCore.Instance.m_globalData.CurrLevel = startLevel.LevelId;
                Reset();
                SyncClock();
                break;
            }

            case MessageId.SC_LeaveLevel:
            {
                GameCore.Instance.SwitchToSubgame(ESubGame.SelectLevel);
                break;
            }

            case MessageId.SC_StartBattle:
            {
                ProtoSCStartBattle startBattle = proto as ProtoSCStartBattle;
                m_state           = EBattleState.Ready;
                m_startFightTime  = startBattle.StartTime + m_startFightDelay;
                m_viewSceneTarget = startBattle.Translation;
                Vector2 startPos = new Vector2(-6, m_viewSceneTarget.y);
                m_battleField.BattleFieldObj.transform.position = startPos;
                m_viewSceneSpeed = (m_viewSceneTarget.x + 6) / m_viewSceneTime;

                for (int i = 0; i < startBattle.BallQueueA.Count; ++i)
                {
                    m_battleField.m_ballReserve[0].Enqueue((ELevelBallType)startBattle.BallQueueA[i]);
                }

                m_battleField.CheckBallDisplay(0);

                for (int i = 0; i < startBattle.BallQueueB.Count; ++i)
                {
                    m_battleField.m_ballReserve[1].Enqueue((ELevelBallType)startBattle.BallQueueB[i]);
                }

                m_battleField.CheckBallDisplay(1);
                if (GameCore.Instance.m_globalData.CurrLevel % 2 == 1)
                {
                    AudioMgr.PlayAudio(2, Guid.Empty);
                }
                else
                {
                    AudioMgr.PlayAudio(3, Guid.Empty);
                }
                break;
            }

            case MessageId.SC_EndBattle:
            {
                ProtoSCEndBattle endBattle = proto as ProtoSCEndBattle;
                StartTimer(() =>
                    {
                        OnEndBattle(endBattle.IsWin);
                    }, 2f);
                break;
            }

            case MessageId.SC_BattleCommand:
            {
                ProtoSCBattleCommand battleCommand = proto as ProtoSCBattleCommand;
                HandleBattleCommand(battleCommand.Command);
                break;
            }
            }
        }
    public void ChangeState(EBattleState battleState)
    {
        _stateStartTime = TimeUtils.TimestampMilliseconds;

        switch (battleState)
        {
        case EBattleState.E_WAVE_START:
        {
            _currentWave++;
            _currentWaveData    = null;
            _currentWaveDataIdx = 0;

            GenerateRandomCurrentWave();

            if (GSB_GameManager.Instance.CurrentGameState == GSB_GameManager.GameState.E_PLAYING_1_PLAYER)
            {
                if (HealthVSBoxText != null)
                {
                    HealthVSBoxText.enabled = false;
                }

                if (WaveLabel != null)
                {
                    WaveLabel.text = "WAVE ";
                    if (_currentWave < 10)
                    {
                        WaveLabel.text += "0";
                    }

                    WaveLabel.text += _currentWave;

                    WaveLabel.gameObject.SetActive(true);
                }

                if (Player != null)
                {
                    Player.MakeDamage(-HealthRecoveryAfterWave);
                }

                GameAudioManager.SharedInstance.PlaySound("Audio/Sounds/GSB_wavestart");

                _stateTime = 3000;
            }
            else
            {
                _stateTime = 0;
            }

            break;
        }

        case EBattleState.E_PLAYING:
        {
            if (WaveLabel != null)
            {
                WaveLabel.gameObject.SetActive(false);
            }

            break;
        }

        case EBattleState.E_WAVE_END:
        {
            _stateTime = 2000;

            break;
        }

        case EBattleState.E_GAMEOVER:
        {
            if (GSB_GameManager.Instance.CurrentGameState == GSB_GameManager.GameState.E_PLAYING_1_PLAYER)
            {
                GameAudioManager.SharedInstance.StopSound(0);
                GameAudioManager.SharedInstance.PlaySound("Audio/Sounds/GSB_gameover");

                if (GameOverLabel != null)
                {
                    GameOverLabel.gameObject.SetActive(true);
                }

                _stateTime = 4000;
            }
            else if (GSB_GameManager.Instance.CurrentGameState == GSB_GameManager.GameState.E_PLAYING_2_VERSUS)
            {
                if (GSB_GameManager.Instance.NetworkController.PlayerOnlineController != null)
                {
                    GSB_GameManager.Instance.NetworkController.PlayerOnlineController.CmdPlayerHasDiedClient(GSB_GameManager.Instance.NetworkController.PlayerControllerId);
                }

                _stateTime = 0;
            }

            break;
        }
        }

        _battleState = battleState;
    }
Example #12
0
 public void ChangeState(EBattleState state)
 {
     battleState = state;
 }
Example #13
0
 public void AfterBattle()
 {
     CurrentHP   = MaxHP;
     battleState = EBattleState.Normal;
 }