示例#1
0
 public void ApplyDamage(int damage)
 {
     HP -= damage;
     if (HP < 0)
     {
         isDead = true;
     }
     HPChanged?.Invoke(this, new TowerHPChangeEventArgs(HP));
 }
示例#2
0
        public void Heal(int heal)
        {
            HP += heal;
            if (HP > Max_HP)
            {
                HP = Max_HP;
            }

            HPChanged?.Invoke(this, new TowerHPChangeEventArgs(HP));
        }
示例#3
0
 public virtual void TakeDamage(int damage)
 {
     hp = Mathf.Clamp(hp - damage, 0, MaxHP);
     if (hp > 0)
     {
         HPChanged?.Invoke(hp);
     }
     else
     {
         Die?.Invoke();
     }
 }
示例#4
0
    public void TakeDamage(float damageAmount)
    {
        if (useMultiplier)
        {
            damageAmount *= 1.25f;
        }

        damageTaken += damageAmount;
        damageTaken  = damageTaken > maxHp ? maxHp : damageTaken;

        onHPChanged.Invoke(1f - damageTaken / maxHp);

        if (damageTaken >= maxHp)
        {
            damageTaken = 0;             // reset to 0 on death
            onDeath.Invoke( );
        }
    }
示例#5
0
 public void ChangeHP(float hP)
 {
     HPChanged?.Invoke(hP);
 }