Ejemplo n.º 1
0
        public void UpdateUI()
        {
            var resources = Owner.Data.Resources;

            Gold.text          = Uty.KiloFormat(resources.Resource);
            MagicCrystals.text = Uty.KiloFormat(resources.MagicCrystals);
            SpiritLimit.text   = $"{resources.CurrentSpiritLimit}/{resources.MaxSpiritLimit}";
        }
Ejemplo n.º 2
0
        void LateUpdate()
        {
            if (enemy != null && enemy.Prefab != null)
            {
                var enemyMaxHealth    = enemy.Data.Get(Enums.Enemy.MaxHealth).Sum;
                var enemyCurentHealth = enemy.Data.Get(Enums.Enemy.Health).Sum;

                EnemyUI.transform.position = enemy.Prefab.transform.position + new Vector3(0, 90, 0);
                hpBar.fillAmount           = (float)(enemyCurentHealth / enemyMaxHealth);
                hpText.text = Uty.KiloFormat(enemyCurentHealth);
            }
            else
            {
                EnemyUI.SetActive(false);
            }
        }
Ejemplo n.º 3
0
        protected override void Awake()
        {
            base.Awake();

            DamageSystem.DamageDealt += OnDamageDealt;

            damageNumbersPool = new ObjectPool(DamageNumber, transform, 15);
            levelUpTextPool   = new ObjectPool(LevelUpText, transform, 5);

            void OnDamageDealt(DamageEventArgs e)
            {
                if (e.Target == null || e.Target.Prefab == null)
                {
                    return;
                }

                var damageNumber       = damageNumbersPool.PopObject();
                var textComponent      = damageNumber.GetComponent <TextMeshProUGUI>();
                var damageText         = Uty.KiloFormat((int)e.Damage);
                var fontColor          = defaultFontColor;
                var random             = UnityEngine.Random.Range(-20, 20);
                var textPositionOffset = new Vector3(random, 90 + random, random);

                if (e.CritCount > 0)
                {
                    var sb = new StringBuilder();

                    for (int i = 1; i < e.CritCount; i++)
                    {
                        sb.Append("!");
                    }

                    fontColor  = critFontColor;
                    damageText = $"{damageText} {sb.ToString()}";
                }

                damageNumbers.Add(textComponent);
                damageNumber.SetActive(true);

                textComponent.text     = damageText;
                textComponent.fontSize = 18 + e.CritCount * 2;
                textComponent.color    = fontColor;

                damageNumber.transform.position = e.Target.Prefab.transform.position + textPositionOffset;
            }
        }