diff --git a/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/DemoExterior.unity b/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity similarity index 99% rename from Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/DemoExterior.unity rename to Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity index 22cad837..2e37ac21 100644 --- a/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/DemoExterior.unity +++ b/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity @@ -179179,11 +179179,33 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4263584572005659888, guid: 76d8d30b544ba984ea83078979aad6ba, + type: 3} + propertyPath: timeBetweenWaves + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 5512387116104888500, guid: 76d8d30b544ba984ea83078979aad6ba, + type: 3} + propertyPath: checkInterval + value: 0.25 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 76d8d30b544ba984ea83078979aad6ba, type: 3} +--- !u!114 &1147018635 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5512387116104888500, guid: 76d8d30b544ba984ea83078979aad6ba, + type: 3} + m_PrefabInstance: {fileID: 1147018634} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 42850bd66917c2648a04c287cd0fa78f, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1147626299 PrefabInstance: m_ObjectHideFlags: 0 @@ -187857,6 +187879,118 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1206398364} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1206645251 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1236565187} + m_Modifications: + - target: {fileID: 2570763385268279862, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_Name + value: Level 2 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalPosition.x + value: 44.6 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalPosition.z + value: 81.3 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4437790714047512686, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: waves.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4437790714047512686, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: waves.Array.data[2].count + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4437790714047512686, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: waves.Array.data[2].spawnRate + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4437790714047512686, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: waves.Array.data[2].enemyPrefab + value: + objectReference: {fileID: 4006626876238256025, guid: a205c5f30032031428dae83c4a2f2af8, + type: 3} + - target: {fileID: 5259401069666905950, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + propertyPath: levelIndexToStart + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7ff947d621876834dacc2c5de97d2706, type: 3} +--- !u!4 &1206645252 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3337232374330422573, guid: 7ff947d621876834dacc2c5de97d2706, + type: 3} + m_PrefabInstance: {fileID: 1206645251} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1206645253 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8380645208396581343, 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: 7b3075cc0e92b0f46ac59e94d973e996, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1207237923 PrefabInstance: m_ObjectHideFlags: 0 @@ -190940,6 +191074,8 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 865384241} + - {fileID: 1206645252} + - {fileID: 1425440676} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1236728493 @@ -226284,6 +226420,97 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1424366462} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1425440675 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1236565187} + m_Modifications: + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalPosition.x + value: 88.4 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalPosition.z + value: 164.5 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2985812689822271779, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: m_Name + value: Level 3 + objectReference: {fileID: 0} + - target: {fileID: 4773734342117882955, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + propertyPath: levelIndexToStart + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e30d7852dbe0cea49856effa5b786166, type: 3} +--- !u!4 &1425440676 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2635353821268616760, guid: e30d7852dbe0cea49856effa5b786166, + type: 3} + m_PrefabInstance: {fileID: 1425440675} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1425440677 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3589309351123794781, 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: d3d3d65dc057e5d469b7ecb693589516, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1426598727 PrefabInstance: m_ObjectHideFlags: 0 @@ -294123,7 +294350,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: levels: - - {fileID: 1839882460} + - {fileID: 1147018635} + - {fileID: 1206645253} + - {fileID: 1425440677} --- !u!4 &1755519505 Transform: m_ObjectHideFlags: 0 @@ -307401,18 +307630,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1839099834} m_PrefabAsset: {fileID: 0} ---- !u!114 &1839882460 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2166221281141641891, guid: 76d8d30b544ba984ea83078979aad6ba, - type: 3} - m_PrefabInstance: {fileID: 1147018634} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 42850bd66917c2648a04c287cd0fa78f, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &1840767891 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/DemoExterior.unity.meta b/Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity.meta similarity index 100% rename from Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/DemoExterior.unity.meta rename to Assets/Polyart/PolyartStudio/DreamscapeCastle/Scenes/Gameplay.unity.meta diff --git a/Assets/Prefabs/Levels/Level 1.prefab b/Assets/Prefabs/Levels/Level 1.prefab index 5983fc40..d5620fb6 100644 --- a/Assets/Prefabs/Levels/Level 1.prefab +++ b/Assets/Prefabs/Levels/Level 1.prefab @@ -61,10 +61,47 @@ PrefabInstance: - target: {fileID: 1811311148046463957, guid: e15c7f46c3c13db448ed53dc091f75e6, type: 3} propertyPath: m_Name - value: Level + value: Level 1 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7609742685143423047, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + insertIndex: -1 + addedObject: {fileID: 5512387116104888500} m_SourcePrefab: {fileID: 100100000, guid: e15c7f46c3c13db448ed53dc091f75e6, type: 3} +--- !u!114 &4263584572005659888 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 511173321709644173, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + m_PrefabInstance: {fileID: 4337888904286002557} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6172317836729025850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9274e1d861dffcc4f828e772e0d685d2, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6172317836729025850 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7609742685143423047, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + m_PrefabInstance: {fileID: 4337888904286002557} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5512387116104888500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6172317836729025850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 42850bd66917c2648a04c287cd0fa78f, type: 3} + m_Name: + m_EditorClassIdentifier: + config: {fileID: 11400000, guid: 14bb562fb40342c469c55b17d34b3363, type: 2} + spawner: {fileID: 4263584572005659888} + checkInterval: 3 diff --git a/Assets/Prefabs/Levels/Level 2.prefab b/Assets/Prefabs/Levels/Level 2.prefab new file mode 100644 index 00000000..f58b4745 --- /dev/null +++ b/Assets/Prefabs/Levels/Level 2.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &4219378387795093987 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1811311148046463957, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_Name + value: Level 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7609742685143423047, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + insertIndex: -1 + addedObject: {fileID: 8380645208396581343} + m_SourcePrefab: {fileID: 100100000, guid: e15c7f46c3c13db448ed53dc091f75e6, type: 3} +--- !u!1 &5986694503927738788 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7609742685143423047, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + m_PrefabInstance: {fileID: 4219378387795093987} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8380645208396581343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5986694503927738788} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b3075cc0e92b0f46ac59e94d973e996, type: 3} + m_Name: + m_EditorClassIdentifier: + config: {fileID: 11400000, guid: ea09559078458d7499b761746cb99810, type: 2} + spawner: {fileID: 0} + checkInterval: 0.25 diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Prefabs/Levels/Level 2.prefab.meta similarity index 63% rename from Assets/Scenes/SampleScene.unity.meta rename to Assets/Prefabs/Levels/Level 2.prefab.meta index 9531828b..e6fcdb21 100644 --- a/Assets/Scenes/SampleScene.unity.meta +++ b/Assets/Prefabs/Levels/Level 2.prefab.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 99c9720ab356a0642a771bea13969a05 -DefaultImporter: +guid: 7ff947d621876834dacc2c5de97d2706 +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/Prefabs/Levels/Level 3.prefab b/Assets/Prefabs/Levels/Level 3.prefab new file mode 100644 index 00000000..119cbcbc --- /dev/null +++ b/Assets/Prefabs/Levels/Level 3.prefab @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3480347059821116150 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1503645237167873230, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1811311148046463957, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + propertyPath: m_Name + value: Level 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7609742685143423047, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + insertIndex: -1 + addedObject: {fileID: 3589309351123794781} + m_SourcePrefab: {fileID: 100100000, guid: e15c7f46c3c13db448ed53dc091f75e6, type: 3} +--- !u!1 &6473803043466879665 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7609742685143423047, guid: e15c7f46c3c13db448ed53dc091f75e6, + type: 3} + m_PrefabInstance: {fileID: 3480347059821116150} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3589309351123794781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6473803043466879665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3d3d65dc057e5d469b7ecb693589516, type: 3} + m_Name: + m_EditorClassIdentifier: + config: {fileID: 11400000, guid: 7cc25368e2334ad4cb6dfeebce7379b2, type: 2} + spawner: {fileID: 0} + checkInterval: 0.25 diff --git a/Assets/Scenes.meta b/Assets/Prefabs/Levels/Level 3.prefab.meta similarity index 57% rename from Assets/Scenes.meta rename to Assets/Prefabs/Levels/Level 3.prefab.meta index 23d6f086..bed446bd 100644 --- a/Assets/Scenes.meta +++ b/Assets/Prefabs/Levels/Level 3.prefab.meta @@ -1,7 +1,6 @@ fileFormatVersion: 2 -guid: 915a68a72217d2144853c282a8c67089 -folderAsset: yes -DefaultImporter: +guid: e30d7852dbe0cea49856effa5b786166 +PrefabImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/Prefabs/Levels/Level.prefab b/Assets/Prefabs/Levels/Level.prefab index 3c9da78c..1739770c 100644 --- a/Assets/Prefabs/Levels/Level.prefab +++ b/Assets/Prefabs/Levels/Level.prefab @@ -226,7 +226,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5609603268183513283} - - component: {fileID: 2467040478378692574} - component: {fileID: 511173321709644173} m_Layer: 0 m_Name: Level Stuff @@ -251,20 +250,6 @@ Transform: - {fileID: 3454616801278800735} m_Father: {fileID: 1503645237167873230} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2467040478378692574 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7609742685143423047} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 42850bd66917c2648a04c287cd0fa78f, type: 3} - m_Name: - m_EditorClassIdentifier: - spawner: {fileID: 511173321709644173} - checkInterval: 0.25 --- !u!114 &511173321709644173 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity deleted file mode 100644 index 89d72440..00000000 --- a/Assets/Scenes/SampleScene.unity +++ /dev/null @@ -1,407 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &330585543 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 330585546} - - component: {fileID: 330585545} - - component: {fileID: 330585544} - - component: {fileID: 330585547} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &330585544 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 ---- !u!20 &330585545 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &330585546 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &330585547 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 1 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 ---- !u!1 &410087039 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 410087041} - - component: {fileID: 410087040} - - component: {fileID: 410087042} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &410087040 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 2 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 5000 - m_UseColorTemperature: 1 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &410087041 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!114 &410087042 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 1 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} ---- !u!1 &832575517 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 832575519} - - component: {fileID: 832575518} - m_Layer: 0 - m_Name: Global Volume - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &832575518 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IsGlobal: 1 - priority: 0 - blendDistance: 0 - weight: 1 - sharedProfile: {fileID: 11400000, guid: a6560a915ef98420e9faacc1c7438823, type: 2} ---- !u!4 &832575519 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/ScriptableObjects/Levels/Level 1.asset b/Assets/ScriptableObjects/Levels/Level 1.asset index 310f6fb0..f346e524 100644 --- a/Assets/ScriptableObjects/Levels/Level 1.asset +++ b/Assets/ScriptableObjects/Levels/Level 1.asset @@ -13,7 +13,7 @@ MonoBehaviour: m_Name: Level 1 m_EditorClassIdentifier: objectives: - - Go to the marker in the map + - Go to the marked objective - Kill all the enemies startObjectiveIndex: 0 autoAdvanceOnComplete: 1 diff --git a/Assets/ScriptableObjects/Levels/Level 2.asset b/Assets/ScriptableObjects/Levels/Level 2.asset new file mode 100644 index 00000000..77f2875d --- /dev/null +++ b/Assets/ScriptableObjects/Levels/Level 2.asset @@ -0,0 +1,22 @@ +%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: a1b5d958ab856164e99bbef104aebeff, type: 3} + m_Name: Level 2 + m_EditorClassIdentifier: + objectives: + - Go to the marked objective + - Kill all the enemies + startObjectiveIndex: 0 + autoAdvanceOnComplete: 1 + clearWavesObjectiveIndex: -1 + waves: [] + timeBetweenWaves: 3 diff --git a/Assets/ScriptableObjects/Levels/Level 2.asset.meta b/Assets/ScriptableObjects/Levels/Level 2.asset.meta new file mode 100644 index 00000000..3417387b --- /dev/null +++ b/Assets/ScriptableObjects/Levels/Level 2.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea09559078458d7499b761746cb99810 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableObjects/Levels/Level 3.asset b/Assets/ScriptableObjects/Levels/Level 3.asset new file mode 100644 index 00000000..ed0de18b --- /dev/null +++ b/Assets/ScriptableObjects/Levels/Level 3.asset @@ -0,0 +1,22 @@ +%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: a1b5d958ab856164e99bbef104aebeff, type: 3} + m_Name: Level 3 + m_EditorClassIdentifier: + objectives: + - Go to the marked objective + - Kill all the enemies + startObjectiveIndex: 0 + autoAdvanceOnComplete: 1 + clearWavesObjectiveIndex: -1 + waves: [] + timeBetweenWaves: 3 diff --git a/Assets/ScriptableObjects/Levels/Level 3.asset.meta b/Assets/ScriptableObjects/Levels/Level 3.asset.meta new file mode 100644 index 00000000..d043f85f --- /dev/null +++ b/Assets/ScriptableObjects/Levels/Level 3.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7cc25368e2334ad4cb6dfeebce7379b2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameplayManager.cs b/Assets/Scripts/GameplayManager.cs index b76fecdb..d77bedf7 100644 --- a/Assets/Scripts/GameplayManager.cs +++ b/Assets/Scripts/GameplayManager.cs @@ -29,6 +29,8 @@ public class GameplayManager : MonoBehaviour { if (lvl != null) lvl.gameObject.SetActive(false); } + var upcomingLevel = levels[0]; + ObjectiveManager.Instance.SetList(upcomingLevel.config.objectives); } public void StartLevel(int index) @@ -63,9 +65,11 @@ public class GameplayManager : MonoBehaviour currentLevel.OnLevelEnd(); currentLevel.gameObject.SetActive(false); currentLevel = null; - + // If you want to auto-progress: int next = currentLevelIndex + 1; + var upcomingLevel = levels[currentLevelIndex]; + ObjectiveManager.Instance.SetList(upcomingLevel.config.objectives); if (next < levels.Count) { StartLevel(next); @@ -76,6 +80,12 @@ public class GameplayManager : MonoBehaviour } } + private void LoadUpNextLevel() + { + int next = currentLevelIndex + 1; + var upcomingLevel = levels[currentLevelIndex]; + ObjectiveManager.Instance.SetList(upcomingLevel.config.objectives); + } // Optional: callable by a trigger to start Level 1 specifically public void StartLevelOne() { diff --git a/Assets/Scripts/Levels/Level.cs b/Assets/Scripts/Levels/Level.cs index d16e75fe..b14fc7d5 100644 --- a/Assets/Scripts/Levels/Level.cs +++ b/Assets/Scripts/Levels/Level.cs @@ -19,16 +19,11 @@ public abstract class Level : MonoBehaviour public virtual void OnLevelStart() { - if (config != null && ObjectiveManager.Instance != null) - { - ObjectiveManager.Instance.SetList(config.objectives, config.startObjectiveIndex); - ObjectiveManager.Instance.autoAdvanceOnComplete = config.autoAdvanceOnComplete; - } + ObjectiveManager.Instance.Advance(); } public virtual void OnLevelEnd() { - } } diff --git a/Assets/Scripts/Levels/Level2.cs b/Assets/Scripts/Levels/Level2.cs new file mode 100644 index 00000000..82f74add --- /dev/null +++ b/Assets/Scripts/Levels/Level2.cs @@ -0,0 +1,126 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Level2 : Level +{ + [Header("Wave Flow")] + public WaveSpawner spawner; // Assign in Inspector + [Min(0.05f)] public float checkInterval = 0.25f; + + private bool _running; + private Coroutine _monitorCo; + + // Optional: simple counters for UI hooks + private int _currentWaveIdx = -1; + private int _totalWaves = 0; + private int _currentAlive = 0; + + private void OnEnable() + { + if (spawner != null) + { + spawner.OnWaveStarted += HandleWaveStarted; + spawner.OnWaveCompleted += HandleWaveCompleted; + spawner.OnAllWavesCompleted += HandleAllWavesCompleted; + spawner.OnAliveCountChanged += HandleAliveChanged; + } + } + + private void OnDisable() + { + if (spawner != null) + { + spawner.OnWaveStarted -= HandleWaveStarted; + spawner.OnWaveCompleted -= HandleWaveCompleted; + spawner.OnAllWavesCompleted -= HandleAllWavesCompleted; + spawner.OnAliveCountChanged -= HandleAliveChanged; + } + } + + public override void OnLevelStart() + { + base.OnLevelStart(); + + if (spawner == null) + { + Debug.LogError("[Level1] No WaveSpawner assigned."); + CompleteLevelImmediate(); + return; + } + + _totalWaves = spawner.TotalWaves; + _running = true; + + // Kick off waves + spawner.StartSpawning(); + + // As an extra safeguard, monitor completion state + _monitorCo = StartCoroutine(MonitorForCompletion()); + Debug.Log("[Level1] Level started, waves spawning…"); + } + + public override void OnLevelEnd() + { + base.OnLevelEnd(); + _running = false; + + if (_monitorCo != null) + { + StopCoroutine(_monitorCo); + _monitorCo = null; + } + } + + private IEnumerator MonitorForCompletion() + { + var wait = new WaitForSeconds(checkInterval); + while (_running) + { + // Complete when spawner reports all waves completed AND no alive remain + if (spawner.AllWavesCompleted && spawner.CurrentAlive == 0) + { + CompleteLevelImmediate(); + yield break; + } + yield return wait; + } + } + + private void CompleteLevelImmediate() + { + _running = false; + Debug.Log("[Level1] All waves cleared. Level complete!"); + + if (GameplayManager.Instance != null) + GameplayManager.Instance.CompleteCurrentLevel(); + else + gameObject.SetActive(false); + } + + // ===== Event handlers (useful for UI/logs/hook-ins) ===== + private void HandleWaveStarted(int waveIdx, WaveSpawner.Wave wave) + { + _currentWaveIdx = waveIdx; + Debug.Log($"[Level1] Wave {waveIdx + 1}/{_totalWaves} started. Count={wave.count}, Rate={wave.spawnRate:F2}/s"); + // TODO: Update UI: “Wave X/Y starting” + } + + private void HandleWaveCompleted(int waveIdx) + { + Debug.Log($"[Level1] Wave {waveIdx + 1}/{_totalWaves} completed."); + // TODO: UI “Wave complete” + } + + private void HandleAllWavesCompleted() + { + Debug.Log("[Level1] All waves spawned. Waiting for last enemies to die…"); + // Completion is finalized in MonitorForCompletion once alive == 0 + } + + private void HandleAliveChanged(int currentAlive) + { + _currentAlive = currentAlive; + // TODO: UI “Enemies Left: currentAlive” + } +} diff --git a/Assets/Scripts/Levels/Level2.cs.meta b/Assets/Scripts/Levels/Level2.cs.meta new file mode 100644 index 00000000..b1355581 --- /dev/null +++ b/Assets/Scripts/Levels/Level2.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b3075cc0e92b0f46ac59e94d973e996 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Levels/Level3.cs b/Assets/Scripts/Levels/Level3.cs new file mode 100644 index 00000000..8393b2be --- /dev/null +++ b/Assets/Scripts/Levels/Level3.cs @@ -0,0 +1,126 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Level3 : Level +{ + [Header("Wave Flow")] + public WaveSpawner spawner; // Assign in Inspector + [Min(0.05f)] public float checkInterval = 0.25f; + + private bool _running; + private Coroutine _monitorCo; + + // Optional: simple counters for UI hooks + private int _currentWaveIdx = -1; + private int _totalWaves = 0; + private int _currentAlive = 0; + + private void OnEnable() + { + if (spawner != null) + { + spawner.OnWaveStarted += HandleWaveStarted; + spawner.OnWaveCompleted += HandleWaveCompleted; + spawner.OnAllWavesCompleted += HandleAllWavesCompleted; + spawner.OnAliveCountChanged += HandleAliveChanged; + } + } + + private void OnDisable() + { + if (spawner != null) + { + spawner.OnWaveStarted -= HandleWaveStarted; + spawner.OnWaveCompleted -= HandleWaveCompleted; + spawner.OnAllWavesCompleted -= HandleAllWavesCompleted; + spawner.OnAliveCountChanged -= HandleAliveChanged; + } + } + + public override void OnLevelStart() + { + base.OnLevelStart(); + + if (spawner == null) + { + Debug.LogError("[Level1] No WaveSpawner assigned."); + CompleteLevelImmediate(); + return; + } + + _totalWaves = spawner.TotalWaves; + _running = true; + + // Kick off waves + spawner.StartSpawning(); + + // As an extra safeguard, monitor completion state + _monitorCo = StartCoroutine(MonitorForCompletion()); + Debug.Log("[Level1] Level started, waves spawning…"); + } + + public override void OnLevelEnd() + { + base.OnLevelEnd(); + _running = false; + + if (_monitorCo != null) + { + StopCoroutine(_monitorCo); + _monitorCo = null; + } + } + + private IEnumerator MonitorForCompletion() + { + var wait = new WaitForSeconds(checkInterval); + while (_running) + { + // Complete when spawner reports all waves completed AND no alive remain + if (spawner.AllWavesCompleted && spawner.CurrentAlive == 0) + { + CompleteLevelImmediate(); + yield break; + } + yield return wait; + } + } + + private void CompleteLevelImmediate() + { + _running = false; + Debug.Log("[Level1] All waves cleared. Level complete!"); + + if (GameplayManager.Instance != null) + GameplayManager.Instance.CompleteCurrentLevel(); + else + gameObject.SetActive(false); + } + + // ===== Event handlers (useful for UI/logs/hook-ins) ===== + private void HandleWaveStarted(int waveIdx, WaveSpawner.Wave wave) + { + _currentWaveIdx = waveIdx; + Debug.Log($"[Level1] Wave {waveIdx + 1}/{_totalWaves} started. Count={wave.count}, Rate={wave.spawnRate:F2}/s"); + // TODO: Update UI: “Wave X/Y starting” + } + + private void HandleWaveCompleted(int waveIdx) + { + Debug.Log($"[Level1] Wave {waveIdx + 1}/{_totalWaves} completed."); + // TODO: UI “Wave complete” + } + + private void HandleAllWavesCompleted() + { + Debug.Log("[Level1] All waves spawned. Waiting for last enemies to die…"); + // Completion is finalized in MonitorForCompletion once alive == 0 + } + + private void HandleAliveChanged(int currentAlive) + { + _currentAlive = currentAlive; + // TODO: UI “Enemies Left: currentAlive” + } +} diff --git a/Assets/Scripts/Levels/Level3.cs.meta b/Assets/Scripts/Levels/Level3.cs.meta new file mode 100644 index 00000000..2336a51d --- /dev/null +++ b/Assets/Scripts/Levels/Level3.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3d3d65dc057e5d469b7ecb693589516 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Levels/LevelStartTrigger.cs b/Assets/Scripts/Levels/LevelStartTrigger.cs index 70e22dc4..e7518586 100644 --- a/Assets/Scripts/Levels/LevelStartTrigger.cs +++ b/Assets/Scripts/Levels/LevelStartTrigger.cs @@ -1,3 +1,4 @@ +using System; using UnityEngine; [RequireComponent(typeof(Collider))] @@ -7,7 +8,7 @@ public class LevelStartTrigger : MonoBehaviour [SerializeField] private int levelIndexToStart = 0; // Level 1 = 0 [Tooltip("Disable the trigger after first use")] [SerializeField] private bool oneShot = true; - + [SerializeField] private Level targetLevel; private bool _used; private void Reset() @@ -16,6 +17,17 @@ public class LevelStartTrigger : MonoBehaviour if (col) col.isTrigger = true; } + private void OnEnable() + { + if (targetLevel != null && targetLevel.config != null && ObjectiveManager.Instance != null) + { + ObjectiveManager.Instance.SetList( + targetLevel.config.objectives, + targetLevel.config.startObjectiveIndex + ); + } + } + private void OnTriggerEnter(Collider other) { if (_used) return; diff --git a/Assets/UGUIMiniMap/Content/Scripts/Core/bl_MiniMapItem.cs b/Assets/UGUIMiniMap/Content/Scripts/Core/bl_MiniMapItem.cs index b54b4b02..c0c3e8d7 100644 --- a/Assets/UGUIMiniMap/Content/Scripts/Core/bl_MiniMapItem.cs +++ b/Assets/UGUIMiniMap/Content/Scripts/Core/bl_MiniMapItem.cs @@ -66,12 +66,14 @@ public class bl_MiniMapItem : MonoBehaviour { /// void Start() { - // MiniMap = bl_MiniMapUtils.GetMiniMap(); - // if (bl_MiniMap.MapUIRoot != null) - // { - // CreateIcon(); - // } - // else { Debug.Log("You need a MiniMap in scene for use MiniMap Items."); } + if (cacheItem == null) + { + MiniMap = bl_MiniMapUtils.GetMiniMap(); + if (bl_MiniMap.MapUIRoot != null) + { + CreateIcon(); + } + } } ///