Added spring

This commit is contained in:
Pasha Bibko
2026-04-16 13:22:52 +01:00
parent 6868788af7
commit e515ce1dc1
16 changed files with 640 additions and 37 deletions

BIN
Assets/Art/Slicer-v1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -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:

View File

@@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 13 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 1 enableMipMap: 0
sRGBTexture: 1 sRGBTexture: 1
linearTexture: 0 linearTexture: 0
fadeOut: 0 fadeOut: 0
@@ -34,16 +34,16 @@ TextureImporter:
maxTextureSize: 2048 maxTextureSize: 2048
textureSettings: textureSettings:
serializedVersion: 2 serializedVersion: 2
filterMode: 1 filterMode: 0
aniso: 1 aniso: 1
mipBias: 0 mipBias: 0
wrapU: 0 wrapU: 1
wrapV: 0 wrapV: 1
wrapW: 0 wrapW: 0
nPOTScale: 1 nPOTScale: 0
lightmap: 0 lightmap: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 0 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
@@ -52,9 +52,9 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1
alphaIsTransparency: 0 alphaIsTransparency: 1
spriteTessellationDetail: -1 spriteTessellationDetail: -1
textureType: 0 textureType: 8
textureShape: 1 textureShape: 1
singleChannelComponent: 0 singleChannelComponent: 0
flipbookRows: 1 flipbookRows: 1
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: WebGL buildTarget: WebGL
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -110,15 +110,18 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: 5e97eb03825dee720800000000000000
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0

View File

@@ -22,3 +22,6 @@ MonoBehaviour:
- Name: Wall - Name: Wall
Prefab: {fileID: 1970033728917450326, guid: 3492b31295b69c148bb5a0660e598878, Prefab: {fileID: 1970033728917450326, guid: 3492b31295b69c148bb5a0660e598878,
type: 3} type: 3}
- Name: Spring
Prefab: {fileID: 8624048914473773482, guid: 6060f6928011bf54dad9c5ef16fb1048,
type: 3}

View File

@@ -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}
<SizeOnGrid>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

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6060f6928011bf54dad9c5ef16fb1048
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -2192,20 +2192,27 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1fc36d0808cf971459d9e430faaeadd9, type: 3} m_Script: {fileID: 11500000, guid: 1fc36d0808cf971459d9e430faaeadd9, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
MaxSpawned: 1000 MaxSpawned: 30
MinSpawnTime: 0 MinSpawnTime: 0
MaxSpawnTime: 0.2 MaxSpawnTime: 0.2
FruitSpawnParent: {fileID: 1944344878} 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} 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: [] ActiveFruits: []
--- !u!1 &1944344877 --- !u!1 &1944344877
GameObject: GameObject:

View File

@@ -12,14 +12,14 @@ namespace Fruitomation.Game
private void Start() private void Start()
{ {
TriggerDetector.SetAction((other) => TriggerDetector.SetAction(other =>
{ {
if (other.transform.parent.TryGetComponent(out Rigidbody2D body)) if (other.transform.parent.TryGetComponent(out Rigidbody2D body))
{ {
Vector3 force = new(-transform.localScale.x, 0f, 0f); Vector3 force = new(-transform.localScale.x, 0f, 0f);
body?.AddForce(force * Mathf.PI, ForceMode2D.Impulse); body?.AddForce(force * Mathf.PI, ForceMode2D.Impulse);
} }
}); }, TriggerType.Stay);
} }
private void Update() private void Update()

View File

@@ -0,0 +1,7 @@
namespace Fruitomation.Game
{
public class SlicerBuilding : Building
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f2a0d2e92ab8436a8854e59ee269188a
timeCreated: 1776341863

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d85c1768ca4c6594dbdb161463af59dc

View File

@@ -4,7 +4,7 @@ using UnityEngine;
namespace Fruitomation.Game namespace Fruitomation.Game
{ {
public class FruitBehaviour : MonoBehaviour public class FruitBehaviour : MonoBehaviour, IGameItem
{ {
[Header("References")] [Header("References")]
[SerializeField] private RectTransform RectTransform; [SerializeField] private RectTransform RectTransform;

View File

@@ -49,25 +49,25 @@ namespace Fruitomation.Game
{ {
List<GameObject> unlocked = new() { ApplePrefab }; List<GameObject> unlocked = new() { ApplePrefab };
if (UpgradeManager.Unlocked(BasicUpgrade.Grapes)) if (UpgradeManager.Is(BasicUpgrade.Grapes))
unlocked.Add(GrapePrefab); unlocked.Add(GrapePrefab);
if (UpgradeManager.Unlocked(BasicUpgrade.Bananas)) if (UpgradeManager.Is(BasicUpgrade.Bananas))
unlocked.Add(BananaPrefab); unlocked.Add(BananaPrefab);
if (UpgradeManager.Unlocked(BasicUpgrade.Kiwi)) if (UpgradeManager.Is(BasicUpgrade.Kiwi))
unlocked.Add(KiwiPrefab); unlocked.Add(KiwiPrefab);
if (UpgradeManager.Unlocked(BasicUpgrade.Mangoes)) if (UpgradeManager.Is(BasicUpgrade.Mangoes))
unlocked.Add(MangoPrefab); unlocked.Add(MangoPrefab);
if (UpgradeManager.Unlocked(BasicUpgrade.Durian)) if (UpgradeManager.Is(BasicUpgrade.Durian))
unlocked.Add(DurianPrefab); unlocked.Add(DurianPrefab);
if (UpgradeManager.Unlocked(BasicUpgrade.BuddhasHand)) if (UpgradeManager.Is(BasicUpgrade.BuddhasHand))
unlocked.Add(BuddhasHandPrefab); unlocked.Add(BuddhasHandPrefab);
if (UpgradeManager.Unlocked(BasicUpgrade.Pitayas)) if (UpgradeManager.Is(BasicUpgrade.Pitayas))
unlocked.Add(PitayaPrefab); unlocked.Add(PitayaPrefab);
GameObject prefab = unlocked[Random.Range(0, unlocked.Count)]; GameObject prefab = unlocked[Random.Range(0, unlocked.Count)];

View File

@@ -3,11 +3,37 @@ using System;
namespace Fruitomation.Game namespace Fruitomation.Game
{ {
public enum TriggerType
{
Enter,
Stay
}
public class TriggerDetector : MonoBehaviour public class TriggerDetector : MonoBehaviour
{ {
private Action<Collider2D> RegisteredAction; private Action<Collider2D> RegisteredActionStay;
private Action<Collider2D> RegisteredActionEnter;
public void SetAction(Action<Collider2D> action) => RegisteredAction = action; private TriggerType Type;
private void OnTriggerStay2D(Collider2D other) => RegisteredAction?.Invoke(other);
public void SetAction(Action<Collider2D> 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);
} }
} }

View File

@@ -49,7 +49,11 @@ namespace Fruitomation.Game
PitayaIceCream, PitayaIceCream,
SpicedPitayaIceCream, SpicedPitayaIceCream,
} }
[Serializable] public enum IncrementalUpgrade
{
}
public class UnlockedUpgrades public class UnlockedUpgrades
{ {
[Serializable] public class Serialized [Serializable] public class Serialized
@@ -130,7 +134,7 @@ namespace Fruitomation.Game
public static void Unlock(BasicUpgrade upgrade) => CurrentUpgrades.Unlock(upgrade); 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 #if UNITY_EDITOR
[MenuItem("Fruitomation/Reset Upgrades")] [MenuItem("Fruitomation/Reset Upgrades")]