Ejemplo n.º 1
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //  Displays a score + OR - for a few seconds, with a description.
    /// </summary>
    public void ScoreMessage(bool add, int amount, Player.ScoreType scoreType)
    {
        if (ScoreAdditiveText != null && ScoreTypeText != null)
        {
            // Remove current score widget
            if (_ScorePanelBeingDisplayed != null && _ScoreTypeBeingDisplayed != null)
            {
                _Lerping = false;
                StopCoroutine(ScoreMessage(_ScorePanelBeingDisplayed, _ScoreTypeBeingDisplayed, add, amount, scoreType));

                Destroy(_ScorePanelBeingDisplayed.gameObject);
                Destroy(_ScoreTypeBeingDisplayed.gameObject);
                _ScorePanelBeingDisplayed = null;
                _ScoreTypeBeingDisplayed  = null;
            }

            // Create score widget
            if (_ScorePanelBeingDisplayed == null && _ScoreTypeBeingDisplayed == null)
            {
                _ScorePanelBeingDisplayed = Instantiate(ScoreAdditiveText.gameObject);
                _ScorePanelBeingDisplayed.gameObject.SetActive(true);
                _ScorePanelBeingDisplayed.transform.SetParent(transform);

                _ScoreTypeBeingDisplayed = Instantiate(ScoreTypeText.gameObject);
                _ScoreTypeBeingDisplayed.gameObject.SetActive(true);
                _ScoreTypeBeingDisplayed.transform.SetParent(transform);

                StartCoroutine(ScoreMessage(_ScorePanelBeingDisplayed, _ScoreTypeBeingDisplayed, add, amount, scoreType));
            }
        }
    }
Ejemplo n.º 2
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <summary>
    //
    /// </summary>
    /// <returns>
    //  IEnumerator
    /// </returns>
    private IEnumerator ScoreMessage(GameObject panel, GameObject type, bool add, int amount, Player.ScoreType scoreType)
    {
        RectTransform rect = _ScorePanelBeingDisplayed.GetComponent <RectTransform>();
        Text          text = panel.GetComponent <Text>();

        rect.anchoredPosition = new Vector3(ScoreStartingPositionX, ScoreStartingPositionY);

        RectTransform typerect = _ScoreTypeBeingDisplayed.GetComponent <RectTransform>();
        Text          texttype = type.GetComponent <Text>();

        typerect.anchoredPosition = new Vector3(TypeStartingPositionX, TypeStartingPositionY);

        string sType = "";

        switch (scoreType)
        {
        case Player.ScoreType.EnemyKilled:

            sType = "Unit Killed";
            break;

        case Player.ScoreType.BaseDestroyed:

            sType = "Base Destroyed";
            break;

        case Player.ScoreType.BuildingDestroyed:

            sType = "Building Destroyed";
            break;

        case Player.ScoreType.SpireDestroyed:

            sType = "Spire Lost";
            break;

        case Player.ScoreType.UpgradedBase:

            sType = "Upgraded Base";
            break;

        case Player.ScoreType.BuildingBuilt:

            sType = "Building Constructed";
            break;

        case Player.ScoreType.WaveDefeated:

            sType = "Wave Defeated";
            break;

        default: break;
        }

        // Set score message properties
        if (add)
        {
            text.text  = string.Concat("+" + amount.ToString());
            text.color = AdditiveColour;

            texttype.text  = sType;
            texttype.color = AdditiveColour;
        }
        else
        {
            text.text  = string.Concat("-" + amount.ToString());
            text.color = SubtractiveColour;

            texttype.text  = sType;
            texttype.color = SubtractiveColour;
        }

        // Delay and lerp the positions
        _Lerping = true;
        float t = 0f;

        while (t <= 1f && _Lerping)
        {
            t += Time.deltaTime / LerpDuration;

            rect.anchoredPosition     = Vector2.Lerp(new Vector2(ScoreStartingPositionX, ScoreStartingPositionY), new Vector2(ScoreEndingPositionX, ScoreEndingPositionY), t);
            typerect.anchoredPosition = Vector2.Lerp(new Vector2(TypeStartingPositionX, TypeStartingPositionY), new Vector2(TypeEndingPositionX, TypeEndingPositionY), t);
            yield return(null);
        }

        // Remove widget
        _ScorePanelBeingDisplayed = null;
        _ScoreTypeBeingDisplayed  = null;
        Destroy(panel);
        Destroy(type);
    }