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 | |
download | 01-master.tar.gz 01-master.zip |
Diffstat (limited to 'Assets/Scripts/Enemy')
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyAttackScript.cs | 50 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyAttackScript.cs.meta | 13 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyBulletScript.cs | 32 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyBulletScript.cs.meta | 12 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyFireScript.cs | 90 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyFireScript.cs.meta | 13 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyHealthScript.cs | 31 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyHealthScript.cs.meta | 12 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyMovementScript.cs | 22 | ||||
-rwxr-xr-x | Assets/Scripts/Enemy/EnemyMovementScript.cs.meta | 12 |
10 files changed, 287 insertions, 0 deletions
diff --git a/Assets/Scripts/Enemy/EnemyAttackScript.cs b/Assets/Scripts/Enemy/EnemyAttackScript.cs new file mode 100755 index 0000000..80fa46f --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyAttackScript.cs @@ -0,0 +1,50 @@ +using UnityEngine; +using System.Collections; + + +/// <summary> +/// Includes both collision attack and bullet firing +/// </summary> +public class EnemyAttackScript : MonoBehaviour { + + GameObject player; + + public float Damage = 20; + float timer = .5f; + float counter; + bool playerInRange; + + void Start() + { + counter = 0; + player = GameObject.FindGameObjectWithTag("Player"); + } + + void Update() + { + counter += Time.deltaTime; + if (counter >= timer && playerInRange) + { + counter = 0f; + player.GetComponent<PlayerHealthScript>().TakeDamage(Damage); + } + } + + 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; + } + } +}
\ No newline at end of file diff --git a/Assets/Scripts/Enemy/EnemyAttackScript.cs.meta b/Assets/Scripts/Enemy/EnemyAttackScript.cs.meta new file mode 100755 index 0000000..fd13dd1 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyAttackScript.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a04479de3d839c14f954adcabdfb1263 +timeCreated: 1468151999 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Bullet: {fileID: 187558, guid: fb9814a46f3507c4e9b08a5fc84f727f, type: 2} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemyBulletScript.cs b/Assets/Scripts/Enemy/EnemyBulletScript.cs new file mode 100755 index 0000000..c36461a --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyBulletScript.cs @@ -0,0 +1,32 @@ +using UnityEngine; +using System.Collections; + +public class EnemyBulletScript : MonoBehaviour { + + bool fired; + + void Start () + { + fired = false; + } + + + void Update () + { + + } + + void OnTriggerEnter2D(Collider2D col) + { + if (!fired) + { + var player = col.gameObject.GetComponentInParent<PlayerHealthScript>(); + if (player != null) + { + fired = true; + player.TakeDamage(20f); + Destroy(gameObject); + } + } + } +}
\ No newline at end of file diff --git a/Assets/Scripts/Enemy/EnemyBulletScript.cs.meta b/Assets/Scripts/Enemy/EnemyBulletScript.cs.meta new file mode 100755 index 0000000..5aa7f90 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyBulletScript.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a6d565ef1445c7841bc7a12b9c23c7c6 +timeCreated: 1468153435 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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; + } + } + +} diff --git a/Assets/Scripts/Enemy/EnemyFireScript.cs.meta b/Assets/Scripts/Enemy/EnemyFireScript.cs.meta new file mode 100755 index 0000000..c27efe4 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyFireScript.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: ecf7680c5140a4448bedd6708868b15f +timeCreated: 1468157244 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: + - Bullet: {fileID: 128812, guid: ce5b25a0293ea634f899a29581bd8312, type: 2} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemyHealthScript.cs b/Assets/Scripts/Enemy/EnemyHealthScript.cs new file mode 100755 index 0000000..c9d93be --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyHealthScript.cs @@ -0,0 +1,31 @@ +using UnityEngine; +using System.Collections; + +public class EnemyHealthScript : MonoBehaviour { + + public int Health = 100; + + public GameObject DestroyAnimation; + GameObject DestroyAudio; + + void Start () { + DestroyAudio = GameObject.FindGameObjectWithTag("EnemyDestroyAudio"); + } + + // Update is called once per frame + void Update () { + + } + + public void TakeDamage(int damage) + { + Health -= damage; + if (Health <= 0) + { + var animation = Instantiate(DestroyAnimation, transform.position, Quaternion.identity); + DestroyAudio.GetComponent<AudioSource>().Play(); + Destroy(gameObject); + Destroy(animation, 1f); + } + } +} diff --git a/Assets/Scripts/Enemy/EnemyHealthScript.cs.meta b/Assets/Scripts/Enemy/EnemyHealthScript.cs.meta new file mode 100755 index 0000000..fb2faf4 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyHealthScript.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8b5f0115d52bc064188b95026954340e +timeCreated: 1468166845 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Enemy/EnemyMovementScript.cs b/Assets/Scripts/Enemy/EnemyMovementScript.cs new file mode 100755 index 0000000..0e0cb81 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyMovementScript.cs @@ -0,0 +1,22 @@ +using UnityEngine; +using System.Collections; + +public class EnemyMovementScript : MonoBehaviour { + + public float radius = 10f; + public float speed = 1f; + Vector3 offset; + + void Start () + { + offset = transform.position; + } + + void Update () + { + transform.position = new Vector3( + (radius * Mathf.Cos(Time.time * speed)) + offset.x, + (radius * Mathf.Sin(Time.time * speed)) + offset.y, + offset.z); + } +} diff --git a/Assets/Scripts/Enemy/EnemyMovementScript.cs.meta b/Assets/Scripts/Enemy/EnemyMovementScript.cs.meta new file mode 100755 index 0000000..ec3f6d8 --- /dev/null +++ b/Assets/Scripts/Enemy/EnemyMovementScript.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 30081c15a054c094985700e86cd92a2d +timeCreated: 1468166780 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |