Exemple #1
0
 private void SetDamageText(eDamageTextType ty, Color topC, Color bottomC, Color outlineC, string ic, string tp, string tpSprite, int ftSize)
 {
     DamageText.Add(new DamageTextColor
     {
         textType     = ty,
         topColor     = new Color(topC.r, topC.g, topC.b),
         bottomColor  = new Color(bottomC.r, bottomC.g, bottomC.b),
         outlineColor = new Color(outlineC.r, outlineC.g, outlineC.b),
         icon         = ic,
         tip          = tp,
         tipSprite    = tpSprite,
         fontSize     = ftSize
     });
 }
Exemple #2
0
    private void SetDamageText(int damage, eDamageTextType type)
    {
        UIDamageText damageText = null;

        if (PoolManager.Instance != null && PoolManager.Instance.GetDamageTextFromPool(type, out damageText))
        {
            damageText.Init(damageDummy != null ? damageDummy : transform, damage);
        }
        else
        {
            LoadAssetbundle.LoadPrefabCB loadDamageTextPrefabCB = new LoadAssetbundle.LoadPrefabCB(LoadDamageTextCompleteCB);
            PrefabManager.Instance.LoadPrefab(GameManager.Instance.GetDamagePath(type), System.Guid.NewGuid(), loadDamageTextPrefabCB, damage);
        }
    }
Exemple #3
0
        private void SetFontColor(eDamageTextType type)
        {
            for (var i = 0; i < DamageText.Count; i++)
            {
                DamageTextColor color = DamageText[i];
                if (color.textType == type)
                {
                    DamagesLabel.gradientTop    = color.topColor;
                    DamagesLabel.gradientBottom = color.bottomColor;
                    DamagesLabel.effectColor    = color.outlineColor;
                    DamagesLabel.fontSize       = color.fontSize;

                    TipSprite.spriteName = color.tipSprite;

                    break;
                }
            }
        }
Exemple #4
0
        private IEnumerator ShowDamage_coroutine(Transform spawn_point, Vector3 offset, int numDamages, eDamageTextType text_type, System.Action onComplete = null)
        {
            this.offset = offset;
            this.target = spawn_point;
            this.onShowCompleteCallback = onComplete;

            if (numDamages < 0)
            {// heal
                DamagesLabel.text = (-numDamages).ToString();
                setTipSpritePos();
            }
            else if (numDamages > 0)
            {// damage
                DamagesLabel.text = numDamages.ToString();
                setTipSpritePos();
            }
            else
            {// miss/block
                switch (text_type)
                {
                case eDamageTextType.Miss:
                case eDamageTextType.Block:
                    DamagesLabel.text = "0";
                    setTipSpritePos();
                    break;

                default:
                    DamagesLabel.text = string.Empty;
                    setTipSpritePos();
                    break;
                }
            }

            SetFontColor(text_type);
            for (int i = 0; i < DamageMotions.Count; i++)
            {
                DamageMotions[i].alpha = 0;
                DamageMotions[i].transform.localPosition = Vector3.zero;
            }
            #region PsdLayerSpriteFont FIX
            // ********
            // PsdLayerSpriteFont refresh its text content only on its Update().
            // This is problematic cause it results in seeing previous text during the first frame (looks "buggy")
            // and also prevent us to calculate the bounds correctly
            //
            // WORK-AROUND : we hide the label during next frame
            // ********

            // wait for 1 frame
            yield return(null);

            #endregion

            for (int i = 0; i < DamageMotions.Count; i++)
            {
                DamageMotions[i].alpha = 1;
            }

            for (int i = 0; i < m_tweeners.Length; ++i)
            {
                m_tweeners[i].tweenFactor = 0;
                m_tweeners[i].PlayForward();
            }

            bounds = NGUIMath.CalculateRelativeWidgetBounds(mDMono.transform);
            UpdatePosition(true);
            _ShowDamage_Seq = ILRTimerManager.instance.AddTimer(SHOW_DURATION, int.MaxValue, delegate { OnShowComplete(); });
        }
Exemple #5
0
 public void ShowDamage(int numDamages, Transform spawn_point, Vector3 offset, eDamageTextType text_type, System.Action onComplete = null)
 {
     StartCoroutine(ShowDamage_coroutine(spawn_point, offset, numDamages, text_type, onComplete));
 }