Beispiel #1
0
    private void PopupCreate(DamagebleParam param, DamageByType weapon, float damage)
    {
        var tmpPopup = Instantiate(popup, transform.position, Quaternion.identity);

        tmpPopup.GetComponentInChildren <TextMesh>().text = $"{param.Type}: {weapon.Value} : {damage}";
        Destroy(tmpPopup, popupDestroyTime);
        Debug.Log("Слабость у " + param.Type + " " + weapon.DamageType + " " + damage);
    }
Beispiel #2
0
    public override void ApplyDamage(DamageByType weapon)
    {
        var allWeak = datas.FindAllByWeak(weapon.DamageType);

        if (allWeak != null)
        {
            foreach (var weak in allWeak)
            {
                float damage = weapon.Value;
                foreach (var strongData in weak.Strongs)
                {
                    if (strongData.DamageType == weapon.DamageType)
                    {
                        damage -= strongData.Value;
                    }
                }
                foreach (var weakData in weak.Weakneses)
                {
                    if (weakData.DamageType == weapon.DamageType)
                    {
                        damage += weakData.Value;
                    }
                }
                if (damage < 0)
                {
                    damage = 0;
                }
                weak.ApplyDamage(damage);

                Debug.Log(weak.Type + " " + weapon.DamageType + " " + damage);

                PopupCreate(weak, weapon, damage);
            }


            DamageEvent();
        }
    }
Beispiel #3
0
 public abstract void ApplyDamage(DamageByType weapon);