diff options
author | nirav <nirav@airmail.cc> | 2020-12-12 07:18:36 +0000 |
---|---|---|
committer | nirav <nirav@airmail.cc> | 2020-12-12 07:18:36 +0000 |
commit | 115f77bda0246a00f6e17469685c67746bdbd29d (patch) | |
tree | 4bbea1e59109bb1d1fddc71736f89289bab03073 /Assets/Scripts/Enemy/EnemyFireScript.cs | |
download | 01-master.tar.gz 01-master.zip |
Diffstat (limited to 'Assets/Scripts/Enemy/EnemyFireScript.cs')
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyFireScript.cs | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/Assets/Scripts/Enemy/EnemyFireScript.cs b/Assets/Scripts/Enemy/EnemyFireScript.cs new file mode 100755 index 0000000..b267871 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyFireScript.cs @@ -0,0 +1,90 @@ +using UnityEngine; +using System.Collections; + +public class EnemyFireScript : MonoBehaviour { + + public float FireRate = 1f; + float fireCounter; + bool PlayerInRange = false; + bool IsBulletTopDown = true; + public GameObject Bullet; + public float BulletSpeed ; + + + AudioSource EnemyFireAudio; + void Start () + { + EnemyFireAudio = GameObject.FindGameObjectWithTag("EnemyFireAudio").GetComponent<AudioSource>(); + } + + void Update () + { + fireCounter += Time.deltaTime; + + if (fireCounter >= FireRate && PlayerInRange) + { + fireCounter = 0; + EnemyFireAudio.Play(); + if (IsBulletTopDown) + { + Fire1(); + } + else + { + Fire2(); + } + IsBulletTopDown = !IsBulletTopDown; + } + } + + void Fire1() + { + var Bullet1 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet1.GetComponent<Rigidbody2D>().velocity = Vector2.up * BulletSpeed; + var Bullet2 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet2.GetComponent<Rigidbody2D>().velocity = Vector2.right * BulletSpeed; + var Bullet3 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet3.GetComponent<Rigidbody2D>().velocity = Vector2.down * BulletSpeed; + var Bullet4 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet4.GetComponent<Rigidbody2D>().velocity = Vector2.left * BulletSpeed; + Destroy(Bullet1, 1.5f); + Destroy(Bullet2, 1.5f); + Destroy(Bullet3, 1.5f); + Destroy(Bullet4, 1.5f); + } + + void Fire2() + { + var Bullet1 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet1.GetComponent<Rigidbody2D>().velocity = new Vector2(1,1) * BulletSpeed; + var Bullet2 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet2.GetComponent<Rigidbody2D>().velocity = new Vector2(-1, 1) * BulletSpeed; + var Bullet3 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet3.GetComponent<Rigidbody2D>().velocity = new Vector2(-1, -1) * BulletSpeed; + var Bullet4 = Instantiate(Bullet, gameObject.transform.position, Quaternion.identity) as GameObject; + Bullet4.GetComponent<Rigidbody2D>().velocity = new Vector2(1, -1) * BulletSpeed; + Destroy(Bullet1, 1.5f); + Destroy(Bullet2, 1.5f); + Destroy(Bullet3, 1.5f); + Destroy(Bullet4, 1.5f); + } + + void OnTriggerEnter2D(Collider2D other) + { + var player = other.gameObject.GetComponentInParent<PlayerHealthScript>(); + if (player != null) + { + PlayerInRange = true; + } + } + + void OnTriggerExit2D(Collider2D other) + { + var player = other.gameObject.GetComponentInParent<PlayerHealthScript>(); + if (player != null) + { + PlayerInRange = false; + } + } + +} |