Beispiel #1
0
    public void SetTargetEnabled(bool enabled, bool firstSelectedShip)
    {
        if (ShipTargeted != null)
        {
            ShipTargeted.SetActive(enabled);
        }

        _firstSelectedShip = firstSelectedShip;

        if (_shipTargetedBCSH != null)
        {
            var nextState = "dark";
            if (_firstSelectedShip)
            {
                nextState = "dark_first";
            }

            _shipTargetedBCSH.ApplyBCSHStateProgressive(nextState, 0, 0f);
            _bcshTimer.Wait(0f);
        }

        if (enabled)
        {
            GameAudioManager.SharedInstance.PlaySound("Audio/Sounds/GSB_selectship");
        }
    }
Beispiel #2
0
    public void ShipVersusHealthUpdate(int versusShipHealth)
    {
        for (var i = 0; i < HullVSGOs.Count; ++i)
        {
            HullVSGOs[i].SetActive(i < versusShipHealth ? true : false);
        }

        if (!_dyingVSShip)
        {
            if (_tremblingVSAnimation != null)
            {
                _tremblingVSAnimation.Kill();
                _tremblingVSAnimation = null;
            }

            if (GSB_SceneManager.Instance.ShipVersusTransform != null)
            {
                if (GSB_SceneManager.Instance.BattleState != GSB_SceneManager.EBattleState.E_GAMEOVER)
                {
                    GSB_SceneManager.Instance.ShipVersusTransform.transform.localPosition = Vector3.zero;

                    _tremblingVSAnimation = DOTween.Sequence();
                    _tremblingVSAnimation.Append(GSB_SceneManager.Instance.ShipVersusTransform.DOLocalMove(new Vector3(0.06f, 0.0f, 0.0f), 500 / 1000.0f / 10f).SetLoops(5, LoopType.Yoyo));

                    _tremblingVSAnimation.Play();
                }
            }

            if (_shipVSBCSH != null)
            {
                _shipVSBCSH.ApplyBCSHStateProgressive("damaged", 0, 0f);
                _shipVSBCSH.ApplyBCSHStateProgressive("default", 0, 0.4f);
            }
        }

        if (versusShipHealth == 0)
        {
            if (!_dyingVSShip && GSB_SceneManager.Instance.ShipVersusTransform != null)
            {
                GSB_SceneManager.Instance.ShipVersusTransform.transform.localPosition = Vector3.zero;
                GSB_SceneManager.Instance.ShipVersusTransform.transform.DOLocalMove(new Vector3(3.0f, 1.5f, 0.0f), 8f);

                _dyingVSShip = true;
                _explosionTimer.Wait(0f);
            }
        }
    }
Beispiel #3
0
    public void MakeDamage(int damage)
    {
        if (GSB_SceneManager.Instance.BattleSubState == GSB_SceneManager.EBattleState.E_WIN)
        {
            return;
        }

        if (GSB_SceneManager.Instance.BattleState != GSB_SceneManager.EBattleState.E_GAMEOVER)
        {
            _currentHealth -= damage;
            if (_currentHealth < 0)
            {
                _currentHealth = 0;
            }

            if (_currentHealth > GSB_SceneManager.Instance.HealthMax)
            {
                _currentHealth = GSB_SceneManager.Instance.HealthMax;
            }

            if (_currentHealth == 0)
            {
                GSB_SceneManager.Instance.ChangeState(GSB_SceneManager.EBattleState.E_GAMEOVER);
            }
        }

        if (GSB_GameManager.Instance.CurrentGameState == GSB_GameManager.GameState.E_PLAYING_2_VERSUS)
        {
            if (GSB_GameManager.Instance.NetworkController.PlayerOnlineController != null)
            {
                GSB_GameManager.Instance.NetworkController.PlayerOnlineController.CmdDamageReceived(GSB_GameManager.Instance.NetworkController.PlayerControllerId, _currentHealth);
            }
        }

        if (damage > 0)
        {
            if (_tremblingAnimation != null)
            {
                _tremblingAnimation.Kill();
                _tremblingAnimation = null;
            }

            if (ShipTransform != null)
            {
                if (GSB_SceneManager.Instance.BattleState != GSB_SceneManager.EBattleState.E_GAMEOVER)
                {
                    ShipTransform.transform.localPosition = Vector3.zero;

                    _tremblingAnimation = DOTween.Sequence();
                    _tremblingAnimation.Append(ShipTransform.transform.DOLocalMove(new Vector3(0.06f, 0.0f, 0.0f), 500 / 1000.0f / 10f).SetLoops(5, LoopType.Yoyo));

                    _tremblingAnimation.Play();
                }
                else
                {
                    if (!_dying)
                    {
                        ShipTransform.transform.localPosition = Vector3.zero;
                        ShipTransform.transform.DOLocalMove(new Vector3(3.0f, -1.5f, 0.0f), 8f);

                        _dying = true;
                        _explosionTimer.Wait(0f);
                    }
                }
            }

            if (ShipBCSH != null)
            {
                ShipBCSH.ApplyBCSHStateProgressive("damaged", 0, 0f);
                ShipBCSH.ApplyBCSHStateProgressive("default", 0, 0.4f);
            }
        }

        UpdateHealthUI();
    }