more enemy stuff
This commit is contained in:
parent
3b60583c76
commit
d8c49317a3
235 changed files with 27781 additions and 3909 deletions
36
Assets/Scripts/Entities/Enemy/EnemyFireBullet.cs
Normal file
36
Assets/Scripts/Entities/Enemy/EnemyFireBullet.cs
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue