diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index a8e85b2..95eed42 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -251,6 +251,7 @@ GameObject: - component: {fileID: 7857072580326449292} - component: {fileID: 1437407097293080706} - component: {fileID: 8985924327125149956} + - component: {fileID: 3824427059318413399} - component: {fileID: 397169322893853401} - component: {fileID: 1198108720433238150} - component: {fileID: 3263211181679880648} @@ -384,6 +385,20 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 80 m_CollisionDetection: 0 +--- !u!114 &3824427059318413399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9016311960615966999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9b2638aeb16f76429ff062f38f6d0be, type: 3} + m_Name: + m_EditorClassIdentifier: + maxHp: 100 + hp: 0 --- !u!114 &397169322893853401 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Enemies/EyeEnemy.cs b/Assets/Scripts/Enemies/EyeEnemy.cs new file mode 100644 index 0000000..3d20223 --- /dev/null +++ b/Assets/Scripts/Enemies/EyeEnemy.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +public class EyeEnemy : Enemy +{ + public float _hp = 100; + + void Start() { + hp = _hp; + } + + void Update() { + + } +} diff --git a/Assets/Scripts/Enemies/EyeEnemy.cs.meta b/Assets/Scripts/Enemies/EyeEnemy.cs.meta new file mode 100644 index 0000000..48848fd --- /dev/null +++ b/Assets/Scripts/Enemies/EyeEnemy.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 48cddee1e4d4837418957a7b4e6315c8 \ No newline at end of file diff --git a/Assets/Scripts/Game/DeployController.cs b/Assets/Scripts/Game/DeployController.cs index 94f20b3..5fcf31f 100644 --- a/Assets/Scripts/Game/DeployController.cs +++ b/Assets/Scripts/Game/DeployController.cs @@ -4,8 +4,7 @@ using UnityEngine.SceneManagement; public class DeployController : MonoBehaviour { public void Start() { - Cursor.lockState = CursorLockMode.None; - Cursor.visible = true; + GameController.SetCursorState(true); } public void Deploy(string sceneName) { diff --git a/Assets/Scripts/Game/GameController.cs b/Assets/Scripts/Game/GameController.cs index e5405f8..e208dd2 100644 --- a/Assets/Scripts/Game/GameController.cs +++ b/Assets/Scripts/Game/GameController.cs @@ -3,11 +3,13 @@ using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEngine; +using UnityEngine.SceneManagement; using Random = UnityEngine.Random; public class GameController : MonoBehaviour { public static GameController i; + public SceneAsset deployScene; public List levels; public List enemies; @@ -47,6 +49,10 @@ public class GameController : MonoBehaviour } + public void OnLevelFailed(string sceneName, float timeSpent) { + + } + EnemyInfo SelectEnemyWeighted() { float sumWeights = enemies.Sum(enemy => enemy.weight); float r = Random.Range(0, sumWeights); @@ -57,6 +63,15 @@ public class GameController : MonoBehaviour } return enemies[^1]; } + + public void LoadDeployScene() { + SceneManager.LoadScene(deployScene.name); + } + + public static void SetCursorState(bool locked) { + Cursor.lockState = locked ? CursorLockMode.Locked : CursorLockMode.None; + Cursor.visible = !locked; + } } [Serializable] diff --git a/Assets/Scripts/Game/LevelController.cs b/Assets/Scripts/Game/LevelController.cs index b1909dd..364031f 100644 --- a/Assets/Scripts/Game/LevelController.cs +++ b/Assets/Scripts/Game/LevelController.cs @@ -1,14 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; -using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; using Random = UnityEngine.Random; public class LevelController : MonoBehaviour { - public SceneAsset deployScene; public List spawnPoints; List aliveEnemies; @@ -33,10 +31,15 @@ public class LevelController : MonoBehaviour public void Update() { if (aliveEnemies.All(enemy => enemy == null)) { GameController.i.OnLevelClear(SceneManager.GetActiveScene().name, timeSpent); - SceneManager.LoadScene(deployScene.name); + GameController.i.LoadDeployScene(); } timeSpent += Time.deltaTime; } + + public void OnPlayerDie() { + GameController.i.OnLevelFailed(SceneManager.GetActiveScene().name, timeSpent); + GameController.i.LoadDeployScene(); + } } [Serializable] diff --git a/Assets/Scripts/Player/CameraMovement.cs b/Assets/Scripts/Player/CameraMovement.cs index c3dac25..8571103 100644 --- a/Assets/Scripts/Player/CameraMovement.cs +++ b/Assets/Scripts/Player/CameraMovement.cs @@ -12,8 +12,7 @@ public class CameraMovement : MonoBehaviour void Start() { cam = GetComponentInChildren(); - Cursor.lockState = CursorLockMode.Locked; - Cursor.visible = false; + GameController.SetCursorState(true); } void Update() { diff --git a/Assets/Scripts/Player/Player.cs b/Assets/Scripts/Player/Player.cs new file mode 100644 index 0000000..32d0c33 --- /dev/null +++ b/Assets/Scripts/Player/Player.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +public class Player : MonoBehaviour +{ + public float maxHp = 100; + + [SerializeField] float hp; + + void Start() { + hp = maxHp; + } + + public void DealDamage(float damage) { + hp -= damage; + if (hp <= 0) { + FindAnyObjectByType().OnPlayerDie(); + } + } +} diff --git a/Assets/Scripts/Player/Player.cs.meta b/Assets/Scripts/Player/Player.cs.meta new file mode 100644 index 0000000..031c66d --- /dev/null +++ b/Assets/Scripts/Player/Player.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f9b2638aeb16f76429ff062f38f6d0be \ No newline at end of file