/// <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; } } }
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; } }
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; } }
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; } } }