Пример #1
0
    /// <summary>
    /// Spawns and sets up the action text popup, if appropriate to do so.
    /// </summary>
    /// <param name="changeInflicterArg"></param>
    /// <param name="isIncreasingArg"></param>
    /// <param name="changeValueArg"></param>
    private void SetupActionTextPopupIfAppropriate(CharacterMasterController changeInflicterArg,
                                                   bool isIncreasingArg, int changeValueArg, Vector3 spawnPointArg)
    {
        // if NO inflicter
        if (changeInflicterArg == null)
        {
            // DONT continue code
            return;
        }

        // if inflicter is NOT a player
        if ((changeInflicterArg as PlayerCharacterMasterController) == null)
        {
            // DONT continue code
            return;
        }

        // if inflicter is online but NOT associated with the machine running this
        if (GeneralMethods.IsNetworkConnectedButNotLocalClient(changeInflicterArg.netIdentity))
        {
            // DONT continue code
            return;
        }

        // if self-infliction
        if (_characterMasterController == changeInflicterArg)
        {
            // DONT continue
            return;
        }

        // spawn an action text popup
        ActionTextPopupController spawnedPopup = SpawnActionTextPopup(spawnPointArg);

        // if adding health
        if (isIncreasingArg)
        {
            // setup action text popup to denote healing
            spawnedPopup.Setup("+", Color.green);
        }
        // else removing health
        else
        {
            // initialize damage popup color
            Color damagePopupColor = GetTemporaryDamagePopupColorsMix();
            // if no actual damage was taken
            if (changeValueArg <= 0)
            {
                damagePopupColor = Color.grey;
            }

            // setup action text popup to denote healing
            spawnedPopup.Setup(changeValueArg.ToString(), damagePopupColor);
        }
    }
Пример #2
0
    /// <summary>
    /// Spawns a pooled action text popup.
    /// </summary>
    /// <returns></returns>
    private ActionTextPopupController SpawnActionTextPopup(Vector3 spawnPosArg)
    {
        // get pooled object
        GameObject spawnedPopupObj = _spawnManager.GetPooledActionTextPopup(
            spawnPosArg,
            _characterMasterController.transform.rotation);

        // turn ON pooled object
        spawnedPopupObj.SetActive(true);

        // get popup component from spawned object
        ActionTextPopupController spawnedPopup = spawnedPopupObj.
                                                 GetComponent <ActionTextPopupController>();

        // return pooled popup
        return(spawnedPopup);
    }