コード例 #1
0
ファイル: MeleeEnemyA.cs プロジェクト: Gideonnf/LDJam
    /// <summary>
    /// Function called when enemy explodes.
    /// Causes an explosion with a radius and checks if player should take damage
    /// </summary>
    void Explosion()
    {
        SoundManager.Instance.Play("SkullAttackDeath");

        Collider2D[] colliders;
        colliders = Physics2D.OverlapCircleAll(m_rb.position, explosionRadius);
        foreach (Collider2D col in colliders)
        {
            // Check if it has the player script. If it does, deal damage
            WagonCollisionChecker wagon  = null;
            PlayerController      player = null;
            wagon = col.gameObject.GetComponent <WagonCollisionChecker>();
            if (wagon != null)
            {
                // Damage wagon
                PlayerController.Instance.m_PlayerStats.CaravanTakeDamage(1);
                return;
            }
            player = col.gameObject.GetComponent <PlayerController>();
            if (player != null)
            {
                // Damage player
                PlayerController.Instance.m_PlayerStats.PlayerTakeDamage(1);
                return;
            }
        }
    }
コード例 #2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (m_damagedPlayer)    // not damage them twice in one hit
        {
            return;
        }
        WagonCollisionChecker wagon  = null;
        PlayerController      player = null;

        wagon = collision.gameObject.GetComponent <WagonCollisionChecker>();
        if (wagon != null)
        {
            // Damage wagon
            PlayerController.Instance.m_PlayerStats.CaravanTakeDamage(1);
            m_damagedPlayer = true;
            return;
        }
        player = collision.gameObject.GetComponent <PlayerController>();
        if (player != null)
        {
            // Damage player
            PlayerController.Instance.m_PlayerStats.PlayerTakeDamage(1);
            m_damagedPlayer = true;
            return;
        }
    }
コード例 #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        WagonCollisionChecker wagon  = null;
        PlayerController      player = null;

        wagon = collision.gameObject.GetComponent <WagonCollisionChecker>();
        if (wagon != null)
        {
            // Damage wagon
            PlayerController.Instance.m_PlayerStats.CaravanTakeDamage(1);
            gameObject.SetActive(false);
            return;
        }
        player = collision.gameObject.GetComponent <PlayerController>();
        if (player != null)
        {
            // Damage player
            PlayerController.Instance.m_PlayerStats.PlayerTakeDamage(1);
            gameObject.SetActive(false);
            return;
        }
    }
コード例 #4
0
    public void AttackPlayer()
    {
        //Collider2D[] colliders;
        // Check distance between player and enemy. Deals damage if the player is close enough to the enemy.
        if ((m_rb.position - (Vector2)PlayerController.Instance.transform.position).sqrMagnitude > attackDistance * attackDistance)
        {
            return;
        }

        SoundManager.Instance.Play("GolemAttack");

        RaycastHit2D[] hits;
        hits = Physics2D.RaycastAll(m_rb.position, (Vector2)DEBUG_TARGET.position - m_rb.position, attackDistance);
        foreach (RaycastHit2D hit in hits)
        {
            if (hit.collider.gameObject.GetComponent <GameObject>() != null)
            {
                continue;
            }
            WagonCollisionChecker wagon  = null;
            PlayerController      player = null;
            wagon  = hit.collider.gameObject.GetComponent <WagonCollisionChecker>();
            player = hit.collider.gameObject.GetComponent <PlayerController>();

            if (wagon != null)
            {
                // Damage wagon
                PlayerController.Instance.m_PlayerStats.CaravanTakeDamage(1);
                return;
            }
            else if (player != null)
            {
                // Damage player
                PlayerController.Instance.m_PlayerStats.PlayerTakeDamage(1);
                return;
            }
        }
    }