コード例 #1
0
    public void DamagePlayer(float dmg)
    {
        if (curPlayerHealth <= dmg)
        {
            curPlayerHealth -= curPlayerHealth;
        }
        else
        {
            curPlayerHealth -= dmg;
        }

        OnPlayerTakeDamage?.Invoke();

        if (curPlayerHealth == 0)
        {
            if (hitSpikeWall)
            {
                SetState(PlayerStates.SPIKE_DEAD);
            }
            else if (currentState == PlayerStates.BOOM_JUMP)
            {
                SetState(PlayerStates.BOOM_DEAD);
            }
        }
    }
コード例 #2
0
    private void OnDisable()
    {
        onPlayerLoseLife   -= LoseOneLife;
        onPlayerTakeDamage -= TakeDamage;

        onPlayerDie -= Die;
    }
コード例 #3
0
    private void OnEnable()
    {
        onPlayerLoseLife += LoseOneLife;

        onPlayerTakeDamage += TakeDamage;

        onPlayerDie += Die;
    }
コード例 #4
0
 void DamagePlayer(bool damaging)
 {
     FindPlayer();
     if (player != null && !player.IsInvincible() && damaging)
     {
         OnGrantPlayerInvincibility.Invoke(secondsOfInvincibility);
         OnPlayerTakeDamage.Invoke();
         OnResetPlayerCombo.Invoke();
     }
 }
コード例 #5
0
    public void TakeDamage(int damage)
    {
        Health -= damage;
        OnPlayerTakeDamage?.Invoke();

        if (Health == 0)
        {
            Die();
        }
    }
コード例 #6
0
 public IEnumerator UnlistenTakeDamage(float timer)
 {
     while (timer > 0)
     {
         onPlayerTakeDamage -= TakeDamage;
         timer -= Time.deltaTime;
         yield return(null);
     }
     onPlayerTakeDamage += TakeDamage;
 }
コード例 #7
0
 public static void DamageTaken(float amount, Vector3 direction)
 {
     OnPlayerTakeDamage?.Invoke(amount, direction);
 }
コード例 #8
0
 public static void OnPlayerTakeDamageFunction(float damageAmount)
 {
     OnPlayerTakeDamage?.Invoke(damageAmount);
 }