From fdb22e921380e1227e6cc10c0cf5ab07b43e21f8 Mon Sep 17 00:00:00 2001 From: Konstantin Dyachenko Date: Sat, 6 Jun 2026 22:33:15 +0700 Subject: [PATCH] [Fix] UI Logic --- Assets/{Minesweeper => }/Config.meta | 0 .../Config/MinesweeperGameConfig.asset | 0 .../Config/MinesweeperGameConfig.asset.meta | 0 Assets/Config/MinesweeperUiConfig.asset | 36 + Assets/Config/MinesweeperUiConfig.asset.meta | 8 + .../Presentation/Factories/CellViewFactory.cs | 15 - .../Runtime/Presentation/Views/CellView.cs | 93 - Assets/{Minesweeper.meta => Prefabs.meta} | 2 +- Assets/Prefabs/Cells.meta | 8 + Assets/Prefabs/Cells/ButtonMine.prefab | 387 ++++ Assets/Prefabs/Cells/ButtonMine.prefab.meta | 7 + Assets/Prefabs/Screens.meta | 8 + Assets/Prefabs/Screens/BoardGrid.prefab | 62 + Assets/Prefabs/Screens/BoardGrid.prefab.meta | 7 + Assets/Prefabs/Screens/MainMenuPanel.prefab | 516 ++++++ .../Prefabs/Screens/MainMenuPanel.prefab.meta | 7 + Assets/Prefabs/Screens/PausePanel.prefab | 1019 ++++++++++ Assets/Prefabs/Screens/PausePanel.prefab.meta | 7 + Assets/Prefabs/Screens/ResultPanel.prefab | 760 ++++++++ .../Prefabs/Screens/ResultPanel.prefab.meta | 7 + Assets/{Minesweeper => }/Runtime.meta | 0 .../{Minesweeper => }/Runtime/Commands.meta | 0 .../Runtime/Commands/GameCommandDispatcher.cs | 0 .../Commands/GameCommandDispatcher.cs.meta | 0 .../Runtime/Commands/GameCommandHandlers.cs | 0 .../Commands/GameCommandHandlers.cs.meta | 0 .../Runtime/Commands/GameCommands.cs | 0 .../Runtime/Commands/GameCommands.cs.meta | 0 .../Runtime/Commands/IGameCommand.cs | 0 .../Runtime/Commands/IGameCommand.cs.meta | 0 .../Commands/IGameCommandDispatcher.cs | 0 .../Commands/IGameCommandDispatcher.cs.meta | 0 .../Runtime/Commands/IGameCommandHandler.cs | 0 .../Commands/IGameCommandHandler.cs.meta | 0 Assets/{Minesweeper => }/Runtime/Config.meta | 0 .../Runtime/Config/MinesweeperGameConfig.cs | 0 .../Config/MinesweeperGameConfig.cs.meta | 0 Assets/Runtime/Config/MinesweeperUiConfig.cs | 86 + .../Config/MinesweeperUiConfig.cs.meta | 11 + Assets/Runtime/Config/SmileFaceState.cs | 10 + Assets/Runtime/Config/SmileFaceState.cs.meta | 11 + Assets/{Minesweeper => }/Runtime/Core.meta | 0 .../Runtime/Core/BoardActionResult.cs | 0 .../Runtime/Core/BoardActionResult.cs.meta | 0 .../Runtime/Core/BoardCellData.cs | 0 .../Runtime/Core/BoardCellData.cs.meta | 0 .../Runtime/Core/BoardService.cs | 0 .../Runtime/Core/BoardService.cs.meta | 0 .../Runtime/Core/GamePauseService.cs | 0 .../Runtime/Core/GamePauseService.cs.meta | 0 .../Runtime/Core/GameState.cs | 0 .../Runtime/Core/GameState.cs.meta | 0 .../Runtime/Core/GameStateService.cs | 0 .../Runtime/Core/GameStateService.cs.meta | 0 .../Runtime/Core/GameTimerService.cs | 0 .../Runtime/Core/GameTimerService.cs.meta | 0 .../Runtime/Core/IBoardService.cs | 0 .../Runtime/Core/IBoardService.cs.meta | 0 .../Runtime/Core/IGamePauseService.cs | 0 .../Runtime/Core/IGamePauseService.cs.meta | 0 .../Runtime/Core/IGameStateService.cs | 0 .../Runtime/Core/IGameStateService.cs.meta | 0 .../Runtime/Core/IGameTimerService.cs | 0 .../Runtime/Core/IGameTimerService.cs.meta | 0 Assets/{Minesweeper => }/Runtime/ECS.meta | 0 .../Runtime/ECS/BoardEcsSyncService.cs | 0 .../Runtime/ECS/BoardEcsSyncService.cs.meta | 0 .../Runtime/ECS/Components.meta | 0 .../ECS/Components/BoardConfigComponent.cs | 0 .../Components/BoardConfigComponent.cs.meta | 0 .../Runtime/ECS/Components/CellComponent.cs | 0 .../ECS/Components/CellComponent.cs.meta | 0 .../ECS/Components/GameStateComponent.cs | 0 .../ECS/Components/GameStateComponent.cs.meta | 0 .../Runtime/ECS/IBoardEcsSyncService.cs | 0 .../Runtime/ECS/IBoardEcsSyncService.cs.meta | 0 .../Runtime/ECS/Systems.meta | 0 .../Runtime/Infrastructure.meta | 0 .../Infrastructure/MinesweeperEntryPoint.cs | 6 +- .../MinesweeperEntryPoint.cs.meta | 0 .../MinesweeperLifetimeScope.cs | 27 + .../MinesweeperLifetimeScope.cs.meta | 0 .../Infrastructure/RestartKeyInputService.cs | 50 + .../RestartKeyInputService.cs.meta | 11 + .../Runtime/Presentation.meta | 0 .../Runtime/Presentation/Adapters.meta | 0 .../Adapters/GameStateViewAdapter.cs | 0 .../Adapters/GameStateViewAdapter.cs.meta | 0 .../Adapters/IGameStateViewAdapter.cs | 0 .../Adapters/IGameStateViewAdapter.cs.meta | 0 .../Runtime/Presentation/Factories.meta | 0 .../Presentation/Factories/CellViewFactory.cs | 91 + .../Factories/CellViewFactory.cs.meta | 0 .../Factories/ICellViewFactory.cs | 5 + .../Factories/ICellViewFactory.cs.meta | 0 .../Runtime/Presentation/Presenters.meta | 0 .../Presentation/Presenters/GamePresenter.cs | 39 +- .../Presenters/GamePresenter.cs.meta | 0 .../Presentation/Presenters/IPresenter.cs | 0 .../Presenters/IPresenter.cs.meta | 0 .../Presenters/MainMenuPresenter.cs | 0 .../Presenters/MainMenuPresenter.cs.meta | 0 .../Presenters/TopPanelPresenter.cs | 130 ++ .../Presenters/TopPanelPresenter.cs.meta | 11 + .../Runtime/Presentation/ReadModels.meta | 0 .../Presentation/ReadModels/GameReadModel.cs | 17 + .../ReadModels/GameReadModel.cs.meta | 0 .../Presentation/ReadModels/IGameReadModel.cs | 2 + .../ReadModels/IGameReadModel.cs.meta | 0 .../Runtime/Presentation/Views.meta | 0 Assets/Runtime/Presentation/Views/CellView.cs | 172 ++ .../Presentation/Views/CellView.cs.meta | 0 .../Runtime/Presentation/Views/GameView.cs | 147 +- .../Presentation/Views/GameView.cs.meta | 0 .../Runtime/Presentation/Views/IGameView.cs | 7 +- .../Presentation/Views/IGameView.cs.meta | 0 .../Presentation/Views/IMainMenuView.cs | 0 .../Presentation/Views/IMainMenuView.cs.meta | 0 .../Presentation/Views/ITopPanelView.cs | 15 + .../Presentation/Views/ITopPanelView.cs.meta | 11 + .../Runtime/Presentation/Views/IView.cs | 0 .../Runtime/Presentation/Views/IView.cs.meta | 0 .../Presentation/Views/MainMenuView.cs | 0 .../Presentation/Views/MainMenuView.cs.meta | 0 .../Presentation/Views/NullGameView.cs | 23 +- .../Presentation/Views/NullGameView.cs.meta | 0 .../Presentation/Views/NullMainMenuView.cs | 0 .../Views/NullMainMenuView.cs.meta | 0 .../Presentation/Views/NullTopPanelView.cs | 30 + .../Views/NullTopPanelView.cs.meta | 11 + .../Presentation/Views/TopPanelView.cs | 91 + .../Presentation/Views/TopPanelView.cs.meta | 11 + Assets/Scenes/SampleScene.unity | 1646 +++++++++++++++-- Assets/Sprites/MinesweeperSprites.png.meta | 16 +- 134 files changed, 5367 insertions(+), 269 deletions(-) rename Assets/{Minesweeper => }/Config.meta (100%) rename Assets/{Minesweeper => }/Config/MinesweeperGameConfig.asset (100%) rename Assets/{Minesweeper => }/Config/MinesweeperGameConfig.asset.meta (100%) create mode 100644 Assets/Config/MinesweeperUiConfig.asset create mode 100644 Assets/Config/MinesweeperUiConfig.asset.meta delete mode 100644 Assets/Minesweeper/Runtime/Presentation/Factories/CellViewFactory.cs delete mode 100644 Assets/Minesweeper/Runtime/Presentation/Views/CellView.cs rename Assets/{Minesweeper.meta => Prefabs.meta} (77%) create mode 100644 Assets/Prefabs/Cells.meta create mode 100644 Assets/Prefabs/Cells/ButtonMine.prefab create mode 100644 Assets/Prefabs/Cells/ButtonMine.prefab.meta create mode 100644 Assets/Prefabs/Screens.meta create mode 100644 Assets/Prefabs/Screens/BoardGrid.prefab create mode 100644 Assets/Prefabs/Screens/BoardGrid.prefab.meta create mode 100644 Assets/Prefabs/Screens/MainMenuPanel.prefab create mode 100644 Assets/Prefabs/Screens/MainMenuPanel.prefab.meta create mode 100644 Assets/Prefabs/Screens/PausePanel.prefab create mode 100644 Assets/Prefabs/Screens/PausePanel.prefab.meta create mode 100644 Assets/Prefabs/Screens/ResultPanel.prefab create mode 100644 Assets/Prefabs/Screens/ResultPanel.prefab.meta rename Assets/{Minesweeper => }/Runtime.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands/GameCommandDispatcher.cs (100%) rename Assets/{Minesweeper => }/Runtime/Commands/GameCommandDispatcher.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands/GameCommandHandlers.cs (100%) rename Assets/{Minesweeper => }/Runtime/Commands/GameCommandHandlers.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands/GameCommands.cs (100%) rename Assets/{Minesweeper => }/Runtime/Commands/GameCommands.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands/IGameCommand.cs (100%) rename Assets/{Minesweeper => }/Runtime/Commands/IGameCommand.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands/IGameCommandDispatcher.cs (100%) rename Assets/{Minesweeper => }/Runtime/Commands/IGameCommandDispatcher.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Commands/IGameCommandHandler.cs (100%) rename Assets/{Minesweeper => }/Runtime/Commands/IGameCommandHandler.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Config.meta (100%) rename Assets/{Minesweeper => }/Runtime/Config/MinesweeperGameConfig.cs (100%) rename Assets/{Minesweeper => }/Runtime/Config/MinesweeperGameConfig.cs.meta (100%) create mode 100644 Assets/Runtime/Config/MinesweeperUiConfig.cs create mode 100644 Assets/Runtime/Config/MinesweeperUiConfig.cs.meta create mode 100644 Assets/Runtime/Config/SmileFaceState.cs create mode 100644 Assets/Runtime/Config/SmileFaceState.cs.meta rename Assets/{Minesweeper => }/Runtime/Core.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/BoardActionResult.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/BoardActionResult.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/BoardCellData.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/BoardCellData.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/BoardService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/BoardService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/GamePauseService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/GamePauseService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/GameState.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/GameState.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/GameStateService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/GameStateService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/GameTimerService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/GameTimerService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/IBoardService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/IBoardService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/IGamePauseService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/IGamePauseService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/IGameStateService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/IGameStateService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Core/IGameTimerService.cs (100%) rename Assets/{Minesweeper => }/Runtime/Core/IGameTimerService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/BoardEcsSyncService.cs (100%) rename Assets/{Minesweeper => }/Runtime/ECS/BoardEcsSyncService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components/BoardConfigComponent.cs (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components/BoardConfigComponent.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components/CellComponent.cs (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components/CellComponent.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components/GameStateComponent.cs (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Components/GameStateComponent.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/IBoardEcsSyncService.cs (100%) rename Assets/{Minesweeper => }/Runtime/ECS/IBoardEcsSyncService.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/ECS/Systems.meta (100%) rename Assets/{Minesweeper => }/Runtime/Infrastructure.meta (100%) rename Assets/{Minesweeper => }/Runtime/Infrastructure/MinesweeperEntryPoint.cs (73%) rename Assets/{Minesweeper => }/Runtime/Infrastructure/MinesweeperEntryPoint.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Infrastructure/MinesweeperLifetimeScope.cs (75%) rename Assets/{Minesweeper => }/Runtime/Infrastructure/MinesweeperLifetimeScope.cs.meta (100%) create mode 100644 Assets/Runtime/Infrastructure/RestartKeyInputService.cs create mode 100644 Assets/Runtime/Infrastructure/RestartKeyInputService.cs.meta rename Assets/{Minesweeper => }/Runtime/Presentation.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Adapters.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Adapters/GameStateViewAdapter.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Adapters/GameStateViewAdapter.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Factories.meta (100%) create mode 100644 Assets/Runtime/Presentation/Factories/CellViewFactory.cs rename Assets/{Minesweeper => }/Runtime/Presentation/Factories/CellViewFactory.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Factories/ICellViewFactory.cs (60%) rename Assets/{Minesweeper => }/Runtime/Presentation/Factories/ICellViewFactory.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters/GamePresenter.cs (76%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters/GamePresenter.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters/IPresenter.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters/IPresenter.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters/MainMenuPresenter.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Presenters/MainMenuPresenter.cs.meta (100%) create mode 100644 Assets/Runtime/Presentation/Presenters/TopPanelPresenter.cs create mode 100644 Assets/Runtime/Presentation/Presenters/TopPanelPresenter.cs.meta rename Assets/{Minesweeper => }/Runtime/Presentation/ReadModels.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/ReadModels/GameReadModel.cs (72%) rename Assets/{Minesweeper => }/Runtime/Presentation/ReadModels/GameReadModel.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/ReadModels/IGameReadModel.cs (82%) rename Assets/{Minesweeper => }/Runtime/Presentation/ReadModels/IGameReadModel.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views.meta (100%) create mode 100644 Assets/Runtime/Presentation/Views/CellView.cs rename Assets/{Minesweeper => }/Runtime/Presentation/Views/CellView.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/GameView.cs (60%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/GameView.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/IGameView.cs (76%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/IGameView.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/IMainMenuView.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/IMainMenuView.cs.meta (100%) create mode 100644 Assets/Runtime/Presentation/Views/ITopPanelView.cs create mode 100644 Assets/Runtime/Presentation/Views/ITopPanelView.cs.meta rename Assets/{Minesweeper => }/Runtime/Presentation/Views/IView.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/IView.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/MainMenuView.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/MainMenuView.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/NullGameView.cs (76%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/NullGameView.cs.meta (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/NullMainMenuView.cs (100%) rename Assets/{Minesweeper => }/Runtime/Presentation/Views/NullMainMenuView.cs.meta (100%) create mode 100644 Assets/Runtime/Presentation/Views/NullTopPanelView.cs create mode 100644 Assets/Runtime/Presentation/Views/NullTopPanelView.cs.meta create mode 100644 Assets/Runtime/Presentation/Views/TopPanelView.cs create mode 100644 Assets/Runtime/Presentation/Views/TopPanelView.cs.meta diff --git a/Assets/Minesweeper/Config.meta b/Assets/Config.meta similarity index 100% rename from Assets/Minesweeper/Config.meta rename to Assets/Config.meta diff --git a/Assets/Minesweeper/Config/MinesweeperGameConfig.asset b/Assets/Config/MinesweeperGameConfig.asset similarity index 100% rename from Assets/Minesweeper/Config/MinesweeperGameConfig.asset rename to Assets/Config/MinesweeperGameConfig.asset diff --git a/Assets/Minesweeper/Config/MinesweeperGameConfig.asset.meta b/Assets/Config/MinesweeperGameConfig.asset.meta similarity index 100% rename from Assets/Minesweeper/Config/MinesweeperGameConfig.asset.meta rename to Assets/Config/MinesweeperGameConfig.asset.meta diff --git a/Assets/Config/MinesweeperUiConfig.asset b/Assets/Config/MinesweeperUiConfig.asset new file mode 100644 index 0000000..691dea8 --- /dev/null +++ b/Assets/Config/MinesweeperUiConfig.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a3b0d5a2a71d45ad9f4ac4f77158c101, type: 3} + m_Name: MinesweeperUiConfig + m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Config.MinesweeperUiConfig + smileSprite: {fileID: -1742511488406231654, guid: 4c4c10e49c2777748899d811a0e67689, type: 3} + surprisedSprite: {fileID: 3671161086415039645, guid: 4c4c10e49c2777748899d811a0e67689, type: 3} + coolSprite: {fileID: -4087064840323337479, guid: 4c4c10e49c2777748899d811a0e67689, type: 3} + deadSprite: {fileID: -3219474053889490514, guid: 4c4c10e49c2777748899d811a0e67689, type: 3} + cellButtonPrefab: {fileID: 6406400753494049822, guid: 266915ac0173ea44b81985eb253dfa88, type: 3} + mineSprite: {fileID: 0} + flagSprite: {fileID: 0} + closedCellSprite: {fileID: 0} + openedCellSprite: {fileID: 0} + defaultTextColor: {r: 0, g: 0, b: 0, a: 1} + oneMineTextColor: {r: 0, g: 0, b: 1, a: 1} + twoMineTextColor: {r: 0, g: 1, b: 0, a: 1} + threeMineTextColor: {r: 1, g: 0, b: 0, a: 1} + fourMineTextColor: {r: 0, g: 0, b: 0.5, a: 1} + fiveMineTextColor: {r: 0.5, g: 0, b: 0, a: 1} + sixMineTextColor: {r: 0, g: 1, b: 1, a: 1} + sevenMineTextColor: {r: 0, g: 0, b: 0, a: 1} + eightMineTextColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + referenceCellSize: 100 + boardPaddingRatio: 0.15 + gridSpacingRatio: 0.02 + minimumCellSize: 8 diff --git a/Assets/Config/MinesweeperUiConfig.asset.meta b/Assets/Config/MinesweeperUiConfig.asset.meta new file mode 100644 index 0000000..e0eec16 --- /dev/null +++ b/Assets/Config/MinesweeperUiConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c8b7785713c7c8b49b853f7e5028a4fa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Minesweeper/Runtime/Presentation/Factories/CellViewFactory.cs b/Assets/Minesweeper/Runtime/Presentation/Factories/CellViewFactory.cs deleted file mode 100644 index 72a5271..0000000 --- a/Assets/Minesweeper/Runtime/Presentation/Factories/CellViewFactory.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace Minesweeper.Presentation.Factories -{ - public sealed class CellViewFactory : ICellViewFactory - { - public string BuildCellName(int x, int y, int value, bool isMine) - { - return $"bt_{x}_{y}_{(isMine ? "M" : value.ToString())}"; - } - - public string BuildCellName(int x, int y, string displayValue) - { - return $"bt_{x}_{y}_{displayValue}"; - } - } -} diff --git a/Assets/Minesweeper/Runtime/Presentation/Views/CellView.cs b/Assets/Minesweeper/Runtime/Presentation/Views/CellView.cs deleted file mode 100644 index f432486..0000000 --- a/Assets/Minesweeper/Runtime/Presentation/Views/CellView.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using Minesweeper.Core; -using TMPro; -using UnityEngine; -using UnityEngine.EventSystems; -using UnityEngine.UI; - -namespace Minesweeper.Presentation.Views -{ - public sealed class CellView : MonoBehaviour, IPointerClickHandler - { - [SerializeField] private Button button; - [SerializeField] private Image image; - [SerializeField] private TMP_Text label; - - private int x; - private int y; - private bool inputEnabled = true; - - public event Action OpenRequested; - public event Action FlagRequested; - - public void Bind(Button button, Image image, TMP_Text label) - { - this.button = button; - this.image = image; - this.label = label; - } - - public void Initialize(int x, int y) - { - this.x = x; - this.y = y; - } - - public void SetInputEnabled(bool enabled) - { - inputEnabled = enabled; - if (button != null) - { - button.interactable = enabled; - } - } - - public void Render(BoardCellData cell, float pixelsPerUnitMultiplier) - { - gameObject.name = $"bt_{cell.X}_{cell.Y}_{cell.DisplayValue}"; - - if (image != null) - { - image.pixelsPerUnitMultiplier = pixelsPerUnitMultiplier; - image.color = cell.IsOpened ? new Color(0.78f, 0.78f, 0.78f) : Color.white; - } - - if (label != null) - { - if (cell.IsFlagged) - { - label.text = "F"; - } - else if (!cell.IsOpened) - { - label.text = string.Empty; - } - else if (cell.IsMine) - { - label.text = "M"; - } - else - { - label.text = cell.NeighborMines == 0 ? string.Empty : cell.NeighborMines.ToString(); - } - } - } - - public void OnPointerClick(PointerEventData eventData) - { - if (!inputEnabled) - { - return; - } - - if (eventData.button == PointerEventData.InputButton.Left) - { - OpenRequested?.Invoke(x, y); - } - else if (eventData.button == PointerEventData.InputButton.Right) - { - FlagRequested?.Invoke(x, y); - } - } - } -} diff --git a/Assets/Minesweeper.meta b/Assets/Prefabs.meta similarity index 77% rename from Assets/Minesweeper.meta rename to Assets/Prefabs.meta index 5e5120f..1e93d00 100644 --- a/Assets/Minesweeper.meta +++ b/Assets/Prefabs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 224675c5999574f4b8cc858e17e34eed +guid: d286b3242b2ac44499a4c6f3b30395b6 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Prefabs/Cells.meta b/Assets/Prefabs/Cells.meta new file mode 100644 index 0000000..a129c3e --- /dev/null +++ b/Assets/Prefabs/Cells.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f307ec21a2a32d64e84411d9c404c135 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Cells/ButtonMine.prefab b/Assets/Prefabs/Cells/ButtonMine.prefab new file mode 100644 index 0000000..3abf9ed --- /dev/null +++ b/Assets/Prefabs/Cells/ButtonMine.prefab @@ -0,0 +1,387 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2361371038099078393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 855905148978497855} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &855905148978497855 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2361371038099078393} + 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: 6834436244008710680} + - {fileID: 6427740621869512103} + m_Father: {fileID: 7710059113439411251} + 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: -15, y: -15} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3798432596530835849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6834436244008710680} + - component: {fileID: 3851931051487547836} + - component: {fileID: 2245737607582627579} + - component: {fileID: 3864791141239776168} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6834436244008710680 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3798432596530835849} + 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: 855905148978497855} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3851931051487547836 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3798432596530835849} + m_CullTransparentMesh: 1 +--- !u!114 &2245737607582627579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3798432596530835849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + 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: -8492488664197331416, guid: 4c4c10e49c2777748899d811a0e67689, 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 &3864791141239776168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3798432596530835849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter + m_AspectMode: 4 + m_AspectRatio: 1 +--- !u!1 &5546512932030864917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6427740621869512103} + - component: {fileID: 4574882275002937660} + - component: {fileID: 8958233407636047794} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6427740621869512103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546512932030864917} + 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: 855905148978497855} + 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: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4574882275002937660 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546512932030864917} + m_CullTransparentMesh: 1 +--- !u!114 &8958233407636047794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546512932030864917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: 1 + 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: 54.6 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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: 2, y: 2, z: 2, w: 2} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6406400753494049822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7710059113439411251} + - component: {fileID: 7313243575525116621} + - component: {fileID: 8390786300108739894} + - component: {fileID: 1091584581727823407} + m_Layer: 5 + m_Name: ButtonMine + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7710059113439411251 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6406400753494049822} + 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: 855905148978497855} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7313243575525116621 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6406400753494049822} + m_CullTransparentMesh: 1 +--- !u!114 &8390786300108739894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6406400753494049822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + 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: -4571551822685222379, guid: 4c4c10e49c2777748899d811a0e67689, 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: 2 +--- !u!114 &1091584581727823407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6406400753494049822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8390786300108739894} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/Prefabs/Cells/ButtonMine.prefab.meta b/Assets/Prefabs/Cells/ButtonMine.prefab.meta new file mode 100644 index 0000000..e5c7a3e --- /dev/null +++ b/Assets/Prefabs/Cells/ButtonMine.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 266915ac0173ea44b81985eb253dfa88 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Screens.meta b/Assets/Prefabs/Screens.meta new file mode 100644 index 0000000..cd2d445 --- /dev/null +++ b/Assets/Prefabs/Screens.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 450019d1d2dc8f0458273daabd3a70cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Screens/BoardGrid.prefab b/Assets/Prefabs/Screens/BoardGrid.prefab new file mode 100644 index 0000000..b3dcba3 --- /dev/null +++ b/Assets/Prefabs/Screens/BoardGrid.prefab @@ -0,0 +1,62 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &463985621338212375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2854659401256325699} + - component: {fileID: 5452205749846460716} + m_Layer: 0 + m_Name: BoardGrid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2854659401256325699 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463985621338212375} + 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: 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 &5452205749846460716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463985621338212375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GridLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 100, y: 100} + m_Spacing: {x: 0, y: 0} + m_Constraint: 0 + m_ConstraintCount: 2 diff --git a/Assets/Prefabs/Screens/BoardGrid.prefab.meta b/Assets/Prefabs/Screens/BoardGrid.prefab.meta new file mode 100644 index 0000000..227bfae --- /dev/null +++ b/Assets/Prefabs/Screens/BoardGrid.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91c5885a4fbe47540abf4bfd814a32d0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Screens/MainMenuPanel.prefab b/Assets/Prefabs/Screens/MainMenuPanel.prefab new file mode 100644 index 0000000..a2d96e9 --- /dev/null +++ b/Assets/Prefabs/Screens/MainMenuPanel.prefab @@ -0,0 +1,516 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3877081085258266573 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6160390536635419528} + - component: {fileID: 655855450761696767} + - component: {fileID: 1956913908946340722} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6160390536635419528 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3877081085258266573} + 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: 2335509915494414826} + 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!222 &655855450761696767 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3877081085258266573} + m_CullTransparentMesh: 1 +--- !u!114 &1956913908946340722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3877081085258266573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: Start + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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: 42.95 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &7110859726813965570 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2335509915494414826} + - component: {fileID: 8503116856766007493} + - component: {fileID: 4035666177967329986} + - component: {fileID: 3904309382312306706} + m_Layer: 0 + m_Name: StartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2335509915494414826 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110859726813965570} + 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: 6160390536635419528} + m_Father: {fileID: 4767332485307828009} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 329.7778, y: -279.5} + m_SizeDelta: {x: 180, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8503116856766007493 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110859726813965570} + m_CullTransparentMesh: 1 +--- !u!114 &4035666177967329986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110859726813965570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.86, g: 0.86, b: 0.86, 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: 0} + 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 &3904309382312306706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7110859726813965570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4035666177967329986} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &7213098219235127758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6411972003596155635} + - component: {fileID: 298179405936071836} + - component: {fileID: 423546376620069314} + m_Layer: 0 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6411972003596155635 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7213098219235127758} + 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: 4767332485307828009} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 329.7778, y: -201.5} + m_SizeDelta: {x: 360, y: 72} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &298179405936071836 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7213098219235127758} + m_CullTransparentMesh: 1 +--- !u!114 &423546376620069314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7213098219235127758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: MINESWEEPER + 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: 47.9 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 48 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &7682962739562644362 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4767332485307828009} + - component: {fileID: 5647872840695534} + - component: {fileID: 6590911878418536038} + - component: {fileID: 5456992800552396061} + - component: {fileID: 5593826727548929329} + m_Layer: 0 + m_Name: MainMenuPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4767332485307828009 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7682962739562644362} + 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: 6411972003596155635} + - {fileID: 2335509915494414826} + m_Father: {fileID: 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!222 &5647872840695534 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7682962739562644362} + m_CullTransparentMesh: 1 +--- !u!114 &6590911878418536038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7682962739562644362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.12, g: 0.12, b: 0.12, a: 0.92} + 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: 0} + 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 &5456992800552396061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7682962739562644362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bb899c7e47cd4e341b0258dac3f7a238, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Presentation.Views.MainMenuView + root: {fileID: 7682962739562644362} + startButton: {fileID: 3904309382312306706} +--- !u!114 &5593826727548929329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7682962739562644362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 18 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 diff --git a/Assets/Prefabs/Screens/MainMenuPanel.prefab.meta b/Assets/Prefabs/Screens/MainMenuPanel.prefab.meta new file mode 100644 index 0000000..0a0503c --- /dev/null +++ b/Assets/Prefabs/Screens/MainMenuPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 66407cd7142d6a945b37ca8dc5e7c6b7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Screens/PausePanel.prefab b/Assets/Prefabs/Screens/PausePanel.prefab new file mode 100644 index 0000000..6d472d2 --- /dev/null +++ b/Assets/Prefabs/Screens/PausePanel.prefab @@ -0,0 +1,1019 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1002134300688892376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 897987131459102557} + - component: {fileID: 1323395922687814} + - component: {fileID: 2396570544786180172} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &897987131459102557 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002134300688892376} + 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: 9043826669907694646} + 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!222 &1323395922687814 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002134300688892376} + m_CullTransparentMesh: 1 +--- !u!114 &2396570544786180172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1002134300688892376} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: Continue + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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: 42.95 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &2637081591348788270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8881365639295328946} + - component: {fileID: 3470312087431380435} + - component: {fileID: 233263372458679914} + - component: {fileID: 6836717569141764482} + m_Layer: 0 + m_Name: MainMenuButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8881365639295328946 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2637081591348788270} + 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: 1294402234449297828} + m_Father: {fileID: 8980764968637402581} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3470312087431380435 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2637081591348788270} + m_CullTransparentMesh: 1 +--- !u!114 &233263372458679914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2637081591348788270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.86, g: 0.86, b: 0.86, 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: 0} + 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 &6836717569141764482 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2637081591348788270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 233263372458679914} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &2638123625286085122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9043826669907694646} + - component: {fileID: 7002517246287558728} + - component: {fileID: 5397860233526201543} + - component: {fileID: 623936683249341502} + m_Layer: 0 + m_Name: ContinueButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9043826669907694646 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2638123625286085122} + 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: 897987131459102557} + m_Father: {fileID: 8980764968637402581} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7002517246287558728 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2638123625286085122} + m_CullTransparentMesh: 1 +--- !u!114 &5397860233526201543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2638123625286085122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.86, g: 0.86, b: 0.86, 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: 0} + 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 &623936683249341502 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2638123625286085122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5397860233526201543} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &2814582388565546678 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8980764968637402581} + - component: {fileID: 8794113368554700498} + - component: {fileID: 2001891034146769603} + - component: {fileID: 3188781103839045936} + m_Layer: 0 + m_Name: PausePanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8980764968637402581 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2814582388565546678} + 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: 5608047556670537065} + - {fileID: 5707606247840532089} + - {fileID: 9043826669907694646} + - {fileID: 8881365639295328946} + m_Father: {fileID: 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!222 &8794113368554700498 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2814582388565546678} + m_CullTransparentMesh: 1 +--- !u!114 &2001891034146769603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2814582388565546678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.08, g: 0.08, b: 0.08, a: 0.72} + 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: 0} + 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 &3188781103839045936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2814582388565546678} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &4212380874842696201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5608047556670537065} + - component: {fileID: 6029337994669973288} + - component: {fileID: 5250592819783767390} + m_Layer: 0 + m_Name: PauseTitle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5608047556670537065 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4212380874842696201} + 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: 8980764968637402581} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 260, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6029337994669973288 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4212380874842696201} + m_CullTransparentMesh: 1 +--- !u!114 &5250592819783767390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4212380874842696201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: PAUSED + 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: 57.25 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &6143246699713812946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5392971194067563766} + - component: {fileID: 1027039822612322709} + - component: {fileID: 263772625500567369} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5392971194067563766 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6143246699713812946} + 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: 5707606247840532089} + 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!222 &1027039822612322709 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6143246699713812946} + m_CullTransparentMesh: 1 +--- !u!114 &263772625500567369 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6143246699713812946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: Restart + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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: 42.95 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &8951379092871892792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1294402234449297828} + - component: {fileID: 6171265826240314641} + - component: {fileID: 6864102600949450015} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1294402234449297828 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8951379092871892792} + 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: 8881365639295328946} + 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!222 &6171265826240314641 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8951379092871892792} + m_CullTransparentMesh: 1 +--- !u!114 &6864102600949450015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8951379092871892792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: Main Menu + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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.4 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &8998480090649882076 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5707606247840532089} + - component: {fileID: 2049058910800172261} + - component: {fileID: 8262790157309785596} + - component: {fileID: 6144314195671038853} + m_Layer: 0 + m_Name: RestartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5707606247840532089 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8998480090649882076} + 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: 5392971194067563766} + m_Father: {fileID: 8980764968637402581} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2049058910800172261 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8998480090649882076} + m_CullTransparentMesh: 1 +--- !u!114 &8262790157309785596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8998480090649882076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.86, g: 0.86, b: 0.86, 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: 0} + 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 &6144314195671038853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8998480090649882076} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8262790157309785596} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/Prefabs/Screens/PausePanel.prefab.meta b/Assets/Prefabs/Screens/PausePanel.prefab.meta new file mode 100644 index 0000000..eac0e92 --- /dev/null +++ b/Assets/Prefabs/Screens/PausePanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ec358f6fec19e3b469f516bd1ade70cd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Screens/ResultPanel.prefab b/Assets/Prefabs/Screens/ResultPanel.prefab new file mode 100644 index 0000000..2a52a3c --- /dev/null +++ b/Assets/Prefabs/Screens/ResultPanel.prefab @@ -0,0 +1,760 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &999041870156624000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7716741039240103859} + - component: {fileID: 8382717949319705333} + - component: {fileID: 7260907240647165918} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7716741039240103859 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999041870156624000} + 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: 5791868949534554285} + 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!222 &8382717949319705333 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999041870156624000} + m_CullTransparentMesh: 1 +--- !u!114 &7260907240647165918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 999041870156624000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: Main Menu + 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: 0, g: 0, b: 0, 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: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &5546750851245472489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4475925576080504750} + - component: {fileID: 5737558796278534139} + - component: {fileID: 6423146057671714179} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4475925576080504750 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546750851245472489} + 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: 1427833870319099182} + 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!222 &5737558796278534139 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546750851245472489} + m_CullTransparentMesh: 1 +--- !u!114 &6423146057671714179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546750851245472489} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: Restart + 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: 0, g: 0, b: 0, 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: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &6011430087630309393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5791868949534554285} + - component: {fileID: 5645585721074283479} + - component: {fileID: 7728430255871484363} + - component: {fileID: 8067593845912844089} + m_Layer: 0 + m_Name: MainMenuButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5791868949534554285 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6011430087630309393} + 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: 7716741039240103859} + m_Father: {fileID: 1711089644684175522} + 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: 180, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5645585721074283479 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6011430087630309393} + m_CullTransparentMesh: 1 +--- !u!114 &7728430255871484363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6011430087630309393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.86, g: 0.86, b: 0.86, 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: 0} + 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 &8067593845912844089 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6011430087630309393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7728430255871484363} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &6734942153781218244 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8189959685470005628} + - component: {fileID: 8517643472744692661} + - component: {fileID: 1865948005499603418} + m_Layer: 0 + m_Name: ResultText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8189959685470005628 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6734942153781218244} + 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: 1711089644684175522} + 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: 300, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8517643472744692661 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6734942153781218244} + m_CullTransparentMesh: 1 +--- !u!114 &1865948005499603418 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6734942153781218244} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + 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: GAME OVER + 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: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + 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!1 &6869455415096409219 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1711089644684175522} + - component: {fileID: 2645373253716865156} + - component: {fileID: 3592721359535107435} + - component: {fileID: 732723309192048358} + m_Layer: 0 + m_Name: ResultPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1711089644684175522 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6869455415096409219} + 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: 8189959685470005628} + - {fileID: 1427833870319099182} + - {fileID: 5791868949534554285} + m_Father: {fileID: 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!222 &2645373253716865156 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6869455415096409219} + m_CullTransparentMesh: 1 +--- !u!114 &3592721359535107435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6869455415096409219} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.08, g: 0.08, b: 0.08, a: 0.72} + 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: 0} + 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 &732723309192048358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6869455415096409219} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &8555883531386717516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1427833870319099182} + - component: {fileID: 2044360681731469335} + - component: {fileID: 8457057769353035731} + - component: {fileID: 4556636970913567574} + m_Layer: 0 + m_Name: RestartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1427833870319099182 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555883531386717516} + 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: 4475925576080504750} + m_Father: {fileID: 1711089644684175522} + 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: 180, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2044360681731469335 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555883531386717516} + m_CullTransparentMesh: 1 +--- !u!114 &8457057769353035731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555883531386717516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0.86, g: 0.86, b: 0.86, 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: 0} + 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 &4556636970913567574 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8555883531386717516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8457057769353035731} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/Prefabs/Screens/ResultPanel.prefab.meta b/Assets/Prefabs/Screens/ResultPanel.prefab.meta new file mode 100644 index 0000000..d72b682 --- /dev/null +++ b/Assets/Prefabs/Screens/ResultPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 73d5a09dc8885e64a8c20a68ea82c5dc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Minesweeper/Runtime.meta b/Assets/Runtime.meta similarity index 100% rename from Assets/Minesweeper/Runtime.meta rename to Assets/Runtime.meta diff --git a/Assets/Minesweeper/Runtime/Commands.meta b/Assets/Runtime/Commands.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands.meta rename to Assets/Runtime/Commands.meta diff --git a/Assets/Minesweeper/Runtime/Commands/GameCommandDispatcher.cs b/Assets/Runtime/Commands/GameCommandDispatcher.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/GameCommandDispatcher.cs rename to Assets/Runtime/Commands/GameCommandDispatcher.cs diff --git a/Assets/Minesweeper/Runtime/Commands/GameCommandDispatcher.cs.meta b/Assets/Runtime/Commands/GameCommandDispatcher.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/GameCommandDispatcher.cs.meta rename to Assets/Runtime/Commands/GameCommandDispatcher.cs.meta diff --git a/Assets/Minesweeper/Runtime/Commands/GameCommandHandlers.cs b/Assets/Runtime/Commands/GameCommandHandlers.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/GameCommandHandlers.cs rename to Assets/Runtime/Commands/GameCommandHandlers.cs diff --git a/Assets/Minesweeper/Runtime/Commands/GameCommandHandlers.cs.meta b/Assets/Runtime/Commands/GameCommandHandlers.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/GameCommandHandlers.cs.meta rename to Assets/Runtime/Commands/GameCommandHandlers.cs.meta diff --git a/Assets/Minesweeper/Runtime/Commands/GameCommands.cs b/Assets/Runtime/Commands/GameCommands.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/GameCommands.cs rename to Assets/Runtime/Commands/GameCommands.cs diff --git a/Assets/Minesweeper/Runtime/Commands/GameCommands.cs.meta b/Assets/Runtime/Commands/GameCommands.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/GameCommands.cs.meta rename to Assets/Runtime/Commands/GameCommands.cs.meta diff --git a/Assets/Minesweeper/Runtime/Commands/IGameCommand.cs b/Assets/Runtime/Commands/IGameCommand.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/IGameCommand.cs rename to Assets/Runtime/Commands/IGameCommand.cs diff --git a/Assets/Minesweeper/Runtime/Commands/IGameCommand.cs.meta b/Assets/Runtime/Commands/IGameCommand.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/IGameCommand.cs.meta rename to Assets/Runtime/Commands/IGameCommand.cs.meta diff --git a/Assets/Minesweeper/Runtime/Commands/IGameCommandDispatcher.cs b/Assets/Runtime/Commands/IGameCommandDispatcher.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/IGameCommandDispatcher.cs rename to Assets/Runtime/Commands/IGameCommandDispatcher.cs diff --git a/Assets/Minesweeper/Runtime/Commands/IGameCommandDispatcher.cs.meta b/Assets/Runtime/Commands/IGameCommandDispatcher.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/IGameCommandDispatcher.cs.meta rename to Assets/Runtime/Commands/IGameCommandDispatcher.cs.meta diff --git a/Assets/Minesweeper/Runtime/Commands/IGameCommandHandler.cs b/Assets/Runtime/Commands/IGameCommandHandler.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/IGameCommandHandler.cs rename to Assets/Runtime/Commands/IGameCommandHandler.cs diff --git a/Assets/Minesweeper/Runtime/Commands/IGameCommandHandler.cs.meta b/Assets/Runtime/Commands/IGameCommandHandler.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Commands/IGameCommandHandler.cs.meta rename to Assets/Runtime/Commands/IGameCommandHandler.cs.meta diff --git a/Assets/Minesweeper/Runtime/Config.meta b/Assets/Runtime/Config.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Config.meta rename to Assets/Runtime/Config.meta diff --git a/Assets/Minesweeper/Runtime/Config/MinesweeperGameConfig.cs b/Assets/Runtime/Config/MinesweeperGameConfig.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Config/MinesweeperGameConfig.cs rename to Assets/Runtime/Config/MinesweeperGameConfig.cs diff --git a/Assets/Minesweeper/Runtime/Config/MinesweeperGameConfig.cs.meta b/Assets/Runtime/Config/MinesweeperGameConfig.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Config/MinesweeperGameConfig.cs.meta rename to Assets/Runtime/Config/MinesweeperGameConfig.cs.meta diff --git a/Assets/Runtime/Config/MinesweeperUiConfig.cs b/Assets/Runtime/Config/MinesweeperUiConfig.cs new file mode 100644 index 0000000..43275bf --- /dev/null +++ b/Assets/Runtime/Config/MinesweeperUiConfig.cs @@ -0,0 +1,86 @@ +using UnityEngine; + +namespace Minesweeper.Config +{ + [CreateAssetMenu(fileName = "MinesweeperUiConfig", menuName = "Minesweeper/UI Config")] + public sealed class MinesweeperUiConfig : ScriptableObject + { + public const float DefaultReferenceCellSize = 100f; + public const float DefaultBoardPaddingRatio = 0.15f; + public const float DefaultGridSpacingRatio = 0.02f; + public const float DefaultMinimumCellSize = 8f; + + [SerializeField] private Sprite smileSprite; + [SerializeField] private Sprite surprisedSprite; + [SerializeField] private Sprite coolSprite; + [SerializeField] private Sprite deadSprite; + [SerializeField] private GameObject cellButtonPrefab; + [SerializeField] private Sprite mineSprite; + [SerializeField] private Sprite flagSprite; + [SerializeField] private Sprite closedCellSprite; + [SerializeField] private Sprite openedCellSprite; + [SerializeField] private Color defaultTextColor = Color.black; + [SerializeField] private Color oneMineTextColor = Color.blue; + [SerializeField] private Color twoMineTextColor = Color.green; + [SerializeField] private Color threeMineTextColor = Color.red; + [SerializeField] private Color fourMineTextColor = new Color(0f, 0f, 0.5f, 1f); + [SerializeField] private Color fiveMineTextColor = new Color(0.5f, 0f, 0f, 1f); + [SerializeField] private Color sixMineTextColor = Color.cyan; + [SerializeField] private Color sevenMineTextColor = Color.black; + [SerializeField] private Color eightMineTextColor = Color.gray; + [SerializeField, Min(DefaultMinimumCellSize)] private float referenceCellSize = DefaultReferenceCellSize; + [SerializeField, Min(0f)] private float boardPaddingRatio = DefaultBoardPaddingRatio; + [SerializeField, Min(0f)] private float gridSpacingRatio = DefaultGridSpacingRatio; + [SerializeField, Min(DefaultMinimumCellSize)] private float minimumCellSize = DefaultMinimumCellSize; + + public GameObject CellButtonPrefab => cellButtonPrefab; + public Sprite MineSprite => mineSprite; + public Sprite FlagSprite => flagSprite; + public Sprite ClosedCellSprite => closedCellSprite; + public Sprite OpenedCellSprite => openedCellSprite; + public float ReferenceCellSize => referenceCellSize; + public float BoardPaddingRatio => boardPaddingRatio; + public float GridSpacingRatio => gridSpacingRatio; + public float MinimumCellSize => minimumCellSize; + + public Sprite GetSmileSprite(SmileFaceState state) + { + switch (state) + { + case SmileFaceState.Surprised: + return surprisedSprite != null ? surprisedSprite : smileSprite; + case SmileFaceState.Cool: + return coolSprite != null ? coolSprite : smileSprite; + case SmileFaceState.Dead: + return deadSprite != null ? deadSprite : smileSprite; + default: + return smileSprite; + } + } + + public Color GetNumberTextColor(int neighborMines) + { + switch (neighborMines) + { + case 1: + return oneMineTextColor; + case 2: + return twoMineTextColor; + case 3: + return threeMineTextColor; + case 4: + return fourMineTextColor; + case 5: + return fiveMineTextColor; + case 6: + return sixMineTextColor; + case 7: + return sevenMineTextColor; + case 8: + return eightMineTextColor; + default: + return defaultTextColor; + } + } + } +} diff --git a/Assets/Runtime/Config/MinesweeperUiConfig.cs.meta b/Assets/Runtime/Config/MinesweeperUiConfig.cs.meta new file mode 100644 index 0000000..fc7e48b --- /dev/null +++ b/Assets/Runtime/Config/MinesweeperUiConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a3b0d5a2a71d45ad9f4ac4f77158c101 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Runtime/Config/SmileFaceState.cs b/Assets/Runtime/Config/SmileFaceState.cs new file mode 100644 index 0000000..a57589a --- /dev/null +++ b/Assets/Runtime/Config/SmileFaceState.cs @@ -0,0 +1,10 @@ +namespace Minesweeper.Config +{ + public enum SmileFaceState + { + Smile = 0, + Surprised = 1, + Cool = 2, + Dead = 3 + } +} diff --git a/Assets/Runtime/Config/SmileFaceState.cs.meta b/Assets/Runtime/Config/SmileFaceState.cs.meta new file mode 100644 index 0000000..e064037 --- /dev/null +++ b/Assets/Runtime/Config/SmileFaceState.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f984c51b7db249ac9b9887b2b2bc75ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Minesweeper/Runtime/Core.meta b/Assets/Runtime/Core.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core.meta rename to Assets/Runtime/Core.meta diff --git a/Assets/Minesweeper/Runtime/Core/BoardActionResult.cs b/Assets/Runtime/Core/BoardActionResult.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/BoardActionResult.cs rename to Assets/Runtime/Core/BoardActionResult.cs diff --git a/Assets/Minesweeper/Runtime/Core/BoardActionResult.cs.meta b/Assets/Runtime/Core/BoardActionResult.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/BoardActionResult.cs.meta rename to Assets/Runtime/Core/BoardActionResult.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/BoardCellData.cs b/Assets/Runtime/Core/BoardCellData.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/BoardCellData.cs rename to Assets/Runtime/Core/BoardCellData.cs diff --git a/Assets/Minesweeper/Runtime/Core/BoardCellData.cs.meta b/Assets/Runtime/Core/BoardCellData.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/BoardCellData.cs.meta rename to Assets/Runtime/Core/BoardCellData.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/BoardService.cs b/Assets/Runtime/Core/BoardService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/BoardService.cs rename to Assets/Runtime/Core/BoardService.cs diff --git a/Assets/Minesweeper/Runtime/Core/BoardService.cs.meta b/Assets/Runtime/Core/BoardService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/BoardService.cs.meta rename to Assets/Runtime/Core/BoardService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/GamePauseService.cs b/Assets/Runtime/Core/GamePauseService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GamePauseService.cs rename to Assets/Runtime/Core/GamePauseService.cs diff --git a/Assets/Minesweeper/Runtime/Core/GamePauseService.cs.meta b/Assets/Runtime/Core/GamePauseService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GamePauseService.cs.meta rename to Assets/Runtime/Core/GamePauseService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/GameState.cs b/Assets/Runtime/Core/GameState.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GameState.cs rename to Assets/Runtime/Core/GameState.cs diff --git a/Assets/Minesweeper/Runtime/Core/GameState.cs.meta b/Assets/Runtime/Core/GameState.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GameState.cs.meta rename to Assets/Runtime/Core/GameState.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/GameStateService.cs b/Assets/Runtime/Core/GameStateService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GameStateService.cs rename to Assets/Runtime/Core/GameStateService.cs diff --git a/Assets/Minesweeper/Runtime/Core/GameStateService.cs.meta b/Assets/Runtime/Core/GameStateService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GameStateService.cs.meta rename to Assets/Runtime/Core/GameStateService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/GameTimerService.cs b/Assets/Runtime/Core/GameTimerService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GameTimerService.cs rename to Assets/Runtime/Core/GameTimerService.cs diff --git a/Assets/Minesweeper/Runtime/Core/GameTimerService.cs.meta b/Assets/Runtime/Core/GameTimerService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/GameTimerService.cs.meta rename to Assets/Runtime/Core/GameTimerService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/IBoardService.cs b/Assets/Runtime/Core/IBoardService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IBoardService.cs rename to Assets/Runtime/Core/IBoardService.cs diff --git a/Assets/Minesweeper/Runtime/Core/IBoardService.cs.meta b/Assets/Runtime/Core/IBoardService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IBoardService.cs.meta rename to Assets/Runtime/Core/IBoardService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/IGamePauseService.cs b/Assets/Runtime/Core/IGamePauseService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IGamePauseService.cs rename to Assets/Runtime/Core/IGamePauseService.cs diff --git a/Assets/Minesweeper/Runtime/Core/IGamePauseService.cs.meta b/Assets/Runtime/Core/IGamePauseService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IGamePauseService.cs.meta rename to Assets/Runtime/Core/IGamePauseService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/IGameStateService.cs b/Assets/Runtime/Core/IGameStateService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IGameStateService.cs rename to Assets/Runtime/Core/IGameStateService.cs diff --git a/Assets/Minesweeper/Runtime/Core/IGameStateService.cs.meta b/Assets/Runtime/Core/IGameStateService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IGameStateService.cs.meta rename to Assets/Runtime/Core/IGameStateService.cs.meta diff --git a/Assets/Minesweeper/Runtime/Core/IGameTimerService.cs b/Assets/Runtime/Core/IGameTimerService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IGameTimerService.cs rename to Assets/Runtime/Core/IGameTimerService.cs diff --git a/Assets/Minesweeper/Runtime/Core/IGameTimerService.cs.meta b/Assets/Runtime/Core/IGameTimerService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Core/IGameTimerService.cs.meta rename to Assets/Runtime/Core/IGameTimerService.cs.meta diff --git a/Assets/Minesweeper/Runtime/ECS.meta b/Assets/Runtime/ECS.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS.meta rename to Assets/Runtime/ECS.meta diff --git a/Assets/Minesweeper/Runtime/ECS/BoardEcsSyncService.cs b/Assets/Runtime/ECS/BoardEcsSyncService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/BoardEcsSyncService.cs rename to Assets/Runtime/ECS/BoardEcsSyncService.cs diff --git a/Assets/Minesweeper/Runtime/ECS/BoardEcsSyncService.cs.meta b/Assets/Runtime/ECS/BoardEcsSyncService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/BoardEcsSyncService.cs.meta rename to Assets/Runtime/ECS/BoardEcsSyncService.cs.meta diff --git a/Assets/Minesweeper/Runtime/ECS/Components.meta b/Assets/Runtime/ECS/Components.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components.meta rename to Assets/Runtime/ECS/Components.meta diff --git a/Assets/Minesweeper/Runtime/ECS/Components/BoardConfigComponent.cs b/Assets/Runtime/ECS/Components/BoardConfigComponent.cs similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components/BoardConfigComponent.cs rename to Assets/Runtime/ECS/Components/BoardConfigComponent.cs diff --git a/Assets/Minesweeper/Runtime/ECS/Components/BoardConfigComponent.cs.meta b/Assets/Runtime/ECS/Components/BoardConfigComponent.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components/BoardConfigComponent.cs.meta rename to Assets/Runtime/ECS/Components/BoardConfigComponent.cs.meta diff --git a/Assets/Minesweeper/Runtime/ECS/Components/CellComponent.cs b/Assets/Runtime/ECS/Components/CellComponent.cs similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components/CellComponent.cs rename to Assets/Runtime/ECS/Components/CellComponent.cs diff --git a/Assets/Minesweeper/Runtime/ECS/Components/CellComponent.cs.meta b/Assets/Runtime/ECS/Components/CellComponent.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components/CellComponent.cs.meta rename to Assets/Runtime/ECS/Components/CellComponent.cs.meta diff --git a/Assets/Minesweeper/Runtime/ECS/Components/GameStateComponent.cs b/Assets/Runtime/ECS/Components/GameStateComponent.cs similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components/GameStateComponent.cs rename to Assets/Runtime/ECS/Components/GameStateComponent.cs diff --git a/Assets/Minesweeper/Runtime/ECS/Components/GameStateComponent.cs.meta b/Assets/Runtime/ECS/Components/GameStateComponent.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Components/GameStateComponent.cs.meta rename to Assets/Runtime/ECS/Components/GameStateComponent.cs.meta diff --git a/Assets/Minesweeper/Runtime/ECS/IBoardEcsSyncService.cs b/Assets/Runtime/ECS/IBoardEcsSyncService.cs similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/IBoardEcsSyncService.cs rename to Assets/Runtime/ECS/IBoardEcsSyncService.cs diff --git a/Assets/Minesweeper/Runtime/ECS/IBoardEcsSyncService.cs.meta b/Assets/Runtime/ECS/IBoardEcsSyncService.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/IBoardEcsSyncService.cs.meta rename to Assets/Runtime/ECS/IBoardEcsSyncService.cs.meta diff --git a/Assets/Minesweeper/Runtime/ECS/Systems.meta b/Assets/Runtime/ECS/Systems.meta similarity index 100% rename from Assets/Minesweeper/Runtime/ECS/Systems.meta rename to Assets/Runtime/ECS/Systems.meta diff --git a/Assets/Minesweeper/Runtime/Infrastructure.meta b/Assets/Runtime/Infrastructure.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Infrastructure.meta rename to Assets/Runtime/Infrastructure.meta diff --git a/Assets/Minesweeper/Runtime/Infrastructure/MinesweeperEntryPoint.cs b/Assets/Runtime/Infrastructure/MinesweeperEntryPoint.cs similarity index 73% rename from Assets/Minesweeper/Runtime/Infrastructure/MinesweeperEntryPoint.cs rename to Assets/Runtime/Infrastructure/MinesweeperEntryPoint.cs index 1a3b71a..8a7f09c 100644 --- a/Assets/Minesweeper/Runtime/Infrastructure/MinesweeperEntryPoint.cs +++ b/Assets/Runtime/Infrastructure/MinesweeperEntryPoint.cs @@ -7,16 +7,19 @@ namespace Minesweeper.Infrastructure public sealed class MinesweeperEntryPoint : IStartable, IDisposable { private readonly MainMenuPresenter mainMenuPresenter; + private readonly TopPanelPresenter topPanelPresenter; private readonly GamePresenter gamePresenter; - public MinesweeperEntryPoint(MainMenuPresenter mainMenuPresenter, GamePresenter gamePresenter) + public MinesweeperEntryPoint(MainMenuPresenter mainMenuPresenter, TopPanelPresenter topPanelPresenter, GamePresenter gamePresenter) { this.mainMenuPresenter = mainMenuPresenter; + this.topPanelPresenter = topPanelPresenter; this.gamePresenter = gamePresenter; } public void Start() { + topPanelPresenter.Initialize(); mainMenuPresenter.Initialize(); gamePresenter.Initialize(); } @@ -25,6 +28,7 @@ namespace Minesweeper.Infrastructure { gamePresenter.Dispose(); mainMenuPresenter.Dispose(); + topPanelPresenter.Dispose(); } } } diff --git a/Assets/Minesweeper/Runtime/Infrastructure/MinesweeperEntryPoint.cs.meta b/Assets/Runtime/Infrastructure/MinesweeperEntryPoint.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Infrastructure/MinesweeperEntryPoint.cs.meta rename to Assets/Runtime/Infrastructure/MinesweeperEntryPoint.cs.meta diff --git a/Assets/Minesweeper/Runtime/Infrastructure/MinesweeperLifetimeScope.cs b/Assets/Runtime/Infrastructure/MinesweeperLifetimeScope.cs similarity index 75% rename from Assets/Minesweeper/Runtime/Infrastructure/MinesweeperLifetimeScope.cs rename to Assets/Runtime/Infrastructure/MinesweeperLifetimeScope.cs index e08523f..6138ff1 100644 --- a/Assets/Minesweeper/Runtime/Infrastructure/MinesweeperLifetimeScope.cs +++ b/Assets/Runtime/Infrastructure/MinesweeperLifetimeScope.cs @@ -16,12 +16,16 @@ namespace Minesweeper.Infrastructure public sealed class MinesweeperLifetimeScope : LifetimeScope { [SerializeField] private MinesweeperGameConfig gameConfig; + [SerializeField] private MinesweeperUiConfig uiConfig; + [SerializeField] private TopPanelView topPanelView; [SerializeField] private MainMenuView mainMenuView; [SerializeField] private GameView gameView; protected override void Configure(IContainerBuilder builder) { builder.RegisterInstance(GetConfig()); + var resolvedUiConfig = GetUiConfig(); + builder.RegisterInstance(resolvedUiConfig); builder.Register(Lifetime.Singleton).As(); builder.Register(Lifetime.Singleton).As(); builder.Register(Lifetime.Singleton).As(); @@ -31,6 +35,16 @@ namespace Minesweeper.Infrastructure builder.Register(Lifetime.Singleton).As(); builder.Register(Lifetime.Singleton).As(); + if (topPanelView != null) + { + topPanelView.BindConfig(resolvedUiConfig); + builder.RegisterComponent(topPanelView).As(); + } + else + { + builder.Register(Lifetime.Singleton).As(); + } + if (mainMenuView != null) { builder.RegisterComponent(mainMenuView).As(); @@ -42,6 +56,7 @@ namespace Minesweeper.Infrastructure if (gameView != null) { + gameView.BindConfig(resolvedUiConfig); builder.RegisterComponent(gameView).As(); } else @@ -58,8 +73,10 @@ namespace Minesweeper.Infrastructure builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton).As(); + builder.Register(Lifetime.Singleton).As(); builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.RegisterEntryPoint(); } @@ -73,5 +90,15 @@ namespace Minesweeper.Infrastructure return ScriptableObject.CreateInstance(); } + + private MinesweeperUiConfig GetUiConfig() + { + if (uiConfig != null) + { + return uiConfig; + } + + return ScriptableObject.CreateInstance(); + } } } diff --git a/Assets/Minesweeper/Runtime/Infrastructure/MinesweeperLifetimeScope.cs.meta b/Assets/Runtime/Infrastructure/MinesweeperLifetimeScope.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Infrastructure/MinesweeperLifetimeScope.cs.meta rename to Assets/Runtime/Infrastructure/MinesweeperLifetimeScope.cs.meta diff --git a/Assets/Runtime/Infrastructure/RestartKeyInputService.cs b/Assets/Runtime/Infrastructure/RestartKeyInputService.cs new file mode 100644 index 0000000..77d2514 --- /dev/null +++ b/Assets/Runtime/Infrastructure/RestartKeyInputService.cs @@ -0,0 +1,50 @@ +using Minesweeper.Commands; +using Minesweeper.Config; +using Minesweeper.Core; +using UnityEngine.InputSystem; +using VContainer.Unity; + +namespace Minesweeper.Infrastructure +{ + public sealed class RestartKeyInputService : ITickable + { + private readonly IGameCommandDispatcher commandDispatcher; + private readonly MinesweeperGameConfig config; + private readonly IGameStateService gameStateService; + + public RestartKeyInputService(IGameCommandDispatcher commandDispatcher, MinesweeperGameConfig config, IGameStateService gameStateService) + { + this.commandDispatcher = commandDispatcher; + this.config = config; + this.gameStateService = gameStateService; + } + + public void Tick() + { + var keyboard = Keyboard.current; + if (keyboard == null || !IsRestartPressed(keyboard)) + { + return; + } + + if (gameStateService.Current == GameState.FieldSelection) + { + commandDispatcher.Dispatch(new StartGameCommand()); + } + else + { + commandDispatcher.Dispatch(new RestartCommand()); + } + } + + private bool IsRestartPressed(Keyboard keyboard) + { + if (config.RestartKey == UnityEngine.KeyCode.R) + { + return keyboard.rKey.wasPressedThisFrame; + } + + return false; + } + } +} diff --git a/Assets/Runtime/Infrastructure/RestartKeyInputService.cs.meta b/Assets/Runtime/Infrastructure/RestartKeyInputService.cs.meta new file mode 100644 index 0000000..fcf2611 --- /dev/null +++ b/Assets/Runtime/Infrastructure/RestartKeyInputService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c87c15d092dd420b85a09cc786496948 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Minesweeper/Runtime/Presentation.meta b/Assets/Runtime/Presentation.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation.meta rename to Assets/Runtime/Presentation.meta diff --git a/Assets/Minesweeper/Runtime/Presentation/Adapters.meta b/Assets/Runtime/Presentation/Adapters.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation/Adapters.meta rename to Assets/Runtime/Presentation/Adapters.meta diff --git a/Assets/Minesweeper/Runtime/Presentation/Adapters/GameStateViewAdapter.cs b/Assets/Runtime/Presentation/Adapters/GameStateViewAdapter.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation/Adapters/GameStateViewAdapter.cs rename to Assets/Runtime/Presentation/Adapters/GameStateViewAdapter.cs diff --git a/Assets/Minesweeper/Runtime/Presentation/Adapters/GameStateViewAdapter.cs.meta b/Assets/Runtime/Presentation/Adapters/GameStateViewAdapter.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation/Adapters/GameStateViewAdapter.cs.meta rename to Assets/Runtime/Presentation/Adapters/GameStateViewAdapter.cs.meta diff --git a/Assets/Minesweeper/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs b/Assets/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs rename to Assets/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs diff --git a/Assets/Minesweeper/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs.meta b/Assets/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs.meta rename to Assets/Runtime/Presentation/Adapters/IGameStateViewAdapter.cs.meta diff --git a/Assets/Minesweeper/Runtime/Presentation/Factories.meta b/Assets/Runtime/Presentation/Factories.meta similarity index 100% rename from Assets/Minesweeper/Runtime/Presentation/Factories.meta rename to Assets/Runtime/Presentation/Factories.meta diff --git a/Assets/Runtime/Presentation/Factories/CellViewFactory.cs b/Assets/Runtime/Presentation/Factories/CellViewFactory.cs new file mode 100644 index 0000000..a88b81f --- /dev/null +++ b/Assets/Runtime/Presentation/Factories/CellViewFactory.cs @@ -0,0 +1,91 @@ +using Minesweeper.Config; +using Minesweeper.Core; +using Minesweeper.Presentation.Views; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Minesweeper.Presentation.Factories +{ + public sealed class CellViewFactory : ICellViewFactory + { + private const string ContentImagePath = "Content/Image"; + private const string ContentLabelPath = "Content/Text (TMP)"; + + private readonly MinesweeperUiConfig uiConfig; + + public CellViewFactory(MinesweeperUiConfig uiConfig) + { + this.uiConfig = uiConfig; + } + + public CellView CreateCell(BoardCellData cell, Transform parent) + { + var prefab = uiConfig.CellButtonPrefab; + var go = prefab != null ? Object.Instantiate(prefab, parent) : CreateFallbackCell(parent); + go.name = BuildCellName(cell.X, cell.Y, cell.DisplayValue); + + var view = go.GetComponent(); + if (view == null) + { + view = go.AddComponent(); + } + + var button = go.GetComponent