From 07626aa550118f1050c5bb0a3b27869978930ed6 Mon Sep 17 00:00:00 2001 From: Hazim Bin Ijaz Date: Wed, 27 Aug 2025 17:41:31 +0500 Subject: [PATCH] Added new levels --- .../DreamscapeCastle/Scenes/Gameplay.unity | 58 +++++++++++++++++-- Assets/ScriptableObjects/Levels/Level 1.asset | 4 +- Assets/ScriptableObjects/Levels/Level 2.asset | 4 +- Assets/ScriptableObjects/Levels/Level 3.asset | 4 +- Assets/Scripts/GameplayManager.cs | 36 +++++++++--- 5 files changed, 88 insertions(+), 18 deletions(-) diff --git a/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity b/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity index 2e37ac21..ccec5931 100644 --- a/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity +++ b/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity @@ -179189,6 +179189,11 @@ PrefabInstance: propertyPath: checkInterval value: 0.25 objectReference: {fileID: 0} + - target: {fileID: 5638609916812975040, guid: 76d8d30b544ba984ea83078979aad6ba, + type: 3} + propertyPath: targetLevel + value: + objectReference: {fileID: 1147018635} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -187900,7 +187905,7 @@ PrefabInstance: - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, type: 3} propertyPath: m_LocalPosition.y - value: 0 + value: -18.69 objectReference: {fileID: 0} - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, type: 3} @@ -187963,11 +187968,21 @@ PrefabInstance: value: objectReference: {fileID: 4006626876238256025, guid: a205c5f30032031428dae83c4a2f2af8, type: 3} + - target: {fileID: 5259401069666905950, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: targetLevel + value: + objectReference: {fileID: 1206645253} - target: {fileID: 5259401069666905950, guid: 7ff947d621876834dacc2c5de97d2706, type: 3} propertyPath: levelIndexToStart value: 1 objectReference: {fileID: 0} + - target: {fileID: 8380645208396581343, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: spawner + value: + objectReference: {fileID: 1206645255} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -187991,6 +188006,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7b3075cc0e92b0f46ac59e94d973e996, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1206645255 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4437790714047512686, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + m_PrefabInstance: {fileID: 1206645251} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9274e1d861dffcc4f828e772e0d685d2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1207237923 PrefabInstance: m_ObjectHideFlags: 0 @@ -226431,17 +226458,17 @@ PrefabInstance: - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, type: 3} propertyPath: m_LocalPosition.x - value: 88.4 + value: 94.87 objectReference: {fileID: 0} - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, type: 3} propertyPath: m_LocalPosition.y - value: 0 + value: -19.85 objectReference: {fileID: 0} - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, type: 3} propertyPath: m_LocalPosition.z - value: 164.5 + value: 164.28 objectReference: {fileID: 0} - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, type: 3} @@ -226483,6 +226510,16 @@ PrefabInstance: propertyPath: m_Name value: Level 3 objectReference: {fileID: 0} + - target: {fileID: 3589309351123794781, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: spawner + value: + objectReference: {fileID: 1425440679} + - target: {fileID: 4773734342117882955, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: targetLevel + value: + objectReference: {fileID: 1425440677} - target: {fileID: 4773734342117882955, guid: e30d7852dbe0cea49856effa5b786166, type: 3} propertyPath: levelIndexToStart @@ -226511,6 +226548,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d3d3d65dc057e5d469b7ecb693589516, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1425440679 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3986987885258511227, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + m_PrefabInstance: {fileID: 1425440675} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9274e1d861dffcc4f828e772e0d685d2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1426598727 PrefabInstance: m_ObjectHideFlags: 0 @@ -294353,6 +294402,7 @@ MonoBehaviour: - {fileID: 1147018635} - {fileID: 1206645253} - {fileID: 1425440677} + levelStartTriggers: [] --- !u!4 &1755519505 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/ScriptableObjects/Levels/Level 1.asset b/Assets/ScriptableObjects/Levels/Level 1.asset index f346e524..d031168b 100644 --- a/Assets/ScriptableObjects/Levels/Level 1.asset +++ b/Assets/ScriptableObjects/Levels/Level 1.asset @@ -13,8 +13,8 @@ MonoBehaviour: m_Name: Level 1 m_EditorClassIdentifier: objectives: - - Go to the marked objective - - Kill all the enemies + - 'LEVEL 1: Go to the marked objective' + - 'LEVEL 1: Kill all the enemies' startObjectiveIndex: 0 autoAdvanceOnComplete: 1 clearWavesObjectiveIndex: -1 diff --git a/Assets/ScriptableObjects/Levels/Level 2.asset b/Assets/ScriptableObjects/Levels/Level 2.asset index 77f2875d..05d9c2b5 100644 --- a/Assets/ScriptableObjects/Levels/Level 2.asset +++ b/Assets/ScriptableObjects/Levels/Level 2.asset @@ -13,8 +13,8 @@ MonoBehaviour: m_Name: Level 2 m_EditorClassIdentifier: objectives: - - Go to the marked objective - - Kill all the enemies + - 'LEVEL2: Go to the marked objective' + - 'LEVEL 2: Kill all the enemies' startObjectiveIndex: 0 autoAdvanceOnComplete: 1 clearWavesObjectiveIndex: -1 diff --git a/Assets/ScriptableObjects/Levels/Level 3.asset b/Assets/ScriptableObjects/Levels/Level 3.asset index ed0de18b..c526d6e4 100644 --- a/Assets/ScriptableObjects/Levels/Level 3.asset +++ b/Assets/ScriptableObjects/Levels/Level 3.asset @@ -13,8 +13,8 @@ MonoBehaviour: m_Name: Level 3 m_EditorClassIdentifier: objectives: - - Go to the marked objective - - Kill all the enemies + - 'LEVEL 3: Go to the marked objective' + - 'LEVEL 3: Kill all the enemies' startObjectiveIndex: 0 autoAdvanceOnComplete: 1 clearWavesObjectiveIndex: -1 diff --git a/Assets/Scripts/GameplayManager.cs b/Assets/Scripts/GameplayManager.cs index d77bedf7..c4328f44 100644 --- a/Assets/Scripts/GameplayManager.cs +++ b/Assets/Scripts/GameplayManager.cs @@ -11,7 +11,7 @@ public class GameplayManager : MonoBehaviour private int currentLevelIndex = -1; private Level currentLevel; - + [SerializeField] private List levelStartTriggers; private void Awake() { if (Instance == null) @@ -31,8 +31,17 @@ public class GameplayManager : MonoBehaviour } var upcomingLevel = levels[0]; ObjectiveManager.Instance.SetList(upcomingLevel.config.objectives); + EnableOnlyTrigger(0); } + private void EnableOnlyTrigger(int index) + { + if (levelStartTriggers == null) return; + for (int i = 0; i < levelStartTriggers.Count; i++) + if (levelStartTriggers[i] != null) + levelStartTriggers[i].SetActive(i == index); + } + public void StartLevel(int index) { if (index < 0 || index >= levels.Count) @@ -68,18 +77,29 @@ public class GameplayManager : MonoBehaviour // If you want to auto-progress: int next = currentLevelIndex + 1; - var upcomingLevel = levels[currentLevelIndex]; - ObjectiveManager.Instance.SetList(upcomingLevel.config.objectives); + // var upcomingLevel = levels[currentLevelIndex]; + // ObjectiveManager.Instance.SetList(upcomingLevel.config.objectives); if (next < levels.Count) { - StartLevel(next); - } - else - { - Debug.Log("GameplayManager: All levels completed!"); + var upcomingLevel = levels[next]; + ObjectiveManager.Instance.SetList( + upcomingLevel.config.objectives, + upcomingLevel.config.startObjectiveIndex + ); } + EnableOnlyTrigger(next); + // if (next < levels.Count) + // { + // StartLevel(next); + // } + // else + // { + // Debug.Log("GameplayManager: All levels completed!"); + // } } + + private void LoadUpNextLevel() { int next = currentLevelIndex + 1;