示例#1
0
        public static DamagePopup Create(Vector3 position, int damageAmount, Color color)
        {
            Vector3     jitterPos            = position + (Vector3)Random.insideUnitCircle;
            Transform   damagePopupTransform = Instantiate(GameAssets.Instance.pfDamagePopup, jitterPos, Quaternion.identity);
            DamagePopup popup = damagePopupTransform.GetComponent <DamagePopup>();

            popup.Setup(damageAmount, color);
            return(popup);
        }
示例#2
0
        public void DealDamage(ICharacter character)
        {
            float baseDamage = Stats.BaseDamage.Value;
            float range      = Stats.DamageRange.Value;
            int   damage     = (int)UnityEngine.Random.Range(baseDamage - range, baseDamage + range);

            //Stats.AttackRange += 1;
            character.TakeDamage(damage);
            DamagePopup.Create(character.transform.position, damage, Color.white);

            if (onAttack != null)
            {
                onAttack(character);
            }
        }
示例#3
0
 public void AdditionalAttack(ICharacter character)
 {
     character.TakeDamage(5);
     DamagePopup.Create(character.transform.position, 5, Color.blue);
     assets.Create(assets.pfSwordAttack, character.transform.position, Quaternion.identity, character.transform);
 }