diff --git a/Assets/Prefabs/HealthOrb.prefab b/Assets/Prefabs/HealthOrb.prefab index ab0965ef89b494b2b07468f1aea0b7eb27af3fe9..17e06df7d745e78d3e02e4d73b0b49492388d511 100644 --- a/Assets/Prefabs/HealthOrb.prefab +++ b/Assets/Prefabs/HealthOrb.prefab @@ -11,6 +11,8 @@ GameObject: - component: {fileID: 2535262335353558129} - component: {fileID: 2535262335353558126} - component: {fileID: 2535262335353558128} + - component: {fileID: -4094635597638346364} + - component: {fileID: 705583067959343806} m_Layer: 0 m_Name: HealthOrb m_TagString: Untagged @@ -99,3 +101,39 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!114 &-4094635597638346364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535262335353558127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 764e68913424eeb419dd38af7e60ff61, type: 3} + m_Name: + m_EditorClassIdentifier: + healthOrbTime: 0.5 + powerUpValue: 10 +--- !u!195 &705583067959343806 +NavMeshAgent: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535262335353558127} + m_Enabled: 1 + m_AgentTypeID: 0 + m_Radius: 1.125 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 120 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: 2.25 + m_BaseOffset: 1.125 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 diff --git a/Assets/Prefabs/PowerOrb.prefab b/Assets/Prefabs/PowerOrb.prefab index 0313bb80b265fee8cd04c17cb58deeb7d4240f06..46308ba79919f964afb9e3e5940f39b0074e4979 100644 --- a/Assets/Prefabs/PowerOrb.prefab +++ b/Assets/Prefabs/PowerOrb.prefab @@ -11,6 +11,8 @@ GameObject: - component: {fileID: 4657511723775529484} - component: {fileID: 4657511723775529483} - component: {fileID: 4657511723775529485} + - component: {fileID: -6770075547395189657} + - component: {fileID: 8369794267398069332} m_Layer: 0 m_Name: PowerOrb m_TagString: Untagged @@ -99,3 +101,39 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!114 &-6770075547395189657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4657511723775529482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 25d572023fc8dca439d7bd171c970c34, type: 3} + m_Name: + m_EditorClassIdentifier: + powerOrbTime: 0.5 + powerUpValue: 10 +--- !u!195 &8369794267398069332 +NavMeshAgent: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4657511723775529482} + m_Enabled: 1 + m_AgentTypeID: 0 + m_Radius: 1.7399999 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 120 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: 3.4799998 + m_BaseOffset: 1.7399999 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 diff --git a/Assets/Prefabs/SpeedOrb.prefab b/Assets/Prefabs/SpeedOrb.prefab index a2d34f76c9669e571a87075f8f470cc03dbec3b0..89b8eba9f357abd16322766fdb19e9ba33e87a38 100644 --- a/Assets/Prefabs/SpeedOrb.prefab +++ b/Assets/Prefabs/SpeedOrb.prefab @@ -11,6 +11,8 @@ GameObject: - component: {fileID: 7205800141201514947} - component: {fileID: 7205800141201514972} - component: {fileID: 7205800141201514946} + - component: {fileID: 647105530061794655} + - component: {fileID: -888242424389404344} m_Layer: 0 m_Name: SpeedOrb m_TagString: Untagged @@ -99,3 +101,39 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!114 &647105530061794655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7205800141201514973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d104f8fb432c7ba41998f84129eedf56, type: 3} + m_Name: + m_EditorClassIdentifier: + speedOrbTime: 0.5 + powerUpValue: 10 +--- !u!195 &-888242424389404344 +NavMeshAgent: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7205800141201514973} + m_Enabled: 1 + m_AgentTypeID: 0 + m_Radius: 2.505 + m_Speed: 3.5 + m_Acceleration: 8 + avoidancePriority: 50 + m_AngularSpeed: 120 + m_StoppingDistance: 0 + m_AutoTraverseOffMeshLink: 1 + m_AutoBraking: 1 + m_AutoRepath: 1 + m_Height: 4.98 + m_BaseOffset: 2.49 + m_WalkableMask: 4294967295 + m_ObstacleAvoidanceType: 4 diff --git a/Assets/Scenes/Level_01.unity b/Assets/Scenes/Level_01.unity index 27a470520eb71a1cfdba6a35a522428501888035..8bdfaa57ef0ce4b183abfb0d086533ce5cc18819 100644 --- a/Assets/Scenes/Level_01.unity +++ b/Assets/Scenes/Level_01.unity @@ -479,9 +479,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d2ec7b0143f45684d84465ca4e1ae31d, type: 3} m_Name: m_EditorClassIdentifier: - startingPower: 100 + startingPower: 10 currentPower: 0 - healthSlider: {fileID: 941469807} + powerSlider: {fileID: 941469807} damageImage: {fileID: 1109176449} deathClip: {fileID: 8300000, guid: d36a393bca4582043982db9089e1694f, type: 3} --- !u!135 &33458253 @@ -522,11 +522,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f3b1eeb6e043e4144afac8ee2325014c, type: 3} m_Name: m_EditorClassIdentifier: - startingSpeed: 100 + startingSpeed: 10 currentSpeed: 0 - healthSlider: {fileID: 375658143} + speedSlider: {fileID: 375658143} damageImage: {fileID: 1109176449} - deathClip: {fileID: 0} + deathClip: {fileID: 8300000, guid: d36a393bca4582043982db9089e1694f, type: 3} --- !u!1 &36326047 GameObject: m_ObjectHideFlags: 0 @@ -766,7 +766,7 @@ MonoBehaviour: - {fileID: 2022850296, guid: 73871ddf5c8d02442be00d9671a9d510, type: 3} - {fileID: 1914384308, guid: 3688f3f3f312c984fa78e00c09819e6c, type: 3} - {fileID: 1206665591, guid: f264ab47e25d0374ba89abced0b94b2a, type: 3} - - {fileID: 0} + - {fileID: 6451117433343572282, guid: 9fb82f159b80fbb4f86ae46808c152cd, type: 3} - {fileID: 7193182883264875344, guid: 5caccc7eeef745c4cb8cdf5aeb3c2d0f, type: 3} --- !u!4 &180263586 Transform: @@ -1166,7 +1166,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 530599531} m_LocalRotation: {x: 0, y: 0.9063079, z: 0, w: 0.42261827} - m_LocalPosition: {x: -30.5, y: 0, z: 25} + m_LocalPosition: {x: 30.5, y: 0, z: 25} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -6376,6 +6376,36 @@ MonoBehaviour: damagePerShot: 20 timeBetweenBullets: 0.15 range: 100 +--- !u!1 &725605032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 725605033} + m_Layer: 0 + m_Name: PowerOrbSpawnPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &725605033 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 725605032} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -100, y: 0, z: 100} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &732164003 GameObject: m_ObjectHideFlags: 0 @@ -6998,6 +7028,36 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1118055506} m_CullTransparentMesh: 0 +--- !u!1 &1159231083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1159231084} + m_Layer: 0 + m_Name: SpeedOrbSpawnPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1159231084 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1159231083} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -30, y: 0, z: 20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1263355631 GameObject: m_ObjectHideFlags: 0 @@ -7440,6 +7500,96 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1401845282} m_CullTransparentMesh: 0 +--- !u!1 &1516506356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1516506358} + - component: {fileID: 1516506357} + - component: {fileID: 1516506360} + - component: {fileID: 1516506359} + m_Layer: 0 + m_Name: OrbManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1516506357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516506356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ebce3593297a094592f1a96d5e9cbed, type: 3} + m_Name: + m_EditorClassIdentifier: + playerHealth: {fileID: 33458251} + orb: {fileID: 4657511723775529482, guid: 372c1cb97a0b4e540b8d303e12c33815, type: 3} + spawnOrb: 1 + spawnTime: 3 + spawnPoints: + - {fileID: 725605033} + factory: {fileID: 1906920587} +--- !u!4 &1516506358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516506356} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.7, y: -0.7, z: -0.7} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1516506359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516506356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ebce3593297a094592f1a96d5e9cbed, type: 3} + m_Name: + m_EditorClassIdentifier: + playerHealth: {fileID: 33458251} + orb: {fileID: 2535262335353558127, guid: 7fbb627886736534ba911bf6675933f4, type: 3} + spawnOrb: 1 + spawnTime: 3 + spawnPoints: + - {fileID: 1571986862} + factory: {fileID: 1906920587} +--- !u!114 &1516506360 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516506356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ebce3593297a094592f1a96d5e9cbed, type: 3} + m_Name: + m_EditorClassIdentifier: + playerHealth: {fileID: 33458251} + orb: {fileID: 7205800141201514973, guid: a6916ad5a6c03624cb0d3a6f5bcbbcb1, type: 3} + spawnOrb: 1 + spawnTime: 3 + spawnPoints: + - {fileID: 1159231084} + factory: {fileID: 1906920587} --- !u!850595691 &1523013122 LightingSettings: m_ObjectHideFlags: 0 @@ -7501,6 +7651,36 @@ LightingSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 +--- !u!1 &1571986861 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1571986862} + m_Layer: 0 + m_Name: HealthOrbSpawnPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1571986862 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571986861} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -50, y: 0, z: 50} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1666523284 GameObject: m_ObjectHideFlags: 0 @@ -7927,6 +8107,53 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1838919311} m_CullTransparentMesh: 0 +--- !u!1 &1906920586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1906920588} + - component: {fileID: 1906920587} + m_Layer: 0 + m_Name: OrbFactory + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1906920587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906920586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 249a5d810d5a74844ab587bb9b46c0ee, type: 3} + m_Name: + m_EditorClassIdentifier: + orbPrefab: + - {fileID: 4657511723775529482, guid: 372c1cb97a0b4e540b8d303e12c33815, type: 3} + - {fileID: 7205800141201514973, guid: a6916ad5a6c03624cb0d3a6f5bcbbcb1, type: 3} + - {fileID: 2535262335353558127, guid: 7fbb627886736534ba911bf6675933f4, type: 3} +--- !u!4 &1906920588 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906920586} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.00243, y: 0.8076969, z: 1.67373} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1975464296 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Factory/OrbFactory.cs b/Assets/Scripts/Factory/OrbFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..30ef4836d92b4e5159d61513588ac1ce3ec7d974 --- /dev/null +++ b/Assets/Scripts/Factory/OrbFactory.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class OrbFactory : MonoBehaviour, IFactory +{ + + [SerializeField] + public GameObject[] orbPrefab; + + public GameObject FactoryMethod(int tag) + { + GameObject orb = orbPrefab[tag]; + return orb; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Factory/OrbFactory.cs.meta b/Assets/Scripts/Factory/OrbFactory.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9341a85e3c88e4204f826aed1f27262ef04d47cc --- /dev/null +++ b/Assets/Scripts/Factory/OrbFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 249a5d810d5a74844ab587bb9b46c0ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Managers/OrbManager.cs b/Assets/Scripts/Managers/OrbManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..f8a1550b763f7ff10457708f512aec9f456e87e4 --- /dev/null +++ b/Assets/Scripts/Managers/OrbManager.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class OrbManager : MonoBehaviour +{ + public PlayerHealth playerHealth; + public GameObject orb; + public int spawnOrb; + public float spawnTime = 3f; + public Transform[] spawnPoints; + + [SerializeField] + public MonoBehaviour factory; + IFactory Factory { get { return factory as IFactory; } } + + void Start() + { + //Mengeksekusi fungs Spawn setiap beberapa detik sesui dengan nilai spawnTime + InvokeRepeating("Spawn", spawnTime, spawnTime); + } + + + void Spawn() + { + if (playerHealth.currentHealth <= 0f) + { + return; + } + + int spawnPointIndex = Random.Range(0, spawnPoints.Length); + + // Menduplikasi enemy + Instantiate(Factory.FactoryMethod(spawnOrb), spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation); + + } +} diff --git a/Assets/Scripts/Managers/OrbManager.cs.meta b/Assets/Scripts/Managers/OrbManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0cf75d98b3aa049e5044783a819e756bac4fabae --- /dev/null +++ b/Assets/Scripts/Managers/OrbManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ebce3593297a094592f1a96d5e9cbed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orbs.meta b/Assets/Scripts/Orbs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e1916ec50946684cc98ff2063c8b3000a5eb0ccf --- /dev/null +++ b/Assets/Scripts/Orbs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38f470ab5e93e81459ef5cb668fa6846 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orbs/HealthOrb.cs b/Assets/Scripts/Orbs/HealthOrb.cs new file mode 100644 index 0000000000000000000000000000000000000000..c9bc774db5df4d3b69b798ed872b29b908972f62 --- /dev/null +++ b/Assets/Scripts/Orbs/HealthOrb.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class HealthOrb : MonoBehaviour +{ + public float healthOrbTime = 0.5f; + public int powerUpValue = 10; + Animator anim; + GameObject player; + PlayerHealth playerHealth; + float timer; + // Start is called before the first frame update + void Awake() + { + player = GameObject.FindGameObjectWithTag("Player"); + playerHealth = player.GetComponent<PlayerHealth>(); + anim = GetComponent<Animator>(); + } + + // Update is called once per frame + void Update() + { + if (timer >= healthOrbTime) + { + // hilang + } + } + + void Taken() + { + playerHealth.TakePowerUp(powerUpValue); + } +} diff --git a/Assets/Scripts/Orbs/HealthOrb.cs.meta b/Assets/Scripts/Orbs/HealthOrb.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cfaf97fa756e4c161128380e37db093ec5325c9c --- /dev/null +++ b/Assets/Scripts/Orbs/HealthOrb.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 764e68913424eeb419dd38af7e60ff61 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orbs/PowerOrb.cs b/Assets/Scripts/Orbs/PowerOrb.cs new file mode 100644 index 0000000000000000000000000000000000000000..ece06d3f35522545b901479ba2f1e91b80f77bbe --- /dev/null +++ b/Assets/Scripts/Orbs/PowerOrb.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PowerOrb : MonoBehaviour +{ + public float powerOrbTime = 0.5f; + public int powerUpValue = 10; + Animator anim; + GameObject player; + PlayerPower playerPower; + float timer; + // Start is called before the first frame update + void Awake() + { + player = GameObject.FindGameObjectWithTag("Player"); + playerPower = player.GetComponent<PlayerPower>(); + anim = GetComponent<Animator>(); + } + + // Update is called once per frame + void Update() + { + if (timer >= powerOrbTime) + { + // hilang + } + } + + void Taken() + { + playerPower.TakePowerUp(powerUpValue); + } +} diff --git a/Assets/Scripts/Orbs/PowerOrb.cs.meta b/Assets/Scripts/Orbs/PowerOrb.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..08f2a9cd524816b8797560ce59b1bfb1ec2b2a79 --- /dev/null +++ b/Assets/Scripts/Orbs/PowerOrb.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25d572023fc8dca439d7bd171c970c34 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Orbs/SpeedOrb.cs b/Assets/Scripts/Orbs/SpeedOrb.cs new file mode 100644 index 0000000000000000000000000000000000000000..6fc5fbd4c2410cd579dd5fa2c5840dc216cb9d96 --- /dev/null +++ b/Assets/Scripts/Orbs/SpeedOrb.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class SpeedOrb : MonoBehaviour +{ + public float speedOrbTime = 0.5f; + public int powerUpValue = 10; + Animator anim; + GameObject player; + PlayerSpeed playerSpeed; + float timer; + // Start is called before the first frame update + void Awake() + { + player = GameObject.FindGameObjectWithTag("Player"); + playerSpeed = player.GetComponent<PlayerSpeed>(); + anim = GetComponent<Animator>(); + } + + // Update is called once per frame + void Update() + { + if (timer >= speedOrbTime) + { + // hilang + } + } + + void Taken() + { + playerSpeed.TakePowerUp(powerUpValue); + } +} diff --git a/Assets/Scripts/Orbs/SpeedOrb.cs.meta b/Assets/Scripts/Orbs/SpeedOrb.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2c811bd55af4852fb47153dff68e5ad5564c663a --- /dev/null +++ b/Assets/Scripts/Orbs/SpeedOrb.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d104f8fb432c7ba41998f84129eedf56 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/PlayerHealth.cs b/Assets/Scripts/Player/PlayerHealth.cs index d4392223edbb8576ed19c7724aa195c58fff15e3..11ce8502abfcc4f565a167e76433f951996d0874 100644 --- a/Assets/Scripts/Player/PlayerHealth.cs +++ b/Assets/Scripts/Player/PlayerHealth.cs @@ -68,6 +68,12 @@ public class PlayerHealth : MonoBehaviour } } + public void TakePowerUp(int amount) + { + currentHealth += amount; + healthSlider.value = currentHealth; + } + void Death() { diff --git a/Assets/Scripts/Player/PlayerPower.cs b/Assets/Scripts/Player/PlayerPower.cs index d8b5069ecd74332fbb85acc7eb50f65450b504b9..8d2ac048da0df82859eee1ce1dc5bae4b80f3ecc 100644 --- a/Assets/Scripts/Player/PlayerPower.cs +++ b/Assets/Scripts/Player/PlayerPower.cs @@ -5,10 +5,10 @@ using UnityEngine.SceneManagement; public class PlayerPower : MonoBehaviour { - public int startingPower = 100; + public int startingPower = 10; public int currentPower; Animator anim; - public Slider healthSlider; + public Slider powerSlider; public Image damageImage; public AudioClip deathClip; AudioSource playerAudio; @@ -32,4 +32,10 @@ public class PlayerPower : MonoBehaviour { } + + public void TakePowerUp(int amount) + { + currentPower += amount; + powerSlider.value = currentPower; + } } diff --git a/Assets/Scripts/Player/PlayerSpeed.cs b/Assets/Scripts/Player/PlayerSpeed.cs index c8da1463991a84bd64ce951815a66500273c967b..9248013bc32d412a40b764e1e4820a4e837b4159 100644 --- a/Assets/Scripts/Player/PlayerSpeed.cs +++ b/Assets/Scripts/Player/PlayerSpeed.cs @@ -5,10 +5,10 @@ using UnityEngine.SceneManagement; public class PlayerSpeed : MonoBehaviour { - public int startingSpeed = 100; + public int startingSpeed = 10; public int currentSpeed; Animator anim; - public Slider healthSlider; + public Slider speedSlider; public Image damageImage; public AudioClip deathClip; AudioSource playerAudio; @@ -32,4 +32,10 @@ public class PlayerSpeed : MonoBehaviour { } + + public void TakePowerUp(int amount) + { + currentSpeed += amount; + speedSlider.value = currentSpeed; + } }