diff --git a/Grapplers/Assets/Prefabs/Destination.prefab b/Grapplers/Assets/Prefabs/Destination.prefab new file mode 100644 index 0000000000000000000000000000000000000000..924296782c528a534c49069692c6840eeb7407f9 --- /dev/null +++ b/Grapplers/Assets/Prefabs/Destination.prefab @@ -0,0 +1,107 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7386042570589735985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7318546470173040099} + - component: {fileID: 2831629449019255975} + - component: {fileID: 6069366083396026986} + - component: {fileID: 4364833759171634380} + - component: {fileID: 1619024851106919088} + m_Layer: 0 + m_Name: Destination + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7318546470173040099 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7386042570589735985} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.9179742, y: -2.154938, z: -2.2592232} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2831629449019255975 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7386042570589735985} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6069366083396026986 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7386042570589735985} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &4364833759171634380 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7386042570589735985} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1619024851106919088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7386042570589735985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8225955bc035af94fbe9dc842e9fcb14, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Grapplers/Assets/Prefabs/Destination.prefab.meta b/Grapplers/Assets/Prefabs/Destination.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..52fcaf0d585d17d743b9171258e4361e76bfd0ac --- /dev/null +++ b/Grapplers/Assets/Prefabs/Destination.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 66283085b8f859848a9ff29aa3a25f85 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Grapplers/Assets/Prefabs/Spike.prefab b/Grapplers/Assets/Prefabs/Spike.prefab new file mode 100644 index 0000000000000000000000000000000000000000..2bbf5dcb712cd5f6bc2852df1fbb955d96d4efb6 --- /dev/null +++ b/Grapplers/Assets/Prefabs/Spike.prefab @@ -0,0 +1,107 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8513098832299098376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8513098832299098375} + - component: {fileID: 8513098832299098372} + - component: {fileID: 8513098832299098373} + - component: {fileID: 8513098832299098378} + - component: {fileID: 8513098832299098379} + m_Layer: 0 + m_Name: Spike + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8513098832299098375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8513098832299098376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -8.49, z: -4.02} + m_LocalScale: {x: 1, y: 1, z: 2.5986} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8513098832299098372 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8513098832299098376} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8513098832299098373 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8513098832299098376} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &8513098832299098378 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8513098832299098376} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &8513098832299098379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8513098832299098376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 43ce0e1e9023792439f8750c16f19142, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Grapplers/Assets/Prefabs/Spike.prefab.meta b/Grapplers/Assets/Prefabs/Spike.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..45a1605339582e1c9bf091c3f9b333b2dc9f2308 --- /dev/null +++ b/Grapplers/Assets/Prefabs/Spike.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 89efa167b2aa0c142b4e7291a348826c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Grapplers/Assets/Scripts/Destination.cs b/Grapplers/Assets/Scripts/Destination.cs new file mode 100644 index 0000000000000000000000000000000000000000..52c12ed18c1cb38da8bfb02fd6f7939079fdf306 --- /dev/null +++ b/Grapplers/Assets/Scripts/Destination.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Destination : MonoBehaviour +{ + private void OnCollisionEnter(Collision collision) + { + if (collision.gameObject.layer == LayerMask.NameToLayer("Player")) + { + GameManager.inst.GameClear(); + } + } +} diff --git a/Grapplers/Assets/Scripts/Destination.cs.meta b/Grapplers/Assets/Scripts/Destination.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a9812ebcb8afe5e9d520d1e8c6438376104f1743 --- /dev/null +++ b/Grapplers/Assets/Scripts/Destination.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8225955bc035af94fbe9dc842e9fcb14 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Grapplers/Assets/Scripts/GameManager.cs b/Grapplers/Assets/Scripts/GameManager.cs index 42bb3cd6cb65441df8e8e755a8c30d936b05fef3..0dbae013e6b7e0c433c5e4a8355571964f8329ce 100644 --- a/Grapplers/Assets/Scripts/GameManager.cs +++ b/Grapplers/Assets/Scripts/GameManager.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.SceneManagement; public class GameManager : SingletonBehaviour<GameManager> { @@ -19,4 +20,28 @@ public class GameManager : SingletonBehaviour<GameManager> } public Action<float> OnMaxHeightChanged; + + public void GameOver() + { + Debug.Log("Game Over!"); + IngameUIManager.inst.gameObject.SetActive(false); + StartCoroutine(GameOverRoutine()); + } + + private IEnumerator GameOverRoutine() + { + yield return new WaitForSeconds(5); + SceneManager.LoadScene("Ingame", LoadSceneMode.Single); + } + + public void GameClear() + { + StartCoroutine(GameClearRoutine()); + } + + private IEnumerator GameClearRoutine() + { + yield return new WaitForSeconds(5); + SceneManager.LoadScene("Main", LoadSceneMode.Single); + } } diff --git a/Grapplers/Assets/Scripts/PlayerController.cs b/Grapplers/Assets/Scripts/PlayerController.cs index 036154c8f2ab68d468f2432dbfd5a7a9f650dc9f..5bbedb7362d81fa28c966213aab6327006ed6f0d 100644 --- a/Grapplers/Assets/Scripts/PlayerController.cs +++ b/Grapplers/Assets/Scripts/PlayerController.cs @@ -43,6 +43,8 @@ public class PlayerController : MonoBehaviour { _health = value; IngameUIManager.inst.UpdatePlayerHealthUI(MaxHealth, _health); + if (_health <= 0) + GameManager.inst.GameOver(); } } diff --git a/Grapplers/Assets/Scripts/Spike.cs b/Grapplers/Assets/Scripts/Spike.cs new file mode 100644 index 0000000000000000000000000000000000000000..cfa80c5bc1440e2c211cfc6ae029760fdeb0d27d --- /dev/null +++ b/Grapplers/Assets/Scripts/Spike.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Spike : MonoBehaviour +{ + private void OnTriggerEnter(Collider other) + { + if (other.gameObject.layer == LayerMask.NameToLayer("Player")) + { + other.transform.GetComponent<PlayerController>().GetDamaged(10); + } + } +} diff --git a/Grapplers/Assets/Scripts/Spike.cs.meta b/Grapplers/Assets/Scripts/Spike.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3ef89a92f8e0ee7f4e08d03359e6f65857205684 --- /dev/null +++ b/Grapplers/Assets/Scripts/Spike.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43ce0e1e9023792439f8750c16f19142 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Grapplers/Assets/Scripts/WeaponBehaviour.cs b/Grapplers/Assets/Scripts/WeaponBehaviour.cs index 563cccaf45b8f14089bdceb3a4d02b80b2223ae7..e1845a04bd0b573371dcca020bf7169b4671ea40 100644 --- a/Grapplers/Assets/Scripts/WeaponBehaviour.cs +++ b/Grapplers/Assets/Scripts/WeaponBehaviour.cs @@ -59,8 +59,8 @@ public class WeaponBehaviour : MonoBehaviour } if (Input.GetKeyDown(KeyCode.LeftShift)) { - weapon.UseSkill(); - weaponAudioRRs[weaponIndex].Play(); + if (weapon.UseSkill()) + weaponAudioRRs[weaponIndex].Play(); } } @@ -75,7 +75,7 @@ public class WeaponBehaviour : MonoBehaviour public interface IWeapon { bool UseWeapon(Enemy[] hitEnemies); - void UseSkill(); + bool UseSkill(); Enemy[] WeaponLockOn(LayerMask enemyMask, LayerMask blockMask); void UpdateWeapon(); } @@ -137,9 +137,9 @@ public class Gun : IWeapon return hitEnemies.ToArray(); } - public void UseSkill() + public bool UseSkill() { - + return false; } public void UpdateWeapon() @@ -205,12 +205,13 @@ public class Knife : IWeapon return hitEnemies.ToArray(); } - public void UseSkill() + public bool UseSkill() { if (skillTimer > 0) - return; + return false; GameManager.inst.StartCoroutine(SkillRoutine()); skillTimer = skillTimeInterval; + return true; } public void UpdateWeapon()