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()