diff --git a/Assets/Prefabs/Chest.prefab b/Assets/Prefabs/Chest.prefab index f592e21..cced584 100644 --- a/Assets/Prefabs/Chest.prefab +++ b/Assets/Prefabs/Chest.prefab @@ -296,11 +296,11 @@ MonoBehaviour: m_GameObject: {fileID: 7047733282028940674} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ded23e667cffbfd46b2633ae22204797, type: 3} + m_Script: {fileID: 11500000, guid: d25d392c71acf0a43a02538234591802, type: 3} m_Name: m_EditorClassIdentifier: animator: {fileID: 7277787345195142390} - _treasureSO: {fileID: 11400000, guid: 1f2fcda5f0230034eba2b2cfd9d40897, type: 2} + _treasureSO: {fileID: 11400000, guid: d40fd30a10b87f9438f7ac341613dfa2, type: 2} --- !u!95 &7277787345195142390 Animator: serializedVersion: 7 diff --git a/Assets/Prefabs/SciptableObjects.meta b/Assets/Prefabs/SciptableObjects.meta new file mode 100644 index 0000000..f2894e3 --- /dev/null +++ b/Assets/Prefabs/SciptableObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad356843f4c7ac7459d06943f0ece1a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/SciptableObjects/Coin.asset b/Assets/Prefabs/SciptableObjects/Coin.asset new file mode 100644 index 0000000..93c6234 --- /dev/null +++ b/Assets/Prefabs/SciptableObjects/Coin.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81dec0bb25670ad4db25ef9ce940b721, type: 3} + m_Name: Coin + m_EditorClassIdentifier: Assembly-CSharp::TreasureSO + Image: {fileID: 8331088274507185253, guid: fb6dbbc81180d204bb4ff36aae48fbc9, type: 3} + Treasure: 0 diff --git a/Assets/Prefabs/SciptableObjects/Coin.asset.meta b/Assets/Prefabs/SciptableObjects/Coin.asset.meta new file mode 100644 index 0000000..b7fb8cf --- /dev/null +++ b/Assets/Prefabs/SciptableObjects/Coin.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eabbfa3560e70f942a5ae19872153053 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/SciptableObjects/Key.asset b/Assets/Prefabs/SciptableObjects/Key.asset new file mode 100644 index 0000000..e2dbdf6 --- /dev/null +++ b/Assets/Prefabs/SciptableObjects/Key.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81dec0bb25670ad4db25ef9ce940b721, type: 3} + m_Name: Key + m_EditorClassIdentifier: Assembly-CSharp::TreasureSO + Image: {fileID: 7818119699687691340, guid: fb6dbbc81180d204bb4ff36aae48fbc9, type: 3} + Treasure: 1 diff --git a/Assets/Prefabs/SciptableObjects/Key.asset.meta b/Assets/Prefabs/SciptableObjects/Key.asset.meta new file mode 100644 index 0000000..e11a4f7 --- /dev/null +++ b/Assets/Prefabs/SciptableObjects/Key.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d40fd30a10b87f9438f7ac341613dfa2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Level 1.unity b/Assets/Scenes/Level 1.unity index 46468b4..de62988 100644 --- a/Assets/Scenes/Level 1.unity +++ b/Assets/Scenes/Level 1.unity @@ -2824,9 +2824,11 @@ MonoBehaviour: m_GameObject: {fileID: 410068208} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ff6c3960de97db14f89d6633159838dc, type: 3} + m_Script: {fileID: 11500000, guid: ae8d1d59de450ae4e8be540c1a9d37ff, type: 3} m_Name: m_EditorClassIdentifier: + _totalCoins: {fileID: 1923750336} + _keyIcon: {fileID: 0} --- !u!1 &411449914 GameObject: m_ObjectHideFlags: 0 @@ -3788,7 +3790,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b559b8223232dd0448e50bdfa6649228, type: 3} + m_Sprite: {fileID: 8331088274507185253, guid: fb6dbbc81180d204bb4ff36aae48fbc9, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -3833,9 +3835,11 @@ MonoBehaviour: m_GameObject: {fileID: 679297301} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3ead8e41e973dd43b93a8638ea30a36, type: 3} + m_Script: {fileID: 11500000, guid: 5b7fcd68a9cc8f64bbc27a6eb9ec68a1, type: 3} m_Name: m_EditorClassIdentifier: + _openDoor: {fileID: -1152093481, guid: 7c2d6acd22d2d0c40b84d99967afb42a, type: 3} + _debugMode: 0 --- !u!61 &679297303 BoxCollider2D: m_ObjectHideFlags: 0 @@ -5498,6 +5502,51 @@ Transform: m_CorrespondingSourceObject: {fileID: 7345322822309755345, guid: b38f313f4560587478b6bc53fc9aaf5c, type: 3} m_PrefabInstance: {fileID: 1149735060} m_PrefabAsset: {fileID: 0} +--- !u!1 &1173510571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1173510573} + - component: {fileID: 1173510572} + m_Layer: 0 + m_Name: GameManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1173510572 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1173510571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f37247791475bc4bb2887347a0f905a, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::GameManager + _debugMode: 0 +--- !u!4 &1173510573 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1173510571} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.43318, y: -4.54724, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1173618891 GameObject: m_ObjectHideFlags: 0 @@ -5790,7 +5839,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: c246988591b5dda41aa966d3c73bac73, type: 3} + m_Sprite: {fileID: 7818119699687691340, guid: fb6dbbc81180d204bb4ff36aae48fbc9, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -6203,6 +6252,54 @@ Transform: m_CorrespondingSourceObject: {fileID: 7345322822309755345, guid: b38f313f4560587478b6bc53fc9aaf5c, type: 3} m_PrefabInstance: {fileID: 1325345547} m_PrefabAsset: {fileID: 0} +--- !u!1 &1331708330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1331708332} + - component: {fileID: 1331708331} + m_Layer: 0 + m_Name: NoiseSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1331708331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1331708330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 897c2741fe0100e4990a32480e24d9ae, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::NoiseSystem + _debugMode: 0 + _enemyLayer: + serializedVersion: 2 + m_Bits: 128 +--- !u!4 &1331708332 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1331708330} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 18.38036, y: -4.00387, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1341375639 stripped Transform: m_CorrespondingSourceObject: {fileID: 8121927806228425505, guid: ba1868bb4c26f6d41830aada771e3006, type: 3} @@ -7111,6 +7208,7 @@ MonoBehaviour: _spawnPoint: {fileID: 5855359588613562703} _hammerPrefab: {fileID: 6648495433791226095, guid: 111653ffd63dcc64a91ceb9c5d52aa04, type: 3} _throwSpeed: 5 + _throwCooldown: 1.5 --- !u!114 &1627236062 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7123,19 +7221,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 45d7bd38990996d4488582b07cbe7e40, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::InputManager ---- !u!114 &1627236066 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681564194} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 907b91debf5d5864780e9466f4017f38, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::PlayerState - Lives: 3 --- !u!1 &1638752927 GameObject: m_ObjectHideFlags: 0 @@ -7146,7 +7231,7 @@ GameObject: m_Component: - component: {fileID: 1638752929} - component: {fileID: 1638752928} - m_Layer: 0 + m_Layer: 7 m_Name: GoblinsSpawnPoint m_TagString: Untagged m_Icon: {fileID: 0} @@ -7955,6 +8040,52 @@ Transform: - {fileID: 1261849835} m_Father: {fileID: 1173618893} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2042290050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2042290052} + - component: {fileID: 2042290051} + m_Layer: 0 + m_Name: LevelManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2042290051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2042290050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 95776c7bbfb13d646b34788f8187536f, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::LevelManager + _debugMode: 0 + _doorReference: {fileID: 679297302} +--- !u!4 &2042290052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2042290050} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.43318, y: -4.54724, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &2065311631 stripped Transform: m_CorrespondingSourceObject: {fileID: 7345322822309755345, guid: b38f313f4560587478b6bc53fc9aaf5c, type: 3} @@ -8365,6 +8496,18 @@ PrefabInstance: propertyPath: _spawnPoint value: objectReference: {fileID: 461379296} + - target: {fileID: 1693252312754102175, guid: a7f273d812293e54d92972f62e1f0159, type: 3} + propertyPath: _regularSprite + value: + objectReference: {fileID: 21300000, guid: 618309f12a7ca8b47b9aac8c7e39fc07, type: 3} + - target: {fileID: 1693252312754102175, guid: a7f273d812293e54d92972f62e1f0159, type: 3} + propertyPath: _noHammerSprite + value: + objectReference: {fileID: 21300000, guid: c7266c68d1eb5a34882171399d35bba5, type: 3} + - target: {fileID: 1693252312754102175, guid: a7f273d812293e54d92972f62e1f0159, type: 3} + propertyPath: _mapLayer.m_Bits + value: 8 + objectReference: {fileID: 0} - target: {fileID: 3156624200786225141, guid: a7f273d812293e54d92972f62e1f0159, type: 3} propertyPath: m_Layer value: 8 @@ -8442,9 +8585,6 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 3931708971405200045, guid: a7f273d812293e54d92972f62e1f0159, type: 3} insertIndex: -1 addedObject: {fileID: 1627236062} - - targetCorrespondingSourceObject: {fileID: 3931708971405200045, guid: a7f273d812293e54d92972f62e1f0159, type: 3} - insertIndex: -1 - addedObject: {fileID: 1627236066} m_SourcePrefab: {fileID: 100100000, guid: a7f273d812293e54d92972f62e1f0159, type: 3} --- !u!4 &5855359588613562703 stripped Transform: @@ -8460,3 +8600,6 @@ SceneRoots: - {fileID: 1173618893} - {fileID: 1123299336} - {fileID: 1269535137} + - {fileID: 1173510573} + - {fileID: 2042290052} + - {fileID: 1331708332} diff --git a/Assets/Scripts/Controllers/PlayerController.cs b/Assets/Scripts/Controllers/PlayerController.cs index 66d061e..b92398d 100644 --- a/Assets/Scripts/Controllers/PlayerController.cs +++ b/Assets/Scripts/Controllers/PlayerController.cs @@ -17,6 +17,7 @@ public class PlayerController : Character private InputManager _inputManager; private PlayerState _playerState; private HammerThrower _hammerThrower; + private Vector2 _currentMovement; private void Awake() { @@ -25,6 +26,7 @@ public class PlayerController : Character _hammerThrower = GetComponent(); _inputManager.OnFire += OnFireButtonPressed; + _inputManager.OnMovementChanged += OnMovementChanged; base.Init(); } @@ -38,6 +40,15 @@ public class PlayerController : Character _inputManager.OnDisable(); } + private void OnDestroy() + { + if (_inputManager != null) + { + _inputManager.OnFire -= OnFireButtonPressed; + _inputManager.OnMovementChanged -= OnMovementChanged; + } + } + private void Update() { if (_hammer == null && !_isHoldingHammer) @@ -46,11 +57,15 @@ public class PlayerController : Character _isHoldingHammer = true; } - Vector2 move = _inputManager.Movement; - MoveTo(move.x, isAllowVertical ? move.y : 0); + MoveTo(_currentMovement.x, isAllowVertical ? _currentMovement.y : 0); _hammerThrower.SetFacingDirection(_facingRight); } + private void OnMovementChanged(Vector2 movement) + { + _currentMovement = movement; + } + private void OnFireButtonPressed() { if (_hammerThrower.CanThrow) diff --git a/Assets/Scripts/Managers/InputManager.cs b/Assets/Scripts/Managers/InputManager.cs index 9a57e2d..66b8488 100644 --- a/Assets/Scripts/Managers/InputManager.cs +++ b/Assets/Scripts/Managers/InputManager.cs @@ -7,6 +7,7 @@ public class InputManager : MonoBehaviour private InputActions _actions; public Vector2 Movement { get; private set; } + public event Action OnMovementChanged; public event Action OnFire; private void Awake() @@ -14,6 +15,7 @@ public class InputManager : MonoBehaviour _actions = new InputActions(); // Movement + _actions.Player.Movement.started += OnMovementPerformed; _actions.Player.Movement.performed += OnMovementPerformed; _actions.Player.Movement.canceled += OnMovementCanceled; @@ -31,16 +33,21 @@ public class InputManager : MonoBehaviour public void OnDisable() { - _actions.Disable(); + if (_actions != null) + { + _actions.Disable(); + } } private void OnMovementPerformed(InputAction.CallbackContext ctx) { Movement = ctx.ReadValue(); + OnMovementChanged?.Invoke(Movement); } private void OnMovementCanceled(InputAction.CallbackContext ctx) { Movement = Vector2.zero; + OnMovementChanged?.Invoke(Movement); } }