Пример #1
0
    public void TakeDamage(AttackType at, int amount)
    {
        if (ud.Hp == 0)
        {
            return;
        }
        var damage = ud.TakeDamageCalc(at, amount);

        //랜덤계산으로 데미지가 중간 값 기준 몇배 들어갔는지
        var effective = ud.CalculateDamageEffective(damage, amount);

        animator.SetTrigger("TriggerTakeDamage");
        Vector3 dir = (transform.position - player.transform.position).normalized;

        //랜덤 계산에서 데미지가 더 많이 들어갔을 수록 데미지를 더 크게 표시함
        EffectManager.Instance.CreateHitDamageText(transform.position, damage, effective >= 1.15 ? effective * 2 : effective);
        GetComponent <Rigidbody>().AddForce(dir * 10000f);
        ud.Hp -= damage;
    }