26 lines
831 B
C#
26 lines
831 B
C#
using System;
|
|
using UnityEngine;
|
|
|
|
public class ExplosiveProjectile : Projectile
|
|
{
|
|
[SerializeField] private GameObject explosionEffect;
|
|
[SerializeField] private float blastRadius;
|
|
[SerializeField] private LayerMask enemyLayer;
|
|
protected override void OnTriggerEnter2D(Collider2D other)
|
|
{
|
|
base.OnTriggerEnter2D(other);
|
|
if (!other.CompareTag(tag))
|
|
{
|
|
GameObject newExplosionEffect = Instantiate(explosionEffect, transform.position, Quaternion.identity);
|
|
newExplosionEffect.transform.localScale = new Vector3(blastRadius, blastRadius, blastRadius);
|
|
Collider2D[] enemiesInRange = Physics2D.OverlapCircleAll(transform.position, enemyLayer, enemyLayer);
|
|
foreach (Collider2D enemy in enemiesInRange)
|
|
{
|
|
if (enemy.TryGetComponent(out Entity isEntity))
|
|
{
|
|
isEntity.TakeDamage(damage);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|