From a5d1116f8ed9af55256ff6ef9a806b798ef67103 Mon Sep 17 00:00:00 2001 From: slevy14 Date: Tue, 25 Apr 2023 10:22:38 -0700 Subject: [PATCH] created spawn point system works by placing spawn point prefabs wherever you want them. Also created some prefabs of death zone and grapple zone objects --- Assets/Prefabs/WorldObjects.meta | 8 + Assets/Prefabs/WorldObjects/DeathZone.prefab | 79 +++ .../WorldObjects/DeathZone.prefab.meta | 7 + Assets/Prefabs/WorldObjects/GrappleBox.prefab | 168 +++++++ .../WorldObjects/GrappleBox.prefab.meta | 7 + Assets/Prefabs/WorldObjects/SpawnPoint.prefab | 147 ++++++ .../WorldObjects/SpawnPoint.prefab.meta | 7 + Assets/Scenes/GrappleScene.unity | 467 ++++++++---------- Assets/Scripts/PlayerBehavior.cs | 4 + Assets/Scripts/SpawnPointBehavior.cs | 32 ++ Assets/Scripts/SpawnPointBehavior.cs.meta | 11 + Assets/Sprites/Items/tile_cave_bg_fluo.png | Bin 0 -> 11694 bytes .../Sprites/Items/tile_cave_bg_fluo.png.meta | 322 ++++++++++++ ProjectSettings/TagManager.asset | 1 + 14 files changed, 990 insertions(+), 270 deletions(-) create mode 100644 Assets/Prefabs/WorldObjects.meta create mode 100644 Assets/Prefabs/WorldObjects/DeathZone.prefab create mode 100644 Assets/Prefabs/WorldObjects/DeathZone.prefab.meta create mode 100644 Assets/Prefabs/WorldObjects/GrappleBox.prefab create mode 100644 Assets/Prefabs/WorldObjects/GrappleBox.prefab.meta create mode 100644 Assets/Prefabs/WorldObjects/SpawnPoint.prefab create mode 100644 Assets/Prefabs/WorldObjects/SpawnPoint.prefab.meta create mode 100644 Assets/Scripts/SpawnPointBehavior.cs create mode 100644 Assets/Scripts/SpawnPointBehavior.cs.meta create mode 100644 Assets/Sprites/Items/tile_cave_bg_fluo.png create mode 100644 Assets/Sprites/Items/tile_cave_bg_fluo.png.meta diff --git a/Assets/Prefabs/WorldObjects.meta b/Assets/Prefabs/WorldObjects.meta new file mode 100644 index 0000000..592c81d --- /dev/null +++ b/Assets/Prefabs/WorldObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5825e9fe6a54a4eadb7e096e160afe9a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/WorldObjects/DeathZone.prefab b/Assets/Prefabs/WorldObjects/DeathZone.prefab new file mode 100644 index 0000000..03f1934 --- /dev/null +++ b/Assets/Prefabs/WorldObjects/DeathZone.prefab @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3694183975375614525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6506293507589830987} + - component: {fileID: 8311150799030396422} + m_Layer: 0 + m_Name: DeathZone + m_TagString: instaDeath + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6506293507589830987 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3694183975375614525} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -25.49, y: -17.19, z: 0} + 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!61 &8311150799030396422 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3694183975375614525} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 diff --git a/Assets/Prefabs/WorldObjects/DeathZone.prefab.meta b/Assets/Prefabs/WorldObjects/DeathZone.prefab.meta new file mode 100644 index 0000000..b270fa6 --- /dev/null +++ b/Assets/Prefabs/WorldObjects/DeathZone.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d89768fad21a147d59156c6b9503b913 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/WorldObjects/GrappleBox.prefab b/Assets/Prefabs/WorldObjects/GrappleBox.prefab new file mode 100644 index 0000000..c665238 --- /dev/null +++ b/Assets/Prefabs/WorldObjects/GrappleBox.prefab @@ -0,0 +1,168 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &367295637452716247 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8452658923215583967} + - component: {fileID: 3324700440758474303} + - component: {fileID: 3149183001748253228} + - component: {fileID: 1025473297745678352} + m_Layer: 0 + m_Name: GrappleBox + m_TagString: grappleSurface + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8452658923215583967 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367295637452716247} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -23.5017, y: -6.0647, z: 2} + m_LocalScale: {x: 4.99643, y: 0.22865723, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &3324700440758474303 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367295637452716247} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0.30709326, g: 0.9716981, b: 0.35929897, a: 0} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!61 &3149183001748253228 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367295637452716247} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1, y: 1} + newSize: {x: 1, y: 1} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!58 &1025473297745678352 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367295637452716247} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: -9.26} + serializedVersion: 2 + m_Radius: 1.4860808 diff --git a/Assets/Prefabs/WorldObjects/GrappleBox.prefab.meta b/Assets/Prefabs/WorldObjects/GrappleBox.prefab.meta new file mode 100644 index 0000000..a88d929 --- /dev/null +++ b/Assets/Prefabs/WorldObjects/GrappleBox.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 94c7d43583a3b46c58e7d4e253eae896 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/WorldObjects/SpawnPoint.prefab b/Assets/Prefabs/WorldObjects/SpawnPoint.prefab new file mode 100644 index 0000000..b59c22c --- /dev/null +++ b/Assets/Prefabs/WorldObjects/SpawnPoint.prefab @@ -0,0 +1,147 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6806933941183193853 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1206589089063141587} + - component: {fileID: 6208669727620019879} + - component: {fileID: 715590348252574761} + - component: {fileID: 7584420093960353499} + m_Layer: 0 + m_Name: SpawnPoint + m_TagString: spawnPoint + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1206589089063141587 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6806933941183193853} + 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: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6208669727620019879 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6806933941183193853} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 1811515679, guid: cc70f122542cc42e6983904beaba724f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.65625, y: 1.96875} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!61 &715590348252574761 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6806933941183193853} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.65625, y: 1.96875} + newSize: {x: 1.65625, y: 1.96875} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1.65625, y: 1.96875} + m_EdgeRadius: 0 +--- !u!114 &7584420093960353499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6806933941183193853} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 964f5469a66144a7fbcc3aaa6ba45ec5, type: 3} + m_Name: + m_EditorClassIdentifier: + deactivatedSprite: {fileID: 1811515679, guid: cc70f122542cc42e6983904beaba724f, type: 3} + activatedSprite: {fileID: 1593388592, guid: cc70f122542cc42e6983904beaba724f, type: 3} diff --git a/Assets/Prefabs/WorldObjects/SpawnPoint.prefab.meta b/Assets/Prefabs/WorldObjects/SpawnPoint.prefab.meta new file mode 100644 index 0000000..65f2b85 --- /dev/null +++ b/Assets/Prefabs/WorldObjects/SpawnPoint.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ecbe9d625a3954206bc8d3d6361ad9b2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/GrappleScene.unity b/Assets/Scenes/GrappleScene.unity index b527985..d26cac2 100644 --- a/Assets/Scenes/GrappleScene.unity +++ b/Assets/Scenes/GrappleScene.unity @@ -403,83 +403,11 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 202407868} m_CullTransparentMesh: 1 ---- !u!1 &232844149 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 232844150} - - component: {fileID: 232844151} - m_Layer: 0 - m_Name: Spikes1 - m_TagString: instaDeath - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &232844150 +--- !u!4 &232844150 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + m_PrefabInstance: {fileID: 2866793614731974941} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232844149} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -25.49, y: -17.19, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1317480697} - m_RootOrder: -1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!61 &232844151 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 232844149} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 1.8880634, y: 0} - m_SpriteTilingProperty: - border: {x: 0, y: 0, z: 0, w: 0} - pivot: {x: 0, y: 0} - oldSize: {x: 0, y: 0} - newSize: {x: 0, y: 0} - adaptiveTilingThreshold: 0 - drawMode: 0 - adaptiveTiling: 0 - m_AutoTiling: 0 - serializedVersion: 2 - m_Size: {x: 9.43911, y: 1} - m_EdgeRadius: 0 --- !u!1001 &296651438 PrefabInstance: m_ObjectHideFlags: 0 @@ -1604,37 +1532,11 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} ---- !u!1 &1159415542 +--- !u!1 &1159415542 stripped GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 6806933941183193853, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + m_PrefabInstance: {fileID: 2039811864674601488} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1159415543} - m_Layer: 0 - m_Name: SpawnPoint - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1159415543 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1159415542} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -36.33, y: -7.22, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 15 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1228007408 GameObject: m_ObjectHideFlags: 0 @@ -23881,172 +23783,6 @@ Rigidbody2D: m_SleepingMode: 1 m_CollisionDetection: 0 m_Constraints: 0 ---- !u!1 &1957280653 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1957280657} - - component: {fileID: 1957280656} - - component: {fileID: 1957280655} - - component: {fileID: 1957280654} - m_Layer: 0 - m_Name: GrappleBox - m_TagString: grappleSurface - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!58 &1957280654 -CircleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1957280653} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 1 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: -9.26} - serializedVersion: 2 - m_Radius: 1.4860808 ---- !u!61 &1957280655 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1957280653} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 0 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0} - m_SpriteTilingProperty: - border: {x: 0, y: 0, z: 0, w: 0} - pivot: {x: 0.5, y: 0.5} - oldSize: {x: 1, y: 1} - newSize: {x: 1, y: 1} - adaptiveTilingThreshold: 0.5 - drawMode: 0 - adaptiveTiling: 0 - m_AutoTiling: 0 - serializedVersion: 2 - m_Size: {x: 1, y: 1} - m_EdgeRadius: 0 ---- !u!212 &1957280656 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1957280653} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10754, 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: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} - m_Color: {r: 0.30709326, g: 0.9716981, b: 0.35929897, a: 0} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 1, y: 1} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!4 &1957280657 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1957280653} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -23.5017, y: -6.0647, z: 2} - m_LocalScale: {x: 4.99643, y: 0.22865723, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2026489080 GameObject: m_ObjectHideFlags: 0 @@ -24159,6 +23895,136 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5e69412b9141e4bdeaaaf00f6dce7b82, type: 3} +--- !u!1001 &2039811864674601488 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalPosition.x + value: -36.33 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalPosition.y + value: -7.22 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalRotation.z + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1206589089063141587, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 6806933941183193853, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} + propertyPath: m_Name + value: SpawnPoint + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ecbe9d625a3954206bc8d3d6361ad9b2, type: 3} +--- !u!1001 &2866793614731974941 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1317480697} + m_Modifications: + - target: {fileID: 3694183975375614525, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_Name + value: Spikes1 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_RootOrder + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalPosition.x + value: -25.49 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalPosition.y + value: -17.19 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6506293507589830987, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8311150799030396422, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_Size.x + value: 9.43911 + objectReference: {fileID: 0} + - target: {fileID: 8311150799030396422, guid: d89768fad21a147d59156c6b9503b913, type: 3} + propertyPath: m_Offset.x + value: 1.8880634 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d89768fad21a147d59156c6b9503b913, type: 3} --- !u!1001 &5828821210660800548 PrefabInstance: m_ObjectHideFlags: 0 @@ -24220,3 +24086,64 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: fe6515c8ba67e4334bd83dff507ec83e, type: 3} +--- !u!1001 &8529024255618899271 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 367295637452716247, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_Name + value: GrappleBox + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalPosition.x + value: -23.5017 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalPosition.y + value: -6.0647 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8452658923215583967, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94c7d43583a3b46c58e7d4e253eae896, type: 3} diff --git a/Assets/Scripts/PlayerBehavior.cs b/Assets/Scripts/PlayerBehavior.cs index 9241c13..876b2d8 100644 --- a/Assets/Scripts/PlayerBehavior.cs +++ b/Assets/Scripts/PlayerBehavior.cs @@ -150,6 +150,10 @@ public class PlayerBehavior : MonoBehaviour this.stateController.SetDeathCanvasActive(true); Destroy(this.gameObject); } + else if (col.tag == "spawnPoint") { + stateController.spawnPoint.GetComponent().DeactivateSpawnPoint(); + col.GetComponent().ActivateSpawnPoint(); + } } void OnTriggerExit2D(Collider2D col) diff --git a/Assets/Scripts/SpawnPointBehavior.cs b/Assets/Scripts/SpawnPointBehavior.cs new file mode 100644 index 0000000..6e65195 --- /dev/null +++ b/Assets/Scripts/SpawnPointBehavior.cs @@ -0,0 +1,32 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class SpawnPointBehavior : MonoBehaviour +{ + + // set in inspector + [Header("Sprites")] + [SerializeField] private Sprite deactivatedSprite; + [SerializeField] private Sprite activatedSprite; + + // not set in inspector + private SpriteRenderer _sr; + private StateController stateController; + + // Start is called before the first frame update + void Start() + { + _sr = this.gameObject.GetComponent(); + stateController = GameObject.Find("StateController").GetComponent(); + } + + public void ActivateSpawnPoint() { + _sr.sprite = activatedSprite; + stateController.spawnPoint = this.gameObject; + } + + public void DeactivateSpawnPoint() { + _sr.sprite = deactivatedSprite; + } +} diff --git a/Assets/Scripts/SpawnPointBehavior.cs.meta b/Assets/Scripts/SpawnPointBehavior.cs.meta new file mode 100644 index 0000000..547d08d --- /dev/null +++ b/Assets/Scripts/SpawnPointBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 964f5469a66144a7fbcc3aaa6ba45ec5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/Items/tile_cave_bg_fluo.png b/Assets/Sprites/Items/tile_cave_bg_fluo.png new file mode 100644 index 0000000000000000000000000000000000000000..e19d862fa0d4d6f0e37f68532444766935d08001 GIT binary patch literal 11694 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