MarisaMagicalStudy/Assets/Scripts/Entities/Enemy/EnemyFireBullet.cs

38 lines
1.4 KiB
C#

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.owner = owner;
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;
}
}
}