Exemple #1
0
    public void TakeDamage(int damage, CharacterStats defender)
    {
        int currentDamage = Mathf.Max(damage - defender.CurrentDefence, 0);

        CurrentHealth = Mathf.Max(CurrentHealth - currentDamage, 0);
        UpdateHealthBarOnAttack?.Invoke(CurrentHealth, MaxHealth);
        defender.GetComponent <Animator>().SetTrigger("hit");
        if (CurrentHealth <= 0)
        {
            GameManager.Instance.playerStats.characterData.UpdateExp(characterData.killPoint);
        }
    }
Exemple #2
0
    public void TakeDamage(CharacterStats attacker, CharacterStats defender)
    {
        int damage = Mathf.Max(attacker.CurrentDamage() - defender.CurrentDefence, 0);

        CurrentHealth = Mathf.Max(CurrentHealth - damage, 0);
        //defender.GetComponent<Animator>().SetTrigger("hit");
        if (attacker.isCritical)
        {
            defender.GetComponent <Animator>().SetTrigger("back");
            defender.GetComponent <Animator>().SetTrigger("hit");
        }
        //update UI
        UpdateHealthBarOnAttack?.Invoke(CurrentHealth, MaxHealth);

        //经验update
        if (CurrentHealth <= 0)
        {
            attacker.characterData.UpdateExp(characterData.killPoint);
        }
    }
Exemple #3
0
    public void TakeDamage(CharacterStats attacker, CharacterStats defener)
    {
        int damage = Mathf.Max(attacker.CurrentDamage() - defener.CurrentDefence, 0);

        Debug.Log("TakeDamage CurrentHealth = " + (CurrentHealth));
        Debug.Log("TakeDamage damage = " + (damage));
        CurrentHealth = Mathf.Max(CurrentHealth - damage, 0);

        if (attacker.isCritical)
        {
            defener.GetComponent <Animator>().SetTrigger("Hit");
        }

        // 更新血量UI
        UpdateHealthBarOnAttack? .Invoke(CurrentHealth, MaxHealth);

        // 更新经验
        if (CurrentHealth <= 0)
        {
            attacker.characterData.UpdateExp(characterData.killPoint);
        }
    }
Exemple #4
0
    // Damage 伤害值, 函数重载
    public void TakeDamage(int damage, CharacterStats defener)
    {
        int currentDamage = Mathf.Max(damage - defener.CurrentDefence, 0);

        // Debug.Log("TakeDamage 2 CurrentHealth = " + (CurrentHealth));
        // Debug.Log("TakeDamage 2 damage = " + (damage));
        CurrentHealth = Mathf.Max(CurrentHealth - currentDamage, 0);

        // if (attacker.isCritical)
        // {
        //     defener.GetComponent<Animator>().SetTrigger("Hit");
        // }

        // 更新血量UI
        UpdateHealthBarOnAttack? .Invoke(CurrentHealth, MaxHealth);

        // 更新经验
        if (CurrentHealth <= 0)
        {
            GameManager.Instance.playerStats.characterData.UpdateExp(characterData.killPoint);
        }
    }