summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Enemy
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Enemy')
-rwxr-xr-xAssets/Scripts/Enemy/EnemyAttackScript.cs50
-rwxr-xr-xAssets/Scripts/Enemy/EnemyAttackScript.cs.meta13
-rwxr-xr-xAssets/Scripts/Enemy/EnemyBulletScript.cs32
-rwxr-xr-xAssets/Scripts/Enemy/EnemyBulletScript.cs.meta12
-rwxr-xr-xAssets/Scripts/Enemy/EnemyFireScript.cs90
-rwxr-xr-xAssets/Scripts/Enemy/EnemyFireScript.cs.meta13
-rwxr-xr-xAssets/Scripts/Enemy/EnemyHealthScript.cs31
-rwxr-xr-xAssets/Scripts/Enemy/EnemyHealthScript.cs.meta12
-rwxr-xr-xAssets/Scripts/Enemy/EnemyMovementScript.cs22
-rwxr-xr-xAssets/Scripts/Enemy/EnemyMovementScript.cs.meta12
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: