From c9927bfdae90a049651e605e8eee6a792760cf19 Mon Sep 17 00:00:00 2001 From: Dzmitry Kharko Date: Thu, 23 Oct 2025 22:37:27 +0200 Subject: [PATCH] added sample fruits merge --- .../Samples~/FruitsMerge.meta | 8 + .../Samples~/FruitsMerge/Core.meta | 8 + .../Samples~/FruitsMerge/Core/Scripts.meta | 8 + .../FruitsMerge/Core/Scripts/Bootstrap.cs | 48 ++ .../Core/Scripts/Bootstrap.cs.meta | 11 + .../Core/Scripts/BootstrapController.cs | 32 + .../Core/Scripts/BootstrapController.cs.meta | 11 + .../Core/Scripts/ControllerFactory.cs | 27 + .../Core/Scripts/ControllerFactory.cs.meta | 11 + .../Samples~/FruitsMerge/Extensions.meta | 8 + .../Extensions/AnimationExtensions.cs | 29 + .../Extensions/AnimationExtensions.cs.meta | 11 + .../Extensions/TransformExtensions.cs | 18 + .../Extensions/TransformExtensions.cs.meta | 11 + .../Samples~/FruitsMerge/Features.meta | 8 + .../Samples~/FruitsMerge/Features/Core.meta | 8 + .../FruitsMerge/Features/Core/Content.meta | 8 + .../Features/Core/Content/Prefabs.meta | 8 + .../Core/Content/Prefabs/GameView.prefab | 367 +++++++++++ .../Core/Content/Prefabs/GameView.prefab.meta | 7 + .../FruitsMerge/Features/Core/Scripts.meta | 8 + .../Core/Scripts/GameConfiguration.cs | 22 + .../Core/Scripts/GameConfiguration.cs.meta | 3 + .../Features/Core/Scripts/GameEventsModel.cs | 31 + .../Core/Scripts/GameEventsModel.cs.meta | 3 + .../Core/Scripts/GameLoopController.cs | 53 ++ .../Core/Scripts/GameLoopController.cs.meta | 3 + .../Features/Core/Scripts/GameModel.cs | 109 ++++ .../Features/Core/Scripts/GameModel.cs.meta | 3 + .../Features/Core/Scripts/GameStateModel.cs | 85 +++ .../Core/Scripts/GameStateModel.cs.meta | 3 + .../Features/Core/Scripts/GameVIew.cs | 22 + .../Features/Core/Scripts/GameVIew.cs.meta | 11 + .../Features/Core/Scripts/IGameEventsModel.cs | 16 + .../Core/Scripts/IGameEventsModel.cs.meta | 3 + .../Core/Scripts/IGameEventsRequestsModel.cs | 14 + .../Scripts/IGameEventsRequestsModel.cs.meta | 3 + .../Core/Scripts/ResourcesProvider.cs | 19 + .../Core/Scripts/ResourcesProvider.cs.meta | 3 + .../Core/Scripts/RootLifetimeScope.cs | 43 ++ .../Core/Scripts/RootLifetimeScope.cs.meta | 11 + .../FruitsMerge/Features/Environment.meta | 8 + .../Features/Environment/Core.meta | 8 + .../Features/Environment/Core/Content.meta | 8 + .../Environment/Core/Content/Materials.meta | 8 + .../Materials/BackgroundGradient_Mateiral.mat | 56 ++ .../BackgroundGradient_Mateiral.mat.meta | 8 + .../BackgroundScrolling_Material.mat | 51 ++ .../BackgroundScrolling_Material.mat.meta | 8 + .../Environment/Core/Content/Prefabs.meta | 8 + .../Core/Content/Prefabs/Environment.prefab | 589 ++++++++++++++++++ .../Content/Prefabs/Environment.prefab.meta | 7 + .../Environment/Core/Content/Sprites.meta | 8 + .../Core/Content/Sprites/Lines.png | Bin 0 -> 2410 bytes .../Core/Content/Sprites/Lines.png.meta | 127 ++++ .../Core/Content/Sprites/Pattern.png | Bin 0 -> 42204 bytes .../Core/Content/Sprites/Pattern.png.meta | 127 ++++ .../Features/Environment/Core/Resources.meta | 8 + .../Core/Resources/GameConfiguration.asset | 17 + .../Resources/GameConfiguration.asset.meta | 8 + .../Features/Environment/Core/Scripts.meta | 8 + .../Core/Scripts/GameEnvironmentController.cs | 66 ++ .../Scripts/GameEnvironmentController.cs.meta | 3 + .../Core/Scripts/GameEnvironmentView.cs | 19 + .../Core/Scripts/GameEnvironmentView.cs.meta | 11 + .../Features/Environment/Fruits.meta | 8 + .../Features/Environment/Fruits/Content.meta | 8 + .../Fruits/Content/Animations.meta | 8 + .../Content/Animations/FruitBoard_Hide.anim | 168 +++++ .../Animations/FruitBoard_Hide.anim.meta | 8 + .../Content/Animations/FruitBoard_Show.anim | 276 ++++++++ .../Animations/FruitBoard_Show.anim.meta | 8 + .../Environment/Fruits/Content/Assets.meta | 8 + .../Fruits/Content/Assets/Resources.meta | 8 + .../Assets/Resources/Fruit_0_Sprite.png | Bin 0 -> 87356 bytes .../Assets/Resources/Fruit_0_Sprite.png.meta | 153 +++++ .../Assets/Resources/Fruit_1_Sprite.png | Bin 0 -> 79034 bytes .../Assets/Resources/Fruit_1_Sprite.png.meta | 153 +++++ .../Assets/Resources/Fruit_2_Sprite.png | Bin 0 -> 82254 bytes .../Assets/Resources/Fruit_2_Sprite.png.meta | 153 +++++ .../Assets/Resources/Fruit_3_Sprite.png | Bin 0 -> 106645 bytes .../Assets/Resources/Fruit_3_Sprite.png.meta | 153 +++++ .../Assets/Resources/Fruit_4_Sprite.png | Bin 0 -> 81673 bytes .../Assets/Resources/Fruit_4_Sprite.png.meta | 153 +++++ .../Environment/Fruits/Content/Data.meta | 8 + .../Fruits/Content/Data/Fruit_0.asset | 15 + .../Fruits/Content/Data/Fruit_0.asset.meta | 8 + .../Fruits/Content/Data/Fruit_1.asset | 15 + .../Fruits/Content/Data/Fruit_1.asset.meta | 8 + .../Fruits/Content/Data/Fruit_2.asset | 15 + .../Fruits/Content/Data/Fruit_2.asset.meta | 8 + .../Fruits/Content/Data/Fruit_3.asset | 15 + .../Fruits/Content/Data/Fruit_3.asset.meta | 8 + .../Fruits/Content/Data/Fruit_4.asset | 15 + .../Fruits/Content/Data/Fruit_4.asset.meta | 8 + .../Fruits/Content/PhysicsMaterial.meta | 8 + .../Fruit_PhysicsMaterial.physicsMaterial2D | 11 + ...uit_PhysicsMaterial.physicsMaterial2D.meta | 8 + .../Environment/Fruits/Content/Resources.meta | 8 + .../Content/Resources/FruitBoard.prefab | 215 +++++++ .../Content/Resources/FruitBoard.prefab.meta | 7 + .../Content/Resources/FruitsCollection.asset | 20 + .../Resources/FruitsCollection.asset.meta | 8 + .../Features/Environment/Fruits/Scripts.meta | 8 + .../Fruits/Scripts/FruitBoardController.cs | 72 +++ .../Scripts/FruitBoardController.cs.meta | 3 + .../Scripts/FruitBoardControllerArgs.cs | 17 + .../Scripts/FruitBoardControllerArgs.cs.meta | 3 + .../Fruits/Scripts/FruitBoardFactory.cs | 40 ++ .../Fruits/Scripts/FruitBoardFactory.cs.meta | 3 + .../Fruits/Scripts/FruitBoardView.cs | 46 ++ .../Fruits/Scripts/FruitBoardView.cs.meta | 11 + .../Environment/Fruits/Scripts/FruitData.cs | 18 + .../Fruits/Scripts/FruitData.cs.meta | 11 + .../Scripts/FruitDataCollectionDefinition.cs | 18 + .../FruitDataCollectionDefinition.cs.meta | 11 + .../Scripts/FruitVisualisationProvider.cs | 31 + .../FruitVisualisationProvider.cs.meta | 3 + .../Samples~/FruitsMerge/Features/UI.meta | 8 + .../Features/UI/AfterLevelScreen.meta | 8 + .../Features/UI/AfterLevelScreen/Content.meta | 8 + .../AfterLevelScreen/Content/Animations.meta | 8 + .../Animations/AfterLevelScreen_Show.anim | 438 +++++++++++++ .../AfterLevelScreen_Show.anim.meta | 8 + .../AfterLevelScreen/Content/Resources.meta | 8 + .../Content/Resources/AfterLevelScreen.prefab | 494 +++++++++++++++ .../Resources/AfterLevelScreen.prefab.meta | 7 + .../Features/UI/AfterLevelScreen/Scripts.meta | 8 + .../Scripts/AfterLevelScreenController.cs | 58 ++ .../AfterLevelScreenController.cs.meta | 3 + .../Scripts/AfterLevelScreenView.cs | 26 + .../Scripts/AfterLevelScreenView.cs.meta | 3 + .../Features/UI/CollectedFruits.meta | 8 + .../Features/UI/CollectedFruits/Content.meta | 8 + .../CollectedFruits/Content/Animations.meta | 8 + .../Animations/CollectedFruitItem_Hide.anim | 288 +++++++++ .../CollectedFruitItem_Hide.anim.meta | 8 + .../Animations/CollectedFruitItem_Show.anim | 276 ++++++++ .../CollectedFruitItem_Show.anim.meta | 8 + .../UI/CollectedFruits/Content/Prefabs.meta | 8 + .../Content/Prefabs/FruitPreview.prefab | 146 +++++ .../Content/Prefabs/FruitPreview.prefab.meta | 7 + .../Content/Prefabs/FruitSlot.prefab | 163 +++++ .../Content/Prefabs/FruitSlot.prefab.meta | 7 + .../Features/UI/CollectedFruits/Scripts.meta | 8 + .../Scripts/GameUICollectedFruitItemView.cs | 38 ++ .../GameUICollectedFruitItemView.cs.meta | 3 + .../Scripts/GameUICollectedFruitSlotView.cs | 15 + .../GameUICollectedFruitSlotView.cs.meta | 3 + .../GameUICollectedFruitsController.cs | 98 +++ .../GameUICollectedFruitsController.cs.meta | 3 + .../Scripts/GameUICollectedFruitsView.cs | 24 + .../Scripts/GameUICollectedFruitsView.cs.meta | 3 + .../FruitsMerge/Features/UI/Core.meta | 8 + .../FruitsMerge/Features/UI/Core/Content.meta | 8 + .../Features/UI/Core/Content/Prefab.meta | 8 + .../Features/UI/Core/Content/Prefab/UI.prefab | 482 ++++++++++++++ .../UI/Core/Content/Prefab/UI.prefab.meta | 7 + .../Features/UI/Core/Content/Sprites.meta | 8 + .../Core/Content/Sprites/AfterLevelHeader.png | Bin 0 -> 7291 bytes .../Content/Sprites/AfterLevelHeader.png.meta | 127 ++++ .../UI/Core/Content/Sprites/Circle.png | Bin 0 -> 6448 bytes .../UI/Core/Content/Sprites/Circle.png.meta | 153 +++++ .../Sprites/Generic_Atlas.spriteatlasv2 | 15 + .../Sprites/Generic_Atlas.spriteatlasv2.meta | 30 + .../Features/UI/Core/Content/Sprites/Logo.png | Bin 0 -> 21467 bytes .../UI/Core/Content/Sprites/Logo.png.meta | 153 +++++ .../UI/Core/Content/Sprites/Outline.png | Bin 0 -> 5058 bytes .../UI/Core/Content/Sprites/Outline.png.meta | 153 +++++ .../UI/Core/Content/Sprites/refresh.png | Bin 0 -> 7862 bytes .../UI/Core/Content/Sprites/refresh.png.meta | 127 ++++ .../FruitsMerge/Features/UI/Core/Scripts.meta | 8 + .../UI/Core/Scripts/GameUIController.cs | 43 ++ .../UI/Core/Scripts/GameUIController.cs.meta | 11 + .../Features/UI/Core/Scripts/GameUIView.cs | 22 + .../UI/Core/Scripts/GameUIView.cs.meta | 11 + .../Samples~/FruitsMerge/Scenes.meta | 8 + .../FruitsMerge/Scenes/DemoScene.unity | 248 ++++++++ .../FruitsMerge/Scenes/DemoScene.unity.meta | 7 + .../Samples~/FruitsMerge/Shaders.meta | 8 + .../FruitsMerge/Shaders/GradientShader.shader | 70 +++ .../Shaders/GradientShader.shader.meta | 9 + .../Shaders/ScrollingSprite.shader | 92 +++ .../Shaders/ScrollingSprite.shader.meta | 9 + src/ControllersTreeSamples/package.json | 27 + src/ControllersTreeSamples/package.json.meta | 7 + 186 files changed, 8318 insertions(+) create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_1_Sprite.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_1_Sprite.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_2_Sprite.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_2_Sprite.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_3_Sprite.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_3_Sprite.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_4_Sprite.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_4_Sprite.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_0.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_0.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_1.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_1.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_2.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_2.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_3.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_3.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_4.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Data/Fruit_4.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/PhysicsMaterial.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/PhysicsMaterial/Fruit_PhysicsMaterial.physicsMaterial2D create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/PhysicsMaterial/Fruit_PhysicsMaterial.physicsMaterial2D.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Resources.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Resources/FruitBoard.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Resources/FruitBoard.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Resources/FruitsCollection.asset create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Resources/FruitsCollection.asset.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/AfterLevelHeader.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/AfterLevelHeader.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Circle.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Circle.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2 create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Logo.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Logo.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Outline.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Outline.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/refresh.png create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/refresh.png.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader.meta create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader create mode 100644 src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader.meta create mode 100644 src/ControllersTreeSamples/package.json create mode 100644 src/ControllersTreeSamples/package.json.meta diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge.meta new file mode 100644 index 0000000..18da0c2 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 416d1ea6815444ffb8a3c29c80bed300 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core.meta new file mode 100644 index 0000000..18147c0 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68232a1aab52946a1a3b45fada2ec18a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts.meta new file mode 100644 index 0000000..34d7270 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52ae8a57dbc464da080189c6e4a56222 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs new file mode 100644 index 0000000..b10389b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs @@ -0,0 +1,48 @@ +using System; +using System.Threading; +using VContainer; +using VContainer.Unity; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// Bootstrap manages the application startup and shutdown. + /// It utilizes dependency injection with IObjectResolver and BootstrapController to initialize and control the application flow. + /// The Start() method launches the bootstrap process, handling exceptions and cancellation, + /// while Dispose() ensures proper cleanup by cancelling ongoing operations and releasing associated resources. + /// + public class Bootstrap : IStartable, IDisposable + { + private readonly BootstrapController _bootstrapController; + + private CancellationTokenSource _cancellationTokenSource = new(); + + public Bootstrap(BootstrapController bootstrapController) + { + _bootstrapController = bootstrapController; + } + + public void Start() + { + try + { + _bootstrapController.LaunchTree(_cancellationTokenSource.Token); + } + catch (OperationCanceledException) + { + } + catch (Exception exception) + { + UnityEngine.Debug.LogError($"Can't start bootstrap controller {exception}"); + } + } + + public void Dispose() + { + _cancellationTokenSource?.Cancel(); + _cancellationTokenSource?.Dispose(); + + _cancellationTokenSource = null; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs.meta new file mode 100644 index 0000000..e22c42f --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/Bootstrap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e0161f1eadaf2403983bd19224bcb1dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs new file mode 100644 index 0000000..e29bdeb --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs @@ -0,0 +1,32 @@ +using Cysharp.Threading.Tasks; +using Playtika.Controllers; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// BootstrapController extends RootController to manage the initialization flow of the application. + /// It asynchronously starts a game loop by repeatedly executing GameLoopController instances until cancellation is requested. + /// + public class BootstrapController : RootController + { + public BootstrapController(IControllerFactory controllerFactory) + : base(controllerFactory) + { + } + + protected override void OnStart() + { + FlowAsync().Forget(); + + base.OnStart(); + } + + private async UniTask FlowAsync() + { + while (!CancellationToken.IsCancellationRequested) + { + await ExecuteAndWaitResultAsync(CancellationToken); + } + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs.meta new file mode 100644 index 0000000..7e1ff61 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/BootstrapController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ccf7084eb21c4430a83aa39ce69c38d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs new file mode 100644 index 0000000..bf325c8 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs @@ -0,0 +1,27 @@ +using Playtika.Controllers; +using VContainer; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// The ControllerFactory class implements the IControllerFactory interface to facilitate the creation + /// of controllers using a project-specific Dependency Injection (DI) container. + /// It utilizes an IObjectResolver instance to resolve and instantiate controllers of type T + /// that implement theIController interface. + /// + public class ControllerFactory : IControllerFactory + { + private readonly IObjectResolver _container; + + public ControllerFactory(IObjectResolver container) + { + _container = container; + } + + public IController Create() where T : class, IController + { + var controller = _container.Resolve(); + return controller; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs.meta new file mode 100644 index 0000000..4e34906 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Core/Scripts/ControllerFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ebbf07b3db05345d3a728dad5def6444 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions.meta new file mode 100644 index 0000000..3196b87 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f817e6aeff9ff43bfa90b9bd9a11b9b8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs new file mode 100644 index 0000000..48955ef --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs @@ -0,0 +1,29 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// AnimationExtensions is a static class providing extension methods for Unity's Animation class. + /// + public static class AnimationExtensions + { + public static async UniTask PlayAsync( + this Animation animationComponent, + string animationName, + CancellationToken cancellationToken) + { + animationComponent.Play(animationName); + + while (animationComponent.isPlaying) + { + await UniTask.Yield(); + if (cancellationToken.IsCancellationRequested) + { + return; + } + } + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs.meta new file mode 100644 index 0000000..9444ed5 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/AnimationExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad1ff2648db964e40aee4e1dbed4abd8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs new file mode 100644 index 0000000..446f6ae --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs @@ -0,0 +1,18 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// TransformExtensions is a static class providing extension methods for Unity's Transform class. + /// + public static class TransformExtensions + { + public static void Clear(this Transform transform) + { + foreach (Transform child in transform) + { + Object.Destroy(child.gameObject); + } + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs.meta new file mode 100644 index 0000000..4213d7f --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Extensions/TransformExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1a7dcf361f0c4a2c908d7e7dd2e1975 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features.meta new file mode 100644 index 0000000..84e8770 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d628a32f8247c4f6e9b0a50a5256c858 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core.meta new file mode 100644 index 0000000..6f47296 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 206845a57cc544d47a1b1803ea790a64 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content.meta new file mode 100644 index 0000000..d3f8296 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20c0b5dcd14754c578e341608d3f0ce7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs.meta new file mode 100644 index 0000000..787ede7 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 129873eb174c14c49b5f100725d88f02 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab new file mode 100644 index 0000000..7954c95 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab @@ -0,0 +1,367 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3416476144409564023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2834930602603086173} + - component: {fileID: 762718665078696411} + m_Layer: 0 + m_Name: GameView + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2834930602603086173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3416476144409564023} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5574186762765090946} + - {fileID: 3856725467951578555} + - {fileID: 3931415572381285410} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &762718665078696411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3416476144409564023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aae241492282e463aa9efe7e1b975bca, type: 3} + m_Name: + m_EditorClassIdentifier: + _uiView: {fileID: 6031414337601235818} + _environmentView: {fileID: 202299718362985399} +--- !u!1 &6742139274365203074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5574186762765090946} + - component: {fileID: 619709263342993081} + - component: {fileID: 4590504191315451929} + - component: {fileID: 5378120720439223703} + - component: {fileID: 9005925040059610026} + m_Layer: 0 + m_Name: Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5574186762765090946 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6742139274365203074} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2834930602603086173} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &619709263342993081 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6742139274365203074} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 500 + field of view: 40 + orthographic: 1 + orthographic size: 10 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &4590504191315451929 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6742139274365203074} + m_Enabled: 1 +--- !u!114 &5378120720439223703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6742139274365203074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + quality: 3 + frameInfluence: 0.1 + jitterScale: 1 + mipBias: 0 + varianceClampScale: 0.9 + contrastAdaptiveSharpening: 0 +--- !u!114 &9005925040059610026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6742139274365203074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56666c5a40171f54783dd416a44f42bf, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxRayIntersections: 0 +--- !u!1001 &776456903411656676 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2834930602603086173} + m_Modifications: + - target: {fileID: 2813183336786420558, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_Name + value: UI + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6081273471566441561, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + propertyPath: m_Camera + value: + objectReference: {fileID: 619709263342993081} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} +--- !u!4 &3856725467951578555 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4558575284159568479, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + m_PrefabInstance: {fileID: 776456903411656676} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6031414337601235818 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6446168473523129486, guid: a0834be56fd764d10a01d4cdc187508d, type: 3} + m_PrefabInstance: {fileID: 776456903411656676} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6815a37090d984807b4af832ec46765e, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &8760390860080584794 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2834930602603086173} + m_Modifications: + - target: {fileID: 4565990845173853492, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_Name + value: Environment + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalPosition.z + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8889436711453551597, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: _spawnArea.x + value: -3.5 + objectReference: {fileID: 0} + - target: {fileID: 8889436711453551597, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: _spawnArea.y + value: 3.5 + objectReference: {fileID: 0} + - target: {fileID: 9106004284044335196, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + propertyPath: m_LocalPosition.y + value: 5.4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} +--- !u!114 &202299718362985399 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8889436711453551597, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + m_PrefabInstance: {fileID: 8760390860080584794} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4cd7eaebb53be4192951d0258755683a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &3931415572381285410 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5700458375433102456, guid: 31b62b6da850f443a8ad687d5f88ccc5, type: 3} + m_PrefabInstance: {fileID: 8760390860080584794} + m_PrefabAsset: {fileID: 0} diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab.meta new file mode 100644 index 0000000..ee30037 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Content/Prefabs/GameView.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c86c4274b83dd415389c40df57c6f2df +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts.meta new file mode 100644 index 0000000..e866ec0 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 997e77a7345514fe7a8883599c4db53e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs new file mode 100644 index 0000000..eb95ade --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs @@ -0,0 +1,22 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameConfiguration is a ScriptableObject used to define game settings related to fruit collection. + /// This class allows flexible adjustment of game parameters through the Unity Editor's Inspector, + /// providing essential configuration options for gameplay mechanics related to fruit collection. + /// + [CreateAssetMenu(fileName = "GameConfiguration", menuName = "Scriptable Objects/Game Configuration")] + public class GameConfiguration : ScriptableObject + { + [Range(2, 4)] + public int FruitCopyCollectAmount = 3; + + [Range(3, 6)] + public int MaxFruitsCollectedCount = 6; + + [Range(10, 50)] + public int InitialFruitsCount = 40; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs.meta new file mode 100644 index 0000000..ac53a5c --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameConfiguration.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 55b73d944563401787d41762940cbdc1 +timeCreated: 1718548448 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs new file mode 100644 index 0000000..372f296 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs @@ -0,0 +1,31 @@ +using System; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// The GameEventsModel class implements both IGameEventsModel and IGameEventsRequestsModel interfaces. + /// This class serves as a centralized model for managing and signaling game events, + /// facilitating interaction and synchronization between different game components. + /// + public class GameEventsModel : IGameEventsModel, IGameEventsRequestsModel + { + public event Action Win; + public event Action Lose; + public event Action RestartRequested; + + public void RequestWin() + { + Win?.Invoke(); + } + + public void RequestLose() + { + Lose?.Invoke(); + } + + public void RequestRestart() + { + RestartRequested?.Invoke(); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs.meta new file mode 100644 index 0000000..639ae00 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameEventsModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 84e3603384d14b8e88525060ae95f49c +timeCreated: 1718714235 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs new file mode 100644 index 0000000..6ca3d0f --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs @@ -0,0 +1,53 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using Playtika.Controllers; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameLoopController extends ControllerWithResultBase to manage a game loop asynchronously. + /// It initializes a GameModel and handles restart requests using a UniTaskCompletionSource. + /// The controller starts and stops related controllers (GameUIController and GameEnvironmentController). + /// It awaits restart signals via _gameModel.RestartRequested and completes the loop upon confirmation, + /// ensuring orderly flow with Complete(). + /// + public class GameLoopController : ControllerWithResultBase + { + private readonly GameModel _gameModel; + private readonly IGameEventsModel _gameEventsModel; + + public GameLoopController( + IControllerFactory controllerFactory, + GameModel gameModel, + IGameEventsModel gameEventsModel) + : base(controllerFactory) + { + _gameModel = gameModel; + _gameEventsModel = gameEventsModel; + } + + protected override void OnStart() + { + _gameEventsModel.RestartRequested += OnRestartRequested; + } + + protected override void OnStop() + { + _gameEventsModel.RestartRequested -= OnRestartRequested; + } + + protected override async UniTask OnFlowAsync(CancellationToken cancellationToken) + { + await _gameModel.InitializeAsync(cancellationToken); + cancellationToken.ThrowIfCancellationRequested(); + + Execute(); + ExecuteAndWaitResultAsync(CancellationToken).Forget(); + } + + private void OnRestartRequested() + { + Complete(); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs.meta new file mode 100644 index 0000000..afcd4ca --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameLoopController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 571a2237c0344b1ea270033097dbb1db +timeCreated: 1718631878 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs new file mode 100644 index 0000000..e66b446 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using Cysharp.Threading.Tasks; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameModel manages game logic related to fruit collection and events in a game. + /// This class orchestrates the game mechanics related to fruit collection, including managing events and + /// checking game conditions based on configured rules, enhancing gameplay logic and event handling within + /// a game environment. + /// + public class GameModel + { + public event Action FruitAddedToList; + public event Action> FruitsRemovedFromList; + + public GameConfiguration GameConfiguration { get; private set; } + public int FruitsOnBoardCount { get; private set; } + + private readonly ResourcesProvider _resourcesProvider; + private readonly IGameEventsRequestsModel _eventRequestsModel; + + private FruitData[] _fruitsCollected; + + public GameModel(ResourcesProvider resourcesProvider, + IGameEventsRequestsModel eventRequestsModel) + { + _resourcesProvider = resourcesProvider; + _eventRequestsModel = eventRequestsModel; + } + + public async UniTask InitializeAsync(CancellationToken cancellationToken) + { + GameConfiguration = await _resourcesProvider.LoadAsync("GameConfiguration", cancellationToken); + cancellationToken.ThrowIfCancellationRequested(); + + _fruitsCollected = new FruitData[GameConfiguration.MaxFruitsCollectedCount]; + FruitsOnBoardCount = GameConfiguration.InitialFruitsCount - GameConfiguration.InitialFruitsCount % + GameConfiguration.FruitCopyCollectAmount; + } + + public void RequestFruitRemove(FruitData data) + { + AddToList(data); + FruitsOnBoardCount--; + + CheckForCopiesCollected(); + + if (IsFruitBoardEmpty()) + { + _eventRequestsModel.RequestWin(); + } + else if (IsFruitLineFilled()) + { + _eventRequestsModel.RequestLose(); + } + } + + public bool IsFruitBoardEmpty() + { + return FruitsOnBoardCount <= 0; + } + + public bool IsFruitLineFilled() + { + return _fruitsCollected.All(x => x != null); + } + + private void CheckForCopiesCollected() + { + var duplicates = _fruitsCollected + .Where(x => x != null) + .GroupBy(x => x) + .Where(g => g.Count() >= GameConfiguration.FruitCopyCollectAmount) + .Select(g => g.Key); + var array = duplicates as FruitData[] ?? duplicates.ToArray(); + if (array.Any()) + { + var removedIndexes = new List(GameConfiguration.FruitCopyCollectAmount); + for (var i = 0; i < GameConfiguration.FruitCopyCollectAmount; i++) + { + var index = RemoveFromList(array[0]); + removedIndexes.Add(index); + } + + FruitsRemovedFromList?.Invoke(removedIndexes); + } + } + + private void AddToList(FruitData data) + { + var firstEmptyIndex = Array.IndexOf(_fruitsCollected, null); + _fruitsCollected[firstEmptyIndex] = data; + + FruitAddedToList?.Invoke(firstEmptyIndex, data); + } + + private int RemoveFromList(FruitData data) + { + var index = Array.IndexOf(_fruitsCollected, data); + _fruitsCollected[index] = null; + + return index; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs.meta new file mode 100644 index 0000000..16a74bc --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ddc446e062e548efa15f07ce8b03dca9 +timeCreated: 1713022776 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs new file mode 100644 index 0000000..5cff8a1 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + public class GameStateModel + { + public event Action FruitAddedToList; + public event Action> FruitsRemovedFromList; + + public GameConfiguration GameConfiguration { get; } + public int FruitsOnBoardCount { get; private set; } + + private FruitData[] _fruitsCollected; + + public GameStateModel() + { + GameConfiguration = Resources.Load("GameConfiguration"); + } + + public void Initialize() + { + _fruitsCollected = new FruitData[GameConfiguration.MaxFruitsCollectedCount]; + FruitsOnBoardCount = GameConfiguration.InitialFruitsCount - GameConfiguration.InitialFruitsCount % + GameConfiguration.FruitCopyCollectAmount; + } + + public void RequestFruitRemove(FruitData data) + { + AddToList(data); + FruitsOnBoardCount--; + + CheckForCopiesCollected(); + } + + public bool IsFruitBoardEmpty() + { + return FruitsOnBoardCount <= 0; + } + + public bool IsFruitLineFilled() + { + return _fruitsCollected.All(x => x != null); + } + + private void CheckForCopiesCollected() + { + var duplicates = _fruitsCollected + .Where(x => x != null) + .GroupBy(x => x) + .Where(g => g.Count() >= GameConfiguration.FruitCopyCollectAmount) + .Select(g => g.Key); + var array = duplicates as FruitData[] ?? duplicates.ToArray(); + if (array.Any()) + { + var removedIndexes = new List(GameConfiguration.FruitCopyCollectAmount); + for (var i = 0; i < GameConfiguration.FruitCopyCollectAmount; i++) + { + var index = RemoveFromList(array[0]); + removedIndexes.Add(index); + } + + FruitsRemovedFromList?.Invoke(removedIndexes); + } + } + + private void AddToList(FruitData data) + { + var firstEmptyIndex = Array.IndexOf(_fruitsCollected, null); + _fruitsCollected[firstEmptyIndex] = data; + + FruitAddedToList?.Invoke(firstEmptyIndex, data); + } + + private int RemoveFromList(FruitData data) + { + var index = Array.IndexOf(_fruitsCollected, data); + _fruitsCollected[index] = null; + + return index; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs.meta new file mode 100644 index 0000000..179f71f --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameStateModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 796350c8bf984b478351ebd76b6408a4 +timeCreated: 1718714306 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs new file mode 100644 index 0000000..cdd7c48 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs @@ -0,0 +1,22 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameView is a MonoBehaviour representing the main game view in the Unity engine. + /// It provides access to UiView and EnvironmentView, which are serialized references to GameUIView and + /// GameEnvironmentView components, respectively. This class acts as a bridge for accessing and manipulating + /// UI and environment elements within the game scene. + /// + public class GameView : MonoBehaviour + { + public GameUIView UiView => _uiView; + public GameEnvironmentView EnvironmentView => _environmentView; + + [SerializeField] + private GameUIView _uiView; + + [SerializeField] + private GameEnvironmentView _environmentView; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs.meta new file mode 100644 index 0000000..20ecb40 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/GameVIew.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aae241492282e463aa9efe7e1b975bca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs new file mode 100644 index 0000000..e0aad0b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs @@ -0,0 +1,16 @@ +using System; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// IGameEventsModel defines events representing game events such as winning, losing, and restart requests. + /// This interface serves as a contract for components that need to subscribe to or invoke these game events, + /// providing a structured approach to handle game state transitions and actions in a game development context. + /// + public interface IGameEventsModel + { + public event Action Win; + public event Action Lose; + public event Action RestartRequested; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs.meta new file mode 100644 index 0000000..573edd0 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cd702d44ade14914b146153d99fa1fbc +timeCreated: 1718716391 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs new file mode 100644 index 0000000..a4718e4 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs @@ -0,0 +1,14 @@ +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// IGameEventsRequestsModel defines methods for requesting game events related to game outcomes and restart functionality. + /// This interface abstracts the interaction with game events related to game outcomes and restart operations, allowing + /// for flexible implementation in game logic components. + /// + public interface IGameEventsRequestsModel + { + void RequestWin(); + void RequestLose(); + void RequestRestart(); + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs.meta new file mode 100644 index 0000000..0e9538a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/IGameEventsRequestsModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ca30d2394c7248869b7f214d7a68ad49 +timeCreated: 1718716398 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs new file mode 100644 index 0000000..8d369d1 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs @@ -0,0 +1,19 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// This class simplifies the process of loading resources asynchronously in Unity, enhancing flexibility + /// and performance in resource management tasks within game development. + /// + public class ResourcesProvider + { + public async UniTask LoadAsync(string resourceId, CancellationToken cancellationToken) where T : Object + { + var result = await Resources.LoadAsync(resourceId).WithCancellation(cancellationToken); + return result as T; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs.meta new file mode 100644 index 0000000..d9eafd8 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/ResourcesProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f1c76537c4874c1d9b32e2a3c769a129 +timeCreated: 1718710885 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs new file mode 100644 index 0000000..0e74e34 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs @@ -0,0 +1,43 @@ +using Playtika.Controllers; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// RootLifetimeScope sets up the DI container for the game application, configuring essential components such as + /// the entry point (Bootstrap), controllers, and services. This setup ensures efficient dependency management and lifecycle handling during gameplay. + /// + public class RootLifetimeScope : LifetimeScope + { + [SerializeField] + private GameView _gameView; + + protected override void Configure(IContainerBuilder builder) + { + builder.RegisterEntryPoint(); + builder.Register(Lifetime.Scoped); + builder.Register(Lifetime.Transient); + builder.Register(Lifetime.Transient); + + builder.RegisterInstance(_gameView.EnvironmentView); + builder.RegisterInstance(_gameView.UiView); + builder.RegisterInstance(_gameView.UiView.CollectedFruitsView); + + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + + builder.Register(Lifetime.Transient); + builder.Register(Lifetime.Transient); + + builder.Register(Lifetime.Transient); + builder.Register(Lifetime.Transient); + builder.Register(Lifetime.Transient); + + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs.meta new file mode 100644 index 0000000..37302d9 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Core/Scripts/RootLifetimeScope.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e7ad20ae2d7440c6b3e2e99ab49e651 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment.meta new file mode 100644 index 0000000..ee107b4 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5157d60c4a3444294998825bcde94fff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core.meta new file mode 100644 index 0000000..4a570a8 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4690ef7357487472fb9acf7bd030293a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content.meta new file mode 100644 index 0000000..fe296e3 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e53bdf7f7068141e58148b7c1cc3ef1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials.meta new file mode 100644 index 0000000..0e6510f --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d94b43b78db2a43508bbfc85f1521b30 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat new file mode 100644 index 0000000..c4c7839 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BackgroundGradient_Mateiral + m_Shader: {fileID: 4800000, guid: ca7d927c60b9d462084d2ca005255890, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BlendDst: 0 + - _BlendOption: 1 + - _BlendSrc: 1 + - _EnableExternalAlpha: 0 + - _GradientWidth: 0.58 + - _TransitionPosition: 0.5 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _FirstColor: {r: 0.13955146, g: 0.3301887, b: 0.09189214, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _SecondColor: {r: 0.18431373, g: 0.43529412, b: 0.12156863, a: 1} + m_BuildTextureStacks: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat.meta new file mode 100644 index 0000000..09532ca --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundGradient_Mateiral.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d139320e25a4b4b8f9787eb2c8613118 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat new file mode 100644 index 0000000..358b59a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BackgroundScrolling_Material + m_Shader: {fileID: 4800000, guid: b62bf4f62333045a38793f9915535fc6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 614c6d75c326d40769cd6a55104e5337, type: 3} + m_Scale: {x: 12, y: 12} + m_Offset: {x: 0, y: 0} + - _MaskTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - PixelSnap: 0 + - _EnableExternalAlpha: 0 + m_Colors: + - _Color: {r: 0.12423483, g: 0.3018868, b: 0.081167676, a: 0.34901962} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + - _ScrollSpeed: {r: -0.7, g: -0.7, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat.meta new file mode 100644 index 0000000..50f3d4b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Materials/BackgroundScrolling_Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d54c33af42364be99d70412cb85dad8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs.meta new file mode 100644 index 0000000..a15f16b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee5feabb2d51a4165825bccb493a90b0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab new file mode 100644 index 0000000..1938879 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab @@ -0,0 +1,589 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &87948775376500468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3506334176229297303} + - component: {fileID: 6893018872755218867} + m_Layer: 0 + m_Name: Background_Scroll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3506334176229297303 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 87948775376500468} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.25, z: 0} + m_LocalScale: {x: 5, y: 5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4234202924687734341} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6893018872755218867 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 87948775376500468} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4d54c33af42364be99d70412cb85dad8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -9 + m_Sprite: {fileID: 21300000, guid: 1d3a296bee6d04635be34a52a9b077c9, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.1333334, y: 2.1333334} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1814270975358824151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1117964864814981896} + - component: {fileID: 8925153896998742868} + m_Layer: 0 + m_Name: Lines + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1117964864814981896 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1814270975358824151} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.09000003, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4234202924687734341} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &8925153896998742868 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1814270975358824151} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -1 + m_Sprite: {fileID: 21300000, guid: 8ce04c396f40d41cbb898247b7c5f8a4, type: 3} + m_Color: {r: 1, g: 0.7411765, b: 0, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 1 + m_Size: {x: 9.1, y: 12} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &4565990845173853492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5700458375433102456} + - component: {fileID: 8889436711453551597} + m_Layer: 0 + m_Name: Environment + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5700458375433102456 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4565990845173853492} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9106004284044335196} + - {fileID: 9033223585654839396} + - {fileID: 4234202924687734341} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8889436711453551597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4565990845173853492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4cd7eaebb53be4192951d0258755683a, type: 3} + m_Name: + m_EditorClassIdentifier: + _container: {fileID: 9106004284044335196} +--- !u!1 &6244561824465933737 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9106004284044335196} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9106004284044335196 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6244561824465933737} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.14, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5700458375433102456} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6854971445741423484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9033223585654839396} + - component: {fileID: 7409062187526535040} + m_Layer: 0 + m_Name: Colliders + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9033223585654839396 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6854971445741423484} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -7.14, z: 0} + m_LocalScale: {x: 2.5, y: 2.5, z: 2.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5700458375433102456} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!60 &7409062187526535040 +PolygonCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6854971445741423484} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Points: + m_Paths: + - - {x: -2.25, y: 0} + - {x: -2.25, y: 5} + - {x: -1.75, y: 5} + - {x: -1.75, y: 0.5} + - {x: 1.75, y: 0.5} + - {x: 1.75, y: 5} + - {x: 2.25, y: 5} + - {x: 2.25, y: 0} + m_UseDelaunayMesh: 0 +--- !u!1 &7016895734831185152 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8544632373735416826} + - component: {fileID: 3850252124339651768} + - component: {fileID: 2625600387000873097} + m_Layer: 0 + m_Name: Background_Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8544632373735416826 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7016895734831185152} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.25, z: 0} + m_LocalScale: {x: 30, y: 30, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4234202924687734341} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &3850252124339651768 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7016895734831185152} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d139320e25a4b4b8f9787eb2c8613118, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -10 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!331 &2625600387000873097 +SpriteMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7016895734831185152} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 0} + m_MaskAlphaCutoff: 0.2 + m_FrontSortingLayerID: 0 + m_BackSortingLayerID: 0 + m_FrontSortingLayer: 0 + m_BackSortingLayer: 0 + m_FrontSortingOrder: 0 + m_BackSortingOrder: 0 + m_IsCustomRangeActive: 0 + m_SpriteSortPoint: 0 +--- !u!1 &7829567953633308085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4234202924687734341} + m_Layer: 0 + m_Name: Decorations + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4234202924687734341 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7829567953633308085} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1117964864814981896} + - {fileID: 4495376406130920465} + - {fileID: 3506334176229297303} + - {fileID: 8544632373735416826} + m_Father: {fileID: 5700458375433102456} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &9033946438786394551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4495376406130920465} + - component: {fileID: 2193821982121631248} + m_Layer: 0 + m_Name: Background_Dark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4495376406130920465 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9033946438786394551} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.06, z: 0} + m_LocalScale: {x: 9, y: 11.82, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4234202924687734341} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2193821982121631248 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9033946438786394551} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -2 + m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 0.2} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab.meta new file mode 100644 index 0000000..beefb87 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Prefabs/Environment.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 31b62b6da850f443a8ad687d5f88ccc5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites.meta new file mode 100644 index 0000000..b4df541 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5cce22890dde419c8a0ef88ccc56dba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1e0425c093eec7afd7ceb78d484019b46e1c2a GIT binary patch literal 2410 zcmds3Yi!eI6m{uJq0phJLySUI<5sYWIkpp%hugH2rd`t!C?yPv5W}&*B!yIEV7C1-f^w2pR1>9wMI)lDOi%_=mlX%{ToNaTlt4T<&k-O1fX(L~PCkAt04%S|m5lM!T!O)52vsW&Lm7#JJQc0F>tsOG096Vp94HUNH1l*dGE=4i zR+ALBBn1YVRXvb0YNQP&^i>zj38F5dV9*laU^QUJVBct*G~<-n4Vz}NFqC;JNi!tb z4|Per;H`TCYH^b`hO#mw^%xWyhi5hRU%@=bcqJvsLdimq^#MW_eHfZ7BvU2@Bn1YB z*_q;5xLk}=R5e!QfYV{eplX94@C-+h7C-|lZUw-D)4YwtSzz_xCSavKBx$u7J^d=+ zdWXb?^xo?0`>oDP9OQTu)okK`*F(Tujw+K@ysIYl;i8o{} zSe`fw2x#0D49n?mw_}{%X24^K+rm@o@m!G;>mz;uNuSaD{^+XY)gr6{N`0_)&tWfO z$n+&K43t3vWL9C}r~!&<$GnOZL|Iu52pp@cCBh<~czcumK{W||=J;@XcdY@9qcGtE5_X+l1pp7PS><2mbEJ13o+ zp4N_3Wo#NTXU_DEYlpS8zP~@umNh=M-!%0>_mm)8*fhRw@x{eg8fvOehS;7o|DyJh zOYEH|@>e>G^ZOcio~f6d-Cem?wm;l^IXhfZRj`KX-BNS+^e;EJ*7QCEGwW~XuD{iB zF#TdxL7{KkuEVBWu4hVM-e&Lp1A*gf8UxGE9oX^7JX_Pvj-Bsi%}*H=n__mm^%Z#LvMEShc1@fS7SxIgEuw7?i^ZER6jPtKmR?R~4yrvx&s zwWq0q!wc(c)8#$KHZ*6R+Ufry_s+_-xlTi7(X~Uzw!PeSukFRw3*%B7Dz5K4dgK1J zNQyih@ge`$-MGT8xlC7^>G#n?i=3Z+)pwT+A?a-&&amegx_71i@x$^-*&Xd)O$Z@G zp}}$8dbp#ZX7lGgQhr~I-+O)C`L939-`cRsezdJPb=B;HSJd)fms&g~^52OIf?CHs5Uw+gXl=k}9toOt+sX{^2Rue=@K zJ>dJsFZs42*5T}(d?dEIB>zI+L~nTaJ*>0sO!p-`)Px*5{=k5oMXruUdM&O$O&KHJ SB@gBMW literal 0 HcmV?d00001 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png.meta new file mode 100644 index 0000000..43d2fbc --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Lines.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 8ce04c396f40d41cbb898247b7c5f8a4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 150 + spriteBorder: {x: 60, y: 60, z: 60, w: 60} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..0b853d3148224516dce377624eab88430894787e GIT binary patch literal 42204 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 literal 0 HcmV?d00001 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png.meta new file mode 100644 index 0000000..afc15cb --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Content/Sprites/Pattern.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 1d3a296bee6d04635be34a52a9b077c9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 30 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources.meta new file mode 100644 index 0000000..20a5ad6 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a17381eb12fb24c05a10da7731983613 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset new file mode 100644 index 0000000..072803a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset @@ -0,0 +1,17 @@ +%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: 55b73d944563401787d41762940cbdc1, type: 3} + m_Name: GameConfiguration + m_EditorClassIdentifier: + FruitCopyCollectAmount: 3 + MaxFruitsCollectedCount: 6 + InitialFruitsCount: 40 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset.meta new file mode 100644 index 0000000..e6f0cb7 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Resources/GameConfiguration.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f0d7ecc89bc148bdb733712ef5585ca +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts.meta new file mode 100644 index 0000000..e23bd17 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: baee60f22fd24428da79c53b72c60ec1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs new file mode 100644 index 0000000..a613bbe --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using Cysharp.Threading.Tasks; +using Playtika.Controllers; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameEnvironmentController manages the game environment setup using GameEnvironmentView and GameModel. + /// Initialization involves populating the environment with fruits based on configuration and randomizing their order. + /// It asynchronously initializes each fruit using FruitBoardController instances. + /// + public class GameEnvironmentController : ControllerWithResultBase + { + private readonly GameModel _gameModel; + private readonly ResourcesProvider _resourcesProvider; + private readonly GameEnvironmentView _environmentView; + + public GameEnvironmentController( + IControllerFactory controllerFactory, + GameModel gameModel, + ResourcesProvider resourcesProvider, + GameEnvironmentView environmentView) + : base(controllerFactory) + { + _gameModel = gameModel; + _resourcesProvider = resourcesProvider; + _environmentView = environmentView; + } + + protected override UniTask OnFlowAsync(CancellationToken cancellationToken) + { + return InitializeBoard(cancellationToken); + } + + private async UniTask InitializeBoard(CancellationToken cancellationToken) + { + _environmentView.Container.Clear(); + + var fruitCollection = await _resourcesProvider.LoadAsync("FruitsCollection", cancellationToken); + cancellationToken.ThrowIfCancellationRequested(); + + var fruitsList = new List(_gameModel.FruitsOnBoardCount); + for (var i = 0; i < _gameModel.FruitsOnBoardCount; i++) + { + var index = (int)Mathf.Repeat(i / _gameModel.GameConfiguration.FruitCopyCollectAmount, + fruitCollection.List.Count); + fruitsList.Add(fruitCollection.List[index]); + } + + var random = new System.Random(); + fruitsList = fruitsList.OrderBy(x => random.Next()).ToList(); + + foreach (var fruitData in fruitsList) + { + var args = new FruitBoardControllerArgs(fruitData); + ExecuteAndWaitResultAsync(args, CancellationToken) + .Forget(); + + await UniTask.WaitForSeconds(0.1f, cancellationToken: cancellationToken); + } + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs.meta new file mode 100644 index 0000000..c7080b2 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5361c872a2794f39ae1769f5953f4877 +timeCreated: 1713026863 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs new file mode 100644 index 0000000..fb1adab --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameEnvironmentView, a MonoBehaviour, represents the view component managing the game environment within the Unity scene. + /// + public class GameEnvironmentView : MonoBehaviour + { + public Transform Container => _container; + public Vector2 SpawnArea => _spawnArea; + + [SerializeField] + private Transform _container; + + [SerializeField] + private Vector2 _spawnArea; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs.meta new file mode 100644 index 0000000..054b891 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Core/Scripts/GameEnvironmentView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4cd7eaebb53be4192951d0258755683a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits.meta new file mode 100644 index 0000000..86cde89 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b69afb8842a44516a9fb50bfa4e62c3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content.meta new file mode 100644 index 0000000..66c9556 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fbdc2ab062cb444c8bdd2f6359abfb8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations.meta new file mode 100644 index 0000000..80f800b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4eb69e4389f814e8985736645d8de3e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim new file mode 100644 index 0000000..ed29d63 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim @@ -0,0 +1,168 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FruitBoard_Hide + serializedVersion: 7 + m_Legacy: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.25 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.25 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim.meta new file mode 100644 index 0000000..621c34a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Hide.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e720510a75ca4365a08ad7e0c507946 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim new file mode 100644 index 0000000..da5877b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim @@ -0,0 +1,276 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FruitBoard_Show + serializedVersion: 7 + m_Legacy: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.18333334 + value: {x: 1.1, y: 1.1, z: 1.1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.31666666 + value: {x: 0.95, y: 0.95, z: 0.95} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.4 + value: {x: 1.05, y: 1.05, z: 1.05} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.45 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.45 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 1.05 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.45 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 1.05 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.45 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 1.05 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.45 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim.meta new file mode 100644 index 0000000..e3d982a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Animations/FruitBoard_Show.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 78fb0465afdb24e44bf3369835235e09 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets.meta new file mode 100644 index 0000000..0ff3b81 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85c6d5a005753404ab9e0e34e684b457 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources.meta new file mode 100644 index 0000000..e38ec4e --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad6066587c8b6469fbe8a43231e0e4f8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6455ef15488dcfd35cc16c0f25b9313fe719c282 GIT binary patch literal 87356 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

`l(Pw-{rKL+xu(kUnDHdFF&8wJlyI_kAss1Cn` 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 z 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 P00000NkvXXu0mjfU#Ak) literal 0 HcmV?d00001 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png.meta new file mode 100644 index 0000000..f12f42d --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_0_Sprite.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: b57a0883b7b5a43608eeccc0fe7ba449 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 9 + spritePivot: {x: 0.49428734, y: 0.40716934} + spritePixelsToUnits: 240 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_1_Sprite.png b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Content/Assets/Resources/Fruit_1_Sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..37accaa63dec1f46346c0b4d9189ff3cdd7979ba GIT binary patch literal 79034 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

wtIL&;(@|YOe9TpQUNJGZ%#H$G^emjh#Z5LJ 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 A8vp#^n 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 z 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 + /// FruitBoardController manages interactions for individual fruit in the game. + /// It initializes with a FruitData instance and utilizes a FruitBoardFactory to create and display corresponding views. + /// Upon user interaction, it triggers removal requests through GameModel.RequestFruitRemove() and completes + /// operations with EmptyControllerResult. The controller handles lifecycle events, ensuring proper initialization, + /// interaction handling, and cleanup of associated views. + /// + public class FruitBoardController : ControllerWithResultBase + { + private readonly GameModel _gameModel; + private readonly FruitBoardFactory _factory; + + private FruitBoardView _view; + private UniTaskCompletionSource _clickCs = new(); + private FruitData _data => Args.Data; + + public FruitBoardController( + IControllerFactory controllerFactory, + GameModel gameModel, + FruitBoardFactory factory) + : base(controllerFactory) + { + _gameModel = gameModel; + _factory = factory; + } + + protected override async UniTask OnFlowAsync(CancellationToken cancellationToken) + { + _view = await _factory.CreateAsync(_data.ResourceId, cancellationToken); + cancellationToken.ThrowIfCancellationRequested(); + + _view.Show(); + _view.Clicked += OnClicked; + + await _clickCs.Task; + cancellationToken.ThrowIfCancellationRequested(); + + _gameModel.RequestFruitRemove(_data); + + await _view.HideAsync(cancellationToken); + cancellationToken.ThrowIfCancellationRequested(); + + Complete(new EmptyControllerResult()); + } + + protected override void OnStop() + { + if (_view != null) + { + _view.Clicked -= OnClicked; + Object.Destroy(_view.gameObject); + } + } + + private void OnClicked() + { + if (_gameModel.IsFruitLineFilled()) + { + return; + } + + _clickCs.TrySetResult(); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardController.cs.meta new file mode 100644 index 0000000..aba5e8b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4bd6d554f042407bb8e262b7fa1be238 +timeCreated: 1718544312 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs new file mode 100644 index 0000000..b696743 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs @@ -0,0 +1,17 @@ +namespace ControllersTree.Samples.FruitsMerge +{ + ///

+ /// FruitBoardControllerArgs is a readonly struct used to pass data to FruitBoardController instances during + /// initialization. It encapsulates a FruitData instance, ensuring that the data is immutable and efficiently passed + /// between components in the game's architecture. + /// + public readonly struct FruitBoardControllerArgs + { + public readonly FruitData Data; + + public FruitBoardControllerArgs(FruitData data) + { + Data = data; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs.meta new file mode 100644 index 0000000..765a04e --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardControllerArgs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fa2aef251c35411da47c7483c0b6c475 +timeCreated: 1718546498 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs new file mode 100644 index 0000000..7fc1cc6 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs @@ -0,0 +1,40 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// FruitBoardFactory creates FruitBoardView instances within the game environment. + /// It utilizes a FruitVisualisationProvider for visual assets and a GameEnvironmentView for placement. + /// Upon creation, each board is positioned randomly within a specified range and visually represented using asset + /// data obtained from FruitVisualisationProvider. + /// + public class FruitBoardFactory + { + private readonly FruitVisualisationProvider _visualisationProvider; + private readonly GameEnvironmentView _environmentView; + + public FruitBoardFactory( + FruitVisualisationProvider visualisationProvider, + GameEnvironmentView environmentView) + { + _visualisationProvider = visualisationProvider; + _environmentView = environmentView; + } + + public async UniTask CreateAsync(string resourceId, CancellationToken cancellationToken) + { + var result = await UniTask.WhenAll(_visualisationProvider.GetFruitBoardPrefabAsync(cancellationToken), + _visualisationProvider.GetSpriteAsync(resourceId, cancellationToken)); + cancellationToken.ThrowIfCancellationRequested(); + + var instance = Object.Instantiate(result.Item1, _environmentView.Container); + + instance.transform.localPosition = Vector3.right * Random.Range(_environmentView.SpawnArea.x, _environmentView.SpawnArea.y); + instance.SetVisualisation(result.Item2); + + return instance; + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs.meta new file mode 100644 index 0000000..88aba99 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardFactory.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d95a1b754c5c4def897cc9e3afcdac55 +timeCreated: 1718544348 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs new file mode 100644 index 0000000..3c58cec --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs @@ -0,0 +1,46 @@ +using System; +using System.Threading; +using Cysharp.Threading.Tasks; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// FruitBoardView, a MonoBehaviour, represents a visual component in the game for displaying fruits. + /// This class facilitates the visual representation and interaction handling of individual fruits within the game's environment. + /// + public class FruitBoardView : MonoBehaviour, IPointerClickHandler + { + private const string ShowAnimationName = "FruitBoard_Show"; + private const string HideAnimationName = "FruitBoard_Hide"; + + public event Action Clicked; + + [SerializeField] + private SpriteRenderer _renderer; + + [SerializeField] + private Animation _animationComponent; + + public void SetVisualisation(Sprite sprite) + { + _renderer.sprite = sprite; + } + + public void Show() + { + _animationComponent.Play(ShowAnimationName); + } + + public UniTask HideAsync(CancellationToken cancellationToken) + { + return _animationComponent.PlayAsync(HideAnimationName, cancellationToken); + } + + public void OnPointerClick(PointerEventData eventData) + { + Clicked?.Invoke(); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs.meta new file mode 100644 index 0000000..7a02d43 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitBoardView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 290c78d8be7bb40f3b75b1fb3554fff6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs new file mode 100644 index 0000000..736df5f --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs @@ -0,0 +1,18 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// FruitData is a ScriptableObject representing a type of fruit in the game. + /// It contains a ResourceId property that uniquely identifies the resource associated with the fruit, + /// facilitating resource management and retrieval within the game. + /// + [CreateAssetMenu(fileName = "FruitData", menuName = "Scriptable Objects/Fruit Data")] + public class FruitData : ScriptableObject + { + public string ResourceId => _resourceId; + + [SerializeField] + private string _resourceId; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs.meta new file mode 100644 index 0000000..34c9ff7 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f12d580cd03b143128de8fb8a91358d3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs new file mode 100644 index 0000000..cab9585 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// FruitDataCollectionDefinition is a ScriptableObject that holds a collection of FruitData instances. + /// It provides a structured way to store and manage multiple types of fruit data within game resources. + /// + [CreateAssetMenu(fileName = "FruitsCollection", menuName = "Scriptable Objects/Fruits Collection")] + public class FruitDataCollectionDefinition : ScriptableObject + { + public IReadOnlyList List => _list; + + [SerializeField] + private List _list; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs.meta new file mode 100644 index 0000000..0ad0a4d --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitDataCollectionDefinition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0d915615c2da44f32a18c01640fcca13 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs new file mode 100644 index 0000000..ec88f3d --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs @@ -0,0 +1,31 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// FruitVisualisationProvider facilitates the retrieval of visual assets for fruits in the game. + /// It offers methods to obtain the prefab for FruitBoardView and sprites associated with specific resourceId values. + /// This allows dynamic loading and display of visual elements based on the game's resource configuration. + /// + public class FruitVisualisationProvider + { + private readonly ResourcesProvider _resourcesProvider; + + public FruitVisualisationProvider(ResourcesProvider resourcesProvider) + { + _resourcesProvider = resourcesProvider; + } + + public UniTask GetFruitBoardPrefabAsync(CancellationToken cancellationToken) + { + return _resourcesProvider.LoadAsync("FruitBoard", cancellationToken); + } + + public UniTask GetSpriteAsync(string resourceId, CancellationToken cancellationToken) + { + return _resourcesProvider.LoadAsync($"{resourceId}_Sprite", cancellationToken); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs.meta new file mode 100644 index 0000000..8d28904 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/Environment/Fruits/Scripts/FruitVisualisationProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5966a0ab8c274f4b8e91b0481dc4858e +timeCreated: 1718543801 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI.meta new file mode 100644 index 0000000..b4fa3a2 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3a171c1ecaf614efa864251223d83077 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen.meta new file mode 100644 index 0000000..567de39 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15562464b5a724366930287a7d779faf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content.meta new file mode 100644 index 0000000..594569a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7649183e85034bb6805ef848000e5e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations.meta new file mode 100644 index 0000000..76a6e58 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cccf5e00d214346d99adf7b3165d29ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim new file mode 100644 index 0000000..41ad905 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim @@ -0,0 +1,438 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: AfterLevelScreen_Show + serializedVersion: 7 + m_Legacy: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.25 + value: {x: 1.1, y: 1.1, z: 1.1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.33333334 + value: {x: 0.95, y: 0.95, z: 0.95} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.38333333 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: Restart_Button + m_FloatCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.69803923 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Background + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 100 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 200 + inSlope: 156.52174 + outSlope: 156.52174 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38333333 + value: 215 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: Header + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Header + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + flags: 0 + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.38333333 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.69803923 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Background + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: Restart_Button + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: Restart_Button + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38333333 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: Restart_Button + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 100 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 200 + inSlope: 156.52174 + outSlope: 156.52174 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.38333333 + value: 215 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: Header + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Header + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim.meta new file mode 100644 index 0000000..59577f2 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Animations/AfterLevelScreen_Show.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54176e08ff17f4efba46a04d9c9f5f07 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources.meta new file mode 100644 index 0000000..18de66c --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0570ca3d2b8be4b20a822512a8298959 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab new file mode 100644 index 0000000..6dc97b9 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab @@ -0,0 +1,494 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2526561122196032719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4870559766374459906} + - component: {fileID: 9120523662368299035} + - component: {fileID: 4272272459533671291} + m_Layer: 0 + m_Name: InnerCircle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4870559766374459906 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2526561122196032719} + 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: 7837974251700653777} + 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: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9120523662368299035 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2526561122196032719} + m_CullTransparentMesh: 1 +--- !u!114 &4272272459533671291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2526561122196032719} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19958171, g: 0.6509434, b: 0.38791147, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 29d3ed44a0e674c79a85a1e0c8a4c711, 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!1 &6767828511135579132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 528827791184905148} + - component: {fileID: 1586734695760498009} + - component: {fileID: 2178112397209904133} + m_Layer: 0 + m_Name: AfterLevelScreen + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &528827791184905148 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6767828511135579132} + 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: 2714522394596541298} + - {fileID: 7837974251700653777} + - {fileID: 3862883944146069140} + 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 &1586734695760498009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6767828511135579132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1e66cb4c75da4713b97ddea1d5629c60, type: 3} + m_Name: + m_EditorClassIdentifier: + _restartButton: {fileID: 3820932631433536641} + _animationComponent: {fileID: 2178112397209904133} +--- !u!111 &2178112397209904133 +Animation: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6767828511135579132} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 0} + m_Animations: + - {fileID: 7400000, guid: 54176e08ff17f4efba46a04d9c9f5f07, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 0 + m_AnimatePhysics: 0 + m_CullingType: 0 +--- !u!1 &7037904086326401158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7837974251700653777} + - component: {fileID: 7055047362974753683} + - component: {fileID: 8208436072824198022} + - component: {fileID: 3820932631433536641} + m_Layer: 0 + m_Name: Restart_Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7837974251700653777 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7037904086326401158} + 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: 4870559766374459906} + - {fileID: 6193764975065161259} + m_Father: {fileID: 528827791184905148} + 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: -17} + m_SizeDelta: {x: 300, y: 300} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7055047362974753683 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7037904086326401158} + m_CullTransparentMesh: 1 +--- !u!114 &8208436072824198022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7037904086326401158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.08627451, g: 0.26666668, b: 0.17254902, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 29d3ed44a0e674c79a85a1e0c8a4c711, 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: 0.5 +--- !u!114 &3820932631433536641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7037904086326401158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8208436072824198022} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8206786695959001430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2714522394596541298} + - component: {fileID: 2441207298673566987} + - component: {fileID: 8390518528372247864} + m_Layer: 0 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2714522394596541298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8206786695959001430} + 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: 528827791184905148} + 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 &2441207298673566987 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8206786695959001430} + m_CullTransparentMesh: 1 +--- !u!114 &8390518528372247864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8206786695959001430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.5019608} + 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!1 &8236766127313766587 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3862883944146069140} + - component: {fileID: 1680322291106804345} + - component: {fileID: 9054303230421718966} + m_Layer: 0 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3862883944146069140 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236766127313766587} + 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: 528827791184905148} + 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: 215} + m_SizeDelta: {x: 490, y: 110} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1680322291106804345 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236766127313766587} + m_CullTransparentMesh: 1 +--- !u!114 &9054303230421718966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8236766127313766587} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 6346212bea7464a5cae2a38f5f7e1c77, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8365170519143469533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6193764975065161259} + - component: {fileID: 372264268867319328} + - component: {fileID: 2634446374093594424} + m_Layer: 0 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6193764975065161259 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8365170519143469533} + 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: 7837974251700653777} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &372264268867319328 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8365170519143469533} + m_CullTransparentMesh: 1 +--- !u!114 &2634446374093594424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8365170519143469533} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 86329eb0d6a3d45678f314d516488440, 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 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab.meta new file mode 100644 index 0000000..ee4602c --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Content/Resources/AfterLevelScreen.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7905deee7b72c4a4b86f6c262825d9de +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts.meta new file mode 100644 index 0000000..9538cb6 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9818f6b61a844ec3889e8a5f08ec92d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs new file mode 100644 index 0000000..717e973 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs @@ -0,0 +1,58 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using Playtika.Controllers; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// AfterLevelScreenController manages the post-level screen UI, instantiated from AfterLevelScreenView. + /// It handles UI setup and cleanup during its lifecycle. + /// Initialization includes displaying the screen and binding a restart button click event to RestartButtonClicked(). + /// On stopping, it removes event listeners and destroys the UI instance. RestartButtonClicked() triggers a restart + /// request through GameModel.RequestRestart(). + /// + public class AfterLevelScreenController : ControllerWithResultBase + { + private readonly IGameEventsRequestsModel _gameRequestsModel; + private readonly ResourcesProvider _resourcesProvider; + private readonly Transform _container; + + private AfterLevelScreenView _view; + + public AfterLevelScreenController( + IControllerFactory controllerFactory, + GameUIView uiView, + IGameEventsRequestsModel gameRequestsModel, + ResourcesProvider resourcesProvider) + : base(controllerFactory) + { + _container = uiView.PopupsContainer; + _gameRequestsModel = gameRequestsModel; + _resourcesProvider = resourcesProvider; + } + + protected override async UniTask OnFlowAsync(CancellationToken cancellationToken) + { + var prefab = await _resourcesProvider.LoadAsync("AfterLevelScreen", cancellationToken); + cancellationToken.ThrowIfCancellationRequested(); + + _view = Object.Instantiate(prefab, _container); + _view.Show(); + + _view.RestartButton.onClick.AddListener(RestartButtonClicked); + } + + protected override void OnStop() + { + _view.RestartButton.onClick.RemoveAllListeners(); + + Object.Destroy(_view.gameObject); + } + + private void RestartButtonClicked() + { + _gameRequestsModel.RequestRestart(); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs.meta new file mode 100644 index 0000000..5e09c05 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 396c32f111ce4092944ab8fbb66745a4 +timeCreated: 1718630338 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs new file mode 100644 index 0000000..84781d5 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs @@ -0,0 +1,26 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// AfterLevelScreenView is a MonoBehaviour, manages the view component displayed after completing a game level. + /// + public class AfterLevelScreenView : MonoBehaviour + { + private const string ShowAnimationName = "AfterLevelScreen_Show"; + + public Button RestartButton => _restartButton; + + [SerializeField] + private Button _restartButton; + + [SerializeField] + private Animation _animationComponent; + + public void Show() + { + _animationComponent.Play(ShowAnimationName); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs.meta new file mode 100644 index 0000000..7b12411 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/AfterLevelScreen/Scripts/AfterLevelScreenView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1e66cb4c75da4713b97ddea1d5629c60 +timeCreated: 1718630395 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits.meta new file mode 100644 index 0000000..caca9c7 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b86da0894c25e44b98da21816147846f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content.meta new file mode 100644 index 0000000..c88eb44 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07ca34ed9c5f5485aab0a806d013702f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations.meta new file mode 100644 index 0000000..a048f5a --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23b671af1039a454a881027fb871c104 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim new file mode 100644 index 0000000..ee69904 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim @@ -0,0 +1,288 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CollectedFruitItem_Hide + serializedVersion: 7 + m_Legacy: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.31666666 + value: {x: 1.2, y: 1.2, z: 1.2} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_FloatCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Image + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + flags: 0 + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.31666666 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 50 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Image + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 1.2 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 1.2 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.31666666 + value: 1.2 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim.meta new file mode 100644 index 0000000..2dc710b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Hide.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c0cba101a0cec4e048b8dfdd50d5b5bb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim new file mode 100644 index 0000000..0813aa7 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim @@ -0,0 +1,276 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CollectedFruitItem_Show + serializedVersion: 7 + m_Legacy: 1 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.18333334 + value: {x: 1.1, y: 1.1, z: 1.1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.28333333 + value: {x: 0.95, y: 0.95, z: 0.95} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.35 + value: {x: 1.05, y: 1.05, z: 1.05} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.4 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.4 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.28333333 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.35 + value: 1.05 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.28333333 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.35 + value: 1.05 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: + classID: 224 + script: {fileID: 0} + flags: 0 + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 1.1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.28333333 + value: 0.95 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.35 + value: 1.05 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: + classID: 224 + script: {fileID: 0} + flags: 0 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim.meta new file mode 100644 index 0000000..12fcb40 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Animations/CollectedFruitItem_Show.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2039b00fd20f24e68afa674e71c0bb5a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs.meta new file mode 100644 index 0000000..52ec813 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1a6c81363aae45c29892af66e2a6081 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab new file mode 100644 index 0000000..92ee1bb --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab @@ -0,0 +1,146 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1850136844171517301 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3260882128620691191} + - component: {fileID: 1372158923887844196} + - component: {fileID: 983164680730148715} + m_Layer: 0 + m_Name: FruitPreview + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3260882128620691191 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850136844171517301} + 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: 2722285307728118647} + 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: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1372158923887844196 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850136844171517301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fffe88dcb0ce4c51b00e75828638bb1d, type: 3} + m_Name: + m_EditorClassIdentifier: + _image: {fileID: 9199024696812505408} + _animationComponent: {fileID: 983164680730148715} +--- !u!111 &983164680730148715 +Animation: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1850136844171517301} + m_Enabled: 1 + serializedVersion: 3 + m_Animation: {fileID: 7400000, guid: 2039b00fd20f24e68afa674e71c0bb5a, type: 2} + m_Animations: + - {fileID: 7400000, guid: 2039b00fd20f24e68afa674e71c0bb5a, type: 2} + - {fileID: 7400000, guid: c0cba101a0cec4e048b8dfdd50d5b5bb, type: 2} + m_WrapMode: 0 + m_PlayAutomatically: 1 + m_AnimatePhysics: 0 + m_CullingType: 0 +--- !u!1 &6558884335042385852 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2722285307728118647} + - component: {fileID: 2135340954695457783} + - component: {fileID: 9199024696812505408} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2722285307728118647 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6558884335042385852} + 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: 3260882128620691191} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2135340954695457783 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6558884335042385852} + m_CullTransparentMesh: 1 +--- !u!114 &9199024696812505408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6558884335042385852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b57a0883b7b5a43608eeccc0fe7ba449, 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 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab.meta new file mode 100644 index 0000000..3b81756 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitPreview.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d00c72e4f0d745ebb40e19d3aac038c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab new file mode 100644 index 0000000..163f2e3 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab @@ -0,0 +1,163 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1151905939476842381 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6994769223713818873} + - component: {fileID: 7366130751407268700} + m_Layer: 0 + m_Name: FruitSlot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6994769223713818873 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1151905939476842381} + 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: 6249959047361075924} + - {fileID: 8484078520297554197} + m_Father: {fileID: 0} + 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: 120, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7366130751407268700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1151905939476842381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a8878fb764c742daad68d2e92a698234, type: 3} + m_Name: + m_EditorClassIdentifier: + _container: {fileID: 8484078520297554197} +--- !u!1 &2438758660865418212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6249959047361075924} + - component: {fileID: 4177919984734175448} + - component: {fileID: 962500823197341684} + m_Layer: 0 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6249959047361075924 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2438758660865418212} + 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: 6994769223713818873} + 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: -56.9} + m_SizeDelta: {x: 100, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4177919984734175448 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2438758660865418212} + m_CullTransparentMesh: 1 +--- !u!114 &962500823197341684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2438758660865418212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.39215687} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 29d3ed44a0e674c79a85a1e0c8a4c711, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6324969151804432985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8484078520297554197} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8484078520297554197 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6324969151804432985} + 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: 6994769223713818873} + 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: -12.1} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab.meta new file mode 100644 index 0000000..e13ba74 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Content/Prefabs/FruitSlot.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ac46d014486c242e48a5fecd74bfbdb8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts.meta new file mode 100644 index 0000000..7bc6f57 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6dcefea263eb40b88f75a3606cf98d8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs new file mode 100644 index 0000000..e3e2bda --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs @@ -0,0 +1,38 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using UnityEngine; +using UnityEngine.UI; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameUICollectedFruitItemView, a MonoBehaviour, manages individual visual representations of collected fruits in the game's UI. + /// This class facilitates dynamic display and animation management of collected fruit items within the game's UI system. + /// + public class GameUICollectedFruitItemView : MonoBehaviour + { + private const string ShowAnimationName = "CollectedFruitItem_Show"; + private const string HideAnimationName = "CollectedFruitItem_Hide"; + + [SerializeField] + private Image _image; + + [SerializeField] + private Animation _animationComponent; + + public void SetVisualisation(Sprite sprite) + { + _image.sprite = sprite; + } + + public void Show() + { + _animationComponent.Play(ShowAnimationName); + } + + public UniTask HideAsync(CancellationToken cancellationToken) + { + return _animationComponent.PlayAsync(HideAnimationName, cancellationToken); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs.meta new file mode 100644 index 0000000..c05c553 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitItemView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fffe88dcb0ce4c51b00e75828638bb1d +timeCreated: 1718549026 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs new file mode 100644 index 0000000..f834149 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameUICollectedFruitSlotView, a MonoBehaviour, represents a slot in the UI for displaying collected fruit items. + /// + public class GameUICollectedFruitSlotView : MonoBehaviour + { + public Transform Container => _container; + + [SerializeField] + private Transform _container; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs.meta new file mode 100644 index 0000000..fca7309 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitSlotView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a8878fb764c742daad68d2e92a698234 +timeCreated: 1718549013 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs new file mode 100644 index 0000000..ff1cbbb --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs @@ -0,0 +1,98 @@ +using System.Collections.Generic; +using Cysharp.Threading.Tasks; +using Playtika.Controllers; +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameUICollectedFruitsController handles the UI display of collected fruits in the game. + /// It dynamically manages visual slots based on changes in the GameModel. + /// Initialization clears and sets up the UI slots. Event handlers update the UI when fruits are added or removed, + /// providing visual feedback asynchronously for removal animations. + /// + public class GameUICollectedFruitsController : ControllerBase + { + private readonly GameModel _gameModel; + private readonly FruitVisualisationProvider _visualisationProvider; + private readonly GameUICollectedFruitsView _view; + + private List _slotViews; + + public GameUICollectedFruitsController( + IControllerFactory controllerFactory, + GameModel gameModel, + FruitVisualisationProvider visualisationProvider, + GameUICollectedFruitsView view) + : base(controllerFactory) + { + _gameModel = gameModel; + _visualisationProvider = visualisationProvider; + _view = view; + + _slotViews = new List(_gameModel.GameConfiguration.MaxFruitsCollectedCount); + } + + protected override void OnStart() + { + _view.Container.Clear(); + + for (var i = 0; i < _slotViews.Capacity; i++) + { + var slotInstance = Object.Instantiate(_view.SlotPrefab, _view.Container); + _slotViews.Add(slotInstance); + } + + _gameModel.FruitAddedToList += OnFruitAddedToList; + _gameModel.FruitsRemovedFromList += OnFruitsRemovedFromList; + } + + protected override void OnStop() + { + _gameModel.FruitAddedToList -= OnFruitAddedToList; + _gameModel.FruitsRemovedFromList -= OnFruitsRemovedFromList; + } + + private void OnFruitAddedToList(int index, FruitData data) + { + OnFruitAddedToListAsync(index, data).Forget(); + } + + private async UniTask OnFruitAddedToListAsync(int index, FruitData data) + { + var slotView = _slotViews[index]; + + var fruitInstance = Object.Instantiate(_view.ItemPrefab, slotView.Container); + var sprite = await _visualisationProvider.GetSpriteAsync(data.ResourceId, CancellationToken); + + fruitInstance.SetVisualisation(sprite); + fruitInstance.Show(); + } + + private void OnFruitsRemovedFromList(List indexesList) + { + OnFruitsRemovedFromListAsync(indexesList).Forget(); + } + + private async UniTask OnFruitsRemovedFromListAsync(List indexesList) + { + await UniTask.WaitForSeconds(0.2f, cancellationToken: CancellationToken); + + foreach (var index in indexesList) + { + var slotView = _slotViews[index]; + ClearSlot(slotView).Forget(); + + await UniTask.WaitForSeconds(0.1f, cancellationToken: CancellationToken); + } + } + + private async UniTaskVoid ClearSlot(GameUICollectedFruitSlotView slotView) + { + var fruitInstance = slotView.Container.GetComponentInChildren(); + await fruitInstance.HideAsync(CancellationToken); + + Object.Destroy(fruitInstance.gameObject); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs.meta new file mode 100644 index 0000000..6a9f257 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b093027700fe49a2bb3964f41f194da6 +timeCreated: 1718549529 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs new file mode 100644 index 0000000..3568cfc --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs @@ -0,0 +1,24 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameUICollectedFruitsView, a MonoBehaviour, manages UI components for displaying collected fruits in the game. + /// These elements facilitate the organization and presentation of collected fruits within the game's UI system. + /// + public class GameUICollectedFruitsView : MonoBehaviour + { + public Transform Container => _container; + public GameUICollectedFruitSlotView SlotPrefab => _slotPrefab; + public GameUICollectedFruitItemView ItemPrefab => _itemPrefab; + + [SerializeField] + private Transform _container; + + [SerializeField] + private GameUICollectedFruitSlotView _slotPrefab; + + [SerializeField] + private GameUICollectedFruitItemView _itemPrefab; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs.meta new file mode 100644 index 0000000..b057ad4 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/CollectedFruits/Scripts/GameUICollectedFruitsView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 66fc8cb6b4154d2b89bac2ec45e3b8c2 +timeCreated: 1718548990 \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core.meta new file mode 100644 index 0000000..f0550df --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 51050f809993545798dca46b57da6eee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content.meta new file mode 100644 index 0000000..662fc88 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c03607d717134b0f9609979b719c09e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab.meta new file mode 100644 index 0000000..cb88b96 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9b0d4bdae64344de9f26559435e5b3d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab new file mode 100644 index 0000000..022e956 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab @@ -0,0 +1,482 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &85316130108556961 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7477592136115080557} + m_Layer: 0 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7477592136115080557 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 85316130108556961} + 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: 7955743631434330736} + - {fileID: 3632451623478443297} + - {fileID: 6603288801512602969} + m_Father: {fileID: 3236629527562902630} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &824219678940355041 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7955743631434330736} + m_Layer: 0 + m_Name: Bottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7955743631434330736 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 824219678940355041} + 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: 4569798590878230768} + m_Father: {fileID: 7477592136115080557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 150} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1597224226876947175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3632451623478443297} + - component: {fileID: 5476776564589974241} + - component: {fileID: 6088538719968442926} + m_Layer: 0 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3632451623478443297 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1597224226876947175} + 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: 7477592136115080557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -147} + m_SizeDelta: {x: 303, y: 161} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5476776564589974241 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1597224226876947175} + m_CullTransparentMesh: 1 +--- !u!114 &6088538719968442926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1597224226876947175} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3dbffecfdfe164eada18b648d2703621, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2073810355654277025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6603288801512602969} + m_Layer: 0 + m_Name: PopupsContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6603288801512602969 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2073810355654277025} + 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: 7477592136115080557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2813183336786420558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4558575284159568479} + - component: {fileID: 6446168473523129486} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4558575284159568479 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2813183336786420558} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3236629527562902630} + - {fileID: 4829668081568553210} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6446168473523129486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2813183336786420558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6815a37090d984807b4af832ec46765e, type: 3} + m_Name: + m_EditorClassIdentifier: + _popupsContainer: {fileID: 6603288801512602969} + _collectedFruitsView: {fileID: 4306734778237751510} +--- !u!1 &6064220107897425181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4829668081568553210} + - component: {fileID: 2636077902862789415} + - component: {fileID: 809521506585560895} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4829668081568553210 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6064220107897425181} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4558575284159568479} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2636077902862789415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6064220107897425181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!114 &809521506585560895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6064220107897425181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!1 &7433040372188402657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3236629527562902630} + - component: {fileID: 6081273471566441561} + - component: {fileID: 5181258863223321829} + - component: {fileID: 5776269012292518535} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3236629527562902630 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7433040372188402657} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7477592136115080557} + m_Father: {fileID: 4558575284159568479} + 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, y: 0} +--- !u!223 &6081273471566441561 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7433040372188402657} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 0} + m_PlaneDistance: 10 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 10 + m_TargetDisplay: 0 +--- !u!114 &5181258863223321829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7433040372188402657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 720, y: 1280} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &5776269012292518535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7433040372188402657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &7647860120084800745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4569798590878230768} + - component: {fileID: 3999048062377227180} + - component: {fileID: 4306734778237751510} + m_Layer: 0 + m_Name: Slots + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4569798590878230768 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7647860120084800745} + 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: 7955743631434330736} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3999048062377227180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7647860120084800745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &4306734778237751510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7647860120084800745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66fc8cb6b4154d2b89bac2ec45e3b8c2, type: 3} + m_Name: + m_EditorClassIdentifier: + _container: {fileID: 4569798590878230768} + _slotPrefab: {fileID: 7366130751407268700, guid: ac46d014486c242e48a5fecd74bfbdb8, type: 3} + _itemPrefab: {fileID: 1372158923887844196, guid: 0d00c72e4f0d745ebb40e19d3aac038c, type: 3} diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab.meta new file mode 100644 index 0000000..d75bff9 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Prefab/UI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a0834be56fd764d10a01d4cdc187508d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites.meta new file mode 100644 index 0000000..a6b5f5c --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a50a69a48932459cbd5b0f9aab4831c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/AfterLevelHeader.png b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/AfterLevelHeader.png new file mode 100644 index 0000000000000000000000000000000000000000..aede4162342958bf34827b64a1be2baee4c2a070 GIT binary patch literal 7291 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 literal 0 HcmV?d00001 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Circle.png.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Circle.png.meta new file mode 100644 index 0000000..0402c45 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Circle.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 29d3ed44a0e674c79a85a1e0c8a4c711 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 128, y: 0, z: 128, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2 b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2 new file mode 100644 index 0000000..5c9475e --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2 @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 0} + m_ImporterData: + packables: + - {fileID: 102900000, guid: 0a50a69a48932459cbd5b0f9aab4831c, type: 3} + m_IsVariant: 0 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2.meta new file mode 100644 index 0000000..0b99d03 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Generic_Atlas.spriteatlasv2.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: b1fba6d1620124253a8676890874b859 +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 1 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: [] + packingSettings: + serializedVersion: 2 + padding: 4 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 0 + enableTightPacking: 0 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 1 + bindAsDefault: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Logo.png b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..48a2841a3dbbb61cbd98c5df3ffea2f877c6a178 GIT binary patch literal 21467 zcmbTd1z1$y6F&455(fkV;VUW1YJ))F9^msi76$NpJ5DVK z_=D}DXygV05%m830jIDLJOP2w&h2y!-3`@Lg{_<&UszZ>Tf$y=JGubWAdskpw~K|< zYnVHYCCtXoNsR8ewUds<&RUGlfKLso<{|^LwNvzUh3WXJ>stA~wi2?YlMts7^%e#g zIKtd5XuKUAoZN)H#pwRwD-3-8dzq7t<{uLG*J5;1e+AMQs%g^5IJ?4VgkErQSV5uO zGy*~|tSv2gtSxvf`PgZ=q1-&2T-=;od>mX*VP0-w9s!zvf6)N~U9I85+OqQh76<$% zMrZ5p?jp>|>E-41!i(pHv#Sj!mynPUCzP9$o0|im;BfPCa<}m2aB_S89}coGH!D{= z7k4{nCz`(;Ei9cq+{NgC!TxI&jxPUY>*V%tO#wRN^tN!}Sf$VrOeRxX=HR)Y?iI?(FJl0qDuj(ZUAC>EdMbk2EzkVI?OwcMB&gn3Aj* z9Wc}vc6Qdnf;>VNe3rai99)({)*QS%LY5pta2O8VF1(rpXL4+nVU1*-OIuiCS?O? z@qfdhIDz4F{`JLw&4ly+J;{IW{XhKnKjgq>@b}|?HzMGl|88Y4Ct&|_1vV=EjjRX| zNIh0bR!Y}9`!L5V{mHyXbC4HYv&qe?WxdWzJ6yAHwhS&cR#!#27`63@IU&3E%>jMW z)@Kpdci&lu=9mWL626yzl+_AlP$`OZW0lSrSaMC&x^5gbIE9zF*s^Ih+RT1L!$SQBaAQNc=HU7-X{* zG%@zD&j8v7JAi6vpT<(VmWHEAJu1S(j>MAdUPE&sM(`&+yS5aiyh#jIqr(b;h9%Ql zuoWm?34)qY1q-9zOW>^cd-GnVwpRgnncuH_qQ1?L0odarD?X|}MnQ(JM3(tWaw>p}1bd?P)E^KJqlGEXr~)Kph-pXh z!#@7J_cU1DkF+CX)xzjDMnL|)8P57l5yQU)i0Qb_AN#3_d_I3y?em2~G{$ z6!GJSSno|1{#vxh3ZbEjOs3T$1x9WS3VMBcC0QNuT_UT${5^cC#hB}c%b1!7O^aL+ zLNseRB-fxbF7e$1i%3JmaQ+5aa*ikdgSUqW}<(MRP}15CR>twgr-FbC{_g+-+Qp3`Q;Vq zJdEkC$`0`e>d06;;{c2wT{|L7Pqi9{yn_w17FM@ug|g0LGJx`#nFM>yvcnFT@2u2t zJX8(PFBy^x9(Unko9my+4&l zH>xObYDeLQ56C6(tst-xu!~TDA)E%LXt*KIgV{K)H^n{ReIc+$6#a$+f3Ogp0>prWvhDtpOd-{{e z>T#G7aoNnLf&i^>F)56OaUHG)X-MnQnN(Isqv1QRt)R}OUrc9!CI~>U!Pek5viJRr zWR>dJ{wUdLz3?H`UvNBIq_2LE;4KZe$ZTDS$0s+dq+eBx@z*7ZC;-7jV-YaGh1UX&Bi(=()np+Okvq`E*+kTNRFK!27s zgoY9aSW(C)UN_Ah-uuI<&L9<7H5+2pZX?fTW*n&fBV{YdXMFz=*8`#j{Hi@ME#)%_f> z4c0fQ8KGa|>ZoL$6@OErN57aT@QV%DZU}z=Wd#&Mll@nN*g9-IM|`QjV)ct0gQNP= zwkKQa%1J*Er+*^TFs)7_cbvbPko=ht> zY7RKo){cN%e6>ud;VVN~xgvdh+_j9JgT}fl9IX>n>Ji-rPVKP>_Xc1w8ZR3WG+3Nc zy9;k!EBW0tYc$+uk|Ehuv<>R=P9c6-b11~Y9Xi(MIUi`CCgIuUf}c&LZ|!tG)DR$5 z`1pWFHKd2*nIp@hE<0Xq_qZ8LQ~sGqpk<<9^whJN+>tPme`w(@nzQt~tLH`YRc#J3 z(j#ZY>OKP$GHl@l6I{B#lNS3%R-W$G6mu>nK8Ss$GPO!f%HF|^+g17ylvE*&*ydos zvc&k8lzT1CZ8Ans&WK)^x{k{U3$}f@vR2n3CE2Ugt*2!est0885bi3&`79@PsYm$e zEHWRcSa>k?w3R*SF!;`M>7Uo8S-3~nk{uDS8T$JWXq)&D@7yckr$$dN0$xFo>C6In z1)5J1pg*XaX3Di}1>{;*l~zOVU*qOLv8H2q3&Hyo5Ei+2Xr+MpAq__XnHK2APLdp zoW{hm>61Y9GuK(X$IG>P_o$QQX>7ZBSun8RBt>}dT+_>)s*9F~(&oNZ)42;91in&W zODC_@-=h;V|8g^39!~=o{2?im+>^|m{7O5*TymZj{hb(!ejwDOZ(D7E{6%x1E8rT~ z#(+&M*!|2ufQJ6m4u01Z&Z_SZ)tR+HT`5T^C>y2*#J%_{E+#`rQAuP4&k8N*Vzu%x zT5aCk--MYcS8qiRE5sJ)(L zX{qZAi$9W@xOOgm6qp8=q3fu_Yf` zWgQ#h88R~P8dyu+YZ?;l=6pf@N|cGs>AcQQId{w0{hCzExXP|nw>R%oZpAM6kT5^~ ztKaOm?i$yv&{tGLL6;yzGw2rLpY5|!#z__xwgk=wnR6hZ-r!@aGe`F%K}0Ob6z!RF zUYvr}sV{$iB{!a2cRT14*hSpCG*_q8(gsxS1tcP}e{n9iE ziLj72q^Q}vGa41{FLvkEi>HRa4Pdh^_6<+-rbNcBm&`~9nP9Gy>{ORz{~$ft9I)@e zf4%R2m(dH2`aW6+SVM}v21!)dw#6@R_YnNU3UcR=-(~pgNnwuarlXn=U}Mh$`_B$V zPk@|IU3k0|{5TP~T?XE2D%&`uY!ZpJM59Nn#I0x!_geX!_el7-kn^B&#SVj}T^kg z`V4eGbtvy0j|pC;c;A0%ctK=?P6l7(3jxJS%jb90oRI z3QUl{;L}(!%PpDkF(PGY)rIjv#>Y3UeC+-T1fy2M3S%f8p85N>=q*|iqxqm>)mZad zIhlD@QXrD`>f>8VqFNymVM*QGGkEzwDQ2khi>{pcFqt7345%NCF!*qp7ZcrXKxJy7 zGXz(yKv>nq0!yBw?t&wN$z=zJFizy@u$-af$ezFG88DT7xP-1DBoGrRu`q?xMR+B` zr|3xOPfghiqCw-s5|=!;dlZ6LM@8f6G=5ahHeSx+FUbb=(A3s09;kbcn#gz-tT;xf z?wTm26udp_?gQ?Tm9(FwX|y+|doVdUeRwD3nCVrL_|tLDS~3N!hMJ64&9PG)!|FDX z#C2m034ZGQ=@G7V1Oy{D&1L=FE&-oH5PN7-_z~Lk5(1osD>0jH2{Z|$?2A(Nwa#Sr zxIyiL_lrsedALM0Xx?VzsMq&LdH!6CCrVxCp05=c4ebdge|&JU-TN_w(Qx~l`L>Kk zLWv~~Gjng$%aH`gLO5vg@15}PjVS#cDSPuVXpuK>X-=O!$H>o{G7dkot~>8wv%7Cj z{0UpDE4*dm8O+W;2;c-ZmCy`STD6n#q&(ii>n<9JU`_3VLC^;{gg4ylr5-$F}8O``cR-smb1@8Ee6=Xr+d^hZEyyVsva!vjd z9)`j$XFogHXe>2vj~>06)3eS-MEnD-CTv;&~uK!p}9peP5|yk4sGAG6}i{Y}j<{GAj7P>Da@uC3jRI1A(Hk zP3UueTa&NpnjX@gEd_2gzjj7yE$13VV{F8SVE*3O^1s7rY?1BOFHgWKQ|n3W9Nb*c zD4O!y9MuXdz7pnT|H3}de1LcPd&I>aC|Wd4N!Y9(x~A&qU`~3~dBJ~P0D#@%V$Hg; zTAkNPn0k?3T3v9OU*yda*XZD>;)VJA$QJe3psKN$KJ}PzYK7n>F=W(qi9#s&b+JcB zRN(`E=xP!>E>Z$Oo-4DoEHcqMLRt+Rzjowxavsr}FPg!pyo^0mz;(j9^1L-`-dY>X zEaH^=j!ch!)>yvVF)cKoRp35p6qwgfr2(r{4}Ex`8lgU9TsiBq4%T4gn~&x1UgNtH zSB;Ie*C#W}m02sBQ;?MRsbiz_5u}H)Mum%6OFye8?j0v(O?{Q+vEsVHi2GuQ);*&5 z&GsD-cTQ&n&`*X(NE6yjv%aYBtYGr3pm|~^v3H2tELwlVVw2%oujA&f+4u-Kz7TWG zE~DllJ}}RV*gBrzZKPwb*?A@8{;9#bz;A6vK$T5KAT+K$Y&9TWhyGTy_yQk*#Vy6o z>1L3`3=%}g^UzHxos^}&OWV$9<0Q9ry0jg>*qpF9svKh@rdj_qC>>wAr79FKKp~q1 zuf(STrGxsF=}9=c>1#YiDYT$F^}R;$5Sx3IKC6?1fGm6Rdf=M#+Z)-12(6baAa;L) z)IXtMRTN(h=wUrn4Wd2SPMRKk*eUvuy5J}50`m&_n7N_y3)I!A9xwE zDAw)fvE0zc(xyzbyrqUGF=Sbt^&l84x{eit8=ZY^eOf4*1Ye$Bq zDb}wd#^wAPZfm;9mc--&Qg(W22xnV7C|#LRK3q7K7L)SKox0fE;q@DWpN-rSz87Hh z_slXAh8;@+tdzW3&dY(VHY1DGSEAm}FdEJ^QpsjzE{@MP ze|+?=M^}DYoOw3x<|vE9*0WA^eBP;SA-`x5kuY{N@f3FU$G+%98U%&^B-YIcE-YK+ zFXlt(TGUZ1e!(Y;Nr`-2WW7AM6vQy9b0UXz>1zWMyeS$c^f;CgH%Q{7C&W@b;yZlu zM|&e2%@|@#S8I@;>BvWfr^c1!Ydbl^vzW+$a6#=FFo-n$rIhYb84`XxYO&TME>k+} zo^3Ib17>fdANVaoo%l=-!_^887}aPz;zwY_yBw56OjWk-W*~y!cRwRbrj5k{JqpTf zqpdUee^|!d&UwI|fc$gth8M^g|#I55YCAdOk{zY++ zA}C_af4Dp1N6glwFSd*he|-DTmkA5c&E2CxdT<4OA>~Xd`)TMtGy0**irJicRqQSY zW@i81wy8Q%emc%Kx|l~Hs~(eQUiLsKGp1$x&Bho|98gdWl!v%}$7|t=SVoiaZOwnu zv(NoR`2kvmw}o-EkZDZC+lzqPE#``kLYvfj*GK4x{7N`G+qG9qk-h5Ro5DY_!dFFM zmwl|M?E<(#&3@ASjV@(rVMSB+I=(}_qNL?NwV%ZJaLOb-zJGxad>cCW$0WiBW4G0^ ztndJ!uWIV^Q@#bI@ez>)<}6E({7cAD$6928LGO@2I#@dkqb$5sE6KQV$j7_kRwm1Q zkf1g~g!R?tfg17Du(uLyYHLwn zK|Uc;xuCXJ^KHVT>DK_VV21p@>@FGiY;XH=DjXH5!ifFBi|KK!bo~&?uj6pjGsuxHnd?7Kw9|Ix z`@TgQr%bEClevs0W`@YJ*fxvrd6TDZwTj+iEb2gr`dRDv8BmK_HXnwrZ|0_FU9qMl zSt7f=yls;RK%&+-nR~l9CurYI<#gJ!1k(2;=OWgpX_(SWsYaLOPf*Xs(`tVv*|}GJ zvR_=rl$_7C{H9vYo1Vc7z=3NIqZnuM_$b`L*i&_eE6~sHFWOZ>VF-+_f!~C1KzJj?Q+o{qsOlb2sNWME4GeCcA$PCkEcSeB2JBiBhZc*M+2Bu)$X_P*gn0d!3~GuI zvKihH(Yp+zLo50HoO5LffFN;SXhZMatl53N2-w7TEC^FXO_ftVCijY!V2YlbKZ*Yl z82F&9lKXgi*YK0&tU|rM6?Z34j`vepV_t^o$ZK+9UJ1XWn3?=~j4#JcJQ(ZK`mB+2 zE9u=Nq;6aP-q)M&bAWaIx_#WRJlwJwA+z7YXYWwKggPfCw?AyJ9 z$>g#aC$iIT^Kw8S=i0aJc%a;wTHl{!{W8D?0U6g;d-L&SJS{^-A@YNKMMZJ_F8awx zoqG^FcTgtfj6j~T^J^DAk*|g}+|st8>O7Cb$~x)oyH_O`DJ?*!g6Mt!2LuqMa>9l$ z`V}GSY8>*qj2^bG3Ky9QPK6uSNQYP^C-sBe+vSYjvl*OgEyXd?5%Dqz|JZZk$-<4D z&M{RsfG6bM044KCwKd%IvDGtEkQQRJsH7mJAfRY8 z&5%}g@*^!C(3a?jaQECY33LJVg!ikGsgO+}_V)3GtnqZ--=gbtGfsxYvC$~AbNvha;H-_lN}EpyY@jmE{7H#grnDW!m>hW{8Q?Y$|^j& zTo@7KF9+Ufop%W?nJ_`dJq$vD`s*AhVHHkkKKS_)xfq8Z1#DsiEIZ=r8*-l54Wlec zr9RwDKoaoGgA*4^yvnZrWT9(ALd(l7q^vJ-Mb=}|SC&?=pZ*d{@!)aI_Jco=nSF3; ziHd`Y z{Zkg7;1djd#UtYQWv2CY9T0^9R+XC`(8qhcGy4dzzT-LXmS%`}bJ{mvWH$G~bC@ky zoF`|aeE^%+9N3X(?Zf?e1)LuWQ!GerCE@Y3Jj|9?7rXT=Tpy+Ew>mR=)ut??F{FMZ zRX#ty;e9K0AJmoipjrV0oX%9^_AmbHzR`oVk8M-xo{I7dEkv7lOWXanDzBSaN1~>6H+$cEhS_e&=%Rpli#){ zUUN-!I$!ZxuydJ31-jfyhra_I23iqz8lKU3Y70`-JH3pwY~>?z=oh2j;rG^* z2sq{AW%a6l!&+TdCpEtO>IGN{m4_9^tBP}jx0WD7-&lc5+)^?k&Ys+E4*q6thhJhm zV((eGbI2fz^p-a(b1I`B32gr4vHV~>Uvti!jKY9oR@BLCkAZAGel7!LK0Cwf1a`n| z9|x)TUJ-y*L0|OC(#eN>EcHGXWo)3i;#dLA;UFnUQ`WU?VaxEh*xb98MJ6nC3{#TY z{ii{Ca5~Nd4sU89vnx-^QIiS`HK(I@u{u7UIofrNUt5%=O1p5T9JM1=C8A>`r?O_U z1^G^q)hv=fU5M8Z+#iL^=O1)SvA`;xcO?uy$U)h?d%QLhCQQd#@bE_=zS`%IT6N3j z-P1ot`5#w>NBuu!DEB3Q_=$M+`$|ki#O+BJrh9c+pl5niQoaFQidvXl{F#>ix zq@PmlvFjTHS8yTU5=+CEYv;uXwaJNT3ZF~!xp{hOM6i&zOXb~d;JNn2sBQw( zzq`{GmgFdU+ot$SD|lJ3rvSf%34a1ObPxcf*6FcNNhsY?X183`vll@Zt5>dUfI5ZSI z5YW)is6*?>@jGKnw>75#kB>jSrOa{p zA0R^o_=#ot7S%$HLMzNzZhP0q5o4m00KYJ0gp|B!RA-2RsB+2RY_7A=r20lWvrD4{^^<#z!4i+?rsIY%qrb% z%y4U`SfSfIaXXrzA%B?}8kBlr1EnI)(x!!DK$`Bl{kI6Kw-`MrncDdd^PfV3lSy7H zFHSxe>95%u09P=c2fbIY5-I60(u{b+V*_QS{SKq#cpaB>5FqOsaPkNhnOIS$7rupe zZ{)z5WCxG87@-EMFgi_C;bjdLD7?3~bf~a!sPNhEQe^wxC@YJz_4@A1vJb~Idv)1_oi8lU-lGiS37D?cOIubW1e|bb zMC=d!e5?NWO-FLi)@D8R*Y56OT1j&jpolwt(^cLEy2_rCznNk0vpVC>8tK1q zW)7?Vo)MC0xp3_#(X{61^ZpU212_iu6#A!Bj>j(P_c?}n`7e!UaK!_Upf9G;EhOvG zHFr)g&|(Eyre$)?7cSi-JXgL~d?Pu~{ZnoK=F4ct{Ajn%n{sNu#5NA|_} zq^`J~|J@Q8uT68d$U6WyDCXXRiZg=Y#@2&zZtm(gQMsxpyy_py`Oem4J-*G9(&yopwh zo_}K%+N~k&e$BQ~R`iPMc?wC-r-##xlQTN9m-K~hdf$IKjl}ZciE?h9oN4pjgcRF? zRw3{E`3;0?pkWSNZgcXZnMdw(IMrjL7o&=DQ*%W~D)*6fq`#D>CKO7_<1=6esLCk|GQ#XiexOaIdPVJNlDj`86R z!(Vf};TiuS4tBmTeRim#8#W$4)h=&`HNXg*|7dghbHmEr9 z`cg`O=!BK?9Z)rBn&0 z+sFZ>CW{!R1dl>x@&^LCcw{WA*FQs)hE8S+))V5NF;qMR40xRo%zGqbl6;Wq{#b?t zfVkC?cbgQnr~qh*T{5s5Zak-E)c6L=?HcEEfd;hjneER;&yZ$FUHSA8z+W6a`4&(rth)EGNGW@n;E zrq8!aIaL!#_;H&$IgK)MdKjBjy50E!mutN>J=0q)@%oHS6&*6TNiJ`vldv z^1&!UbK%EyXbsONbWXO_`WdKA#$2~5;b5UY8VxA0#IM!WLI|-UbkX2;Cmwbu6Ppqp zp7@r~HG{ipE1eWx@3j%`AN?(xfDim&{OrPXiIb~H$8m*74Fn1Vyl7wau7vsCaxC{4 z;{93+8O)n)5Fco;gOmUr<1KOvpiGt$eW#`LtBV6bz(S+YT9rz_FY;x2G9xeXIqq0* zueXgT(t0KDy;M4mGyO#~hhh1M#0{(1M2pE^Yi8!KG?= zm!!u9K=ZLvCv*V^>jOqt>6#7B1p{BKM#K;LP66e_&T$5cx*mVgalBcM>Vv;EL0G|rEIPKMx6Xg zVrUS#luzUz0S715&z^vq`wDBB4h0uya=t8SGI~9c0&aXBZC_VD;S$jhwgXTz(C>zU zn7;Wu{>!f>*bl%;r0Us*8jxHZq;5Q&)Fat;+tb(S^Hl}aGBRGR5pnqum-!fGt0T2M zc>yeJsJs3plty48NQ5q#A{-I{9RI_P=)%6wv{ifoobq_T5b)LRUjt(T-A1mE|2>0> zW`!IUVpTUTH$T)yXS*R~&nvWy8+(V&Eo43sk61xP;Xfun`D6NcqK(D!p(gUfS8OpV zBkDa?ne{=OQ_uLJWE%HV6-lqGh$DXd#E)H^U=HyY8q^&Anw&5?^pBMB36QTsl6t`# zVTcX1ht`Z!73B46>zDp737jSLn_it7ZNvtk+}CJz_f-Em={BLmi%{$q!`PfM%v)jN z(~Us?bsD+onGM#WTpaPhjv(Bm|i0kv@LCNQ+WY>8qXt0@8Zp zXw+CFA_gy}ltMlU&x*wf1ETgTm?6iCg33m5i{gth?++65-}wjwuXls`8Dn-AFGRcoOcMCXe}r@?qY6;EZ~X=?LomHzBScT ziOy@TCs9H(E-i|%sC3o6uP zyx0ULE*k819Oow~Yn+o+w-E){VASu+F#^fviq@asaVC8a5KcHYD^%(q3o?qZ#u#L2 zd$4i4UF1)^cGl~RdY_%uN6NH4x$;x2s{VTo!c1bn$2s@R;yB)oO+L|Rgvycex`~vP zwMQE;SQM9HZ(hU;5cPE)2*mY32^#<8{^_;)$VTKdWg|!DF+3)Uj`JIu!0VXCTf0P% z!__8QYWOl+c#$2l>izZUmS0Ttm#Xx_%?wU8L-FPhC^E!&kertl)KZRLSxY(crOw|n z*wKxV_8CU81s7mP$Q0sxZ7f?^vmd&3&gfME5>3C+ zZYIpr-yY`$@Zo2wzu6>0f4GXndx1AHtv_ihJB_$8{k0)NhoZ$m(HgV&JR{0r9YlUZ+T?I$*HJfi&STT2ixi0nKYvpHJd^+vRj< zSIB@_mX^9!AcvB&%G%RUQ^xO+g8qK-?H?mj&cjKTll1MV=B<<65pEu7 zaO&5U652X>dF$Ai>Q_nqVw_he?UASpfrEEbE`iNaS=EE3S_ z)gzX7IExDuSE**wljrnLtsv zL3;(BW=roV2TFK7v#ueC@7VzjF)Hfur;}_+&X`t6%<*5TKHR7pUcLRcF?JYCJjgBd$7(Obj5_Ge^< z*R2o224g?XZ?>2;$Klb*CeAKN2>F^LZ;m9CNbVjQIpm^_6z04Ab4*-<+6Xou0fP+! zO7S~=#=T^N2U$%_q#&Waz_ELj_$i4q~Z zwC-$NU6MEE6b|{G&wlrvuNv8SzOCQHnlS2%=}W@!($|vU*|-Slx$oqg62z3IOuedG ze1^NQ+ZW#3lhCrvx-S2pbq!n4P_a;yBcG18cb5Va*A7cEmD?8`{vMPAqntq!itu(+ zmL3-WLovHb6OQjPHZ~Q%@Z5;s<(9A{t}bC*qHR|vyt(t4UCC}#AzgNt^2n=dXfF9y z$+_nt)`{l-5V~9Es>Hody`!ZnMTE#(j_*j8MR*=NPSf_Q5^oZdgB_Hf;)35~ zNjLd-iylhho3)j@(nV>1lHfFH#QfQ9N}87UGEii5Psh!0VPwLL631dL*~qtTc7L&} z^u-vBt$7ARMotWR26f}jw<5eJ@s;YSzDRAPy^i@0KINl>t(LuHDs@8#r{n5onI0z2 zDvrjL0nTv>;gxeQyQ|jdsO=#C!mvhxW~;-o!_Q~fL49ryw=5EK0cH5Fot*~iP2@)A z>q9k5;pwN5)}GvCqV16f9sDdk7)9TFW5(qDRn2M!?FzVqf@)hFL$c_M+-JNc3?}qW zZ#3v##_U?2GpZ`B!&UAvqYhnmX@vd=%3DuG6>mEPa`Y;fsS!nWrkdJ9@yj z5*Z434>tK@o#}Es{2jfd;e_i6Jb8xbbLD|YNiFALRQjXX<|Y|+8e)f(;`Y<4e})4| zC2low9)5k=JSng#e_3C1wTcw%d1$BGpk^AJj$7ejUhku(GhKSsAoC(mN3{O{5LZ-; zlX_mZ;FCW0Y^z2SexTM`eb}4CMe3MY@=kl!aKYNiK6k04lXm)hSJa+qDAzhFsXotq zURtAA<4U*b#o+s=)Kd7)5>0|h_w#EQr$N<9ZJ*03FgER0gnKNQ|89K3?u`JorL_+z@#0fx@Wd2T^y^F~@u?R1^f@EQg%9nf zC!fv$;E5>LN2k-zWGrp5^5tn06%eS`6K+hRG~Ai=HUOi@YiAEFU5$?mQ@q`G4!s(e zp;UiWAZbo%y24<2Jo&@t-r%0@6?wQpoJw5U>0PAFJ!1hecSVn{$rF5=WD6O1K5bji zDlIrIpp_H|>+fRj?uvS(%WL3p^|T0&3Yh41|GCBHS7Ns>Y*oH4%XH`u7q#@CS{u_J z+-yVCMmS!sGYJ$ytC#L<0)YU&;`l8_6?3OyRDGk*n-@N|wTSjuHq3-xB#Jx zfOlzFdB9JNamVi{p~7MFxf`E`jt>Why|1RRW#=eFo@IAvcZEJABeA1N=MBO^@6AN_ zKW6N*ZvY&-Jc(H(;a?+qk7%r`E%j2jLwq~M^n#~{r5rP73(Oja!qnlD)Z+Dh8xx}Z*(S@KIW2I5s0NHqNrW&Az;?T z)r?PJOlNX)zNDphDLBO*2hC;lcDJN`WbUUZ4=o#WtFn+}d-u2Eq$MEGk_NeN7X9@y z{!rftp1yN-9Hf^-yu3s6+f!bRJpSBa=fP5+)TnMkpE+S%tCv%vuQnH4rrsP?<2*?z z%kWhM-U|kf;x0aQA&lpCP(kDd3q zB0Q0Jq4$>%Ywoy$2YLV!QnAyoucFb4(aFn0Y%`+-zX5RG9sr8^;`q}x!%)>qGeX&Q zc^OM2A-Yiw=)9vxlQsDYfAs`7%>CvJ)r-RP7fXg(b(unr#mg?UFWcnnN2>9;{Zfe! zU8NzJ!llT}R+*U)tr9Us`7 zcy{SjlJ-(*o<4)aQVKpV^d=zlJ0Fd_It_0-bKP)$RLF#t9*XHI?Iz(925W1YB#nB3 zR7(K$q91g&y$^9Dwk;ulN#SoA+u*~Q*e+sJHO8$ z127j_Jor1}c`raE-*^u4#d^xQj3MK_YS;F=`!kPDzz}B+yb`Ul$&<4sx!Wy5lhc`P zroEXDyChUiw?u$n1oS29AoiVJ_vr{{yipz+Mm9fiB1ArUi3b%_q732nD27-tcLfnL zK_VC_F7a>{-WVb;Ls3>m1${^*xlMXQMkAyXTvS9U>o2+zGaA5L+7Uvb!jWUjL1|I1 zP*?e-(jj;P$K=oi_$MLLwMu9ilrO%cZ^i5Qu zreq_&3OO~UlF}r=G-oX-dTpa=n@O#NYeNbk2gCS9A5hbhkE3=3zG7N1 zx2lgnsjf36EmFKx_bJ}{jOx#O!GPa6%{HS_= z$f)OHfFo1MSjvb7>WR|ovyW|2S|99iB=c0CGxsQO6;YsexHq<^%vTh*&feWz$6})7 z3Iv!01CfPC4bqe;JeWL8e-7P){wNX4P|wL-*sG;qDXmVXrBtM~LT*PwK?@k@ z8wzqx1_fh4=~Pcz1C9^f`e+Bds)?@{Z5B!|>19r#QX2s!oI~Xl^h@9Pv4x{DU9hvpqW!BCI)L2vlC%Twy+kUp*Dn4SkDBrtb678&(oFv`G{Aj}W zK4**j#oGUJSI4|vZxO6$XfKrE2}eYn=J8!|#&8F%xMT}8&8nltgsW|L7LL3IByp6i zmZrYxw>&WMs089M)w1_+Oh1oN`yc++Ib)btra4PxJ#o1y>RSQ_vS{ws)pz_0Rd{M-myOruYH#QFe))vA%bX=&_s@`^XY`i_|RDQ4ar*ugXIF6zaXO{L%-wphSx(%3`hni`q)bUvBEZ-6(N zSAw(07Z{-88Nc53(VWOeWaR2KC0xw#61K6ceVh0u!Yru|9@;|ROcW=bnqWMcc%bgR z$Q#VRcz81`w$<&o@)xI3@&dzeuB> zAory=ZF8>^T%z)-^Rgvm^n(E~mwMUq47oV{X=A)od1DK=4hRl`qJJ_qnkTLp)>D6% zys=n#^5iWl{*NvDaN*&D!p2-ARx9wTU-B>c3d(NL;Ea^EAR?!^qvwJe4v8nf;&wy6 zT;vNRTLc5K`)b#$6bjAle_pNRZ5J7a`W!D2xi4wzCr_XvI%A6a#vNad8g|JD>U7!c z^W5ijo{FcV{NnGy5QG^rCIF3i%A8$kJ|5QWGtcTu7g zO3x!HJP@A{oPgG&m}nu`RdZH@Xx>C&;A{@glh~SnMT&x~XdSH7!TldCTzMeWT^F9g zP!V~_RuPhH5u%VKyD+UJdm1}q$(C(Q_Ao`VFA=hZ$kJE_p|K`0c7w=nWEnEdch&d* z-1|HC&bjxV^E~G~SZ25}ht|h&ogXH)1gLMz&bk%(_;H^*<37oiun;K7VY(MT?u3DN zV0ZS+e?h-PS<-e4_-YFu>G^q|Jht0OiTV~Qc zL6RN_1r>xxr=z8rzOB^T+M*rWbmL5A)!%&e`dQh;oGO}a$`c7s?)X_$-~dj(@X@ng zBzsAwt!joH1QO3i9lj&pjPY*HaxNPr3J4({3Z?DzyO}aGN{^k14&7gARKAfxFJw); zq&^ZDExz)W`#JYoFg`+Z%BJ%@EyVZt$ydJ}j6(W5U;e%I%$>=fR*k|hs*5={I6Q-5(fKdbs-kwDg0DGkel*x=%N>vHLT*O&ilWA#Mmx7VTFKe_6j zO?zL@(8|^>kXC?gar*6EJAM&ncSq2e^=}*m-VoUet50k0=@*AX&kPRA?16-j3;hcfYLc7)U}*WKG*t z%$yZwBlxHMBNfbqf~Wy|CJcXn?Sze;bOkjZ+8NaoPTF!hL*LXUld9yPU8MBxm*Pe_DiBB>B- zs>JGCVrQDAiPpRiwZYYt-6Fi^aK6?|@=-xnl-)VmTXQIn(zZ#AP>(lRw*qx3p!eSt zr+CgvpofH^p8gUpF{ikeRUNgvoJCTdyTfv+6=mq@KWaal-|q|3X9BraMN!E+1np#4 zEU`nvq+J;274lqM&m>Pz@yXh`3#4o_8z3+CbgGJWxlOo8_*!ERv$xunq3hUBrwhf6 z(J7+$9**eVwnOM#Olr3oP=@l=Ho(-`*5KvJ8*%zQy17jO@KczShpavKdHoDprVdJA zsk(PA98Fus#F+Ooo;$p_i4e^|RT_En*{=x&%0j{`;?I-csl`~{aOh7#k?$skhYKbm zhJhO)gXbHg+#Rx_mxmBe3K2Op!CrQZ7L$vIjy01?6j6A9Yg^@;|8M39ef{efl6T@s z3Ww?SD`n4D6#(L|BrE7-_a>(|?#eZPU$Nf?8R2ki4@Vjtu`*S$HY)r=dLE5ClrP1veZ>Z%1bj>7aAb4~Zs(%D3N&A0Ya~cD_ zZ{QTjJEHX-;q_~$^IO5Js?79n<$OXU#&3$$pO;WTHs-y<_3Ny}Y-fT~ng2sTZP0E? zQZaIU`LeQ)?a|ZV?w{$FtRCZ0xcP6|Z);Be!BuWAp9>E9XwolN4nk^{(6m!rO-Z>-OL{Uxf8Di;YLrrBO$ zO0^2-zf{A;+Y(!t^=0zyQq!S^OI@s!Eq-NjbT_V}p;3N6x=)G&`kDi^-&M%PtF`m{rQih84GMCoKbW@4@`GINLM45@J$ZZe&9!?eUm6|@2YdN!=ksWKO~Hah$xT0789bP3%+lH^Yx6sI zv8z`OOadC`o%Aud-M0{LAH^-HDlXDg^Ae@lYK63V|7YiX9mr|^+`k{p! zCI7QvgEzjVF7O5!w9KZBx^HY;Hv^!mXWSdsrLFd#xfbL5IV>u^8Y8~awucVn%I|TgJDXtz)^C8#{azMdus?lDWmogZTv&5e)C-h^gsfm(CZnrAEng+t6)+(`fe(WkWo7Ns;?R*8%cA%d?vbV z3mbPa1O!&zEXRBU%TRWcufSx1EInTdH;o{H16hw856_zGo-`k_tQ|s2U$N z9sc7RZ@SX8KSBobSItzvKYh_IZPXy_+Uy{bGDk+ZrSmJdOUd$EU2B%gq>)==+n6z( z6TTh;1v!&=TJGZqD(f#mVA$P@t%DyJ=C!>yrSJqG46{0=_1}dwALlJ7Dyp|IpANt? zNxilj4${GiVKtO^5<1(lAC`>Ww*rJD&!9?3?C3{_LGM1+m&NA!Qbq0?AX$Dt{K1js z{m#O|R8{frmHfdne!)sz|0zH|`Uv!lDN6w!G1TM=>*Psdpe;-FO|av$93tA81OW2< z!QMaGNEZTAgGB@z6NC0J>z?0cHp;*s<~%B_P)Nz7brVEkAtiSziD(1CzrgRtw(q1!8EcXw*n3YA`6YIIF}Dq zk8Ndyd1KpFl?zM%vB=htN|zf)f+M(8fG4pYG2Ze}N;;GhUmM4HQHX&MEjb)Ux6XYXEJ}E6m82j{|BFV2O>) z*=KP3&F5TrqU@lQ)2I>fbz8CMQxIS#26C2#$Suqx-)e$UNKQLv!c7CdYQdn)R@C`v zSW}Ls_6l!oDbPaVd>$Mjv?dpIUJ1|Fj6ir^QH=*xlLcAp8d=HA)ELj)-kqi1H$ z#v$fkyN;nw=2_$#f)Lcl`3?u6evuG!Mn z+#}GimvtNO)R3-ZPCU*TPxNP>CCVdZss2o=JU|?!se-bsad@CiQp=MG&b&dCuV12h z1*$B3A;r+DMT%k~@|QS?+jX(8Bz`LF4`!8ExDiTOZn^HUw=TnErLvp7=h(PRRtbWM^G&9~~9 zP@MZ`VWdY&JYrbMgqnxqbmb>-{lvhHOQd~T{X@gB{kz$x=LWd)^+x5GR5dp&XzJn2 zXqGRMXqB!8#OO07lvMObe%fS6Q$#M2ERYZ^k-h88*jEVCOcC9ZL6OH~YboqH^L;m7 zA^p$d8i6}n%Iht;H;%1*z`50c@DRB0GcDZNAdsN=#=!&1E06(!_^?!GH;$W)HI~Hi*C3D?M2bd; zKNCQMK>CIuOajS|!hsMezEnC6I&-H93Zas5(EZvr2pgses6$W)lqMX30=_UL3X9ajqO>4CK2X3Si|m7SG~M^Z9x%c| z4|6z7EF2yj9IO$nslj0R!jTvZW`hHTf&mB^JCx2Lguv+R-+nTfQrILGmC2zp=#ULY z0+A8O!9f9UzlY(^{6$M=|40>(Gp964r;o z@+SZxQ~e3P6gZRa3x)hjB-VsMW3T|jfOneTys)vsTGH7Z0-Z#$G{r%Is5PimGFFGI ztwqp6kzhy?fdbQ_Ac!zsqz@XVtAiqtC>R2UMAG`X-jqQK+^Frw`tMRFGe`i(zpbJ) zH8p*F&<0Ad&hK_{wLbZ6nbB%(~$f8DJz4w9!7u z4TrQ)x-c!IE(NBmOGdyj+89kF0)x=fCTMNw`I|(r7F0G+ywD$Sh!Z8?#~qCd`KAgi zfwZA^9F(+CW(pbl<1zJb^6_6;{;@vzFa;p}55@m(oz3v!1QS>kBVQnQ|AoBZ|L8u0 z9zHZSGIa?l`EW|g?Nz7He?pMreN`K=_7&kwF!cz#O$qT9tnTbrmgsHgV6Z{3!zan%i&RXmLq+GKIL~~X2K)KLnC`Ie2HSwWlLG6a}J>9Onx_r_E-pArii(SUHoAFVFw+>68&aw`9FGk!P>w?|@~MBj3-+EiW|tiM}5w3)ytz<^a>!NYq{wGw9IYP1e-;O0Zi#6?y@EC;*JO*U-XM; zgAuQWEkjeElk@GPV*)lsN(+XqvgYu+q~r``cDzb6lX=!H#@>wP_v_Q_aIBU*w8P*S z`uWOP(TH8bBLwc+q|^pLu#GE;(pZ(97AgCb6Fy`NxyFA1T@mzIuZvno7C-;uCRT^=ALNnvwD8=A779 zQyPzG&xA&dJuzQq&Py6b-Lj9(NGiIMb6fHdvhm!3%q9nGIm1+#q(QAmnuuE7!thOj zqB}e}rCpVtm%-}NRZmE&Aus6>wiSgl)x)8I?Ax={1{dw=k28Y%7fmGf{lI}L&G~bo zbLA89xRIQ-Ekwh}nrlL6frn3~zRXK`riI`3e;)F|K00}J2a@n19xgaD+|-okjEahBnqKM2v)cLK6IqRC`s;&z_6^Lfz2IT!9eSZm>;Huro!Lx?;2U_Gy>6?5BdH%D)?x~T0LREvE3 ziGaiOAr zw4syjVk`0S6M-mbk?0@CxnhAskg<$Q6})x(+G;6F^4Da)y5{CQ7Pr0EG&~^|Sbfji zSM{_*G-U+Q#_b9-l<+yC6E+|Ah@VJYO(Nf&8aZUmtsI*adEy@96KAO2?V+|p)GvF> zWY(RuBY0c8^3YGpFBD08lw>i;-2rl9t6w6n4^oY7<2r?S_9STrBdsu$9wuuqW((wvcyQ$xeab zvm~K}<~;nV&x2`pHp|0c0p=NmVs72)BO=Dh$L0-6+XUMA*(DJ>B+Xq|E;N_e0j|ms zUz2OVtF4snkQ(ewdAKMentRjR=Q_v)dJ#MNab0<^NO|bgsNK7-3mDPY2JeJfN`kZb ztd^lzVZ{fvV@td1&z&+ePIE#P^2$h%Ix`Y;4r(Z=!9KG}Jq-=j;$w~)k6*q4n#mGh z8|d11>-4yMTcnXgngsX5@>N4Yrby%E#W9Ak?TfJGur8MVxjMM7c$#$XlP}ks9!NiU zwDRgm+>jrTC9l(@x$Lg>dPCkb&panj;Go4NB?}R5boa%%!?>ye}&dT^U+gU{94Cqj@_qibvUawrPJ%Y{UWzc$gJ3ye~t#x&+gxLmt=Ng?XITSp2?2R~_UYhEtzjf!RxK52s&vzjr@Cyf8j!x^yG=3dmPc)mI04Ak6%}YEhRdudcQO<^mOVmvppv zvb5pmE?s4)dD5hMYQj`I_S5VwPKN?iG%!Pd+Xc7hqKmBdT1okr0!`liDyWN61kj$~ z*vNYEgo9&AohrHu-dio2L^`1LKUl4HZBdsZM@?b)0a!NtYFTrHF!Dm9b^6$L_?X@lh z>bM)>H6`vQPBy23B?frkx)dW}cP}5lU3ZU`bY|a7ou7&|!Oq{6r>s$|q(n|&oHnhz z_vv!bhdM}UNm$aQPyH_)qKnZU@~+?3T`3tH0LK0L@y=0QrubW&X`FgXx?YR=ZF;wU zL&*-5;WK#(3{-zKCVMc`5~}^yAvz^0idsy=&$#C)FUO>T^)s%__a{Q8!zCf&rYA#<@H1VV<8!vov&I>gWu21&d%UW)2~C+>ne#GSBIK9} zN8sl4(zGI{x7$`W*QBkt8=eet_+7>wKclPX@P$VyZ)I653x1~F0>6no#*!D8gs>|n zXh_E4_ws!2)SK^GJ4Z8A8`VOtz7&|>rIu2-1aH<+m;uUu{O!QqT(TqVb7n>d?mmm( z+UpA?P1^g)ZoaQ^amI3H?yr^*?mW}ZD@i%6v*n37fE3?Iq`#1nWZiERxXQn<$E(0n z<&C5K4$NElSV}1_Dwk|>nVVv|l>Gr?@^-i9Y5q@zRy=Ei7f+99GLHgD`Aq)0Zl*AF z*SZ9hpPK(Ki9;oIc6B8S>f+LPDN3QG@0NwyrA$kn@aUEHc-V{C<)oqyP>sxjz2T(J z$#>)kybU_OA;CjD6$3)=c~HygQLW!Pm41du-~YLikdr8wdf>x5vHHkJ*F=xj8g7r% zqa^&cWH~K=m5y@-fl6b#?+kjZmB?A1R(<*X~`Hd^Ov||mlW;?BPJv%4lHv<*J(}NeIXS>`%P?OHE zB{om%B5!56ZYyi0d?jEd6-sNeH?FP#i|E-8H3Qv$J-MjkLcjE56Wivf;jFH(H|+y< zan+w-nNy=k&;7-NYI8HMZ^UU{^PG2bU5xc~T+q$2S-8#@*foH;^0n6-3w%YM}&>oERC^DXr0V{yvem|20i}6#zj6areT)Nh>h{HI`UZ<8U&Ysz%t+amrdoyF_c?Tod9*0z zkGSPqX?U%gdnfNTS#|eC zS#^)tiFRB=i8@dg;SC4VYaWGHf=r?V_rAhPeYG^dfeP*&nPoE`tZd>?%W{Az@QXPPMpV3MrED}hpAQflFK(;K z)Z5x$tq-%ctiRvYUjGec!T%ERhsVQOy`*$yle{1d_vvxX3_CP?&L~sr(L5Qlei z!R-kSCF6|LHPuL(np!vmBXyFdwx+I^wl~>F6{oGKt)ro-4Sm(Lw2ifNjkR@ge|_X3 zj-lQ@#;(@3fANFvOy&K;!$XWUG-x!MI!#ACIMi1|%gD%RgNC-Y8iY^_iwX)SMydsc zZU38sH93qF>K_vB9~^|+ph)xzjtDoEhot?N8i67IkPQm^%T$ojG$M&18d~a_8*2Rl zdXxUag+zo>{xJ6@X^<)8Kypxc7=+dO2OHuS93C9z7yN%A{m=4$VE~!e$>|>+|5ld3 zz<*eTh1*aeHU2WlzeR@~iV7iXxRS$yBSJ}J8!9B`_6==9jQ50+iQ&Pahk}DCe>=qNK4aLPtRCaOGQ)HSX1*~ zP^VyTf1jv-3)MH)HvBJ8C~&-q;l%$h*qdbR6C4^ygjDtqB>IvyLV|qdasL?7cuz1T zI22+GNvHEi3MVIH`=GFJVi1XJZ*3|MX|3+>?`^DUWZ-Q?($-Vc)HKpo({rf}xq5L9J{?~LivTh?NjP3lxAa_Om zl@kZar~VpI{BeKcz?ewdh;LJQ(uQNn-tvD<`~R;k@Gr77KQcu0|KaX`!NP)l!fC`% zvZXI%t^Ykp(j&F|}@Pk2~jQCwA>hzOm`-R?*b?SZeazOqW z$>+%NU22XmAB4T=dGKnV%|q30shzjHQn#in-nL66C~bm=9-GX_Q@q;yHl|l^s9?H~ z)H602HQ0(;K03YSd*sk%Qqu>Sz)KE1=%Ydeah8N8z%K2(AIrD|rc#@!t93tr888l? z+&#fui-=oWkIF8S9fjF>#WG~*g>;$W-^S9PzlgrX4k{!_fFd)p_l?>W1pQtL6lb18 z{6f?}^eGlv64;se20S$A%=a8#E=|hDTm)9DU?wC)(@$}(%10?@Vz0N8cC8ei zBk6?R3Hw-P{5b=aZjsP*K!wiBm}ZO>n_wQhz@NHna0r6}Ki4V-+CHdpsGOr54Yry? z7aeP%zYKHcNw-cg3x3ErLG0p4jJZ51LuMY=;O4I_f_9Vm?y1e3t)L*ddlG-96xm;E z3HnyQ9Lv3vP3Mq2pH4E=K=|bXDv#VpToxx6?@#0rd{Cpp(fAbSrB z=cfpf5V2~Z>*3w`fLZD>{-6n&WYH(C9BnR^bx10+I~O;HY!<%~~i#zrI$b5zU*OD6S5(g*CT-olkr8 zLJ;i2$1LI!%@Bq%0jtF=8nWpKS$OplM&X`|FCYaRCaxo_8+tqSb4I>M?`^dzfC;oe zs6aJ~+Qc)Db3D1XYY1oc5p39s4(lcjCtp~LUNL07Gs#qdLMa9oZ*8(tx}rp=5#Vn& z6z^698DOK|oTIoIea8F^+axpE$_^k^?q6#fWhCnoL^ZR{T$4HQ4H<%^W;EA8u<#_3vkC}?9^AWru+x zGy&(XbL_K&a#lgCa5?SNfoUv(pM&R^;?)*Ub8+og84?nW!6%qmokbFjMX#23Q71;8 zf%23vhozyZp=XSxle>QshCOS*YJ!lJ&5@{|*trDvX8&JEmRSf)GySbj!Y8~)dKjy; z|GY<~WW4|AY0d%8DGm<>eBKtMLw+oEkJr6lThx(nI}6#gV=i4_tc>aIH4XdzXu+u* zO+Zk#1>HwJzk-%V?6dz-bfRtBOB*jO{r<8?F+JdV!7m2W9u-5XH>j$3Svy3h4Lp%# zoP^i%3^y0N(&jWXYlAIUA+Rwu?D~iPwZG3g|W+q#FWR%RdY!-Np}<0j*Nw9Yi%+V4fsG6UZY)0 z{c6m~xffYd?QnA;fU}}>`~wd+n=?=`%DaMC-h-=hY8}K^w5H!keeJ>#0n1oo!LGxG zlGlg^Oo-ENLGHVc)2fIj0ndT1vG^@3?m4rYOKk8z7Trp(B_>kjI7roP%vmXi_e{{o zF=yd)4#egGvVJBf(SsHCdN|J@y~EjcK&@1-2p)G{Mzs<&%9Uq}ntXV#OBpJ-d<1_m z>s_4f+g)#l;N}^}u&aV>>GCM|%8V$ipBU?g|&g}url4Le*`yt8eDex^cz2x=r_MkV-xv%-Bu*Ff&82pvP zP^GzdN}}2$qApDOo_^-}v;=M@ELoP`Vvp2IfP{RJxR<`@{oxW3#y6v>zs+Ky^J9?hn zS`~`omDgKBskb$dMD`QACc(_zpM8KqG-e1Jj|DMJy#wf;uyRUO9tvRG)Us*rE>mC2^ALtGt( zsog25Lpt<`!V9SQ^Iq4`1vwM;`7q|pUUr~D%3-Ds!wvtO?kgFU?E?h7JEM0kv$ow> zvf^9^zAA-l~otqmYOP=Xae7$o8s9V>P@}n4h;Fir;k&6=;)=U zJLmHNepX?uly4u*K7CNa7w9DUE~JFNLcL3gjXoE|Lv46lP|w{ z(xOpVPUy^~8Tr8n5Qdeb2A9-e-+1*GFjjmsZp>#PBRr3Qf_;S(*U63miP6bIWy=>n zmRe!ZgeBN0!`tP-J3ZjQuf0*ifj_e-`{R4~m^4YzOh^!}H5@sZ&q1v5;0rea1l`wVa%hfO?#I^4jYd&9e$OaGb z;WsDzP^{{Cyv)++NyAdZXfG#yt5N;kInLb$dI-G7l6s3B^mNzEMNCHX4wT+wj0F5n z#DaC_hNku9-+R;(Q;kp$<3oD8U7^Dgv#Fp$Dws(bSpHW7j33f6WE!A61E0`;AR!<=c=f`vZT5N^QvgGQSOBtd{B^u&5HukK_0mdSPKs7DD?J#kMH{ zH4@OSHd{0fCU`mps%BfEd8(y4yxMKoB{#PJwkSwr?IV2O7BDwpD$zg~y+xv#g=)Gu zuxl2Oe2utlN!?)3eOHK8L=zS~`a-Z)D`D%4ue+7&of;5!M0*2{G56cBuI`-8J{Fp= zZO)9~gV_HH+_4Y2Y|8ik8Mm^PDI4-so6lA8onh z*Pr$Z>jlTZs1){-olAS2A;`F1zD@~BLx`ZAMA5~K28`yKUDzxzkSk-s=V%qkx64&` zTOTl?3`_Rj-iFllKwBtCU5)0=JcFg%*-|0*@hAdW0u&y~hD#g(d5OpkV{X6+rGE`@ zZOA!e)*-Y-sZk(!eAKd3Q;NCGu6zk`4oF~~Y<+{jGw+aux6ZGUVP(;Tm3!!`A{P4z zx*-Z7!Ym$E+=W?>#KQY)3Ue_WAvQ`O>jr-WEJX5S9$*VALnLLZnowJPkO{0~$$5z9 zKr^xe5c?!@%kHIB!&=g7G;UgtKEv>!cY&3<26}JN(`qZyx%;f9s&{?bd=efhx$$b@ zJ@56Ko<@J3ImR5f;k*P#j2fHlO6m~&w_}fZc&pF_>Et6lz&Thv&sxsuA<=5M5^$n> z-qc!BD|HTK&W3Ze{noIA6C5JJ`r&59S2DH8T88HOdqs7*MJT%cUu)#s1AB=tPi07c zCNa!!M8M`>@*BQ|(y6E-E=wQA#jNsuF0|2Ao)KET|KXS8V;P6bra*C*1PBmzQ?aQv zBJ_t)V!HB0{1lpVSxU2=g@^O5Asfu6lk;6*7}y$DCi$YRIWt=CQ3(k4t&6+=b}G@K z??1q75pqw9Rn9H2KKj1(tkDWgse0XMJGyx5+yx4$t7j9(dKOozYgM$i|K$2rTP%17 z%ze|5eP^-%o@LjVFvnsRm!G){_6^pQAFFyr5`KOWV|9Zj{U)!!rdx$M%7ef3&D>j{ z`as#|KG0bg+vTYHGTyETz&tn1Y!Cn)vTYVL`Pi){$x6%|Ap0GPdrohLy*nd0RC8;6 zZ)KZ_a7v#w6Hq&3f><9~6Uy!ZmX!)xgv6$mM=kBbG26H;>(VkPa|K6Ww#O{@U13V_ zl?QD%1y^#RGAnsvS|~?>E-bcg9L;-|Ka(ph$o(Q?o#Su`0GiG$DTw;p(l~HPeBC_i z()vt$0Z7sUB;i$@!4{xxj?CI24=h z`g|#+^G3`|u}{T-@8QdN_E?b1^*VJ*z`bkdi{vKJ=2g=alOrSR_j9!s0J_}u;WIBT zKcqV~COic%9Q#eqM$SDy51)S|GbOFiHIp=A!#ASBR`w`#$OgV5a(y>nc=(VJ*a(%| zVPtKQp=6I|LLsdGjslt^XdJ#7{VE!)T9HoP^?t?Zy~ZkIWVya>)If1WFft~rQnVwE zeTpPsb-E~o+BCShmAQT*FI%5y1b+Fow}nlp!n}fBS4R;WeYmnfZ+$Uuj=O9|hL-P@kl>c`bNI z);$q<;_kX3tX%H~IVx13gf0qKJCxCWf6^H~FYRlR5U+GH*4W+7|#LM8FI- zQ}5IKdnVYZE0QmolG)42C2nmVt|sCtCGXxEVY>P(xH;y7E$cXClzHhj7+vpOfn}wTKwyV7 zXAeH{^4S0#Xnn%5UWj<9PB361v-J~bK1dkdd0#kOkaRd{_$W+SgVccL%IgZNkSo}l`cncI`-`IK~Ur2>6YDC0ECq? zozmN4@o8UfeI4i?{t25TsEm6D1ira6%{U-hSyRAC?GXOTdN0JYh(N1j3&_@46N z<0n-LJ;KinAwDJTnAOvMYi+%6TJUHV0Gj=94rrI+@iq!U%$YK&H_qDff31q|ECazUKfCcyuzZ z?;E@1hX0;FUAZu5aJsc?UohpsY!0~XbMkU@5O0UqL%L^`HjG}SUWf4bbg4qE{Z@R9 zS7C~khejmt;Ozw*cP%3RIRU;vqugp>Z3!NnLIQ)Xt6b>#k30@25xWTT?bAnh3kS5F z!p)g+F`2qPF#VPFfx8CZ?4Ul6>_myj?~be}2}fiGu@PO=o^5sGAn|JdxtYeXxFr&j zWnO*s-j!p~TPU}_)w?&{*$W2(q!%>jsiMmd;FnWk&m78mBF%B4IJ{Y#R|=@UNJZ$k zP3hgun3^?c?~A{US$TgkpvJenfcNyn*TGYl05IA<3yyljA(<$wh7IPR~CO}sV z5B1FK_?|#c1VD$^fm|AD;K2MN5 zVs@BxR;J7E0O%UTU!UB(c3sa;xVLN$HR053_5;9P#L$7!AQrY_l98Z1+HtQYF%tlm zTbJ$1^XO;CmAN_1{es6+Yd7JaA=oV$I)xvE?Z+)CN#56a&Clilprj(y^yoDa&Qf39 ze0BLbEq!}dCKkZwy+S;FeBg$iL!MXF@0Nmf;iGUs<(8qeiQk^mO=6@;i2_U8PHK%q zG8&*f2bIAgmoKc9Xj$<@y--2toite8LL9g4RSQ&ZzU%|icW`owtO{X|Xj|u;nZqnQ zl|%GdKu&?vB6O+;c>7C(gMIbTdEue3A#Au&vVn~S*!~X;iVu<%W4^<75Y^t62)8O) z?A?#p&X9}Yl^?((3(^Z|!o8d%LtkL#H*bjG;M=1L7gE?|am48#S2uqUC~h=i@jR(- zKxA=Lp*BTfxacQN(uxRxH(eIzSTnO-N{fC~3Z*|wY3M5zKm*+P@hUb^Aun@%{s{I~ z6uWB8k7G3Ea&-H$9=(qug8 zNRPOHY)XyQ-nqH$gC50g-IePXZiy~dF(C|{y9PuXb;^I~g*OR#I$2yWK57FUpSH36 zZOY)kPw&Y>?Q8AJtt|rc!yjd1EkdPW*V^y4zKSWXl|`y|+_hM0J(dKuI-*H=JicB_ z$noGUgXb5$n5p}*u5i2iQq?Yz*unM2vS7oTx`NZFr2r23Pxm_W0u0>C>d5?cy`DEJ zKW!;yMRBe+Ots}8{OPC|cnW{NcBFum(vIbN-=1cfomPo$O@Y`n*%DGXk%Y@(s@LxT zIjsFZuQGU=-nZGKiz7x8WWu9y)vq6M$?U40PSo#4Fp^_4Dx+6;nTOgo zC0MXQ7l~ZPyJnPcM;xe%cbLm3rd)%*W?3g!&KJW@27xVJ{i+H$sPtf1A5zzFHUY TAJ*LXXW8Dy*}B4taOOV%d;_>F literal 0 HcmV?d00001 diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/refresh.png.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/refresh.png.meta new file mode 100644 index 0000000..f2e5085 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Content/Sprites/refresh.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 86329eb0d6a3d45678f314d516488440 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts.meta new file mode 100644 index 0000000..724192e --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0cd6e0473de924504b3ed88326cf4670 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs new file mode 100644 index 0000000..49e4e5c --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs @@ -0,0 +1,43 @@ +using Cysharp.Threading.Tasks; +using Playtika.Controllers; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameUIController extends ControllerBase to manage the game's UI interactions. + /// It listens for events from GameModel (Win and Lose) to trigger UI updates through OnLevelEnd(). + /// Initialization includes starting a GameUICollectedFruitsController to handle fruit collection UI. + /// Cleanup involves removing event listeners to ensure proper lifecycle management. + /// + public class GameUIController : ControllerBase + { + private readonly IGameEventsModel _gameEventsModel; + + public GameUIController( + IControllerFactory controllerFactory, + IGameEventsModel gameEventsModel) + : base(controllerFactory) + { + _gameEventsModel = gameEventsModel; + } + + protected override void OnStart() + { + _gameEventsModel.Win += OnLevelEnd; + _gameEventsModel.Lose += OnLevelEnd; + + Execute(); + } + + protected override void OnStop() + { + _gameEventsModel.Win -= OnLevelEnd; + _gameEventsModel.Lose -= OnLevelEnd; + } + + private void OnLevelEnd() + { + ExecuteAndWaitResultAsync(CancellationToken).Forget(); + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs.meta new file mode 100644 index 0000000..b594638 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cc0dbff93867d45ed9769312e18dff45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs new file mode 100644 index 0000000..46ea700 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs @@ -0,0 +1,22 @@ +using UnityEngine; + +namespace ControllersTree.Samples.FruitsMerge +{ + /// + /// GameUIView is a MonoBehaviour representing the UI view components in the game. + /// It provides access to PopupsContainer, a serialized reference to manage pop-up UI elements, + /// and CollectedFruitsView, which connects to GameUICollectedFruitsView for displaying collected fruits UI. + /// This class facilitates interaction with and management of UI elements within the game scene. + /// + public class GameUIView : MonoBehaviour + { + public Transform PopupsContainer => _popupsContainer; + public GameUICollectedFruitsView CollectedFruitsView => _collectedFruitsView; + + [SerializeField] + private Transform _popupsContainer; + + [SerializeField] + private GameUICollectedFruitsView _collectedFruitsView; + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs.meta new file mode 100644 index 0000000..f1c1420 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Features/UI/Core/Scripts/GameUIView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6815a37090d984807b4af832ec46765e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes.meta new file mode 100644 index 0000000..7c1c919 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6d51a30a6e6e476ab2343a453cc28d4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity b/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity new file mode 100644 index 0000000..b36078e --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity @@ -0,0 +1,248 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &1763343937 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1763343939} + - component: {fileID: 1763343938} + m_Layer: 0 + m_Name: RootScope + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1763343938 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763343937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e7ad20ae2d7440c6b3e2e99ab49e651, type: 3} + m_Name: + m_EditorClassIdentifier: + parentReference: + TypeName: + autoRun: 1 + autoInjectGameObjects: [] + _gameView: {fileID: 1847860521} +--- !u!4 &1763343939 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1763343937} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1847860520 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2834930602603086173, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3416476144409564023, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + propertyPath: m_Name + value: GameView + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} +--- !u!114 &1847860521 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 762718665078696411, guid: c86c4274b83dd415389c40df57c6f2df, type: 3} + m_PrefabInstance: {fileID: 1847860520} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: aae241492282e463aa9efe7e1b975bca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1763343939} + - {fileID: 1847860520} diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity.meta new file mode 100644 index 0000000..963ff8e --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Scenes/DemoScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8c9cfa26abfee488c85f1582747f6a02 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders.meta new file mode 100644 index 0000000..9a6cd79 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8532401cde4d8417e922714c66d06b20 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader new file mode 100644 index 0000000..71f9a1b --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader @@ -0,0 +1,70 @@ +Shader "Sprites/GradientShader" +{ + Properties + { + [PerRendererData] + _MainTex ("Texture", 2D) = "white" {} + _FirstColor ("First Color", Color) = (0.0,0.0,0.0,1.0) + _SecondColor ("Second Color", Color) = (0.0,0.0,0.0,1.0) + _TransitionPosition ("Transition Position", Range(0.0, 1.0)) = 0.5 + _GradientWidth ("Gradient Width", Range(0.0, 1.0)) = 0.3 + [Enum(UnityEngine.Rendering.BlendOp)] _BlendOption ("Blend Option", Float) = 1 + [Enum(UnityEngine.Rendering.BlendMode)] _BlendSrc ("Blend mode Source", Int) = 1 + [Enum(UnityEngine.Rendering.BlendMode)] _BlendDst ("Blend mode Destination", Int) = 0 + } + SubShader + { + Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} + LOD 100 + + ZWrite Off + BlendOp [_BlendOption] + Blend [_BlendSrc] [_BlendDst] + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _FirstColor; + float4 _SecondColor; + float _TransitionPosition; + float _GradientWidth; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + float halfGradientWidth = _GradientWidth/2; + float4 col = lerp(_FirstColor, _SecondColor, smoothstep(_TransitionPosition - halfGradientWidth, _TransitionPosition + halfGradientWidth, i.uv.y)); + + return col; + } + ENDCG + } + } +} diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader.meta new file mode 100644 index 0000000..eed7828 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/GradientShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ca7d927c60b9d462084d2ca005255890 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader new file mode 100644 index 0000000..f7adce1 --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader @@ -0,0 +1,92 @@ +Shader "Sprites/ScrollingSprite" +{ + Properties + { + [PerRendererData] + _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + _ScrollSpeed ("Scroll Speed", Vector) = (0,0,0,0) + [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Cull Off + Lighting Off + ZWrite Off + Blend One OneMinusSrcAlpha + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile _ PIXELSNAP_ON + #include "UnityCG.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + float2 texcoord : TEXCOORD0; + }; + + fixed4 _Color; + + v2f vert(appdata_t IN) + { + v2f OUT; + OUT.vertex = UnityObjectToClipPos(IN.vertex); + OUT.texcoord = IN.texcoord; + OUT.color = IN.color * _Color; + #ifdef PIXELSNAP_ON + OUT.vertex = UnityPixelSnap (OUT.vertex); + #endif + + return OUT; + } + + sampler2D _MainTex; + float4 _MainTex_ST; + sampler2D _AlphaTex; + fixed4 _ScrollSpeed; + float _AlphaSplitEnabled; + + fixed4 SampleSpriteTexture (float2 uv) + { + fixed4 color = tex2D (_MainTex, uv*_MainTex_ST + _ScrollSpeed * _Time.x); + +#if UNITY_TEXTURE_ALPHASPLIT_ALLOWED + if (_AlphaSplitEnabled) + color.a = tex2D (_AlphaTex, uv).r; +#endif //UNITY_TEXTURE_ALPHASPLIT_ALLOWED + + return color; + } + + fixed4 frag(v2f IN) : SV_Target + { + fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color; + c.rgb *= c.a; + return c; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader.meta b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader.meta new file mode 100644 index 0000000..f49daed --- /dev/null +++ b/src/ControllersTreeSamples/Samples~/FruitsMerge/Shaders/ScrollingSprite.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b62bf4f62333045a38793f9915535fc6 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ControllersTreeSamples/package.json b/src/ControllersTreeSamples/package.json new file mode 100644 index 0000000..ab1f666 --- /dev/null +++ b/src/ControllersTreeSamples/package.json @@ -0,0 +1,27 @@ +{ + "name": "com.playtika.controllers-tree-samples", + "displayName": "ControllersTreeSamples", + "version": "1.0.0", + "unity": "2018.3", + "description": "Samples for controllers tree package", + "keywords": [ + "Unity", + "HMVC", + "controllers-tree", + "Hierarchy of controllers", + "Unity controllers" + ], + "documentationUrl": "https://github.com/Playtika/unity-controllers-tree/blob/develop/README.md", + "samples": [ + { + "displayName": "Fruits Merge Sample", + "description": "Contains sample for small merge game to show how to use controllers tree", + "path": "Samples~/FruitsMerge" + } + ], + "dependencies": { + "com.cysharp.unitask": "1.0.0", + "jp.hadashikick.vcontainer": "1.0.0", + "com.playtika.controllers-tree": "1.0.0" + } +} \ No newline at end of file diff --git a/src/ControllersTreeSamples/package.json.meta b/src/ControllersTreeSamples/package.json.meta new file mode 100644 index 0000000..1058431 --- /dev/null +++ b/src/ControllersTreeSamples/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f036fba1389454ab88bb59ea040bf0b8 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: