diff --git a/Assets/Art/Slicer-v1.png b/Assets/Art/Slicer-v1.png new file mode 100644 index 0000000..ed47e2e Binary files /dev/null and b/Assets/Art/Slicer-v1.png differ diff --git a/Assets/Art/Slicer-v1.png.meta b/Assets/Art/Slicer-v1.png.meta new file mode 100644 index 0000000..0eaf565 --- /dev/null +++ b/Assets/Art/Slicer-v1.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 0aea2ef73138c3b469b2db9651c7c5f8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Spring-v1.png.meta b/Assets/Art/Spring-v1.png.meta index 9dd25a0..7a70818 100644 --- a/Assets/Art/Spring-v1.png.meta +++ b/Assets/Art/Spring-v1.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -34,16 +34,16 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: 1 + filterMode: 0 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -67,7 +67,7 @@ TextureImporter: swizzle: 50462976 cookieLightType: 0 platformSettings: - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 @@ -80,7 +80,7 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 @@ -93,7 +93,7 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: WebGL maxTextureSize: 2048 resizeAlgorithm: 0 @@ -110,15 +110,18 @@ TextureImporter: serializedVersion: 2 sprites: [] outline: [] + customData: physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: edges: [] weights: [] secondaryTextures: [] + spriteCustomMetadata: + entries: [] nameFileIdTable: {} mipmapLimitGroupName: pSDRemoveMatte: 0 diff --git a/Assets/Prefabs/Buildings/Registry.asset b/Assets/Prefabs/Buildings/Registry.asset index 6e1bf8e..fc128c1 100644 --- a/Assets/Prefabs/Buildings/Registry.asset +++ b/Assets/Prefabs/Buildings/Registry.asset @@ -22,3 +22,6 @@ MonoBehaviour: - Name: Wall Prefab: {fileID: 1970033728917450326, guid: 3492b31295b69c148bb5a0660e598878, type: 3} + - Name: Spring + Prefab: {fileID: 8624048914473773482, guid: 6060f6928011bf54dad9c5ef16fb1048, + type: 3} diff --git a/Assets/Prefabs/Buildings/SpringBuilding.prefab b/Assets/Prefabs/Buildings/SpringBuilding.prefab new file mode 100644 index 0000000..85e5969 --- /dev/null +++ b/Assets/Prefabs/Buildings/SpringBuilding.prefab @@ -0,0 +1,376 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1923753103138610649 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6476814817477024212} + - component: {fileID: 900136177020779137} + - component: {fileID: 2128251942503509408} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6476814817477024212 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923753103138610649} + 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: 546461529234046531} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!61 &900136177020779137 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923753103138610649} + m_Enabled: 1 + serializedVersion: 3 + 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_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 34, y: -8} + 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 + m_Size: {x: 12, y: 24} + m_EdgeRadius: 0 +--- !u!61 &2128251942503509408 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1923753103138610649} + m_Enabled: 1 + serializedVersion: 3 + 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_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: -34, y: -8} + 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 + m_Size: {x: 12, y: 24} + m_EdgeRadius: 0 +--- !u!1 &5309394538747138097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3368903718403420727} + - component: {fileID: 3249246627232626294} + - component: {fileID: 33702449658782569} + m_Layer: 0 + m_Name: Trigger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3368903718403420727 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5309394538747138097} + 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: 546461529234046531} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3249246627232626294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5309394538747138097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a471a3a004424f44aed18516c22740e, type: 3} + m_Name: + m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.TriggerDetector +--- !u!61 &33702449658782569 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5309394538747138097} + m_Enabled: 1 + serializedVersion: 3 + 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_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 12} + 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 + m_Size: {x: 80, y: 16} + m_EdgeRadius: 0 +--- !u!1 &8624048914473773482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 546461529234046531} + - component: {fileID: 677812672833671564} + - component: {fileID: 512124502862012575} + - component: {fileID: 2938597077917375806} + - component: {fileID: 2693608777607402836} + m_Layer: 0 + m_Name: SpringBuilding + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &546461529234046531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + 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: + - {fileID: 6476814817477024212} + - {fileID: 3368903718403420727} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 80, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &677812672833671564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d85c1768ca4c6594dbdb161463af59dc, type: 3} + m_Name: + m_EditorClassIdentifier: Fruitomation::SpringBuilding + BuildingSprite: {fileID: 21300000, guid: 34a495bcd8d7c4547a605723ef7c4638, type: 3} + k__BackingField: {x: 2, y: 1} + Trigger: {fileID: 3249246627232626294} +--- !u!222 &512124502862012575 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_CullTransparentMesh: 1 +--- !u!114 &2938597077917375806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 34a495bcd8d7c4547a605723ef7c4638, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2693608777607402836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8624048914473773482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2938597077917375806} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 677812672833671564} + m_TargetAssemblyTypeName: Fruitomation.Game.SpringBuilding, Fruitomation + m_MethodName: OnBuildingClicked + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Assets/Prefabs/Buildings/SpringBuilding.prefab.meta b/Assets/Prefabs/Buildings/SpringBuilding.prefab.meta new file mode 100644 index 0000000..fe3d76c --- /dev/null +++ b/Assets/Prefabs/Buildings/SpringBuilding.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6060f6928011bf54dad9c5ef16fb1048 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/GameScene.unity b/Assets/Scenes/GameScene.unity index edb381e..25c81d1 100644 --- a/Assets/Scenes/GameScene.unity +++ b/Assets/Scenes/GameScene.unity @@ -2192,20 +2192,27 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1fc36d0808cf971459d9e430faaeadd9, type: 3} m_Name: m_EditorClassIdentifier: - MaxSpawned: 1000 + MaxSpawned: 30 MinSpawnTime: 0 MaxSpawnTime: 0.2 FruitSpawnParent: {fileID: 1944344878} - FruitPrefabs: - - {fileID: 4062657912758122058, guid: 23e3bfe33d8c6004c85fd638db567ab6, type: 3} - - {fileID: 4062657912758122058, guid: 5e1f7f5d4294c1d4fa3e6f88dec0dfa6, type: 3} - - {fileID: 4062657912758122058, guid: ebddb1b81a288cc4c993a25bc9efe894, type: 3} - - {fileID: 4062657912758122058, guid: 13f2740b5ae396e40940587ab2effd65, type: 3} - - {fileID: 8799415981405337049, guid: c21e0b5539573904cb10d979de4a3f72, type: 3} - - {fileID: 4062657912758122058, guid: b224b6df33529e64d83245d78e0feb9f, type: 3} - - {fileID: 4062657912758122058, guid: 7af455f1c1666e5409156598fe669f74, type: 3} - - {fileID: 4062657912758122058, guid: 2cf42dbc57bb6374b9e6ec700aad5854, type: 3} GameCanvas: {fileID: 1165634413} + ApplePrefab: {fileID: 4062657912758122058, guid: 23e3bfe33d8c6004c85fd638db567ab6, + type: 3} + GrapePrefab: {fileID: 8799415981405337049, guid: c21e0b5539573904cb10d979de4a3f72, + type: 3} + BananaPrefab: {fileID: 4062657912758122058, guid: 5e1f7f5d4294c1d4fa3e6f88dec0dfa6, + type: 3} + MangoPrefab: {fileID: 4062657912758122058, guid: 7af455f1c1666e5409156598fe669f74, + type: 3} + DurianPrefab: {fileID: 4062657912758122058, guid: 13f2740b5ae396e40940587ab2effd65, + type: 3} + PitayaPrefab: {fileID: 4062657912758122058, guid: 2cf42dbc57bb6374b9e6ec700aad5854, + type: 3} + KiwiPrefab: {fileID: 4062657912758122058, guid: b224b6df33529e64d83245d78e0feb9f, + type: 3} + BuddhasHandPrefab: {fileID: 4062657912758122058, guid: ebddb1b81a288cc4c993a25bc9efe894, + type: 3} ActiveFruits: [] --- !u!1 &1944344877 GameObject: diff --git a/Assets/Scripts/Game/Buildings/FanBuilding.cs b/Assets/Scripts/Game/Buildings/FanBuilding.cs index be9c48d..7f44e31 100644 --- a/Assets/Scripts/Game/Buildings/FanBuilding.cs +++ b/Assets/Scripts/Game/Buildings/FanBuilding.cs @@ -12,14 +12,14 @@ namespace Fruitomation.Game private void Start() { - TriggerDetector.SetAction((other) => + TriggerDetector.SetAction(other => { if (other.transform.parent.TryGetComponent(out Rigidbody2D body)) { Vector3 force = new(-transform.localScale.x, 0f, 0f); body?.AddForce(force * Mathf.PI, ForceMode2D.Impulse); } - }); + }, TriggerType.Stay); } private void Update() diff --git a/Assets/Scripts/Game/Buildings/SlicerBuilding.cs b/Assets/Scripts/Game/Buildings/SlicerBuilding.cs new file mode 100644 index 0000000..200aeca --- /dev/null +++ b/Assets/Scripts/Game/Buildings/SlicerBuilding.cs @@ -0,0 +1,7 @@ +namespace Fruitomation.Game +{ + public class SlicerBuilding : Building + { + + } +} \ No newline at end of file diff --git a/Assets/Scripts/Game/Buildings/SlicerBuilding.cs.meta b/Assets/Scripts/Game/Buildings/SlicerBuilding.cs.meta new file mode 100644 index 0000000..ddda5a1 --- /dev/null +++ b/Assets/Scripts/Game/Buildings/SlicerBuilding.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f2a0d2e92ab8436a8854e59ee269188a +timeCreated: 1776341863 \ No newline at end of file diff --git a/Assets/Scripts/Game/Buildings/SpringBuilding.cs b/Assets/Scripts/Game/Buildings/SpringBuilding.cs new file mode 100644 index 0000000..4561c8c --- /dev/null +++ b/Assets/Scripts/Game/Buildings/SpringBuilding.cs @@ -0,0 +1,35 @@ +using UnityEngine; +using System; + +namespace Fruitomation.Game +{ + public class SpringBuilding : Building + { + [SerializeField] private TriggerDetector Trigger; + + private void Start() + { + Trigger.SetAction(other => + { + if (other.transform.parent.TryGetComponent(out Rigidbody2D body)) + { + Vector2 v0 = body.linearVelocity; + float magnitude = Math.Max(v0.magnitude * 0.8f, 20f); + + Vector2 v1 = new Vector2(v0.x * 1.2f, Math.Abs(v0.y)).normalized * magnitude; + body.linearVelocity = v1; + } + }, TriggerType.Enter); + + Trigger.SetAction(other => + { + if (other.transform.parent.TryGetComponent(out Rigidbody2D body)) + { + Vector2 v0 = body.linearVelocity; + v0.y = Math.Max(1f, v0.y); + body.linearVelocity = v0; + } + }, TriggerType.Stay); + } + } +} diff --git a/Assets/Scripts/Game/Buildings/SpringBuilding.cs.meta b/Assets/Scripts/Game/Buildings/SpringBuilding.cs.meta new file mode 100644 index 0000000..6f27cb8 --- /dev/null +++ b/Assets/Scripts/Game/Buildings/SpringBuilding.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d85c1768ca4c6594dbdb161463af59dc \ No newline at end of file diff --git a/Assets/Scripts/Game/FruitBehaviour.cs b/Assets/Scripts/Game/FruitBehaviour.cs index eb16046..d1c013f 100644 --- a/Assets/Scripts/Game/FruitBehaviour.cs +++ b/Assets/Scripts/Game/FruitBehaviour.cs @@ -4,7 +4,7 @@ using UnityEngine; namespace Fruitomation.Game { - public class FruitBehaviour : MonoBehaviour + public class FruitBehaviour : MonoBehaviour, IGameItem { [Header("References")] [SerializeField] private RectTransform RectTransform; diff --git a/Assets/Scripts/Game/FruitSpawner.cs b/Assets/Scripts/Game/FruitSpawner.cs index 154871e..6e95e6e 100644 --- a/Assets/Scripts/Game/FruitSpawner.cs +++ b/Assets/Scripts/Game/FruitSpawner.cs @@ -49,25 +49,25 @@ namespace Fruitomation.Game { List unlocked = new() { ApplePrefab }; - if (UpgradeManager.Unlocked(BasicUpgrade.Grapes)) + if (UpgradeManager.Is(BasicUpgrade.Grapes)) unlocked.Add(GrapePrefab); - if (UpgradeManager.Unlocked(BasicUpgrade.Bananas)) + if (UpgradeManager.Is(BasicUpgrade.Bananas)) unlocked.Add(BananaPrefab); - if (UpgradeManager.Unlocked(BasicUpgrade.Kiwi)) + if (UpgradeManager.Is(BasicUpgrade.Kiwi)) unlocked.Add(KiwiPrefab); - if (UpgradeManager.Unlocked(BasicUpgrade.Mangoes)) + if (UpgradeManager.Is(BasicUpgrade.Mangoes)) unlocked.Add(MangoPrefab); - if (UpgradeManager.Unlocked(BasicUpgrade.Durian)) + if (UpgradeManager.Is(BasicUpgrade.Durian)) unlocked.Add(DurianPrefab); - if (UpgradeManager.Unlocked(BasicUpgrade.BuddhasHand)) + if (UpgradeManager.Is(BasicUpgrade.BuddhasHand)) unlocked.Add(BuddhasHandPrefab); - if (UpgradeManager.Unlocked(BasicUpgrade.Pitayas)) + if (UpgradeManager.Is(BasicUpgrade.Pitayas)) unlocked.Add(PitayaPrefab); GameObject prefab = unlocked[Random.Range(0, unlocked.Count)]; diff --git a/Assets/Scripts/Game/IGameItem.cs b/Assets/Scripts/Game/IGameItem.cs new file mode 100644 index 0000000..aab46e1 --- /dev/null +++ b/Assets/Scripts/Game/IGameItem.cs @@ -0,0 +1,7 @@ +namespace Fruitomation.Game +{ + public interface IGameItem + { + + } +} \ No newline at end of file diff --git a/Assets/Scripts/Game/IGameItem.cs.meta b/Assets/Scripts/Game/IGameItem.cs.meta new file mode 100644 index 0000000..0e002e4 --- /dev/null +++ b/Assets/Scripts/Game/IGameItem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 34fc8e2b7bed4019ae83959166c6b8f8 +timeCreated: 1776342076 \ No newline at end of file diff --git a/Assets/Scripts/Game/TriggerDetector.cs b/Assets/Scripts/Game/TriggerDetector.cs index 4611e04..0b99511 100644 --- a/Assets/Scripts/Game/TriggerDetector.cs +++ b/Assets/Scripts/Game/TriggerDetector.cs @@ -3,11 +3,37 @@ using System; namespace Fruitomation.Game { + public enum TriggerType + { + Enter, + Stay + } + public class TriggerDetector : MonoBehaviour { - private Action RegisteredAction; + private Action RegisteredActionStay; + private Action RegisteredActionEnter; - public void SetAction(Action action) => RegisteredAction = action; - private void OnTriggerStay2D(Collider2D other) => RegisteredAction?.Invoke(other); + private TriggerType Type; + + public void SetAction(Action action, TriggerType type) + { + switch (type) + { + case TriggerType.Stay: + RegisteredActionStay = action; + return; + + case TriggerType.Enter: + RegisteredActionEnter = action; + return; + + default: + throw new ArgumentOutOfRangeException(nameof(type), type, null); + } + } + + private void OnTriggerEnter2D(Collider2D other) => RegisteredActionEnter?.Invoke(other); + private void OnTriggerStay2D(Collider2D other) => RegisteredActionStay?.Invoke(other); } } diff --git a/Assets/Scripts/Game/UpgradeManager.cs b/Assets/Scripts/Game/UpgradeManager.cs index b1f6c44..1862e96 100644 --- a/Assets/Scripts/Game/UpgradeManager.cs +++ b/Assets/Scripts/Game/UpgradeManager.cs @@ -49,7 +49,11 @@ namespace Fruitomation.Game PitayaIceCream, SpicedPitayaIceCream, } - + + [Serializable] public enum IncrementalUpgrade + { + } + public class UnlockedUpgrades { [Serializable] public class Serialized @@ -130,7 +134,7 @@ namespace Fruitomation.Game public static void Unlock(BasicUpgrade upgrade) => CurrentUpgrades.Unlock(upgrade); - public static bool Unlocked(BasicUpgrade upgrade) => CurrentUpgrades.IsUnlocked(upgrade); + public static bool Is(BasicUpgrade upgrade) => CurrentUpgrades.IsUnlocked(upgrade); #if UNITY_EDITOR [MenuItem("Fruitomation/Reset Upgrades")]