Esempio n. 1
0
    // Update is called once per frame

    public void TakeDamage(int damage)
    {
        if (currHealth > damage)
        {
            pm.enabled  = false;
            currHealth -= damage;
            CamDictionary.CamShake(0.2f, 10f);
            rb.AddForce(getDamageForce, ForceMode2D.Impulse);
            pm.enabled = true;
        }
        else
        {
            UnityEngine.SceneManagement.SceneManager.LoadScene("Menu");
        }
    }
Esempio n. 2
0
    private void FixedUpdate()
    {
        if (damageItems)
        {
            if (GroundCheck.isGrounded)
            {
                rb.velocity = new Vector2(0, rb.velocity.y);
            }

            Collider2D[] damageableColliders = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsDamageableByPlayer);
            Collider2D[] enemyColliders      = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsEnemy);
            Collider2D[] hitableColliders    = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsHitableByPlayer);
            foreach (Collider2D c in enemyColliders)
            {
                c.gameObject.GetComponent <EnemyHealth>().TakeDamage(40);
            }
            if (damageableColliders.Length > 0)
            {
                /*if (transform.localScale.x < 0)
                 * {
                 *  rb.AddForce(attackForce, ForceMode2D.Impulse);
                 * }
                 * else if (transform.localScale.x > 0)
                 * {
                 *  Vector2 negAttackForce = new Vector2(-attackForce.x, attackForce.y);
                 *  rb.AddForce(negAttackForce, ForceMode2D.Impulse);
                 * }*/
                //#TODO Add damage
                //CamDictionary.CamShake(0.02f, 2f);
            }
            else
            {
                Collider2D[] allCollidersInRange = Physics2D.OverlapCircleAll(damageCenter.position, damageRadius, whatIsHitableByPlayer);
                if (allCollidersInRange.Length > 0)
                {
                    CamDictionary.CamShake(0.07f, 3f);
                }
            }

            damageItems = false;
        }
    }