diff --git a/Assets/Scripts/Orb.meta b/Assets/Scripts/Orb.meta new file mode 100644 index 0000000000000000000000000000000000000000..46a5e9bb9a3eea960059c4a73be13242b6b19b86 --- /dev/null +++ b/Assets/Scripts/Orb.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5466fb5032e286a4590fcba6ffc3598e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orb/Damage.cs b/Assets/Scripts/Orb/Damage.cs new file mode 100644 index 0000000000000000000000000000000000000000..273180fc5485b60af43223043c5559f7d32c820c --- /dev/null +++ b/Assets/Scripts/Orb/Damage.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Damage : MonoBehaviour +{ + public float damageAdd = 10f; // Add damage by 10 + public GameObject effect; + void OnTriggerEnter(Collider other) + { + if (other.CompareTag("Player")) + { + Pickup(other); // Actions that will called up when player takes an orb + } + } + void Pickup(Collider player) + { + Instantiate(effect, transform.position, transform.rotation); + PlayerDamage playerDamage = player.GetComponent<PlayerDamage>(); // Get damage data + playerDamage.damageCurrent += damageAdd; // Add the damage + + if (playerDamage.damageCurrent > 250f) + { + playerDamage.damageCurrent = 250f;// Limit damage to 250 + } + + Destroy(gameObject); // Self-destroy + } +} diff --git a/Assets/Scripts/Orb/Damage.cs.meta b/Assets/Scripts/Orb/Damage.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9b8fefc60effc722893bea8133659024007ec02a --- /dev/null +++ b/Assets/Scripts/Orb/Damage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e89e59f183d7a3a469b356b2fe31d488 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orb/Health.cs b/Assets/Scripts/Orb/Health.cs new file mode 100644 index 0000000000000000000000000000000000000000..36693ef8977e57557652f33f16fe0598a9cf78f4 --- /dev/null +++ b/Assets/Scripts/Orb/Health.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Health : MonoBehaviour +{ + public float healthAdd = 20f; // Add health by 20 + public GameObject effect; + void OnTriggerEnter(Collider other) + { + if (other.CompareTag("Player")) + { + Pickup(other); // Actions that will called up when player takes an orb + } + } + void Pickup(Collider player) + { + Instantiate(effect, transform.position, transform.rotation); + PlayerHealth playerHealth = player.GetComponent<PlayerHealth>(); // Get health data + playerHealth.healthCurrent += healthAdd; // Add the health + + if (playerHealth.healthCurrent > 100f) + { + playerHealth.healthCurrent = 100f;// Limit health to 100 + } + + Destroy(gameObject); // Self-destroy + } +} diff --git a/Assets/Scripts/Orb/Health.cs.meta b/Assets/Scripts/Orb/Health.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a41f3d28829e9d41585b3ed9dd0bc7f78ba2b862 --- /dev/null +++ b/Assets/Scripts/Orb/Health.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18d70f82422cbf44988bfe6bfffa985a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orb/Speed.cs b/Assets/Scripts/Orb/Speed.cs new file mode 100644 index 0000000000000000000000000000000000000000..0d748bf0fd42484e28abfb567849f4baf222bccc --- /dev/null +++ b/Assets/Scripts/Orb/Speed.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Speed : MonoBehaviour +{ + public float speedMultiply = 1.2f; // Multiply speed by 20% + public float speedDuration = 2f; // Duration of speed + public GameObject effect; + + private float startSpeed; + + void OnTriggerEnter(Collider other) + { + if (other.CompareTag("Player")) + { + Pickup(other); // Actions that will called up when player takes an orb + } + } + + IEnumerator SpeedPickUp(Collider player) + { + ThirdPersonMovement playerSpeed = player.GetComponent<ThirdPersonMovement>(); // Get speed data + startSpeed = playerSpeed.speed; // Initial speed + playerSpeed.speed *= speedMultiply; // Takes the speed up by 20% + yield return new WaitForSeconds(speedDuration); + playerSpeed.speed = startSpeed; // Speed go back to normal + } + + void Pickup(Collider player) + { + StartCoroutine(SpeedPickUp(player)); + + Instantiate(effect, transform.position, transform.rotation); + + Destroy(gameObject); // Self-destroy + } +} + diff --git a/Assets/Scripts/Orb/Speed.cs.meta b/Assets/Scripts/Orb/Speed.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c3f1b3cebe641bdac8ceddcb75c683e89071fcb0 --- /dev/null +++ b/Assets/Scripts/Orb/Speed.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a43b1d4718f86bd4ab373b9fd7387848 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: