using UnityEngine; [CreateAssetMenu(fileName = "New Enemy Projectile Ability", menuName = "EnemyAbilities/FireBullet")] public class EnemyFireBullet : EnemyAbility { public enum FireMode {Angled, Offset}; [Header("Projectile")] public FireMode fireMode = FireMode.Offset; public Vector2 offset; public float angle; public int projectileCount; public int pierceAmount; public float projectileSpeed; public float bulletLifetime; public float accuracy; public Projectile projectile; public override void UseAbility(Entity target, Enemy owner) { for (int i = 0; i < projectileCount; i++) { Projectile newProjectile = Instantiate(projectile, owner.transform.position, Quaternion.identity); newProjectile.RotateToTarget(target.transform.position); if (fireMode == FireMode.Offset && projectileCount > 1) { newProjectile.transform.position += new Vector3(Random.Range(-offset.x, offset.x), Random.Range(-offset.y, offset.y)); } newProjectile.pierceAmount = pierceAmount; newProjectile.damage = power; newProjectile.speed = projectileSpeed; newProjectile.lifetime = bulletLifetime; newProjectile.transform.Rotate(0, 0, Random.Range(-accuracy, accuracy)); newProjectile.tag = owner.tag; } } }