From 9a2f797342bae541c2385245a0653666221ca66c Mon Sep 17 00:00:00 2001 From: Ino Date: Wed, 10 Sep 2025 17:04:42 +0900 Subject: [PATCH] =?UTF-8?q?=EC=83=81=EC=A0=90=20=EC=9B=94=20=EA=B5=AC?= =?UTF-8?q?=EB=A7=A4=20=ED=95=9C=EB=8F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scenes/Main.unity | 714 +++++++++++++++++- .../SingletonManagers/Managers/DBManager.cs | 2 +- Assets/Scripts/UI/Popup/AlbumOpenPopup.cs | 7 +- Assets/Scripts/UI/StorePanel.cs | 8 + Assets/UI/Image/shop bar back_shop.png | Bin 0 -> 1867 bytes Assets/UI/Image/shop bar back_shop.png.meta | 155 ++++ Assets/UI/Image/shop bar color_shop.png | Bin 0 -> 911 bytes Assets/UI/Image/shop bar color_shop.png.meta | 155 ++++ Assets/UI/Image/top bar bg.png | Bin 0 -> 423 bytes Assets/UI/Image/top bar bg.png.meta | 155 ++++ Assets/UI/Image/whitebg.png | Bin 0 -> 125 bytes Assets/UI/Image/whitebg.png.meta | 156 ++++ Assets/UI/UIAtlas.spriteatlas | 12 + 13 files changed, 1355 insertions(+), 9 deletions(-) create mode 100644 Assets/UI/Image/shop bar back_shop.png create mode 100644 Assets/UI/Image/shop bar back_shop.png.meta create mode 100644 Assets/UI/Image/shop bar color_shop.png create mode 100644 Assets/UI/Image/shop bar color_shop.png.meta create mode 100644 Assets/UI/Image/top bar bg.png create mode 100644 Assets/UI/Image/top bar bg.png.meta create mode 100644 Assets/UI/Image/whitebg.png create mode 100644 Assets/UI/Image/whitebg.png.meta diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 607c069..1f63663 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -1172,6 +1172,81 @@ Animation: m_AnimatePhysics: 0 m_UpdateMode: 0 m_CullingType: 0 +--- !u!1 &87180615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 87180616} + - component: {fileID: 87180618} + - component: {fileID: 87180617} + m_Layer: 5 + m_Name: topbg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &87180616 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 87180615} + 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: 302272077} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 5} + m_SizeDelta: {x: 0, y: 130} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &87180617 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 87180615} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7b91f7c800f2bed4896ad45225f99c45, 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!222 &87180618 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 87180615} + m_CullTransparentMesh: 1 --- !u!1 &87666279 GameObject: m_ObjectHideFlags: 0 @@ -10053,7 +10128,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &302272077 RectTransform: m_ObjectHideFlags: 0 @@ -10066,6 +10141,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 87180616} - {fileID: 1907678487} - {fileID: 175985509} - {fileID: 645434591} @@ -11176,7 +11252,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 5317e0cd4fb899241b96bb40c6a83b57, type: 3} + m_Sprite: {fileID: 21300000, guid: 5658cfc1f40712e4e9dff661308691ae, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -18590,7 +18666,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &559934552 RectTransform: m_ObjectHideFlags: 0 @@ -26428,6 +26504,96 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 714601134} m_CullTransparentMesh: 1 +--- !u!1 &720134269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 720134270} + - component: {fileID: 720134271} + m_Layer: 5 + m_Name: Slider_ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &720134270 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720134269} + 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: 853378251} + - {fileID: 1866086523} + - {fileID: 993293224} + m_Father: {fileID: 2011560908} + 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: 85.3} + m_SizeDelta: {x: 389, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &720134271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 720134269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + 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: 1475775352} + m_FillRect: {fileID: 1475775351} + m_HandleRect: {fileID: 0} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1001 &721665001 PrefabInstance: m_ObjectHideFlags: 0 @@ -32645,8 +32811,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 65.625} - m_SizeDelta: {x: 0, y: -431.25} + m_AnchoredPosition: {x: 0, y: 78.30002} + m_SizeDelta: {x: 0, y: -456.6} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &781597821 MonoBehaviour: @@ -33109,6 +33275,7 @@ RectTransform: m_Children: - {fileID: 737201500} - {fileID: 781597820} + - {fileID: 2011560908} m_Father: {fileID: 301590531} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -33157,6 +33324,8 @@ MonoBehaviour: - {fileID: 21300000, guid: f36045787352db44494d1b5e4362f551, type: 3} - {fileID: 21300000, guid: 0ec030ab67537f549941e69c78e57ea0, type: 3} - {fileID: 21300000, guid: e857d8fc6d6313141973d87d1b17fd7d, type: 3} + slider_month: {fileID: 720134271} + t_month: {fileID: 993293225} --- !u!114 &833499343 MonoBehaviour: m_ObjectHideFlags: 0 @@ -33226,6 +33395,81 @@ Animation: m_AnimatePhysics: 0 m_UpdateMode: 0 m_CullingType: 0 +--- !u!1 &853378250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 853378251} + - component: {fileID: 853378253} + - component: {fileID: 853378252} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &853378251 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853378250} + 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: 720134270} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &853378252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853378250} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b953d484def6511438cffad4d330c881, 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!222 &853378253 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853378250} + m_CullTransparentMesh: 1 --- !u!1 &858961991 GameObject: m_ObjectHideFlags: 0 @@ -50241,6 +50485,142 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &993293223 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 993293224} + - component: {fileID: 993293226} + - component: {fileID: 993293225} + m_Layer: 5 + m_Name: t_month + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &993293224 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 993293223} + 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: 720134270} + 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: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &993293225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 993293223} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 000,000/000,000 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: cf1ae75e65a967946b23286a5ffbb812, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 1cd9f54883d04fa4a8273aaf06ef64e9, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &993293226 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 993293223} + m_CullTransparentMesh: 1 --- !u!1 &1003766479 GameObject: m_ObjectHideFlags: 0 @@ -54781,6 +55161,142 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1230955784} m_CullTransparentMesh: 1 +--- !u!1 &1235411821 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1235411822} + - component: {fileID: 1235411824} + - component: {fileID: 1235411823} + m_Layer: 5 + m_Name: New TMP + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1235411822 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1235411821} + 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: 2011560908} + 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: -5.8, y: 133} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1235411823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1235411821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\uC6D4 \uAD6C\uB9E4 \uD55C\uB3C4" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: cf1ae75e65a967946b23286a5ffbb812, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 1cd9f54883d04fa4a8273aaf06ef64e9, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 4096 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1235411824 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1235411821} + m_CullTransparentMesh: 1 --- !u!1 &1239820707 GameObject: m_ObjectHideFlags: 0 @@ -77161,6 +77677,81 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1475775350 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1475775351} + - component: {fileID: 1475775353} + - component: {fileID: 1475775352} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1475775351 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475775350} + 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: 1866086523} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1475775352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475775350} + 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: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 088db0d530169e7498cc1e8a77398176, 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!222 &1475775353 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1475775350} + m_CullTransparentMesh: 1 --- !u!1 &1483204108 GameObject: m_ObjectHideFlags: 0 @@ -97171,6 +97762,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1865786205} m_CullTransparentMesh: 1 +--- !u!1 &1866086522 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1866086523} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1866086523 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1866086522} + 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: 1475775351} + m_Father: {fileID: 720134270} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1868102602 GameObject: m_ObjectHideFlags: 0 @@ -109358,6 +109985,83 @@ Animation: m_AnimatePhysics: 0 m_UpdateMode: 0 m_CullingType: 0 +--- !u!1 &2011560907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2011560908} + - component: {fileID: 2011560910} + - component: {fileID: 2011560909} + m_Layer: 5 + m_Name: botbg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2011560908 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2011560907} + 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: 1235411822} + - {fileID: 720134270} + m_Father: {fileID: 833499341} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 153.3} + m_SizeDelta: {x: 0, y: 306.6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2011560909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2011560907} + 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: 0.2784314, g: 0.2784314, b: 0.2784314, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9e480038b68f8c04a87f53e73545982d, type: 3} + m_Type: 1 + 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!222 &2011560910 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2011560907} + m_CullTransparentMesh: 1 --- !u!1 &2020834815 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/SingletonManagers/Managers/DBManager.cs b/Assets/Scripts/SingletonManagers/Managers/DBManager.cs index 897c199..44fd506 100644 --- a/Assets/Scripts/SingletonManagers/Managers/DBManager.cs +++ b/Assets/Scripts/SingletonManagers/Managers/DBManager.cs @@ -976,7 +976,7 @@ public partial class DBManager : MonoBehaviour if (saveData != null) { saveData.TotalCashPerMonth += cash; - Debug.Log("총 구매 가격 : " + saveData.TotalCashPerMonth); // 테스트 + GameManager.Event.InvokeEvent(EEventType.OnSynchronizeKey); SaveDatas(); } } diff --git a/Assets/Scripts/UI/Popup/AlbumOpenPopup.cs b/Assets/Scripts/UI/Popup/AlbumOpenPopup.cs index fe9b8d7..c145297 100644 --- a/Assets/Scripts/UI/Popup/AlbumOpenPopup.cs +++ b/Assets/Scripts/UI/Popup/AlbumOpenPopup.cs @@ -11,9 +11,10 @@ public class AlbumOpenPopup : PopupBase base.ShowPopup(drawOrder); GameManager.Sound.PlaySFX(ESFXType.Open_Popup); - var targetindex = GameManager.DB.GetUnlockTargetIndex(true) - 1; - DB_HuntingListData huntingListData = DB_HuntingListData.GetEntity(targetindex); - t_.text = $"축하합니다!!\n{huntingListData.DBF_Title} 앨범이 오픈되었습니다."; + //var targetindex = GameManager.DB.GetUnlockTargetIndex(true) - 1; + //DB_HuntingListData huntingListData = DB_HuntingListData.GetEntity(targetindex); + //t_.text = $"축하합니다!!\n{huntingListData.DBF_Title} 앨범이 오픈되었습니다."; + t_.text = "축하합니다!!\n새로운 앨범이 오픈되었습니다."; StartCoroutine(Co_Off()); } diff --git a/Assets/Scripts/UI/StorePanel.cs b/Assets/Scripts/UI/StorePanel.cs index 2ec8ac9..751dfc0 100644 --- a/Assets/Scripts/UI/StorePanel.cs +++ b/Assets/Scripts/UI/StorePanel.cs @@ -1,7 +1,9 @@ using CodeJay.Classes; using CodeJay.Enum; using System.Collections.Generic; +using TMPro; using UnityEngine; +using UnityEngine.UI; namespace CodeJay.Enum { @@ -30,6 +32,8 @@ public class StorePanel : MonoBehaviour /// 0 하트, 1 키, 2 냥, 3 광고 제거, 4 무료 캐시, 5 캐시200, 6 캐시1500, 7 캐시3000, 8 무료 하트, 9 하트20, 10 하트45, 11 하트75 /// [SerializeField] private List sprites; + [SerializeField] private Slider slider_month; + [SerializeField] private TextMeshProUGUI t_month; private int BuyOneKey = 6; List list_item = new List(); @@ -100,6 +104,8 @@ public class StorePanel : MonoBehaviour for (int i = 0; i < _lstSlots.Count; i++) _lstSlots[i].Set(list_item[i]); + + OnSynchronizeKey(); } private void OnDestroy() @@ -135,6 +141,8 @@ public class StorePanel : MonoBehaviour private void OnSynchronizeKey() { + slider_month.value = GameManager.DB.TotalCashPerMonth / 700000f; + t_month.text = $"{DSUtil.GetThousandCommaText(GameManager.DB.TotalCashPerMonth)}/700,000"; //_lstSlots[BuyOneKey].SetData(new CodeJay.Classes.ProductData("10", EProductType.Gold, "열쇠 1 개", "", 100000 + (250000 * (int)GameManager.DB.BuyKeyCount), sprites[1], EProductReward.Key, 1)); } } diff --git a/Assets/UI/Image/shop bar back_shop.png b/Assets/UI/Image/shop bar back_shop.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4f597c5151c5a12d9c35b661de47faca6d435d GIT binary patch literal 1867 zcmYjSeLU0q9{+9*v4~-g9G$ z6#xVqp6^vvfqMn*yc0aAg?pT20I*f(YeRs7B7Fc<`rtX(k|7O#aDH$4UVtE96XWa0{lxw0@*oGaxQLNZtLu9chows z`{t1SJ>(o1Qs!Ygj)Ov=3hej4#G}zxI5pF4Q}BCuih?W3|z=!&leFzQi7*b1S~c5`>>ut@$?aMP%ROTVy^%)PF)M5(xS; z>+8p&^X`xJ-!b{+NIS8XTo-OJ5X}WG45lf>VEqTQB5B#oLfrEqe@y= z8ocZ1SoQ4D=e;Q;%MpfRA1^GNphK0OeUA{!af|r zPuh-0^UQl;DWC0KqydF|3o|*RioZ3Yz1Ni*BWw!^z4@ne6aE@}P8@fZJerss|0E0E z^qrj*mU*9e@Kznbj=oOhx##e&!}%d^Y%|pDJopZKam4=jyYhTS*-~G2` zF^5x$RAzfiBPCn$Rc9XC`0$0bT`Mc<++JB_uGK7ppHC?$Sd0CgpmRxlz&s zS==U^4~Ec8A03L}=M}y|qkXS=hum)x)C~*L=*{V}v{1lecKM6L-65YNVvS3TU**=A zj`*ngi~$WV6a@M9VAdow#835}tBn(%EE4lLoRHRM9~2Ilj>V|Z?o_9?E3msqPDgA; zVF(d3j|U~eR8wpfR#9LO{PrCWxx41V%6i;?UV3U>o%^Un8%@bVnfiZgc+Ex&O~KUe z>D#_G>kCG#%V`!kWo)Ts_E8)+VzUV~H5)Mh#s06Y59u2RAA+_9Pe!{e`+r7=ELqp1 z=J^lnkFPgF5cFAyS+l7EDhnfx!@F<8F~UR$mM$cL4&GcqZX&wD?}0VA?&HY zZN7SHyR6Gm6|bh7F}=@g{d-oZ>A@m>6QlPbNu0{$o0;1NHx+L#Nh3SG%rrX$1HwM3 zkZ-~z^^|}7Du5K0_s5SUI=rv^QW8(`LZwuvIU=HZrUsSq~s!nyFXZH7iWv8BuUMh16Fiu64lt1_Gq`rXo1rzLEgN}(SZ z7466*(=ShYLD2pOb1%zZUgI;TGpcmh&-}{pXWT7E?1wdZO1&j@;eYm0&_7?0J_-s> z2@+n)WZP9QDf{McKquFy*cdfr~Z~;rTd|-7zRN94dG)y(ha_fO;JgvFdv?e+H0Z~F48^G(_s_0r}kU~or;tSqO&lZs$jZs#D^i2@e=Pf4H(X zztzL#{q&mHSrHas!!k!KoTezj6s4C6TKw-Wzdic%nFwm_e1Uh?F?Bk?0*6{_+m`^8lM?Yo0hkr*vJVJ(QemI-_Z&8(PZU6uP literal 0 HcmV?d00001 diff --git a/Assets/UI/Image/shop bar back_shop.png.meta b/Assets/UI/Image/shop bar back_shop.png.meta new file mode 100644 index 0000000..918b416 --- /dev/null +++ b/Assets/UI/Image/shop bar back_shop.png.meta @@ -0,0 +1,155 @@ +fileFormatVersion: 2 +guid: b953d484def6511438cffad4d330c881 +TextureImporter: + internalIDToNameTable: + - first: + 213: 101154423838831815 + second: shop bar back_shop_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + 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: Android + 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: + - serializedVersion: 2 + name: shop bar back_shop_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 389 + height: 48 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 7c47f5c996f576100800000000000000 + internalID: 101154423838831815 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/Image/shop bar color_shop.png b/Assets/UI/Image/shop bar color_shop.png new file mode 100644 index 0000000000000000000000000000000000000000..7dff615e5f3582f5aec51490157262edbf880a0b GIT binary patch literal 911 zcmV;A191F_P)$bZyv!ByvzdOS`Gt=pG7*}4T32*{92^~yCcm49BOF8~*S_i?h9r2nHe z;0o|X7UFNCHXd32d6B*gTn3(>NIXeWm3{|4%tE}r-A4af{&|t^11v4hHUsX z7QZA-i&Jz@;rHpA{L72G+g>D)B<)IPAHN8^S^jyEK1=t;fkO=ilO$DV8F)PlaRvHM z`+SMTFGUIJwHJw6|RI8-~xY2Y9Nm8wD^d|py(@7*rwP*uNNfzP;u-J4O zNm4Bqvk*6WH+d}pe>a&%l2o~MAVT>7_bkK*z;{h1k|b5`N)}=p%JMH=0G6A{BT1^* zGVpot#b)_uA+FGUkh>&l`plO-5A;v|WFcM$F4Z1Ml2oOIvfnoiTh;SZpjAs8NmA8X zz$b%mZYlpP#7Dp!{s2hQZr1|l%3kj?bUptp#8u!lo&u7j-RfK5owCojnCWyn+wPqg z=^5ZM@Z99HNs=aP1^8g_9RHw^Px2}cFiZDez}jT8Ns=aPjc!lRjw*iG!Q}tAyhslN z9|7+HNB(O4nJa0`PlBg3pY5)2HC zk)AG&Ar*7pUUcL=>>zO9KyHavCll|(FXB9*kx%62IVPN3|Ji2!!j!XT_NG1Cyu0Q2 z-u}C+IUkMfPW{k$ytt>|Xq15ngnX-OXKKpBKddk{{w~jaj@_8IQt%}(k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfQS24TkI`72U@f