From c8937a239d91fca12dbdfb25cd6e359f91d624e2 Mon Sep 17 00:00:00 2001 From: sega Date: Tue, 4 Aug 2026 10:45:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=BF=D1=83=D0=BB=20=D0=B4=D0=BB=D1=8F=20=D1=84=D0=B8=D1=88?= =?UTF-8?q?=D0=B5=D0=BA;=20=D1=81=D1=87=D0=B8=D1=82=D1=8B=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D1=81=D0=BA=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=BA=D0=B8=D1=85=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B2=20In.?= =?UTF-8?q?cs;=20=D0=BF=D0=B5=D1=80=D0=B5=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=86=D0=B5=D0=BB=D0=B5=D0=B2=D1=8B?= =?UTF-8?q?=D1=85=20=D0=BF=D0=BE=D0=B7=D0=B8=D1=86=D0=B8=D0=B9=20=D0=B4?= =?UTF-8?q?=D0=BE=D1=81=D0=BA=D0=B8;=20=D0=BE=D1=82=D1=80=D0=B5=D1=84?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B5=D0=BD=20Player.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Chip Images/chipCatana.png.meta | 44 +- Assets/Prefabs/ChipBot.prefab | 455 ------------------ Assets/Prefabs/ChipBot.prefab.meta | 7 - Assets/Prefabs/ChipPlayer1.prefab | 370 -------------- Assets/Prefabs/ChipPlayer1.prefab.meta | 7 - Assets/Prefabs/ChipPlayer2.prefab | 370 -------------- Assets/Prefabs/ChipPlayer2.prefab.meta | 7 - Assets/Prefabs/ChipPrefab.prefab | 8 +- Assets/Scenes/GameScene3D.unity | 104 +++- Assets/Scripts/Bootstrap.cs | 6 +- Assets/Scripts/ChipPool.cs | 4 +- Assets/Scripts/Common/GameManager.cs | 14 +- Assets/Scripts/Common/Inputs/In.cs | 45 +- Assets/Scripts/Gameplay/Board.cs | 8 +- Assets/Scripts/Gameplay/BoardConfiguration.cs | 12 +- Assets/Scripts/Gameplay/BoardFitter.cs | 9 +- Assets/Scripts/Gameplay/Player.cs | 253 ++++++---- Assets/Scripts/Menu/Panels/InfoPanel.cs | 2 +- 18 files changed, 343 insertions(+), 1382 deletions(-) delete mode 100644 Assets/Prefabs/ChipBot.prefab delete mode 100644 Assets/Prefabs/ChipBot.prefab.meta delete mode 100644 Assets/Prefabs/ChipPlayer1.prefab delete mode 100644 Assets/Prefabs/ChipPlayer1.prefab.meta delete mode 100644 Assets/Prefabs/ChipPlayer2.prefab delete mode 100644 Assets/Prefabs/ChipPlayer2.prefab.meta diff --git a/Assets/Characters/Chip Images/chipCatana.png.meta b/Assets/Characters/Chip Images/chipCatana.png.meta index 541e94c..1283c20 100644 --- a/Assets/Characters/Chip Images/chipCatana.png.meta +++ b/Assets/Characters/Chip Images/chipCatana.png.meta @@ -43,13 +43,13 @@ TextureImporter: nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 1 + spriteMode: 2 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 810 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 820 + spriteBorder: {x: 0, y: 0, z: 0, w: 14} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 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: Android maxTextureSize: 2048 resizeAlgorithm: 0 @@ -108,18 +108,44 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 - sprites: [] + sprites: + - serializedVersion: 2 + name: chipCatana_0 + rect: + serializedVersion: 2 + x: 75 + y: 82 + width: 818 + height: 822 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: d8c1ca50493d2f8449d0f0600f0ac437 + internalID: -1055215911 + vertices: [] + indices: + edges: [] + weights: [] outline: [] + customData: physicsShape: [] bones: [] spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 + internalID: 1537655665 vertices: [] indices: edges: [] weights: [] secondaryTextures: [] - nameFileIdTable: {} + spriteCustomMetadata: + entries: [] + nameFileIdTable: + chipCatana_0: -1055215911 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Prefabs/ChipBot.prefab b/Assets/Prefabs/ChipBot.prefab deleted file mode 100644 index 49df3ef..0000000 --- a/Assets/Prefabs/ChipBot.prefab +++ /dev/null @@ -1,455 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4453572131830335918 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1891433078102213312} - - component: {fileID: 5735187616875578469} - m_Layer: 0 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1891433078102213312 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4453572131830335918} - serializedVersion: 2 - 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: 8850948142576263202} - m_Father: {fileID: 2308229979791902274} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &5735187616875578469 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4453572131830335918} - 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: -5330059 - m_SortingLayer: 2 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: e70f18f9e393a6a4ca20daee1188f1e5, 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.6384, y: 1.6384} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!1 &4478126490810938235 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2308229979791902274} - - component: {fileID: -1279240344415514123} - - component: {fileID: -3723123627577925563} - - component: {fileID: 5849137902648406005} - - component: {fileID: 8301785664942396078} - m_Layer: 0 - m_Name: ChipBot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2308229979791902274 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.15, y: 1.15, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1891433078102213312} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!96 &-1279240344415514123 -TrailRenderer: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fc368c70ff252e649adbbe3df84fdada, type: 2} - 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: -5330059 - m_SortingLayer: 2 - m_SortingOrder: -1 - m_Time: 0.2 - m_PreviewTimeScale: 1 - m_Parameters: - serializedVersion: 3 - widthMultiplier: 1 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: -0.40217972 - outSlope: -0.40217972 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.62565136 - outWeight: 0.99635035 - - serializedVersion: 3 - time: 1 - value: 0.6 - inSlope: -0.40627077 - outSlope: -0.40627077 - tangentMode: 0 - weightedMode: 0 - inWeight: 1 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 0, g: 0.7515292, b: 1, a: 0.98037} - key1: {r: 0, g: 0.3177656, b: 0.7433963, a: 0} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 16885 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 77 - atime1: 50963 - atime2: 65535 - atime3: 65535 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 5 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - textureScale: {x: 1, y: 1} - shadowBias: 0.5 - generateLightingData: 0 - m_MinVertexDistance: 0 - m_MaskInteraction: 0 - m_Autodestruct: 0 - m_Emitting: 1 - m_ApplyActiveColorSpace: 1 ---- !u!82 &-3723123627577925563 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 8300000, guid: 97356cb5584c41849a213dd28906602f, type: 3} - m_PlayOnAwake: 0 - m_Volume: 1 - m_Pitch: 1.2 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 ---- !u!114 &5849137902648406005 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5a33d20e192d63748be8104592f6ef66, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!54 &8301785664942396078 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - serializedVersion: 4 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_CenterOfMass: {x: 0, y: 0, z: 0} - m_InertiaTensor: {x: 1, y: 1, z: 1} - m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ImplicitCom: 1 - m_ImplicitTensor: 1 - m_UseGravity: 1 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!1 &5608352142033353353 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8850948142576263202} - - component: {fileID: 1216809169282318169} - m_Layer: 0 - m_Name: "\u041B\u043E\u0433\u043E\u0421\u0438\u043D\u0438\u0439" - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &8850948142576263202 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5608352142033353353} - serializedVersion: 2 - 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: 1891433078102213312} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &1216809169282318169 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5608352142033353353} - 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: -5330059 - m_SortingLayer: 2 - m_SortingOrder: 1 - m_Sprite: {fileID: 21300000, guid: 2f8ce0a068299e345bf7749646ac32dc, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 5.12, y: 5.12} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 0 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/ChipBot.prefab.meta b/Assets/Prefabs/ChipBot.prefab.meta deleted file mode 100644 index 66ec1e5..0000000 --- a/Assets/Prefabs/ChipBot.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: afe8782fb49b2254cbdae76f1a9f22a8 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Prefabs/ChipPlayer1.prefab b/Assets/Prefabs/ChipPlayer1.prefab deleted file mode 100644 index 24db8b1..0000000 --- a/Assets/Prefabs/ChipPlayer1.prefab +++ /dev/null @@ -1,370 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4478126490810938235 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2308229979791902274} - - component: {fileID: 2785177574404548980} - - component: {fileID: -5597252834244713330} - - component: {fileID: 4011524773098274618} - - component: {fileID: 8209685094204570851} - m_Layer: 0 - m_Name: ChipPlayer1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2308229979791902274 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.15, y: 1.15, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1661318112489111391} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!96 &2785177574404548980 -TrailRenderer: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fc368c70ff252e649adbbe3df84fdada, type: 2} - 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: -5330059 - m_SortingLayer: 2 - m_SortingOrder: -1 - m_Time: 0.2 - m_PreviewTimeScale: 1 - m_Parameters: - serializedVersion: 3 - widthMultiplier: 1 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.97508717 - inSlope: -0.38808823 - outSlope: -0.38808823 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0.99767745 - - serializedVersion: 3 - time: 1 - value: 0.6 - inSlope: -0.38939682 - outSlope: -0.38939682 - tangentMode: 0 - weightedMode: 0 - inWeight: 1 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 1, g: 0.47496206, b: 0, a: 1} - key1: {r: 1, g: 0.022731155, b: 0, a: 0} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 65535 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 65535 - atime3: 65535 - atime4: 65535 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 5 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - textureScale: {x: 1, y: 1} - shadowBias: 0.5 - generateLightingData: 0 - m_MinVertexDistance: 0 - m_MaskInteraction: 0 - m_Autodestruct: 0 - m_Emitting: 1 - m_ApplyActiveColorSpace: 1 ---- !u!82 &-5597252834244713330 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 8300000, guid: 97356cb5584c41849a213dd28906602f, type: 3} - m_PlayOnAwake: 0 - m_Volume: 1 - m_Pitch: 1.2 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 ---- !u!114 &4011524773098274618 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5a33d20e192d63748be8104592f6ef66, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!54 &8209685094204570851 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - serializedVersion: 4 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_CenterOfMass: {x: 0, y: 0, z: 0} - m_InertiaTensor: {x: 1, y: 1, z: 1} - m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ImplicitCom: 1 - m_ImplicitTensor: 1 - m_UseGravity: 1 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!1 &7100645357252458328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1661318112489111391} - - component: {fileID: 5157516706225878083} - m_Layer: 0 - m_Name: image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1661318112489111391 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7100645357252458328} - serializedVersion: 2 - 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: 2308229979791902274} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &5157516706225878083 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7100645357252458328} - 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: -5330059 - m_SortingLayer: 2 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: 8d6432ff047c62946a41e3235f28ba57, 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.6384, y: 1.6384} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 diff --git a/Assets/Prefabs/ChipPlayer1.prefab.meta b/Assets/Prefabs/ChipPlayer1.prefab.meta deleted file mode 100644 index c6a521c..0000000 --- a/Assets/Prefabs/ChipPlayer1.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 1e042d6979719a240abdf06769829f7f -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Prefabs/ChipPlayer2.prefab b/Assets/Prefabs/ChipPlayer2.prefab deleted file mode 100644 index 59d8571..0000000 --- a/Assets/Prefabs/ChipPlayer2.prefab +++ /dev/null @@ -1,370 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &4453572131830335918 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1891433078102213312} - - component: {fileID: 5735187616875578469} - m_Layer: 0 - m_Name: image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1891433078102213312 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4453572131830335918} - serializedVersion: 2 - 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: 2308229979791902274} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &5735187616875578469 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4453572131830335918} - 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: -5330059 - m_SortingLayer: 2 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: 2c24e52d4911d4940907cbe79e0c7a00, 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.6384, y: 1.6384} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!1 &4478126490810938235 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2308229979791902274} - - component: {fileID: -1279240344415514123} - - component: {fileID: 2148585785937717131} - - component: {fileID: -1838058292581257394} - - component: {fileID: -2525511250475132538} - m_Layer: 0 - m_Name: ChipPlayer2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2308229979791902274 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.15, y: 1.15, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1891433078102213312} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!96 &-1279240344415514123 -TrailRenderer: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fc368c70ff252e649adbbe3df84fdada, type: 2} - 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: -5330059 - m_SortingLayer: 2 - m_SortingOrder: -1 - m_Time: 0.2 - m_PreviewTimeScale: 1 - m_Parameters: - serializedVersion: 3 - widthMultiplier: 1 - widthCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.97508717 - inSlope: -0.38808823 - outSlope: -0.38808823 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0.99767745 - - serializedVersion: 3 - time: 1 - value: 0.6 - inSlope: -0.38939682 - outSlope: -0.38939682 - tangentMode: 0 - weightedMode: 0 - inWeight: 1 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - colorGradient: - serializedVersion: 2 - key0: {r: 0, g: 0.7515292, b: 1, a: 1} - key1: {r: 0, g: 0.3177656, b: 0.7433963, a: 0} - key2: {r: 0, g: 0, b: 0, a: 0} - key3: {r: 0, g: 0, b: 0, a: 0} - key4: {r: 0, g: 0, b: 0, a: 0} - key5: {r: 0, g: 0, b: 0, a: 0} - key6: {r: 0, g: 0, b: 0, a: 0} - key7: {r: 0, g: 0, b: 0, a: 0} - ctime0: 0 - ctime1: 34310 - ctime2: 0 - ctime3: 0 - ctime4: 0 - ctime5: 0 - ctime6: 0 - ctime7: 0 - atime0: 0 - atime1: 65535 - atime2: 65535 - atime3: 65535 - atime4: 0 - atime5: 0 - atime6: 0 - atime7: 0 - m_Mode: 0 - m_ColorSpace: 0 - m_NumColorKeys: 2 - m_NumAlphaKeys: 2 - numCornerVertices: 5 - numCapVertices: 0 - alignment: 0 - textureMode: 0 - textureScale: {x: 1, y: 1} - shadowBias: 0.5 - generateLightingData: 0 - m_MinVertexDistance: 0 - m_MaskInteraction: 0 - m_Autodestruct: 0 - m_Emitting: 1 - m_ApplyActiveColorSpace: 1 ---- !u!82 &2148585785937717131 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 8300000, guid: 97356cb5584c41849a213dd28906602f, type: 3} - m_PlayOnAwake: 0 - m_Volume: 1 - m_Pitch: 1.2 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 ---- !u!114 &-1838058292581257394 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5a33d20e192d63748be8104592f6ef66, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!54 &-2525511250475132538 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4478126490810938235} - serializedVersion: 4 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_CenterOfMass: {x: 0, y: 0, z: 0} - m_InertiaTensor: {x: 1, y: 1, z: 1} - m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ImplicitCom: 1 - m_ImplicitTensor: 1 - m_UseGravity: 1 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 diff --git a/Assets/Prefabs/ChipPlayer2.prefab.meta b/Assets/Prefabs/ChipPlayer2.prefab.meta deleted file mode 100644 index c3bc6ce..0000000 --- a/Assets/Prefabs/ChipPlayer2.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 376ff57f7b90bd845a887cfd6ba95427 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Prefabs/ChipPrefab.prefab b/Assets/Prefabs/ChipPrefab.prefab index ec75299..33fa893 100644 --- a/Assets/Prefabs/ChipPrefab.prefab +++ b/Assets/Prefabs/ChipPrefab.prefab @@ -31,7 +31,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.15, y: 1.15, z: 1} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1661318112489111391} @@ -304,8 +304,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: aa727783246783d45abdace8138c97fd, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::Chip - linearSpeed: 50 + team: 0 acceleration: 200 + maxFallingRotationSpeed: 500 + spriteRenderer: {fileID: 5157516706225878083} --- !u!1 &7100645357252458328 GameObject: m_ObjectHideFlags: 0 @@ -395,5 +397,5 @@ SpriteRenderer: m_Size: {x: 1.6384, y: 1.6384} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 + m_WasSpriteAssigned: 0 m_SpriteSortPoint: 0 diff --git a/Assets/Scenes/GameScene3D.unity b/Assets/Scenes/GameScene3D.unity index 03081dd..d17203a 100644 --- a/Assets/Scenes/GameScene3D.unity +++ b/Assets/Scenes/GameScene3D.unity @@ -4500,6 +4500,7 @@ MonoBehaviour: rulesController: {fileID: 454272343} chipPointer: {fileID: 1615046714} gameMode: 0 + currentPlayer: 1 player1score: 0 player2score: 0 vsBotScore: 0 @@ -4510,7 +4511,6 @@ MonoBehaviour: botChip: {fileID: 4478126490810938235, guid: afe8782fb49b2254cbdae76f1a9f22a8, type: 3} chipPrefab: {fileID: 581128120472889901, guid: c349c741ed95e864ca8d5b3217c40598, type: 3} currentChip: {fileID: 0} - currentPlayer: 1 canReturnToMenu: 0 nameInput: {fileID: 0} ValutaNameInput: {fileID: 0} @@ -4524,6 +4524,7 @@ MonoBehaviour: leaderboard: {fileID: 1784614873} CharactersConfigurator: {fileID: 141381088} menuGameplayTransit: {fileID: 29868612} + player1: {fileID: 304437819} setPasswordPanel: {fileID: 131572818} vitrinaPanel: {fileID: 61619038} qrPanel: {fileID: 1060301113} @@ -5252,6 +5253,59 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 304061108} m_CullTransparentMesh: 1 +--- !u!1 &304437818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 304437820} + - component: {fileID: 304437819} + m_Layer: 0 + m_Name: Player1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &304437819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304437818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0302f7201f8ad714280dbc7ceefc55a7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Player + board: {fileID: 1768372455} + chipSprite: {fileID: -1055215911, guid: b196c55df50055d4cafb336e9a05b519, type: 3} + team: 1 + chipYOffset: 5 + prepareSpeed: 30 + moveSpeed: 10 + leftButtons: 03000000 + rightButtons: 01000000 + actionButtons: 04000000 +--- !u!4 &304437820 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304437818} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.18764, y: 2.92598, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &325463671 GameObject: m_ObjectHideFlags: 0 @@ -21133,6 +21187,50 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1253935161} m_CullTransparentMesh: 1 +--- !u!1 &1259803110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1259803112} + - component: {fileID: 1259803111} + m_Layer: 0 + m_Name: ChipPool + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1259803111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259803110} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6f304a4db5b21a3438c74970b41a0db7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::ChipPool +--- !u!4 &1259803112 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259803110} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.1691, y: 2.49427, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1274858193 GameObject: m_ObjectHideFlags: 0 @@ -23232,6 +23330,8 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::Bootstrap soundManager: {fileID: 151433694} board: {fileID: 1768372455} + chipPool: {fileID: 1259803111} + chipPrefab: {fileID: 581128120472889901, guid: c349c741ed95e864ca8d5b3217c40598, type: 3} notificationSystem: {fileID: 259182293} inputSystem: {fileID: 259182289} prizeSystem: {fileID: 259182290} @@ -38508,6 +38608,7 @@ SceneRoots: - {fileID: 1967587903} - {fileID: 411367487} - {fileID: 1768372452} + - {fileID: 1259803112} - {fileID: 259182280} - {fileID: 1542626845} - {fileID: 1851050357} @@ -38518,3 +38619,4 @@ SceneRoots: - {fileID: 1615046716} - {fileID: 46193421} - {fileID: 1606109336} + - {fileID: 304437820} diff --git a/Assets/Scripts/Bootstrap.cs b/Assets/Scripts/Bootstrap.cs index dc20d59..a115f38 100644 --- a/Assets/Scripts/Bootstrap.cs +++ b/Assets/Scripts/Bootstrap.cs @@ -8,6 +8,10 @@ public class Bootstrap : MonoBehaviour private const int DEFAULT_FRAME_RATE = 60; [SerializeField] private SoundManager soundManager; [SerializeField] private Board board; + + [SerializeField] private ChipPool chipPool; + [SerializeField] private Chip chipPrefab; + [SerializeField] private NotificationSystem notificationSystem; [SerializeField] private In inputSystem; [SerializeField] private PrizeSystemManager prizeSystem; @@ -68,7 +72,7 @@ public class Bootstrap : MonoBehaviour gameManager.Initialize(); board.Init(); - + chipPool.Init(chipPrefab, 30); //countersCollector.Initialize(); menu.Initialize(); diff --git a/Assets/Scripts/ChipPool.cs b/Assets/Scripts/ChipPool.cs index e941d86..358be46 100644 --- a/Assets/Scripts/ChipPool.cs +++ b/Assets/Scripts/ChipPool.cs @@ -34,6 +34,7 @@ public class ChipPool : MonoBehaviour Create(); Chip chip = _availableChips.Dequeue(); + chip.transform.SetParent(null); chip.gameObject.SetActive(true); return chip; } @@ -54,12 +55,13 @@ public class ChipPool : MonoBehaviour throw new InvalidOperationException("Пул фишек не инициализирован"); chip.gameObject.SetActive(false); + chip.transform.SetParent(transform); _availableChips.Enqueue(chip); } private Chip Create() { - Chip chip = Instantiate(_prefab); + Chip chip = Instantiate(_prefab, transform); chip.gameObject.SetActive(false); _availableChips.Enqueue(chip); diff --git a/Assets/Scripts/Common/GameManager.cs b/Assets/Scripts/Common/GameManager.cs index 4359505..87007e6 100644 --- a/Assets/Scripts/Common/GameManager.cs +++ b/Assets/Scripts/Common/GameManager.cs @@ -28,9 +28,6 @@ public class GameManager : MonoBehaviour public GameMode gameMode; [HideInInspector] public Team currentPlayer = Team.Player2; - - - [Header("Scores")] public int player1score = 0, player2score = 0, vsBotScore = 0; @@ -48,8 +45,6 @@ public class GameManager : MonoBehaviour public Chip chipPrefab; [HideInInspector] public Chip currentChip; - - public bool canReturnToMenu = false; //todo: разобраться нафига эта переменная [Header("Панели ввода")] @@ -69,6 +64,7 @@ public class GameManager : MonoBehaviour [Header("Переходы")] [SerializeField] private MenuGameplayTransit menuGameplayTransit; + [SerializeField] Player player1; //public PvpPointer pvpPointer; //public MovesAndTimeCounter movesAndTimeCounter; @@ -102,12 +98,16 @@ public class GameManager : MonoBehaviour public void TryEnterGame(GameMode mode) { - if (!PaymentSystem.TryPayForMode(mode)) - return; + //ДЛЯ ОТЛАДКИ + //if (!PaymentSystem.TryPayForMode(mode)) + // return; SetMode(mode); menuGameplayTransit.GotoGameplay(); OnGameStarted?.Invoke(gameMode); + + player1.PrepareChip(); + ControlsPerformer.Instance.SetControlable(player1); //timerManager.SetTimersActivity(gameMode); } diff --git a/Assets/Scripts/Common/Inputs/In.cs b/Assets/Scripts/Common/Inputs/In.cs index e09af8e..0e6bc9e 100644 --- a/Assets/Scripts/Common/Inputs/In.cs +++ b/Assets/Scripts/Common/Inputs/In.cs @@ -1,23 +1,9 @@ -using UnityEngine; +using System.Collections.Generic; +using UnityEngine; -/// -/// Статический фасад для унифицированного доступа к системе ввода. -/// Предоставляет глобальный интерфейс для работы с управлением независимо от выбранного источника. -/// -/// -/// Этот класс является точкой входа для всей игровой логики, работающей с вводом. -/// Автоматически инициализирует выбранный источник управления (клавиатура или COM-порт) -/// и предоставляет статические методы для удобного доступа из любого места кода. -/// -/// Использование: -/// 1. Настройте тип ввода в инспекторе -/// 2. Вызовите Initialize() при старте игры -/// 3. Используйте статические методы для проверки ввода -/// public class In : MonoBehaviour { [Header("Выбор источника управления")] - //[SerializeField] private InputSourceType inputType; static InputSource source; @@ -33,44 +19,37 @@ public class In : MonoBehaviour if (!success) Debug.LogWarning("Не удалось проинициалзировать источник управления."); } - /// Проверяет состояние конкретной кнопки по её физическому пину public static bool GetButton(InSignal button) => source.GetButton(button); - /// Проверяет нажатие кнопки по пину в текущем кадре public static bool GetButtonDown(InSignal button) => source.GetButtonDown(button); - /// Проверяет отпускание кнопки по пину в текущем кадре + public static bool GetButtonDown(IEnumerable signals) + { + foreach (var signal in signals) + if (GetButtonDown(signal)) + return true; + + return false; + } + public static bool GetButtonUp(InSignal button) => source.GetButtonUp(button); - /// Проверяет состояние кнопки по числовому индексу пина public static bool GetButton(int pinindex) => source.GetButton(pinindex); - /// Проверяет нажатие кнопки по индексу пина в текущем кадре public static bool GetButtonDown(int pinindex) => source.GetButtonDown(pinindex); - /// Проверяет отпускание кнопки по индексу пина в текущем кадре public static bool GetButtonUp(int pinindex) => source.GetButtonUp(pinindex); - - // ================================================================================ - // СТАТИЧЕСКИЕ МЕТОДЫ ДЛЯ РАБОТЫ С АБСТРАКТНЫМИ ДЕЙСТВИЯМИ ИГРОКОВ - // ================================================================================ - - /// Проверяет состояние действия для любого из игроков + public static bool GetButtonAnyPlayer(PlayerAction button) => source.GetButtonAnyPlayer(button); - /// Проверяет начало действия любым игроком в текущем кадре public static bool GetButtonDownAnyPlayer(PlayerAction button) => source.GetButtonDownAnyPlayer(button); - /// Проверяет завершение действия любым игроком в текущем кадре public static bool GetButtonUpAnyPlayer(PlayerAction button) => source.GetButtonUpAnyPlayer(button); - /// Проверяет состояние действия для текущего активного игрока public static bool GetButtonCurrentPlayer(PlayerAction button) => source.GetButtonCurrentPlayer(button); - /// Проверяет начало действия текущим игроком в текущем кадре public static bool GetButtonDownCurrentPlayer(PlayerAction button) => source.GetButtonDownCurrentPlayer(button); - /// Проверяет завершение действия текущим игроком в текущем кадре public static bool GetButtonUpCurrentPlayer(PlayerAction button) => source.GetButtonUpCurrentPlayer(button); public static bool AnyButton() => source.AnyButton(); diff --git a/Assets/Scripts/Gameplay/Board.cs b/Assets/Scripts/Gameplay/Board.cs index dd5d2be..91df8aa 100644 --- a/Assets/Scripts/Gameplay/Board.cs +++ b/Assets/Scripts/Gameplay/Board.cs @@ -28,9 +28,9 @@ public class Board : MonoBehaviour SettingsManager.OnSettingsChanged += ApplySettings; } - public Vector2 GetMiddleStickedPosition() => new Vector2(GetXPosition(Columns/2), config.stickedY); + public Vector2 GetMiddleStickedPosition() => new Vector2(GetXPosition(Columns/2), config.stickedYOffset); - public Vector2 GetStickedPosition(int column) => new Vector2(GetXPosition(column), config.stickedY); + public Vector2 GetStickedPosition(int column) => new Vector2(GetXPosition(column), config.topLeftCell.position.y + config.stickedYOffset); public Vector2 GetTargetPosition(int column) => new Vector2(GetXPosition(column), GetYPosition(column)); @@ -96,9 +96,9 @@ public class Board : MonoBehaviour return res; } - private float GetXPosition(int column) => config.topLeft.x + config.cellOffset.x * column; + private float GetXPosition(int column) => config.topLeftCell.position.x + config.cellOffset.x * column; - private float GetYPosition(int column) => config.topLeft.y - GetLowestEmptyRow(column) * config.cellOffset.y; + private float GetYPosition(int column) => config.topLeftCell.position.y + GetLowestEmptyRow(column) * config.cellOffset.y; private void PerformChipsClear() { diff --git a/Assets/Scripts/Gameplay/BoardConfiguration.cs b/Assets/Scripts/Gameplay/BoardConfiguration.cs index cd0328e..14620e9 100644 --- a/Assets/Scripts/Gameplay/BoardConfiguration.cs +++ b/Assets/Scripts/Gameplay/BoardConfiguration.cs @@ -2,16 +2,14 @@ public struct BoardConfiguration { - public readonly Vector2 topLeft; - public readonly Vector2 bottomRight; + public readonly Transform topLeftCell; public readonly Vector2 cellOffset; - public readonly float stickedY; + public readonly float stickedYOffset; - public BoardConfiguration(Vector2 topLeft, Vector2 bottomRight, Vector2 cellOffset, float stickedY) + public BoardConfiguration(Transform topLeft, Vector2 cellOffset, float stickedYOffset) { - this.topLeft = topLeft; - this.bottomRight = bottomRight; + this.topLeftCell = topLeft; this.cellOffset = cellOffset; - this.stickedY = stickedY; + this.stickedYOffset = stickedYOffset; } } diff --git a/Assets/Scripts/Gameplay/BoardFitter.cs b/Assets/Scripts/Gameplay/BoardFitter.cs index b891cbf..cd3c7b1 100644 --- a/Assets/Scripts/Gameplay/BoardFitter.cs +++ b/Assets/Scripts/Gameplay/BoardFitter.cs @@ -26,15 +26,12 @@ public class BoardFitter : MonoBehaviour { if (cells == null) throw new System.NullReferenceException($"Объект не инициализирован {this}"); - - Vector3 topLeftCellPosition = cells[0].transform.position; - Vector3 bottomRightCellPosition = cells[^1].transform.position; + Vector2 offset = new Vector2(cellScale + cellOffset, -(cellScale + cellOffset)); - return new BoardConfiguration(topLeft: topLeftCellPosition, - bottomRight: bottomRightCellPosition, + return new BoardConfiguration(topLeft: cells[0].transform, cellOffset: offset, - stickedY: topLeftCellPosition.y + stickedOffset); + stickedYOffset: stickedOffset); } public void FitBoard(int columns, int rows) diff --git a/Assets/Scripts/Gameplay/Player.cs b/Assets/Scripts/Gameplay/Player.cs index ae49648..6d6c0f4 100644 --- a/Assets/Scripts/Gameplay/Player.cs +++ b/Assets/Scripts/Gameplay/Player.cs @@ -3,140 +3,207 @@ using UnityEngine; public class Player : MonoBehaviour, IControlable { + [Header("Components")] [SerializeField] private Board board; - [SerializeField] private float chipYOffset = 5f; + [SerializeField] private Sprite chipSprite; + [SerializeField] private Team team; + [Header("Movement Settings")] + [SerializeField] private float chipYOffset = 5f; [SerializeField] private float prepareSpeed; [SerializeField] private float moveSpeed; - [Header("Управление")] - [SerializeField] List _leftButtons; - [SerializeField] List _rightButtons; - [SerializeField] List _actionButtons; + [Header("Input")] + [SerializeField] private List leftButtons; + [SerializeField] private List rightButtons; + [SerializeField] private List actionButtons; + // State + private PlayerState state = PlayerState.Sleep; + private Chip currentChip; private int[] availableColumns; - private int availableColumnsIndex; - private Chip myChip; - private Vector2 targetStickedPosition; - private Vector2 targetPosition; - private PlayerState _state; - private bool controlsEnabled; + private int selectedColumnIndex; - private int SelectedColumn => availableColumns[availableColumnsIndex]; - - public bool ControlsEnabled { - get => _state == PlayerState.Idle || _state == PlayerState.Moving; - set => controlsEnabled = value;} + // Movement targets + private Vector2 stickedTargetPosition; + private Vector2 dropTargetPosition; - + private int SelectedColumn => availableColumns[selectedColumnIndex]; - public void PrepareChip(Chip chip) + public bool ControlsEnabled { get; set; } = true; + + #region Public Methods + + public void PrepareChip() { - _state = PlayerState.Preparing; - CacheColumns(); - myChip = chip; - targetStickedPosition = board.GetMiddleStickedPosition(); - chip.transform.position = targetStickedPosition + Vector2.up * chipYOffset; + SetState(PlayerState.Preparing); + + CacheAvailableColumns(); + CreateChip(); + SetInitialChipPosition(); } public void Sleep() { - _state = PlayerState.Sleep; + SetState(PlayerState.Sleep); + currentChip = null; availableColumns = null; - myChip = null; } public void UpdateControls() { - if (!ControlsEnabled) return; - HandleHorizontalMove(); - - switch (_state) + // Always update state machine regardless of ControlsEnabled + switch (state) { case PlayerState.Preparing: - if (myChip.MoveToLinear(targetStickedPosition, prepareSpeed)) - _state = PlayerState.Idle; - break; - - case PlayerState.Moving: - if (myChip.MoveToLinear(targetStickedPosition, moveSpeed)) - _state = PlayerState.Idle; - break; - - case PlayerState.Dropped: - if (myChip.MoveToAccelerated(targetPosition)) - { - _state = PlayerState.Sleep; - Debug.Log("Падение фишки закончено"); - } + UpdatePreparing(); break; case PlayerState.Idle: - if (HandleDrop()) return; + UpdateIdle(); + break; + + case PlayerState.Moving: + UpdateMoving(); + break; + + case PlayerState.Dropping: + UpdateDropping(); break; case PlayerState.Sleep: + // Nothing to do break; } } - private void CacheColumns() + + #endregion + + #region State Updates + + private void UpdatePreparing() + { + if (currentChip.MoveToLinear(stickedTargetPosition, prepareSpeed)) + { + SetState(PlayerState.Idle); + } + } + + private void UpdateIdle() + { + // Only process input if controls are enabled + if (!ControlsEnabled) return; + + // Try horizontal movement first + if (TryHorizontalMovement()) return; + + // Then try drop + TryDrop(); + } + + private void UpdateMoving() + { + // Process horizontal input even while moving + if (ControlsEnabled) + { + TryHorizontalMovement(); + } + + // Wait for chip to reach target + if (currentChip.MoveToLinear(stickedTargetPosition, moveSpeed)) + { + SetState(PlayerState.Idle); + } + } + + private void UpdateDropping() + { + if (currentChip.MoveToAccelerated(dropTargetPosition)) + { + SetState(PlayerState.Sleep); + Debug.Log("Chip dropped successfully"); + } + } + + #endregion + + #region Actions + + private bool TryHorizontalMovement() + { + int direction = GetHorizontalInput(); + if (direction == 0) return false; + + int newIndex = Mathf.Clamp(selectedColumnIndex + direction, 0, availableColumns.Length - 1); + if (newIndex == selectedColumnIndex) return false; + + selectedColumnIndex = newIndex; + stickedTargetPosition = board.GetStickedPosition(SelectedColumn); + SetState(PlayerState.Moving); + + return true; + } + + private void TryDrop() + { + if (!IsActionPressed()) return; + + dropTargetPosition = board.GetTargetPosition(SelectedColumn); + board.DropChip(currentChip, SelectedColumn); + SetState(PlayerState.Dropping); + } + + #endregion + + #region Helpers + + private void CacheAvailableColumns() { availableColumns = board.GetNonFullColumns(); - availableColumnsIndex = availableColumns.Length / 2; + selectedColumnIndex = availableColumns.Length / 2; } - private bool HandleHorizontalMove() + private void CreateChip() + { + currentChip = ChipPool.Instance.GetConfigured(chipSprite, team); + } + + private void SetInitialChipPosition() + { + stickedTargetPosition = board.GetMiddleStickedPosition(); + currentChip.transform.position = stickedTargetPosition + Vector2.up * chipYOffset; + } + + private int GetHorizontalInput() { int direction = 0; - if (IsButtonPressed(_leftButtons)) direction -= 1; - if (IsButtonPressed(_rightButtons)) direction += 1; - - if (direction != 0) - { - int newIndex = Mathf.Clamp(availableColumnsIndex+direction, 0, availableColumns.Length - 1); - bool indexChanged = newIndex != availableColumnsIndex; - - if (indexChanged) - { - availableColumnsIndex = newIndex; - targetStickedPosition = board.GetStickedPosition(SelectedColumn); - _state = PlayerState.Moving; - return true; - } - } - - return false; + if (In.GetButtonDown(leftButtons)) direction -= 1; + if (In.GetButtonDown(rightButtons)) direction += 1; + return direction; } - private bool HandleDrop() + private bool IsActionPressed() { - if (_state != PlayerState.Idle) - return false; - - bool hasAction = IsButtonPressed(_actionButtons); - - if (hasAction) - { - PerformDrop(); - return true; - } - - return false; + return In.GetButtonDown(actionButtons); } - private void PerformDrop() + + private void SetState(PlayerState newState) { - targetPosition = board.GetTargetPosition(SelectedColumn); - board.DropChip(myChip, SelectedColumn); - _state = PlayerState.Dropped; - } - - private bool IsButtonPressed(List buttons) - { - foreach (var signal in buttons) - if (In.GetButtonDown(signal)) - return true; - return false; + state = newState; } - private enum PlayerState { Preparing, Idle, Moving, Dropped, Sleep } -} + #endregion + + #region Nested Types + + private enum PlayerState + { + Sleep, // No input, chip placed on board + Preparing, // No input, chip moving to sticked position + Idle, // Input enabled, waiting for action + Moving, // Input enabled (horizontal only), chip moving horizontally + Dropping // No input, chip falling down + } + + #endregion +} \ No newline at end of file diff --git a/Assets/Scripts/Menu/Panels/InfoPanel.cs b/Assets/Scripts/Menu/Panels/InfoPanel.cs index 11d8cba..1553d24 100644 --- a/Assets/Scripts/Menu/Panels/InfoPanel.cs +++ b/Assets/Scripts/Menu/Panels/InfoPanel.cs @@ -55,7 +55,7 @@ public abstract class InfoPanel : ClosablePanel public override void Interact() { - throw new System.NotImplementedException(); + //throw new System.NotImplementedException(); } protected virtual void InitializeBeforeOpen() { }