From 7c98ec00e519d9d90e87f907aabae01d96fc5365 Mon Sep 17 00:00:00 2001 From: VladimirPirozhenko Date: Fri, 12 Aug 2022 20:20:48 +0300 Subject: [PATCH] Added scoreaboard button in pause menu, added proper scoreboard view Also added close button to scoreboard view --- Assets/Prefabs/Views/ScoreboardView.prefab | 312 +++++- Assets/Scenes/GameScene.unity | 412 +++++++- Assets/Scripts/UI/Views/PausedView.cs | 11 +- Assets/Scripts/UI/Views/ScoreboardView.cs | 15 +- Assets/Sprites/CloseButton.png | Bin 0 -> 10265 bytes Assets/Sprites/CloseButton.png.meta | 158 +++ .../Fonts & Materials/Bangers SDF.asset | 992 +----------------- 7 files changed, 876 insertions(+), 1024 deletions(-) create mode 100644 Assets/Sprites/CloseButton.png create mode 100644 Assets/Sprites/CloseButton.png.meta diff --git a/Assets/Prefabs/Views/ScoreboardView.prefab b/Assets/Prefabs/Views/ScoreboardView.prefab index 103597a..0d711df 100644 --- a/Assets/Prefabs/Views/ScoreboardView.prefab +++ b/Assets/Prefabs/Views/ScoreboardView.prefab @@ -11,7 +11,6 @@ GameObject: - component: {fileID: 1856934114215259436} - component: {fileID: 1856934114215259432} - component: {fileID: 1856934114215259435} - - component: {fileID: 1856934114215259434} - component: {fileID: 4920621563898199878} m_Layer: 5 m_Name: ScoreboardView @@ -31,13 +30,16 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 4191864466724401539} + - {fileID: 7976700210766193774} + - {fileID: 2749335940093869139} m_Father: {fileID: 0} m_RootOrder: 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.000015259, y: 0} + m_AnchoredPosition: {x: 0.000030517578, y: 0} m_SizeDelta: {x: 269.4406, y: 425.4521} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1856934114215259432 @@ -78,7 +80,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &1856934114215259434 +--- !u!114 &4920621563898199878 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -87,6 +89,57 @@ MonoBehaviour: m_GameObject: {fileID: 1856934114215259439} m_Enabled: 1 m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ca5aee78eb03ef54eb6010fd1883d0b8, type: 3} + m_Name: + m_EditorClassIdentifier: + closeButton: {fileID: 4116145640260839859} + cardPrefab: {fileID: 1010394502502236129, guid: 4c5b587097a24ae4798ac097b4ec950d, type: 3} +--- !u!1 &3169046466985751354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2749335940093869139} + - component: {fileID: 5068000570366590165} + m_Layer: 5 + m_Name: VerticalLayout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2749335940093869139 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3169046466985751354} + 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: 1856934114215259436} + m_RootOrder: 2 + 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.27999878, y: -25.350006} + m_SizeDelta: {x: 269.44, y: 374.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5068000570366590165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3169046466985751354} + m_Enabled: 1 + m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} m_Name: m_EditorClassIdentifier: @@ -104,16 +157,259 @@ MonoBehaviour: m_ChildScaleWidth: 1 m_ChildScaleHeight: 1 m_ReverseArrangement: 0 ---- !u!114 &4920621563898199878 +--- !u!1 &3561160258862776696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7976700210766193774} + - component: {fileID: 2397978843349273244} + - component: {fileID: 7603149642819939035} + - component: {fileID: 4116145640260839859} + m_Layer: 5 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7976700210766193774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3561160258862776696} + 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: 1856934114215259436} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -10.668, y: -26.53} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.7866443, y: 0.5} +--- !u!222 &2397978843349273244 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3561160258862776696} + m_CullTransparentMesh: 1 +--- !u!114 &7603149642819939035 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1856934114215259439} + m_GameObject: {fileID: 3561160258862776696} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ca5aee78eb03ef54eb6010fd1883d0b8, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: - cardPrefab: {fileID: 1010394502502236129, guid: 4c5b587097a24ae4798ac097b4ec950d, type: 3} + m_Material: {fileID: 0} + m_Color: {r: 0, 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: de5b00281f7577c42a8c1447b19fb868, 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 &4116145640260839859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3561160258862776696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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, g: 0.76234245, b: 1, 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: 7603149642819939035} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &7557377089629708292 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4191864466724401539} + - component: {fileID: 334265879881338971} + - component: {fileID: 3413095558804488338} + m_Layer: 5 + m_Name: ScoreboardText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4191864466724401539 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7557377089629708292} + 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: 1856934114215259436} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 107.5, y: -26.529999} + m_SizeDelta: {x: 214.44, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &334265879881338971 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7557377089629708292} + m_CullTransparentMesh: 1 +--- !u!114 &3413095558804488338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7557377089629708292} + 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: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Scoreboard + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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} diff --git a/Assets/Scenes/GameScene.unity b/Assets/Scenes/GameScene.unity index 3d07966..92e8bf1 100644 --- a/Assets/Scenes/GameScene.unity +++ b/Assets/Scenes/GameScene.unity @@ -457,7 +457,7 @@ MonoBehaviour: m_EditorClassIdentifier: views: - {fileID: 678372253} - - {fileID: 1374720364} + - {fileID: 1374720368} - {fileID: 1754320532} - {fileID: 220002226} defaultViews: @@ -511,8 +511,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: resumeButton: {fileID: 11846271} - mainMenuButton: {fileID: 1421905535} restartButton: {fileID: 1899410413} + scoreboardButton: {fileID: 1824469387} + mainMenuButton: {fileID: 1421905535} --- !u!114 &220002227 MonoBehaviour: m_ObjectHideFlags: 0 @@ -565,15 +566,16 @@ RectTransform: m_Children: - {fileID: 11846270} - {fileID: 1899410412} + - {fileID: 1824469386} - {fileID: 1421905534} - {fileID: 2086036638} m_Father: {fileID: 1858832248} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 400, y: -239.90002} - m_SizeDelta: {x: 265.75018, y: 452.6331} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -1.0770264} + m_SizeDelta: {x: -534.24976, y: -25.013092} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &245285642 GameObject: @@ -694,10 +696,10 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 47 - m_fontSizeBase: 48 + m_fontSize: 41 + m_fontSizeBase: 41 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 m_fontStyle: 0 @@ -773,7 +775,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 88247dab5e65f5545916ae1311a9367d, type: 3} m_Name: m_EditorClassIdentifier: - scoreboardView: {fileID: 1374720364} + scoreboardView: {fileID: 1374720368} --- !u!4 &634835459 Transform: m_ObjectHideFlags: 0 @@ -1073,10 +1075,10 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 47 - m_fontSizeBase: 48 + m_fontSize: 41 + m_fontSizeBase: 41 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 m_fontStyle: 0 @@ -1438,10 +1440,10 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 47 - m_fontSizeBase: 48 + m_fontSize: 41 + m_fontSizeBase: 41 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 m_fontStyle: 0 @@ -1488,29 +1490,22 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1356270972} m_CullTransparentMesh: 1 ---- !u!1 &1374720362 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 1856934114215259439, guid: 836394c666aa32441be58f91041a5194, type: 3} - m_PrefabInstance: {fileID: 1688218349} - m_PrefabAsset: {fileID: 0} --- !u!224 &1374720363 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1856934114215259436, guid: 836394c666aa32441be58f91041a5194, type: 3} m_PrefabInstance: {fileID: 1688218349} m_PrefabAsset: {fileID: 0} ---- !u!114 &1374720364 +--- !u!114 &1374720368 stripped MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 4920621563898199878, guid: 836394c666aa32441be58f91041a5194, type: 3} + m_PrefabInstance: {fileID: 1688218349} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1374720362} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: ca5aee78eb03ef54eb6010fd1883d0b8, type: 3} m_Name: m_EditorClassIdentifier: - cardPrefab: {fileID: 1010394502502236129, guid: 4c5b587097a24ae4798ac097b4ec950d, type: 3} --- !u!1 &1421905533 GameObject: m_ObjectHideFlags: 0 @@ -1544,11 +1539,11 @@ RectTransform: m_Children: - {fileID: 377940178} m_Father: {fileID: 220002229} - m_RootOrder: 2 + m_RootOrder: 3 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: -80} + m_AnchoredPosition: {x: -0.0014823, y: -145} m_SizeDelta: {x: 200, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1421905535 @@ -1633,6 +1628,141 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1421905533} m_CullTransparentMesh: 1 +--- !u!1 &1586236482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1586236483} + - component: {fileID: 1586236485} + - component: {fileID: 1586236484} + m_Layer: 5 + m_Name: ScoreboardText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1586236483 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1586236482} + 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: 1824469386} + m_RootOrder: 0 + 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 &1586236484 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1586236482} + 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: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Scoreboard + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 125cb55b44b24c4393181402bc6200e6, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 125cb55b44b24c4393181402bc6200e6, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967040 + m_fontColor: {r: 0, 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: 41 + m_fontSizeBase: 41 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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: 1.1188736, y: 0, z: -0.0848007, 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 &1586236485 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1586236482} + m_CullTransparentMesh: 1 --- !u!1001 &1688218349 PrefabInstance: m_ObjectHideFlags: 0 @@ -1732,6 +1862,90 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 2749335940093869139, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_SizeDelta.y + value: 615.39 + objectReference: {fileID: 0} + - target: {fileID: 2749335940093869139, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_AnchoredPosition.y + value: -25.765 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_text + value: SCOREBOARD + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_fontSize + value: 47 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_margin.x + value: 1.1188736 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_margin.z + value: -0.0848007 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_fontAsset + value: + objectReference: {fileID: 11400000, guid: 125cb55b44b24c4393181402bc6200e6, type: 2} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_fontColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_fontSizeBase + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_sharedMaterial + value: + objectReference: {fileID: 2100000, guid: 125cb55b44b24c4393181402bc6200e6, type: 2} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_enableAutoSizing + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3413095558804488338, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967040 + objectReference: {fileID: 0} + - target: {fileID: 4191864466724401539, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_AnchoredPosition.y + value: -26.53003 + objectReference: {fileID: 0} + - target: {fileID: 5068000570366590165, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_ChildAlignment + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7603149642819939035, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7603149642819939035, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_UseSpriteMesh + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7603149642819939035, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_RaycastPadding.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7976700210766193774, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7976700210766193774, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7976700210766193774, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_AnchoredPosition.x + value: -10.667999 + objectReference: {fileID: 0} + - target: {fileID: 7976700210766193774, guid: 836394c666aa32441be58f91041a5194, type: 3} + propertyPath: m_AnchoredPosition.y + value: -26.53003 + objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 1856934114215259437, guid: 836394c666aa32441be58f91041a5194, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 836394c666aa32441be58f91041a5194, type: 3} @@ -1852,6 +2066,140 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &1824469385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1824469386} + - component: {fileID: 1824469389} + - component: {fileID: 1824469388} + - component: {fileID: 1824469387} + m_Layer: 5 + m_Name: Scoreboard + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1824469386 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1824469385} + 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: 1586236483} + m_Father: {fileID: 220002229} + m_RootOrder: 2 + 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: -80} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1824469387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1824469385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 1824469388} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11500000, guid: 88247dab5e65f5545916ae1311a9367d, type: 3} + m_TargetAssemblyTypeName: + m_MethodName: + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1824469388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1824469385} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + 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 &1824469389 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1824469385} + m_CullTransparentMesh: 1 --- !u!1 &1858832244 GameObject: m_ObjectHideFlags: 0 @@ -2251,7 +2599,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 220002229} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -2701,5 +3049,9 @@ PrefabInstance: propertyPath: m_Name value: PlayerHudView objectReference: {fileID: 0} + - target: {fileID: 6634832998035864266, guid: 68d36a24cad029f4a91d5c8e7aa18281, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 68d36a24cad029f4a91d5c8e7aa18281, type: 3} diff --git a/Assets/Scripts/UI/Views/PausedView.cs b/Assets/Scripts/UI/Views/PausedView.cs index edf57be..0171603 100644 --- a/Assets/Scripts/UI/Views/PausedView.cs +++ b/Assets/Scripts/UI/Views/PausedView.cs @@ -5,9 +5,10 @@ using UnityEngine.UI; public class PausedView : BaseView { [SerializeField] private Button resumeButton; - [SerializeField] private Button mainMenuButton; [SerializeField] private Button restartButton; - + [SerializeField] private Button scoreboardButton; + [SerializeField] private Button mainMenuButton; + public override void Init() { resumeButton.onClick.AddListener(() => @@ -16,6 +17,12 @@ public class PausedView : BaseView Show(false); }); + scoreboardButton.onClick.AddListener(() => + { + Show(false); + ViewManager.Instance.Show(true); + }); + //mainMenuButton.onClick.AddListener(() => //{ diff --git a/Assets/Scripts/UI/Views/ScoreboardView.cs b/Assets/Scripts/UI/Views/ScoreboardView.cs index 12cbf97..7ee67eb 100644 --- a/Assets/Scripts/UI/Views/ScoreboardView.cs +++ b/Assets/Scripts/UI/Views/ScoreboardView.cs @@ -1,11 +1,24 @@ using System.Collections.Generic; using UnityEngine; +using UnityEngine.UI; public class ScoreboardView : BaseView { + [SerializeField] private Button closeButton; [SerializeField] private PlayerScoreboardCard cardPrefab; + private VerticalLayoutGroup layoutGroup; private readonly Dictionary playerCards = new Dictionary(); + public override void Init() + { + base.Init(); + layoutGroup = GetComponentInChildren(); + closeButton.onClick.AddListener(() => + { + Show(false); + ViewManager.Instance.Show(true); + }); + } public void AddPlayerCards(List cardsData) { foreach (var cardData in cardsData) @@ -19,7 +32,7 @@ public class ScoreboardView : BaseView if (playerCards.ContainsKey(cardData.playerName)) return; PlayerScoreboardCard playerScoreboardCard = Instantiate(cardPrefab); - playerScoreboardCard.transform.SetParent(this.transform, false); + playerScoreboardCard.transform.SetParent(layoutGroup.transform, false); playerScoreboardCard.UpdateCard(cardData); playerCards.Add(cardData.playerName, playerScoreboardCard); } diff --git a/Assets/Sprites/CloseButton.png b/Assets/Sprites/CloseButton.png new file mode 100644 index 0000000000000000000000000000000000000000..071feee78443a4aef94b613c0a9ca5fc9947f021 GIT binary patch literal 10265 zcmeI2i$BwQ{P^FW+02kJ5=A41A-QxRY3r_q4IQbJMKzU9(uFQ;vRopRRa9HQxU7Y3|9VvySl2bB=n40bT+UcC{-|+iB9={%s9$x$G^?AKt@B8cZd@Y?5uxx_v zWL<>Ngyp`AgAmdJQ48s4!=KzFlm&mVT|vthqKao0eeeO#Tj0L{p=;TC$_)hgOp5Vc zy$d0Odd+{VX~(6F2-#OGU%X&t{QCYk+spT^-Zx3^C2e-SY84b!LgzR*tTA@Iwq`Jy z*0%LrOPg8l?6jj>N=Or(9a}h#&HACy-ww4n+6?_RyrS*~H{x9Q=Vi|?tckpEZExCP z;iPc)O`GSsHd|ax7@0dXuQz|!mlxx)S8gWOZQRuFV>|R(8uRRxT3!3%{=iyr?f?J# zzc~WMA@-ZJ+u{yno@$C;l6k7J#=FtSt&ke2SeM|~NPVc-n%NY2(5127Z9Y8fLhj$% z%&um-m2a=VGrN4tXro!%y$3dKDYLelg{KW3a7+2xpKgX)GS^1lb7}Mrus2cPr)CVE zHbdLYIv>XG%4CZ+^+gR1?2pTQ(d0QpA90RubL%whDT!To<|n0Bok`E#2-LhKzE!5W zKHTi0DxcF3|4dHQVusAf8kEKMuUVoTtM`tQPFb%n#(zm0Y`gxje40ubo;CQ3tN}4i zyH-~OZ+W=wTU6$$g4(%)@r2+^vWP}I8t>1Sef|>@vs6);{Ph(p=nbE~b2IOzOwy}N zmfgO1>lDrQO8n7!q5~2~r0Bi#e!Az9?%@8e*pVk##YpX@$Cnn~>nu9Dv-hPF(dB(4 zbHn5=%8P;-Cwu-nd-m+SIi<^*JOm!M8se?msz)=+_N4FG9`898*XYr`w7%>(Y8v}> zR;qfzJ(cV(LG?LaJLaiV#Jc$FZE{B13)RcKl>fh)WR}yp#cC8HyEp%@3_ww=@^Yt6BlnS0H--LEd zb!_razuBMtaOS}?b9YNEQG3_AD=F#)$~P%%Rn+Va34;6jaWl{8tCJOXeJHJSvUx3Y z;t-b+*R0pH?IKtlC$2P`K`&bOrr zLg;8XKv9%KL0fdx#(}t~V>qT%s5W=ND(A}h5iE2i5Pdu$XV}nCh>cRZm{d&DMLrbO zq+-1Itx%m0EiA-}=Sb9tL?|>aUeWZ|!1FC`Vv)T(MOFtEqG`%iOG#GV1VIQWfCZL>e^G?ogHcqHybIA#;S$AF zn92}cbkkThF@^@6eQUY*lp!Jxg~`rB=i^ zbm>n+6_wsJv#|ipwNuV{Qh?k8(WPVZE{rBHAgPZA;~v3~&6e<&iO}3>%D9CjD=mWH zw2s;`2=`GS?=q(eZqm{7g^GbZ3bS6Q4xnS@%dui@34?{EQ&iq%_)1fP;IoilSb}dc zlofff&^8Ww(eHan#UxVu=$w=2QB5($D?B(+}v$qJJdEvI9C{up<UdAWkOlZEsQRjWl5@ih~4 za+=_$rNpWF$I51rMdr`iaSuyW8^dhXYrRrF zv>QC9btFcGlyBK_q_4Hdyfzql3famMJr;A7kbip8wjT#tX5mZRL+ivl%`G={goUJ! z$v*1c)``y;;RbzYz0v1SH?Ikly|Mc1V(g2zbdHrdT`NrB`xQ-=emsE_&kuOJaBR0% zN`(XFPf_&+mGed$H#+TTipCTNb8n@`q4qy-)`ZUgDXV1d z7yQfz-s;^m+OGFD4L^!sx&x+V)edKm-B(_dl~Y;l1-D2>|tTt zNsN`7yS0rRwiACz-p+_gSJW#0jP>P#i&MyIiRo1R0Dnd5goyF|8~oI~dFLm6L6yH1 z&G3jh9BVILCj8KIe*T8LvWy2GGjZbCU8^>8lXXrPk{&e_^4k|E3+Jsg=u4ZUzj)1WVS2dt^8pI92VD!)&FLzPyv?kEYPxu?**6(b<-hKu-kJ1&1jS%1(( zkmZ1oQ<~MMe8G785P9hD<(n)65eoUoNXN?&t)T@JhOuZ#6)cKITUjdu3_R+>q>#ny{Yd*EGAou2e&@$tQ}}x zo-Yg9xnTbERIx6+`g8W>uQNUlK4X+SwB`R;VPtqO2yqjRodF|$F1?>)P z!Xk%MF>9LDtvi;Fs;Qx?!+IGZFs(4(MUEbo=X9Q2NmzU-`1|~ zXXY%n=}3zHo@5*0Z~nz)zE9!rdazaN(uft24(CB`wZz`;0-cD@P)z#Ky(%;QwZ9R1kr+kV# zw+VI>?^?(~o)?}1!|I;M7D&fZg>Uz(8e@ISZZJl^R_$ECXM;P-_u7lS)j6U#^`Msc z{+FzbZ;|iKeC?K#3{}>bLv7YiZB=Xb`*h~#PlKWJI>WM(HcpGbTB{i?U&o5B(I#7E zj{zcnKeh9i`uA9U+p0eb(13DL#5EU1Tlg~vWbxOtnilm2XlYFiUPql1T27pi)wcqU zq$)z%A|IoS$C~agGO&!aFI+khgdO*;)N}|g%nB3q;T)bBd*CFjE{d`0 zWhzd5R)lbu$nt;i>m;W{C zcF@Rd#XeWlUvHg=v?|e2)}J~&;a}aX_XcRifjE3dwkQ&D$wn%Md8<6-RVz=8VB1$} zcO)S$yK{`^sEf7*;t+S4gb^HsLUSnyt<_O$?&<9;gu)gmcm}!%Vm}mPEGxS0fHs!k z5z|`fVNVeFi4eMDuk?VhAX+2RlvQ|$DKw&uvdV-YDA$PA$|{I7nn65mudJF0VTwis zU2TG3GT5EDOu?HDF%<`gqEh72(px=L|LYE3^@lV%1j}248mz5R<^$hT2qQguHLeuR}K(yk`Q;cgfS}!eN3Vt@jD@Z z>qXR}M?;z@^tm5aY!4%~%vg094DSHL26oC;96>M@3`1N|Hc=PVg5majIeUc(+7E`| z9As|;5gdjyu*j5-ia{dDiXilM1=aWzIs2&zs)2@?in4tWzhA(k-F}KP2<7L&3Tc6` zMib_H(NM9Cgy9p2y0@|rlPKixhty*;i1i>|K;pe1CWCkp5)u&-r0A%J{V>5BaBPC1 zs;>ZtzQfcz+9{K9C>4gx(NnPEt_iG#Rxz7;*QrkXTp9Z$FAdL!b;{UHuo( z$OaAA2qWO}JunBcTqT2mK0t%bV58mvRqE3accFw~0r|>%aLL$ECG*rp&MQdB^N^g} z1g7_aX$aBsQgG-Kn1;Blezyq<)tJ_jQA?rQcfj-n&?p3rU>tI>R@TomL5~)YP)(AY zJQRqm$TVc7qjsG^K(T>1K?OJW4^M;OsgAnR0-l2C0-`fK4aNydL17*| z1$TF!F9;K#V(LiXUfUrK}fKUj zsNYHv`p&@>$4VFw&3q5S6$eQet{fy-1R1fpjOtm2P%1oyuEm_+wn@AFMY54&XK+^1 zg}0-_xo+bd^+D%6=uG}%b${bL{Pnp$KI6aV{Y;gjXbflIQEpjh_#mP^2(9dX_wL=Z zy!*2YF`r;0NFb>>bQ&@P|K`I`ouwd z5gJ?tLut%H!%Hya0^R3{(8p95BR@qdWOpqvku}HU$&kmBB04iiRFiy?!%u?!O=f*1g!lz~GD6jf3!yafyMn~hS77>FyL0CTrQ zLCk`CXdLD)RZjL>ND|zkqZXo!nkS;5udpZ*U;yEC`|AQ?b_n@gNXnjr;k{sZng|v% zEIcs0gpP5@u-d@zuQ2>@N!$R#kbN-|L0qID261p!b3nmLsdX7Hu~Rto)mW7z5}`-n zFpv!<99i$qBWA6TU#tt_Im9dg5thKa62wdZkp*HgVy*)bbj#V8V84!S6^ui-HVZXFkH3=C=oAOXg`HHsLP2Z?g3<>BXsV3LC9;s;3QVv^M~x1E##}g- z*b1VjfCA?s;;xo3#6}|I35U*8BNb)`U}Ps8ODS@)t2GVIR3ugk`2x69W6a>hqbaqT zVP}lP*-r)27z=%d#`l3~y&xPn4$f6D9SS$k-9W^JyHI>YgxUizK_6(4pjY{D2!sEW zKwLK*!WN+H3+A5EQH+I*YUKvt0=9HL^kpIk*F6o+beOW0fKWaGlPZ#vIp7jpnV**_ zh?nvx2qc)iC;^2z0N)>#lUsn_6hgNPK(qq91Y$mjt^ll{iCHpgu@(!}!W9HNkO}-^ zKXAM%XibAI4&%@yjTnskn1n+wKy<)n!aTyt7JG=`l0^`)ivh!|feY1JMin>#JOZY} zlQ7U)5SL=bt3dP)#zm#$nAt);8Y#uM=n@2-(02vr!mMg%A z(?GD83L-a_g>D9+DDYey4XEb=YH^1)fHgb^!#{!Hj6mEaFq{E~P5&1Tp>hC8+7Lv5 z;m`sKb1wu2FuuNvNLC&YEgFxE%MHl9ZuCum|TV4-t} zV*}z}AeJD`6wOmmC`KG(%~RkV{#daoy!IOh7n+M>!X<@HpZ|~Jpwj?oAV6x?JO#P~ zVN*GXcS`=lHs}uMLWmWuc?!A^c=>6>vi~Rza`=zWkkOn#TwVrF{0bCm4pGDwKxu51 zT4Gb6Ex{->LrzBCLAbo*IPqlAXwRjHR{~(|o}S@~O2|W|NcesXqn_c< z)Yq|3@4k&2>3!;!lhe<%faLpU2zBF@D;Q-E8M7b?L3z1y^5g9~8hYv*K;nk$qFr$F z-L{kfBSpu9aqX!%v4xQD`*Zd`IQ5+f?Y)RxVI3a#wo(=aX3G$nV)6De4t%je+@2wnd8u*p~Ie|msiyhg0Qvkla%Mj;18J95L&AK;4jSL;i zo}fA5re;$w$7Z&VJ8M;6^Hhp>?Jp>%IMnY$djRs|Lc_n^?B^L%jdar+ zUd62PV`uV)n=O&S;0JdtuUebN$+U!cyKWw|B>n!xuNRWN@EP;qc4I-BwR*5Xede|? zTHY{s@Ks*ofqCaw0oJ%mK4I=_8>pZvc3b&6J{jYuKb|5k7}65YKlm5fc4E?jboTd` zr`W_p!iZYMTDS36@k_H!&|cF?v1HXk_s5-Mb(#H4$Sp1FZ{Zn`?@od2`Akqf`9d3U2Fs=hu>j5ULWHf#I$ z+eg5Q#pO|=bH6jSMcZP1}(qJLGZGAJc zYhp)|RqC7*`B}iomR769cT(ikV7-pSiU@DRa_2VleU%)_3E zAxZ+&+66J`(A`_jyTw}6u*ZwUu0=XGrYhbP5tBFAU9+ooFHLRoSkr5Oe)J%|d(?HR ze#+RqHUGTtyb;=XIkL;5BZ)gT`$WD0ARvIV_80NuVO1sA^gv;cJ&Ai>B|^)9f=<{c^irgHTdQY05GU2 zfJvjbqrFM7zM6p^i_T9PueC{$*PSiFEB(B*M|$>mnFAP0{Iyw}r5Wq?p*jO8Uc4c( zs(H7>xGVZyu7Df2NRj=xy69`I)5(gW8BJo-YkMCj7XTAH8sQ%w?uDOis0tqRLt;4d zJCt|bwa&a8D$3yDxWvH&f1ix?UH1C#4Ne_`?ya3;Z0TOBcB{6^1Cjfqe}KTBoDHbJ zh9(Hrj_n5cGbFVotnPL9J`4{J*PV(iPUG%d>o>o@%wQmU&*%HG`ohrqMAy=As`O(z zP8<-eb?DQ*q44P)N!{9=4?ms)d}3>wUboVqWSfNlXEgE9w8TlBQ*-5A8ZMfDS5ubR zk>ZU360N!$u|Hzo`8lv4t3sVso4thV$1X`{E7CZ3Od0C>I3<)0b`b@&HG0hKdqZ8$ zak!5`k_X|!)O zfMp%^y6cu{r47>2I3Pc}mSWwUI%>w_aHpmgeOcW$7V`&%q4PR zVc|DVpVLN@SO-)v7yg?1Vf~9Uljqf2qO7mkksHRMfS@->2d|1UF36?hgH_!D$Um*< zeeXkPAjuo~$zJvKU2a)?6LxLxcE;=GmsxG)E*QxoSzjqj_G z`k%mg*0qXS+tL|XyqIItnSSpFL!-YqH*pSY7HIW&WqLnzrG4V&Ixjm}krNEr^Dmx0 zJ_+Y67OnYbIZ^k*QvJz6rgnl`BLE5pEOeQqw(uoc&5{+Zqod{}BrC}6ZRi-}a8+c2 zzzd{lN)IENU?o&j;L4gq6PQ4i1ga^A=;c6B1F9s4iAUapngH znoUt%20Ke73{7o`Me2ss>_jlG23kH2wIz@MZy2#OsiLz#X5~#2ct{vW196^!kABdh z0%O${5v9coU=XmLg`|%nIlD(B2!O&5)W7UlOh_%~mf&|o-D*29q(IzUYh|lBt=RZK zWE6E)&Mp%P8cAwR6y`)L4wNt;shUhv=0f228+@aqj#)~Aq>>HQo15?r5CQ^=X(Qyj zL+F@9;dsfYP%T>-@E=V&0d)r(nkLK4hic?v(j~}8y#sNMHvfVp0SgGhB$_7SoW+6a zBPHjooD8|waR5Yzam-&u0vLbKBa|HI$`81EvPC%BE*4eI{|hNjTC z))Iy@=%vZodZ2d!-wb*`Iba?zs^H31ksu#@b)-QxmN6ZQy7?4WHyITYH#;C$lOf8c zW5y7BO{8(BfkF@@_@1ZbWI7#NMp11!fkQU5Zl;8Bp%ic7t0>z9n5qo_dATCh(E)>_ zdkf&DNp#E`vV2FDI14CLF(d|b4Co?gi(q z>&1$)Il3si6mKG7%v?fp_!nut(ZKoB&l3PW_kj<0`>Fwkw%qs`;6GamDa*Pz4FPr8 zy$S~}K&qAaB}?yp$K5smFZyH;rzkePaA6<(r-@Q{D~?)q{zat9;8(;!#nL z-NUZl9=D&f7s;r)P}`5^Yc37O$)2qZguk;Jh8f`Lt{Ito`kmg_tbvn?UTQZGC3bs_ z33|rMY98s6PyFPxUR^mO1kk|vfNb568I|7qXZj1(={z8FLP!b~L1EF_^>_XMOndR& zr#>UAepwSAC(qpR(5!my{k`+9EV|cutD$C=0iUO|7i*whTUn1}=#ZKE+}Sdds{{AV z;+kYTvefu)R-NUi26-Q^KJL&3)2oA<+`l|SF=})O9By`U_7Vk5VIe1UjfLU-A zwgtD~=O%~aeW*t@zevHDri+XeF}Fjmz>id9tw->DuHz!3_-(5rLX7yT8BK;t%y)Zx z>}ZM^`NXFe#IjkUF7W@XjrLEj@4lgkn-J$34!_ZH=5ulPiRf=Lm!In!h9h*8 v*fScT|Ea^+?f>R)oBkj3`q8J8YgLQ`_J