From 5c6f9bf3a4e8b5e96d9b617dfa71e3cb35d813a1 Mon Sep 17 00:00:00 2001 From: SepComet <202308010230@stu.csust.edu.cn> Date: Sun, 8 Mar 2026 11:27:51 +0800 Subject: [PATCH] =?UTF-8?q?RunNode=20=E6=8E=A5=E5=85=A5=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E4=B8=BB=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - NodeMapForm:节点地图 - NodeItem:节点入口 --- .gitignore | 1 + Assets/GameMain/DataTables/LevelPhase.txt | 32 +- .../GameMain/DataTables/LevelSpawnEntry.txt | 32 +- Assets/GameMain/DataTables/Scene.txt | 2 +- Assets/GameMain/DataTables/UIForm.txt | 7 +- Assets/GameMain/Scenes/Main.unity | 2 +- .../CombatNode/CombatNodeComponent.cs | 22 +- .../CustomComponent/EventNodeComponent.cs | 13 +- Assets/GameMain/Scripts/DataTable/DRUIForm.cs | 48 +- .../Scripts/Definition/Enum/UIFormType.cs | 11 +- .../Event/Game/NodeMapNodeClickEventArgs.cs | 26 + .../Game/NodeMapNodeClickEventArgs.cs.meta | 11 + .../NodeMapNodeEnterRequestedEventArgs.cs | 43 + ...NodeMapNodeEnterRequestedEventArgs.cs.meta | 11 + Assets/GameMain/Scripts/Event/Menu.meta | 8 + .../Event/Menu/MenuExitRequestedEventArgs.cs | 21 + .../Menu/MenuExitRequestedEventArgs.cs.meta | 11 + .../Menu/MenuSettingsRequestedEventArgs.cs | 21 + .../MenuSettingsRequestedEventArgs.cs.meta | 11 + .../Event/Menu/MenuStartRequestedEventArgs.cs | 21 + .../Menu/MenuStartRequestedEventArgs.cs.meta | 11 + Assets/GameMain/Scripts/Procedure/Base.meta | 8 + .../Procedure/{ => Base}/ProcedureBase.cs | 0 .../{ => Base}/ProcedureBase.cs.meta | 0 .../{ => Base}/ProcedureChangeScene.cs | 4 +- .../{ => Base}/ProcedureChangeScene.cs.meta | 0 .../{ => Base}/ProcedureCheckResources.cs | 0 .../ProcedureCheckResources.cs.meta | 0 .../{ => Base}/ProcedureCheckVersion.cs | 0 .../{ => Base}/ProcedureCheckVersion.cs.meta | 0 .../{ => Base}/ProcedureInitResources.cs | 0 .../{ => Base}/ProcedureInitResources.cs.meta | 0 .../Procedure/{ => Base}/ProcedureLaunch.cs | 0 .../{ => Base}/ProcedureLaunch.cs.meta | 0 .../Procedure/{ => Base}/ProcedurePreload.cs | 0 .../{ => Base}/ProcedurePreload.cs.meta | 0 .../Procedure/{ => Base}/ProcedureSplash.cs | 0 .../{ => Base}/ProcedureSplash.cs.meta | 0 .../{ => Base}/ProcedureUpdateResources.cs | 0 .../ProcedureUpdateResources.cs.meta | 0 .../{ => Base}/ProcedureUpdateVersion.cs | 0 .../{ => Base}/ProcedureUpdateVersion.cs.meta | 0 .../{ => Base}/ProcedureVerifyResources.cs | 0 .../ProcedureVerifyResources.cs.meta | 0 .../Scripts/Procedure/ProcedureMain.cs | 213 ++ .../Scripts/Procedure/ProcedureMain.cs.meta | 11 + .../Scripts/Procedure/ProcedureMenu.cs | 53 +- .../UI/Game/Context/NodeItemContext.cs | 16 + .../UI/Game/Context/NodeItemContext.cs.meta | 11 + .../UI/Game/Context/NodeMapFormContext.cs | 11 + .../Game/Context/NodeMapFormContext.cs.meta | 11 + .../Game/Controller/NodeMapFormController.cs | 162 ++ .../Controller/NodeMapFormController.cs.meta | 11 + .../UI/Game/RawData/NodeMapFormRawData.cs | 28 + .../Game/RawData/NodeMapFormRawData.cs.meta | 11 + .../UI/Game/UseCase/NodeMapFormUseCase.cs | 156 ++ .../Game/UseCase/NodeMapFormUseCase.cs.meta | 11 + .../GameMain/Scripts/UI/Game/View/NodeItem.cs | 121 + .../Scripts/UI/Game/View/NodeItem.cs.meta | 11 + .../Scripts/UI/Game/View/NodeMapForm.cs | 89 + .../Scripts/UI/Game/View/NodeMapForm.cs.meta | 11 + .../UI/Menu/Context/MenuFormContext.cs | 13 + .../UI/Menu/Context/MenuFormContext.cs.meta | 11 + .../UI/Menu/Context/TestMenuFormContext.cs | 3 + .../UI/Menu/Controller/MenuFormController.cs | 129 ++ .../Controller/MenuFormController.cs.meta | 11 + .../Menu/Controller/TestMenuFormController.cs | 40 +- .../UI/Menu/RawData/MenuFormRawData.cs | 13 + .../UI/Menu/RawData/MenuFormRawData.cs.meta | 11 + .../UI/Menu/UseCase/MenuFormUseCase.cs | 16 + .../UI/Menu/UseCase/MenuFormUseCase.cs.meta | 11 + .../GameMain/Scripts/UI/Menu/View/MenuForm.cs | 76 + .../Scripts/UI/Menu/View/MenuForm.cs.meta | 11 + .../Scripts/UI/Menu/View/TestMenuForm.cs | 28 +- Assets/GameMain/Textures/BossCombat.png | Bin 0 -> 7413 bytes Assets/GameMain/Textures/BossCombat.png.meta | 127 + Assets/GameMain/Textures/Combat.png | Bin 0 -> 4879 bytes Assets/GameMain/Textures/Combat.png.meta | 127 + Assets/GameMain/Textures/Event.png | Bin 0 -> 6733 bytes Assets/GameMain/Textures/Event.png.meta | 127 + Assets/GameMain/Textures/Shop.png | Bin 0 -> 3329 bytes Assets/GameMain/Textures/Shop.png.meta | 127 + Assets/GameMain/UI/UIForms/MenuForm.prefab | 720 ++++++ .../GameMain/UI/UIForms/MenuForm.prefab.meta | 7 + Assets/GameMain/UI/UIForms/NodeMapForm.prefab | 2051 +++++++++++++++++ .../UI/UIForms/NodeMapForm.prefab.meta | 7 + Assets/GameMain/UI/UIForms/ShopForm.prefab | 1155 +++++++--- .../GameMain/UI/UIForms/TestMenuForm.prefab | 21 + Assets/GameMain/UI/UIItems/NodeItem.prefab | 330 +++ .../GameMain/UI/UIItems/NodeItem.prefab.meta | 7 + Assets/Launcher.unity | 18 +- docs/CodeX-TODO.md | 271 ++- docs/TODO.md | 14 +- 数据表/UIForm.xlsx | Bin 11863 -> 11917 bytes 94 files changed, 6145 insertions(+), 651 deletions(-) create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Event/Menu.meta create mode 100644 Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Procedure/Base.meta rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureBase.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureBase.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureChangeScene.cs (98%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureChangeScene.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureCheckResources.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureCheckResources.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureCheckVersion.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureCheckVersion.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureInitResources.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureInitResources.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureLaunch.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureLaunch.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedurePreload.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedurePreload.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureSplash.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureSplash.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureUpdateResources.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureUpdateResources.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureUpdateVersion.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureUpdateVersion.cs.meta (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureVerifyResources.cs (100%) rename Assets/GameMain/Scripts/Procedure/{ => Base}/ProcedureVerifyResources.cs.meta (100%) create mode 100644 Assets/GameMain/Scripts/Procedure/ProcedureMain.cs create mode 100644 Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs create mode 100644 Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs create mode 100644 Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs create mode 100644 Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs create mode 100644 Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs create mode 100644 Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs create mode 100644 Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta create mode 100644 Assets/GameMain/Textures/BossCombat.png create mode 100644 Assets/GameMain/Textures/BossCombat.png.meta create mode 100644 Assets/GameMain/Textures/Combat.png create mode 100644 Assets/GameMain/Textures/Combat.png.meta create mode 100644 Assets/GameMain/Textures/Event.png create mode 100644 Assets/GameMain/Textures/Event.png.meta create mode 100644 Assets/GameMain/Textures/Shop.png create mode 100644 Assets/GameMain/Textures/Shop.png.meta create mode 100644 Assets/GameMain/UI/UIForms/MenuForm.prefab create mode 100644 Assets/GameMain/UI/UIForms/MenuForm.prefab.meta create mode 100644 Assets/GameMain/UI/UIForms/NodeMapForm.prefab create mode 100644 Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta create mode 100644 Assets/GameMain/UI/UIItems/NodeItem.prefab create mode 100644 Assets/GameMain/UI/UIItems/NodeItem.prefab.meta diff --git a/.gitignore b/.gitignore index 5f825d7..aceb572 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,4 @@ InitTestScene*.unity* /[Aa]ssets/RawResources.meta /.dotnet /.idea +~$*.xlsx \ No newline at end of file diff --git a/Assets/GameMain/DataTables/LevelPhase.txt b/Assets/GameMain/DataTables/LevelPhase.txt index 784028c..b3fa983 100644 --- a/Assets/GameMain/DataTables/LevelPhase.txt +++ b/Assets/GameMain/DataTables/LevelPhase.txt @@ -1,23 +1,23 @@ # Id 列1 DurationSeconds EndType EndParam # int int PhaseEndType string # 关卡阶段号 策划备注 波次持续时间 波次结束条件 结束参数 - 1001 平原1.1 60 TimeElapsed 60 - 1002 平原1.2 60 TimeElapsed 60 - 1003 平原1.3 60 TimeElapsed 60 - 1004 平原1.4 60 EnemiesCleared 60 + 1001 平原1.1 55 TimeElapsed 60 + 1002 平原1.2 55 TimeElapsed 60 + 1003 平原1.3 55 TimeElapsed 60 + 1004 平原1.4 55 EnemiesCleared 1005 平原1.* 0 - 2001 平原2.1 60 TimeElapsed 60 - 2002 平原2.2 60 TimeElapsed 60 - 2003 平原2.3 60 TimeElapsed 60 - 2004 平原2.4 60 EnemiesCleared 60 + 2001 平原2.1 55 TimeElapsed 60 + 2002 平原2.2 55 TimeElapsed 60 + 2003 平原2.3 55 TimeElapsed 60 + 2004 平原2.4 55 EnemiesCleared 2005 平原2.* 0 - 3001 平原3.1 60 TimeElapsed 60 - 3002 平原3.2 60 TimeElapsed 60 - 3003 平原3.3 60 TimeElapsed 60 - 3004 平原3.4 60 EnemiesCleared 60 + 3001 平原3.1 55 TimeElapsed 60 + 3002 平原3.2 55 TimeElapsed 60 + 3003 平原3.3 55 TimeElapsed 60 + 3004 平原3.4 55 EnemiesCleared 3005 平原3.* 0 - 4001 平原4.1 60 TimeElapsed 60 - 4002 平原4.2 60 TimeElapsed 60 - 4003 平原4.3 60 TimeElapsed 60 - 4004 平原4.4 60 TimeElapsed 60 + 4001 平原4.1 55 TimeElapsed 60 + 4002 平原4.2 55 TimeElapsed 60 + 4003 平原4.3 55 TimeElapsed 60 + 4004 平原4.4 55 TimeElapsed 60 4005 平原4.5 0 BossDead diff --git a/Assets/GameMain/DataTables/LevelSpawnEntry.txt b/Assets/GameMain/DataTables/LevelSpawnEntry.txt index 6e053ee..7596a12 100644 --- a/Assets/GameMain/DataTables/LevelSpawnEntry.txt +++ b/Assets/GameMain/DataTables/LevelSpawnEntry.txt @@ -1,33 +1,33 @@ # Id 列1 SpawnPointId StartTime EntryType EnemyId Count Interval Duration Gap # int int int EntryType int int float int float # 阶段条目号 策划备注 敌人出生口Id 相对时间 条目类型 敌人Id 单次出怪数量 出怪间隔 持续时间 单怪出生时间间隔 - 1001001 1 5 Stream 1 3 5 60 0.5 + 1001001 1 5 Stream 1 3 5 40 0.5 1001002 2 5 Burst 1 10 0 0 0.2 - 1002001 1 3 Stream 1 3 5 60 0.5 + 1002001 1 3 Stream 1 3 5 40 0.5 1002002 2 3 Burst 1 10 0 0 0.2 - 1003001 1 5 Stream 1 3 5 60 0.5 + 1003001 1 5 Stream 1 3 5 40 0.5 1003002 2 5 Burst 1 10 0 0 0.2 - 1004001 1 3 Stream 1 3 5 60 0.5 + 1004001 1 3 Stream 1 3 5 40 0.5 1004002 2 3 Burst 1 10 0 0 0.2 - 1005001 1 5 Stream 1 3 5 60 0.5 + 1005001 1 5 Stream 1 3 5 40 0.5 1005002 2 5 Burst 1 10 0 0 0.2 - 2001001 1 5 Stream 1 3 5 60 0.5 + 2001001 1 5 Stream 1 3 5 40 0.5 2002001 1 5 Burst 1 10 0 0 0.2 - 2003001 1 5 Stream 1 3 5 60 0.5 + 2003001 1 5 Stream 1 3 5 40 0.5 2004001 1 5 Burst 1 10 0 0 0.2 - 2005001 1 5 Stream 1 3 5 60 0.5 - 3001001 1 5 Stream 1 3 5 60 0.5 + 2005001 1 5 Stream 1 3 5 40 0.5 + 3001001 1 5 Stream 1 3 5 40 0.5 3001002 2 5 Burst 1 10 0 0 0.2 - 3002001 1 3 Stream 1 3 5 60 0.5 + 3002001 1 3 Stream 1 3 5 40 0.5 3002002 2 3 Burst 1 10 0 0 0.2 - 3003001 1 5 Stream 1 3 5 60 0.5 + 3003001 1 5 Stream 1 3 5 40 0.5 3003002 2 5 Burst 1 10 0 0 0.2 - 3004001 1 3 Stream 1 3 5 60 0.5 + 3004001 1 3 Stream 1 3 5 40 0.5 3004002 2 3 Burst 1 10 0 0 0.2 - 3005001 1 5 Stream 1 3 5 60 0.5 + 3005001 1 5 Stream 1 3 5 40 0.5 3005002 2 5 Burst 1 10 0 0 0.2 - 4001001 1 5 Stream 1 3 5 60 0.5 + 4001001 1 5 Stream 1 3 5 40 0.5 4002001 1 5 Burst 1 10 0 0 0.2 - 4003001 1 5 Stream 1 3 5 60 0.5 + 4003001 1 5 Stream 1 3 5 40 0.5 4004001 1 5 Burst 1 10 0 0 0.2 - 4005001 1 5 Boss 2 1 5 60 0 + 4005001 1 5 Boss 2 1 5 40 0 diff --git a/Assets/GameMain/DataTables/Scene.txt b/Assets/GameMain/DataTables/Scene.txt index 06e39b7..6aecfae 100644 --- a/Assets/GameMain/DataTables/Scene.txt +++ b/Assets/GameMain/DataTables/Scene.txt @@ -4,4 +4,4 @@ # 场景编号 备注 资源名称 背景音乐编号 1 菜单场景 Menu 1 2 战斗场景 Main 2 - 3 压力测试场景 StressTest 0 + 3 压力测试场景 StressTest 0 diff --git a/Assets/GameMain/DataTables/UIForm.txt b/Assets/GameMain/DataTables/UIForm.txt index 6eae9c6..836c032 100644 --- a/Assets/GameMain/DataTables/UIForm.txt +++ b/Assets/GameMain/DataTables/UIForm.txt @@ -7,9 +7,10 @@ 102 关于 AboutForm Medium False True 110 主界面 MainForm Medium False True 111 仓库UI RepoForm Medium False True - 112 详细信息 ItemDescForm Medium True False - 113 奖励选择UI RewardSelectForm Medium False True - 130 事件UI EventForm Medium False False + 112 大地图UI NodeMapForm Medium False True + 113 详细信息 ItemDescForm Medium True False + 114 奖励选择UI RewardSelectForm Medium False True + 130 事件UI EventForm Medium False True 140 战斗信息UI CombatInfoForm Medium False False 141 战斗结束UI CombatFinishForm Medium False True 142 战斗选择UI CombatSelectForm Overlay False False diff --git a/Assets/GameMain/Scenes/Main.unity b/Assets/GameMain/Scenes/Main.unity index 675287d..92a919d 100644 --- a/Assets/GameMain/Scenes/Main.unity +++ b/Assets/GameMain/Scenes/Main.unity @@ -371,7 +371,7 @@ Transform: m_GameObject: {fileID: 961739749} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] diff --git a/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs b/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs index e27de0c..868ed7a 100644 --- a/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs +++ b/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs @@ -174,7 +174,7 @@ namespace GeometryTD.CustomComponent EnsureCombatRuntimeInitialized(); } - public void StartCombat() + public void StartCombat(int levelId = 0) { if (!EnsureCombatRuntimeInitialized()) { @@ -182,9 +182,14 @@ namespace GeometryTD.CustomComponent return; } - if (!TrySelectRandomLevel(out DRLevel selectedLevel)) + bool hasLevel = levelId > 0 + ? TryGetLevelById(levelId, out DRLevel selectedLevel) + : TrySelectRandomLevel(out selectedLevel); + if (!hasLevel) { - Log.Warning("CombatNodeComponent has no level cache. Call OnInit(levelThemeType) first."); + Log.Warning( + "CombatNodeComponent start failed. LevelId={0}. Missing cached level data or invalid level id.", + levelId); return; } @@ -348,6 +353,17 @@ namespace GeometryTD.CustomComponent return _levelsById.TryGetValue(selectedLevelId, out level); } + private bool TryGetLevelById(int levelId, out DRLevel level) + { + level = null; + if (levelId <= 0) + { + return false; + } + + return _levelsById.TryGetValue(levelId, out level); + } + private int CountPhases() { int count = 0; diff --git a/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs b/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs index d8f0315..702c86c 100644 --- a/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs +++ b/Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs @@ -15,7 +15,6 @@ namespace GeometryTD.CustomComponent private readonly List _eventItems = new List(); private EventFormUseCase _eventFormUseCase; - private EventFormController _eventFormController; private bool _initialized; public void OnInit() @@ -42,11 +41,7 @@ namespace GeometryTD.CustomComponent _eventFormUseCase = new EventFormUseCase(); } - if (_eventFormController == null) - { - _eventFormController = new EventFormController(); - _eventFormController.BindUseCase(_eventFormUseCase); - } + GameEntry.UIRouter.BindUIUseCase(UIFormType.EventForm, _eventFormUseCase); _initialized = true; Log.Info("EventNodeComponent initialized with {0} events.", _eventItems.Count); @@ -68,14 +63,14 @@ namespace GeometryTD.CustomComponent int index = Random.Range(0, _eventItems.Count); EventItem randomEvent = _eventItems[index]; - if (_eventFormUseCase == null || _eventFormController == null) + if (_eventFormUseCase == null) { Log.Warning("EventNodeComponent StartEvent failed. Event form is not initialized."); return; } _eventFormUseCase.SetCurrentEvent(randomEvent); - _eventFormController.OpenUI(); + GameEntry.UIRouter.OpenUI(UIFormType.EventForm); GameEntry.Event.Fire(this, NodeEnterEventArgs.Create()); } @@ -177,4 +172,4 @@ namespace GeometryTD.CustomComponent return effects.ToArray(); } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/DataTable/DRUIForm.cs b/Assets/GameMain/Scripts/DataTable/DRUIForm.cs index dcf397f..a17e73c 100644 --- a/Assets/GameMain/Scripts/DataTable/DRUIForm.cs +++ b/Assets/GameMain/Scripts/DataTable/DRUIForm.cs @@ -1,19 +1,5 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ -// 此文件由工具自动生成,请勿直接修改。 -// 生成时间:2021-06-16 21:54:35.652 -//------------------------------------------------------------ - -using GameFramework; -using System; -using System.Collections.Generic; -using System.IO; +using System.IO; using System.Text; -using UnityEngine; using UnityGameFramework.Runtime; namespace GeometryTD.DataTable @@ -28,49 +14,27 @@ namespace GeometryTD.DataTable /// /// 获取界面编号。 /// - public override int Id - { - get - { - return m_Id; - } - } + public override int Id => m_Id; /// /// 获取资源名称。 /// - public string AssetName - { - get; - private set; - } + public string AssetName { get; private set; } /// /// 获取界面组名称。 /// - public string UIGroupName - { - get; - private set; - } + public string UIGroupName { get; private set; } /// /// 获取是否允许多个界面实例。 /// - public bool AllowMultiInstance - { - get; - private set; - } + public bool AllowMultiInstance { get; private set; } /// /// 获取是否暂停被其覆盖的界面。 /// - public bool PauseCoveredUIForm - { - get; - private set; - } + public bool PauseCoveredUIForm { get; private set; } public override bool ParseDataRow(string dataRowString, object userData) { diff --git a/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs b/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs index 016e486..3d7553f 100644 --- a/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs +++ b/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs @@ -37,15 +37,20 @@ /// RepoForm = 111, + /// + /// 节点地图界面。 + /// + NodeMapForm = 112, + /// /// 道具详细信息界面。 /// - ItemDescForm = 112, + ItemDescForm = 113, /// /// 奖励三选一界面。 /// - RewardSelectForm = 113, + RewardSelectForm = 114, /// /// 事件节点界面。 @@ -77,4 +82,4 @@ /// TestMenuForm = 200, } -} +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs new file mode 100644 index 0000000..8b3fb8e --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs @@ -0,0 +1,26 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public sealed class NodeMapNodeClickEventArgs : GameEventArgs + { + public static int EventId => typeof(NodeMapNodeClickEventArgs).GetHashCode(); + + public override int Id => EventId; + + public int SequenceIndex { get; private set; } + + public static NodeMapNodeClickEventArgs Create(int sequenceIndex) + { + NodeMapNodeClickEventArgs args = ReferencePool.Acquire(); + args.SequenceIndex = sequenceIndex; + return args; + } + + public override void Clear() + { + SequenceIndex = -1; + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta new file mode 100644 index 0000000..210c981 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeClickEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f16aabf150fd6f640ad6e2ab01705d4f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs new file mode 100644 index 0000000..064a930 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs @@ -0,0 +1,43 @@ +using GameFramework; +using GameFramework.Event; +using GeometryTD.Procedure; + +namespace GeometryTD.CustomEvent +{ + public sealed class NodeMapNodeEnterRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(NodeMapNodeEnterRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public string RunId { get; private set; } + + public int NodeId { get; private set; } + + public RunNodeType NodeType { get; private set; } + + public int SequenceIndex { get; private set; } + + public static NodeMapNodeEnterRequestedEventArgs Create( + string runId, + int nodeId, + RunNodeType nodeType, + int sequenceIndex) + { + NodeMapNodeEnterRequestedEventArgs args = ReferencePool.Acquire(); + args.RunId = runId; + args.NodeId = nodeId; + args.NodeType = nodeType; + args.SequenceIndex = sequenceIndex; + return args; + } + + public override void Clear() + { + RunId = null; + NodeId = 0; + NodeType = RunNodeType.None; + SequenceIndex = -1; + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta new file mode 100644 index 0000000..163266a --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Game/NodeMapNodeEnterRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef66951469c024d49a35903ac4c6eb13 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu.meta b/Assets/GameMain/Scripts/Event/Menu.meta new file mode 100644 index 0000000..a6eccfe --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6892232c51df8e1439ccc908fb93307b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs new file mode 100644 index 0000000..ec44241 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public class MenuExitRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(MenuExitRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static MenuExitRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta new file mode 100644 index 0000000..cee062c --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuExitRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6b431184ddeace4489032ecdd5996b8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs new file mode 100644 index 0000000..6d9db5e --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public class MenuSettingsRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(MenuSettingsRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static MenuSettingsRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta new file mode 100644 index 0000000..10f9436 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuSettingsRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b9028de1ea48854caaafc4c9022319a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs new file mode 100644 index 0000000..76ffb38 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public class MenuStartRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(MenuStartRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static MenuStartRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta new file mode 100644 index 0000000..78c48a2 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Menu/MenuStartRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b6605592d400a4b478c9380e0c97ad3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Procedure/Base.meta b/Assets/GameMain/Scripts/Procedure/Base.meta new file mode 100644 index 0000000..2db4635 --- /dev/null +++ b/Assets/GameMain/Scripts/Procedure/Base.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d17e5e91c45a8814c954edf31b063100 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureBase.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureBase.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureBase.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureBase.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureBase.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs similarity index 98% rename from Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs index 9326daa..9b96bee 100644 --- a/Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs +++ b/Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs @@ -86,7 +86,7 @@ namespace GeometryTD.Procedure ChangeState(procedureOwner); break; case SceneType.Main: - ChangeState(procedureOwner); + ChangeState(procedureOwner); break; default: Log.Debug($"Scene {sceneType.ToString()} don't configure a procedure"); @@ -146,4 +146,4 @@ namespace GeometryTD.Procedure ne.DependencyAssetName, ne.LoadedCount.ToString(), ne.TotalCount.ToString()); } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureChangeScene.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureChangeScene.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureCheckVersion.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureCheckVersion.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureInitResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureInitResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureLaunch.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedurePreload.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureSplash.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureSplash.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureUpdateVersion.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureUpdateVersion.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs b/Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs.meta b/Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/Procedure/ProcedureVerifyResources.cs.meta rename to Assets/GameMain/Scripts/Procedure/Base/ProcedureVerifyResources.cs.meta diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs new file mode 100644 index 0000000..78439b5 --- /dev/null +++ b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs @@ -0,0 +1,213 @@ +using GameFramework.Event; +using GameFramework.Fsm; +using GameFramework.Procedure; +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GeometryTD.UI; +using UnityGameFramework.Runtime; + +namespace GeometryTD.Procedure +{ + public class ProcedureMain : ProcedureBase + { + public override bool UseNativeDialog => false; + + private RepoFormUseCase _repoFormUseCase; + private NodeMapFormUseCase _nodeMapFormUseCase; + private RunState _currentRunState; + + #region FSM + + protected override void OnEnter(IFsm procedureOwner) + { + base.OnEnter(procedureOwner); + + GameEntry.Event.Subscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); + GameEntry.Event.Subscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); + GameEntry.Event.Subscribe(NodeEnterEventArgs.EventId, OnNodeEnter); + GameEntry.Event.Subscribe(NodeMapNodeEnterRequestedEventArgs.EventId, OnNodeMapNodeEnterRequested); + + GameEntry.EventNode.OnInit(); + GameEntry.CombatNode.OnInit(LevelThemeType.Plain); + GameEntry.ShopNode.OnInit(); + GameEntry.PlayerInventory?.OnInit(); + + _currentRunState = RunStateFactory.CreateFixedRun( + LevelThemeType.Plain, + GameEntry.PlayerInventory != null + ? GameEntry.PlayerInventory.GetInventorySnapshot() + : null); + + _repoFormUseCase = new RepoFormUseCase(); + GameEntry.UIRouter.BindUIUseCase(UIFormType.RepoForm, _repoFormUseCase); + + _nodeMapFormUseCase = new NodeMapFormUseCase(); + _nodeMapFormUseCase.SetRunState(_currentRunState); + GameEntry.UIRouter.BindUIUseCase(UIFormType.NodeMapForm, _nodeMapFormUseCase); + + OpenHubUI(); + } + + protected override void OnUpdate(IFsm procedureOwner, float elapseSeconds, + float realElapseSeconds) + { + base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds); + + GameEntry.CombatNode.OnUpdate(elapseSeconds, realElapseSeconds); + } + + protected override void OnLeave(IFsm procedureOwner, bool isShutdown) + { + GameEntry.CombatNode.OnShutdown(); + GameEntry.Event.Unsubscribe(NodeMapNodeEnterRequestedEventArgs.EventId, OnNodeMapNodeEnterRequested); + GameEntry.Event.Unsubscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); + GameEntry.Event.Unsubscribe(NodeEnterEventArgs.EventId, OnNodeEnter); + GameEntry.Event.Unsubscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); + GameEntry.UIRouter.CloseUI(UIFormType.RepoForm); + GameEntry.UIRouter.CloseUI(UIFormType.NodeMapForm); + GameEntry.UIRouter.CloseUI(UIFormType.MainForm); + _repoFormUseCase = null; + _nodeMapFormUseCase = null; + _currentRunState = null; + + base.OnLeave(procedureOwner, isShutdown); + } + + #endregion + + + private void OnNodeEnter(object sender, GameEventArgs e) + { + if (!(e is NodeEnterEventArgs)) + { + return; + } + + GameEntry.UIRouter.CloseUI(UIFormType.NodeMapForm); + GameEntry.UIRouter.CloseUI(UIFormType.MainForm); + } + + private void OnNodeComplete(object sender, GameEventArgs e) + { + if (!(e is NodeCompleteEventArgs args)) + { + return; + } + + BackpackInventoryData snapshot = args.InventorySnapshotAfterNode; + if (snapshot == null && GameEntry.PlayerInventory != null) + { + snapshot = GameEntry.PlayerInventory.GetInventorySnapshot(); + } + + AdvanceRunState(true, snapshot); + OpenHubUI(); + } + + private void OnCombatFailureReturn(object sender, GameEventArgs e) + { + if (!(e is CombatFailureReturnEventArgs)) + { + return; + } + + BackpackInventoryData snapshot = GameEntry.PlayerInventory != null + ? GameEntry.PlayerInventory.GetInventorySnapshot() + : null; + AdvanceRunState(false, snapshot); + OpenHubUI(); + } + + private void OnNodeMapNodeEnterRequested(object sender, GameEventArgs e) + { + if (!(sender is NodeMapForm) || !(e is NodeMapNodeEnterRequestedEventArgs args)) + { + return; + } + + RunNodeState currentNode = _currentRunState?.CurrentNode; + if (_currentRunState == null || !_currentRunState.CanEnterCurrentNode || currentNode == null) + { + Log.Warning("ProcedureMain.OnNodeMapNodeEnterRequested() ignored. Current run has no enterable node."); + return; + } + + if (args.SequenceIndex != currentNode.SequenceIndex || args.NodeType != currentNode.NodeType) + { + Log.Warning( + "ProcedureMain.OnNodeMapNodeEnterRequested() ignored. Requested={0}#{1}, CurrentNode={2}#{3}.", + args.NodeType, + args.SequenceIndex, + currentNode.NodeType, + currentNode.SequenceIndex); + return; + } + + switch (currentNode.NodeType) + { + case RunNodeType.Combat: + case RunNodeType.BossCombat: + if (!HasAvailableParticipantTower()) + { + Log.Warning("ProcedureMain blocked combat start. No participant tower is available."); + return; + } + + GameEntry.CombatNode.StartCombat(currentNode.LinkedLevelId); + return; + case RunNodeType.Event: + GameEntry.EventNode.StartEvent(); + return; + case RunNodeType.Shop: + GameEntry.ShopNode.StartShop(); + return; + default: + Log.Warning("ProcedureMain.OnNodeMapNodeEnterRequested() encountered unsupported node type: {0}.", currentNode.NodeType); + return; + } + } + + private void AdvanceRunState(bool succeeded, BackpackInventoryData snapshot) + { + if (_currentRunState == null) + { + return; + } + + if (!RunStateAdvanceService.TryCompleteCurrentNode(_currentRunState, succeeded, snapshot)) + { + return; + } + + if (_currentRunState.IsCompleted) + { + Log.Info("ProcedureMain run completed. RunId={0}", _currentRunState.RunId); + return; + } + + RunNodeState nextNode = _currentRunState.CurrentNode; + if (nextNode != null) + { + Log.Info( + "ProcedureMain advanced run. RunId={0}, NextNodeType={1}, SequenceIndex={2}, LevelId={3}.", + _currentRunState.RunId, + nextNode.NodeType, + nextNode.SequenceIndex, + nextNode.LinkedLevelId); + } + } + + private static bool HasAvailableParticipantTower() + { + return GameEntry.PlayerInventory != null && + GameEntry.PlayerInventory.GetParticipantTowerSnapshot().Count > 0; + } + + private void OpenHubUI() + { + _nodeMapFormUseCase?.SetRunState(_currentRunState); + GameEntry.UIRouter.OpenUI(UIFormType.MainForm); + GameEntry.UIRouter.OpenUI(UIFormType.NodeMapForm); + } + } +} diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta new file mode 100644 index 0000000..146c46d --- /dev/null +++ b/Assets/GameMain/Scripts/Procedure/ProcedureMain.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6f092ddfab48b74d8e8cc338e4742e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs b/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs index 8427f02..dd9354c 100644 --- a/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs +++ b/Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs @@ -1,7 +1,5 @@ -using GameFramework.Event; using GameFramework.Fsm; using GameFramework.Procedure; -using GeometryTD.CustomEvent; using GeometryTD.Definition; using GeometryTD.UI; using UnityGameFramework.Runtime; @@ -14,7 +12,7 @@ namespace GeometryTD.Procedure public bool GameStart { get; set; } - private RepoFormUseCase _repoFormUseCase; + private MenuFormUseCase _menuFormUseCase; #region FSM @@ -27,22 +25,11 @@ namespace GeometryTD.Procedure { base.OnEnter(procedureOwner); - GameEntry.Event.Subscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); - GameEntry.Event.Subscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); - GameEntry.Event.Subscribe(NodeEnterEventArgs.EventId, OnNodeEnter); - GameStart = false; - GameEntry.EventNode.OnInit(); - GameEntry.CombatNode.OnInit(LevelThemeType.Plain); - GameEntry.ShopNode.OnInit(); - GameEntry.PlayerInventory?.OnInit(); - - _repoFormUseCase = new RepoFormUseCase(); - GameEntry.UIRouter.BindUIUseCase(UIFormType.RepoForm, _repoFormUseCase); - - GameEntry.UIRouter.OpenUI(UIFormType.MainForm); - GameEntry.UIRouter.OpenUI(UIFormType.TestMenuForm); + _menuFormUseCase = new MenuFormUseCase(); + GameEntry.UIRouter.BindUIUseCase(UIFormType.MenuForm, _menuFormUseCase); + GameEntry.UIRouter.OpenUI(UIFormType.MenuForm); } protected override void OnUpdate(IFsm procedureOwner, float elapseSeconds, @@ -57,44 +44,16 @@ namespace GeometryTD.Procedure return; } - GameEntry.CombatNode.OnUpdate(elapseSeconds, realElapseSeconds); } protected override void OnLeave(IFsm procedureOwner, bool isShutdown) { - GameEntry.CombatNode.OnShutdown(); - GameEntry.Event.Unsubscribe(CombatFailureReturnEventArgs.EventId, OnCombatFailureReturn); - GameEntry.Event.Unsubscribe(NodeEnterEventArgs.EventId, OnNodeEnter); - GameEntry.Event.Unsubscribe(NodeCompleteEventArgs.EventId, OnNodeComplete); - _repoFormUseCase = null; + GameEntry.UIRouter.CloseUI(UIFormType.MenuForm); + _menuFormUseCase = null; base.OnLeave(procedureOwner, isShutdown); } #endregion - - private void OnNodeEnter(object sender, GameEventArgs e) - { - if (!(e is NodeEnterEventArgs)) return; - - GameEntry.UIRouter.CloseUI(UIFormType.TestMenuForm); - GameEntry.UIRouter.CloseUI(UIFormType.MainForm); - } - - private void OnNodeComplete(object sender, GameEventArgs e) - { - if (!(e is NodeCompleteEventArgs)) return; - - GameEntry.UIRouter.OpenUI(UIFormType.TestMenuForm); - GameEntry.UIRouter.OpenUI(UIFormType.MainForm); - } - - private void OnCombatFailureReturn(object sender, GameEventArgs e) - { - if (!(e is CombatFailureReturnEventArgs)) return; - - GameEntry.UIRouter.OpenUI(UIFormType.TestMenuForm); - GameEntry.UIRouter.OpenUI(UIFormType.MainForm); - } } } diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs new file mode 100644 index 0000000..391abc8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs @@ -0,0 +1,16 @@ +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public sealed class NodeItemContext : UIContext + { + public int NodeId; + public int SequenceIndex; + public RunNodeType NodeType; + public bool IsLocked; + public bool IsCurrent; + public bool IsCompleted; + public bool IsFailed; + public bool CanClick; + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta new file mode 100644 index 0000000..6c7658b --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeItemContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da34e789554bd744e913db9fa3615322 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs new file mode 100644 index 0000000..ece9752 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs @@ -0,0 +1,11 @@ +namespace GeometryTD.UI +{ + public sealed class NodeMapFormContext : UIContext + { + public string Title; + public string ProgressText; + public string CurrentNodeText; + public bool IsRunCompleted; + public NodeItemContext[] NodeItems; + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta new file mode 100644 index 0000000..65595a9 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Context/NodeMapFormContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb4720747caac9641b0bf06abbdad70f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs new file mode 100644 index 0000000..327beb8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs @@ -0,0 +1,162 @@ +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GeometryTD.Procedure; +using GameFramework.Event; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public sealed class NodeMapFormController : UIFormControllerCommonBase + { + private NodeMapFormUseCase _useCase; + + protected override UIFormType UIFormTypeId => UIFormType.NodeMapForm; + + protected override void RefreshUI(NodeMapForm form, NodeMapFormContext context) + { + form.RefreshUI(context); + } + + protected override void SubscribeCustomEvents() + { + GameEntry.Event.Subscribe(NodeMapNodeClickEventArgs.EventId, OnNodeClicked); + } + + protected override void UnsubscribeCustomEvents() + { + GameEntry.Event.Unsubscribe(NodeMapNodeClickEventArgs.EventId, OnNodeClicked); + } + + public override int? OpenUI(object userData = null) + { + if (userData is NodeMapFormContext context) + { + return OpenUIInternal(context); + } + + if (userData is NodeMapFormRawData rawDataFromUserData) + { + return OpenUI(rawDataFromUserData); + } + + if (userData != null) + { + Log.Warning("NodeMapFormController.OpenUI() userData type is invalid."); + return null; + } + + if (_useCase == null) + { + Log.Error("NodeMapFormController.OpenUI() useCase is null."); + return null; + } + + return OpenUI(_useCase.CreateInitialModel()); + } + + public int? OpenUI(NodeMapFormRawData rawData) + { + return OpenUIInternal(BuildContext(rawData)); + } + + public override void BindUseCase(IUIUseCase useCase) + { + if (!(useCase is NodeMapFormUseCase nodeMapFormUseCase)) + { + Log.Error("NodeMapFormController.BindUseCase() useCase is invalid."); + return; + } + + _useCase = nodeMapFormUseCase; + } + + private void OnNodeClicked(object sender, GameEventArgs e) + { + if (!IsEventFromCurrentForm(sender) || !(e is NodeMapNodeClickEventArgs args) || _useCase == null) + { + return; + } + + if (!_useCase.TryRequestEnterNode(args.SequenceIndex, out NodeMapNodeRawData selectedNode, out NodeMapFormRawData latestRawData)) + { + if (latestRawData != null) + { + SetContext(BuildContext(latestRawData)); + RefreshCurrentUI(); + } + + return; + } + + if (latestRawData != null) + { + SetContext(BuildContext(latestRawData)); + RefreshCurrentUI(); + } + + if (Form != null && selectedNode != null) + { + GameEntry.Event.Fire(Form, NodeMapNodeEnterRequestedEventArgs.Create( + selectedNode.RunId, + selectedNode.NodeId, + selectedNode.NodeType, + selectedNode.SequenceIndex)); + } + } + + private bool IsEventFromCurrentForm(object sender) + { + if (Form == null) + { + return false; + } + + if (ReferenceEquals(sender, Form)) + { + return true; + } + + if (sender is Component component) + { + NodeMapForm ownerForm = component.GetComponentInParent(); + return ownerForm == Form; + } + + return false; + } + + private static NodeMapFormContext BuildContext(NodeMapFormRawData rawData) + { + NodeItemContext[] nodeItemContexts = System.Array.Empty(); + if (rawData?.Nodes != null && rawData.Nodes.Count > 0) + { + nodeItemContexts = new NodeItemContext[rawData.Nodes.Count]; + for (int i = 0; i < rawData.Nodes.Count; i++) + { + NodeMapNodeRawData node = rawData.Nodes[i]; + nodeItemContexts[i] = new NodeItemContext + { + NodeId = node?.NodeId ?? 0, + SequenceIndex = node?.SequenceIndex ?? i, + NodeType = node?.NodeType ?? RunNodeType.None, + IsLocked = node != null && node.Status == RunNodeStatus.Locked, + IsCurrent = node != null && node.IsCurrentNode, + IsCompleted = node != null && node.Status == RunNodeStatus.Completed, + IsFailed = node != null && node.Status == RunNodeStatus.Failed, + CanClick = node != null && node.CanEnter + }; + } + } + + return new NodeMapFormContext + { + Title = rawData?.Title ?? "节点地图", + ProgressText = rawData?.ProgressText ?? "0 / 0", + CurrentNodeText = rawData?.CurrentNodeText ?? "当前节点: 无", + IsRunCompleted = rawData != null && rawData.IsRunCompleted, + NodeItems = nodeItemContexts + }; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta new file mode 100644 index 0000000..11a1ef7 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/Controller/NodeMapFormController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e24f8a016c2dd9b4b9e7aa34a24185a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs new file mode 100644 index 0000000..30ac6b8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public sealed class NodeMapFormRawData + { + public string RunId; + public string Title; + public string ProgressText; + public string CurrentNodeText; + public bool IsRunCompleted; + public List Nodes; + } + + public sealed class NodeMapNodeRawData + { + public string RunId; + public int NodeId; + public int SequenceIndex; + public RunNodeType NodeType; + public RunNodeStatus Status; + public bool IsCurrentNode; + public bool CanEnter; + public string Title; + public string StatusText; + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta new file mode 100644 index 0000000..4dc0f9d --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/RawData/NodeMapFormRawData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 933dea9978c15484aab9df1bd8f32276 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs new file mode 100644 index 0000000..eb5408b --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs @@ -0,0 +1,156 @@ +using System.Collections.Generic; +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public sealed class NodeMapFormUseCase : IUIUseCase + { + private RunState _runState; + + public void SetRunState(RunState runState) + { + _runState = runState; + } + + public NodeMapFormRawData CreateInitialModel() + { + return BuildRawData(_runState); + } + + public bool TryRequestEnterNode(int sequenceIndex, out NodeMapNodeRawData selectedNode, out NodeMapFormRawData latestRawData) + { + latestRawData = BuildRawData(_runState); + selectedNode = null; + + if (_runState == null || _runState.IsCompleted) + { + return false; + } + + RunNodeState currentNode = _runState.CurrentNode; + if (currentNode == null || currentNode.SequenceIndex != sequenceIndex || !_runState.CanEnterCurrentNode) + { + return false; + } + + RunNodeState targetNode = _runState.GetNodeBySequenceIndex(sequenceIndex); + if (targetNode == null || targetNode.Status != RunNodeStatus.Available) + { + return false; + } + + selectedNode = BuildNodeRawData(_runState.RunId, targetNode, currentNode.SequenceIndex); + return selectedNode != null && selectedNode.CanEnter; + } + + private static NodeMapFormRawData BuildRawData(RunState runState) + { + if (runState == null) + { + return new NodeMapFormRawData + { + Title = "节点地图", + ProgressText = "0 / 0", + CurrentNodeText = "当前节点: 无", + IsRunCompleted = true, + Nodes = new List() + }; + } + + List nodes = new List(runState.NodeCount); + int currentSequenceIndex = runState.CurrentNode != null ? runState.CurrentNode.SequenceIndex : -1; + foreach (RunNodeState node in runState.Nodes) + { + NodeMapNodeRawData nodeRawData = BuildNodeRawData(runState.RunId, node, currentSequenceIndex); + if (nodeRawData != null) + { + nodes.Add(nodeRawData); + } + } + + string currentNodeText = runState.IsCompleted + ? "当前节点: 已完成" + : $"当前节点: {BuildNodeTitle(runState.CurrentNode)}"; + + return new NodeMapFormRawData + { + RunId = runState.RunId, + Title = "节点地图", + ProgressText = $"{runState.CompletedNodeCount} / {runState.NodeCount}", + CurrentNodeText = currentNodeText, + IsRunCompleted = runState.IsCompleted, + Nodes = nodes + }; + } + + private static NodeMapNodeRawData BuildNodeRawData(string runId, RunNodeState node, int currentSequenceIndex) + { + if (node == null) + { + return null; + } + + bool isCurrentNode = node.SequenceIndex == currentSequenceIndex; + bool canEnter = isCurrentNode && node.Status == RunNodeStatus.Available; + + return new NodeMapNodeRawData + { + RunId = runId, + NodeId = node.NodeId, + SequenceIndex = node.SequenceIndex, + NodeType = node.NodeType, + Status = node.Status, + IsCurrentNode = isCurrentNode, + CanEnter = canEnter, + Title = BuildNodeTitle(node), + StatusText = BuildStatusText(node.Status, canEnter) + }; + } + + private static string BuildNodeTitle(RunNodeState node) + { + return node == null ? "未知节点" : BuildNodeTitle(node.NodeType); + } + + private static string BuildNodeTitle(RunNodeType nodeType) + { + switch (nodeType) + { + case RunNodeType.Combat: + return "战斗"; + case RunNodeType.Event: + return "事件"; + case RunNodeType.Shop: + return "商店"; + case RunNodeType.BossCombat: + return "Boss"; + default: + return "未知节点"; + } + } + + private static string BuildStatusText(RunNodeStatus status, bool canEnter) + { + if (canEnter) + { + return "当前"; + } + + switch (status) + { + case RunNodeStatus.Locked: + return "未解锁"; + case RunNodeStatus.Available: + return "可进入"; + case RunNodeStatus.Completed: + return "已完成"; + case RunNodeStatus.Failed: + return "失败"; + case RunNodeStatus.Skipped: + return "跳过"; + default: + return string.Empty; + } + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta new file mode 100644 index 0000000..8d07ff1 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/UseCase/NodeMapFormUseCase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e35c4c20ae9d48a4c8e9878e79b7d346 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs new file mode 100644 index 0000000..bc8a3b9 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs @@ -0,0 +1,121 @@ +using UnityEngine; +using UnityEngine.UI; +using GeometryTD.CustomEvent; +using GeometryTD.Procedure; + +namespace GeometryTD.UI +{ + public class NodeItem : MonoBehaviour + { + private const string CombatIconAssetName = "Combat"; + private const string EventIconAssetName = "Event"; + private const string ShopIconAssetName = "Shop"; + private const string BossIconAssetName = "BossCombat"; + + [SerializeField] private Image _icon; + [SerializeField] private Image _bg; + [SerializeField] private CommonButton _button; + + [SerializeField] private Color _lockedColor = Color.gray; + [SerializeField] private Color _activeColor = Color.cyan; + [SerializeField] private Color _passedColor = Color.green; + [SerializeField] private Color _failedColor = Color.red; + [SerializeField] private Color _defaultIconColor = Color.white; + [SerializeField] private Color _lockedIconColor = Color.gray; + + private NodeItemContext _context; + private string _requestedIconAssetName; + + public void RefreshUI(NodeItemContext context) + { + _context = context; + + if (_button != null) + { + _button.Interactive = context != null && context.CanClick; + } + + Color targetColor = _lockedColor; + if (context == null) + { + targetColor = _lockedColor; + } + else if (context.IsCompleted) + { + targetColor = _passedColor; + } + else if (context.IsFailed) + { + targetColor = _failedColor; + } + else if (context.IsCurrent) + { + targetColor = _activeColor; + } + + if (_bg != null) + { + _bg.color = targetColor; + } + + if (_icon != null) + { + RefreshIcon(context != null ? context.NodeType : RunNodeType.None); + _icon.color = context != null && !context.IsLocked ? _defaultIconColor : _lockedIconColor; + } + } + + public void OnClick() + { + if (_context == null || !_context.CanClick) + { + return; + } + + GameEntry.Event.Fire(this, NodeMapNodeClickEventArgs.Create(_context.SequenceIndex)); + } + + private void RefreshIcon(RunNodeType nodeType) + { + if (_icon == null) + { + return; + } + + string assetName = ResolveIconAssetName(nodeType); + _requestedIconAssetName = assetName; + if (string.IsNullOrWhiteSpace(assetName) || GameEntry.SpriteCache == null) + { + _icon.sprite = null; + return; + } + + GameEntry.SpriteCache.GetSprite(assetName, sprite => + { + if (_icon == null || _requestedIconAssetName != assetName) + { + return; + } + + _icon.sprite = sprite; + }); + } + + private static string ResolveIconAssetName(RunNodeType nodeType) + { + switch (nodeType) + { + case RunNodeType.Combat: + return CombatIconAssetName; + case RunNodeType.Event: + return EventIconAssetName; + case RunNodeType.Shop: + return ShopIconAssetName; + case RunNodeType.BossCombat: + return BossIconAssetName; + default: + return null; + } + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta new file mode 100644 index 0000000..b52920e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d370c24f0bca1cd49b1163c3765e0f4c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs new file mode 100644 index 0000000..0d08bad --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs @@ -0,0 +1,89 @@ +using TMPro; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class NodeMapForm : UGuiForm + { + [SerializeField] private TMP_Text _titleText; + [SerializeField] private TMP_Text _progressText; + [SerializeField] private TMP_Text _currentNodeText; + [SerializeField] private NodeItem[] _nodeItems; + + private NodeMapFormContext _context; + + public void RefreshUI(NodeMapFormContext context) + { + _context = context; + if (_titleText != null) + { + _titleText.text = context?.Title ?? string.Empty; + } + + if (_progressText != null) + { + _progressText.text = context?.ProgressText ?? string.Empty; + } + + if (_currentNodeText != null) + { + _currentNodeText.text = context?.CurrentNodeText ?? string.Empty; + } + + if (_nodeItems == null) + { + return; + } + + for (int i = 0; i < _nodeItems.Length; i++) + { + NodeItemContext itemContext = + context?.NodeItems != null && i < context.NodeItems.Length ? context.NodeItems[i] : null; + _nodeItems[i]?.RefreshUI(itemContext); + } + } + + protected override void OnOpen(object userData) + { + base.OnOpen(userData); + + if (userData is NodeMapFormContext context) + { + RefreshUI(context); + return; + } + + Log.Warning("NodeMapForm requires NodeMapFormContext as userData."); + } + + protected override void OnClose(bool isShutdown, object userData) + { + _context = null; + if (_titleText != null) + { + _titleText.text = string.Empty; + } + + if (_progressText != null) + { + _progressText.text = string.Empty; + } + + if (_currentNodeText != null) + { + _currentNodeText.text = string.Empty; + } + + if (_nodeItems != null) + { + for (int i = 0; i < _nodeItems.Length; i++) + { + _nodeItems[i]?.RefreshUI(null); + } + } + + base.OnClose(isShutdown, userData); + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta new file mode 100644 index 0000000..7b86d3f --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Game/View/NodeMapForm.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 16f09225744e9ed45ba3ed24c27f9602 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs new file mode 100644 index 0000000..8ce0643 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs @@ -0,0 +1,13 @@ +namespace GeometryTD.UI +{ + public class MenuFormContext : UIContext + { + public string TitleText { get; set; } + + public string StartButtonText { get; set; } + + public string SettingsButtonText { get; set; } + + public string ExitButtonText { get; set; } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta new file mode 100644 index 0000000..9efbddc --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Context/MenuFormContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b608c268739c144990195981f1c4465 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs b/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs index 05f50b6..4dc8ae6 100644 --- a/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs +++ b/Assets/GameMain/Scripts/UI/Menu/Context/TestMenuFormContext.cs @@ -1,6 +1,9 @@ +using GeometryTD.Procedure; + namespace GeometryTD.UI { public class TestMenuFormContext : UIContext { + public RunNodeType CurrentNodeType { get; set; } } } diff --git a/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs new file mode 100644 index 0000000..5cdb8a5 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs @@ -0,0 +1,129 @@ +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GeometryTD.Procedure; +using GameFramework.Event; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class MenuFormController : UIFormControllerCommonBase + { + private MenuFormUseCase _useCase; + + protected override UIFormType UIFormTypeId => UIFormType.MenuForm; + + protected override void RefreshUI(MenuForm form, MenuFormContext context) + { + form.RefreshUI(context); + } + + protected override void SubscribeCustomEvents() + { + GameEntry.Event.Subscribe(MenuStartRequestedEventArgs.EventId, OnStartRequested); + GameEntry.Event.Subscribe(MenuSettingsRequestedEventArgs.EventId, OnSettingsRequested); + GameEntry.Event.Subscribe(MenuExitRequestedEventArgs.EventId, OnExitRequested); + } + + protected override void UnsubscribeCustomEvents() + { + GameEntry.Event.Unsubscribe(MenuStartRequestedEventArgs.EventId, OnStartRequested); + GameEntry.Event.Unsubscribe(MenuSettingsRequestedEventArgs.EventId, OnSettingsRequested); + GameEntry.Event.Unsubscribe(MenuExitRequestedEventArgs.EventId, OnExitRequested); + } + + public override int? OpenUI(object userData = null) + { + if (userData is MenuFormContext context) + { + return OpenUIInternal(context); + } + + if (userData is MenuFormRawData rawDataFromUserData) + { + return OpenUI(rawDataFromUserData); + } + + if (userData != null) + { + Log.Warning("MenuFormController.OpenUI() userData type is invalid."); + return null; + } + + if (_useCase == null) + { + Log.Error("MenuFormController.OpenUI() useCase is null."); + return null; + } + + return OpenUI(_useCase.CreateInitialModel()); + } + + public int? OpenUI(MenuFormRawData rawData) + { + return OpenUIInternal(BuildContext(rawData)); + } + + public override void BindUseCase(IUIUseCase useCase) + { + if (!(useCase is MenuFormUseCase menuFormUseCase)) + { + Log.Error("MenuFormController.BindUseCase() useCase is invalid."); + return; + } + + _useCase = menuFormUseCase; + } + + private void OnStartRequested(object sender, GameEventArgs e) + { + if (!IsCurrentFormEvent(sender) || !(e is MenuStartRequestedEventArgs)) + { + return; + } + + if (GameEntry.Procedure.CurrentProcedure is ProcedureMenu procedureMenu) + { + procedureMenu.GameStart = true; + return; + } + + Log.Warning("MenuFormController received start request outside ProcedureMenu."); + } + + private void OnSettingsRequested(object sender, GameEventArgs e) + { + if (!IsCurrentFormEvent(sender) || !(e is MenuSettingsRequestedEventArgs)) + { + return; + } + + Log.Warning("Menu settings button click is TODO."); + } + + private void OnExitRequested(object sender, GameEventArgs e) + { + if (!IsCurrentFormEvent(sender) || !(e is MenuExitRequestedEventArgs)) + { + return; + } + + UnityGameFramework.Runtime.GameEntry.Shutdown(ShutdownType.Quit); + } + + private bool IsCurrentFormEvent(object sender) + { + return Form != null && ReferenceEquals(sender, Form); + } + + private static MenuFormContext BuildContext(MenuFormRawData rawData) + { + return new MenuFormContext + { + TitleText = rawData?.TitleText ?? string.Empty, + StartButtonText = rawData?.StartButtonText ?? string.Empty, + SettingsButtonText = rawData?.SettingsButtonText ?? string.Empty, + ExitButtonText = rawData?.ExitButtonText ?? string.Empty + }; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta new file mode 100644 index 0000000..0cc306e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/Controller/MenuFormController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ec06b97e6bc9d743a6340377ab7cd8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs b/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs index 9f4f093..eea3db3 100644 --- a/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs +++ b/Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs @@ -1,6 +1,6 @@ using GeometryTD.CustomEvent; using GeometryTD.Definition; -using GameFramework.Event; +using GeometryTD.Procedure; using UnityGameFramework.Runtime; namespace GeometryTD.UI @@ -16,12 +16,10 @@ namespace GeometryTD.UI protected override void SubscribeCustomEvents() { - GameEntry.Event.Subscribe(TestMenuNodeClickEventArgs.EventId, OnNodeClick); } protected override void UnsubscribeCustomEvents() { - GameEntry.Event.Unsubscribe(TestMenuNodeClickEventArgs.EventId, OnNodeClick); } public override int? OpenUI(object userData = null) @@ -50,36 +48,10 @@ namespace GeometryTD.UI private static TestMenuFormContext BuildDefaultContext() { - return new TestMenuFormContext(); + return new TestMenuFormContext + { + CurrentNodeType = RunNodeType.None + }; } - - private void OnNodeClick(object sender, GameEventArgs e) - { - if (!(sender is TestMenuForm form)) - { - return; - } - - if (!(e is TestMenuNodeClickEventArgs args)) - { - return; - } - - switch (args.NodeType) - { - case TestMenuNodeType.Combat: - GameEntry.CombatNode.StartCombat(); - return; - case TestMenuNodeType.Event: - GameEntry.EventNode.StartEvent(); - return; - case TestMenuNodeType.Shop: - GameEntry.ShopNode.StartShop(); - return; - default: - return; - } - } - } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs new file mode 100644 index 0000000..4e865ab --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs @@ -0,0 +1,13 @@ +namespace GeometryTD.UI +{ + public class MenuFormRawData + { + public string TitleText { get; set; } + + public string StartButtonText { get; set; } + + public string SettingsButtonText { get; set; } + + public string ExitButtonText { get; set; } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta new file mode 100644 index 0000000..238b4b9 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/RawData/MenuFormRawData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5dc8f63e892ff6745aed855ae42cfd88 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs new file mode 100644 index 0000000..f3cdaae --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs @@ -0,0 +1,16 @@ +namespace GeometryTD.UI +{ + public class MenuFormUseCase : IUIUseCase + { + public MenuFormRawData CreateInitialModel() + { + return new MenuFormRawData + { + TitleText = "GeometryTD", + StartButtonText = "Start", + SettingsButtonText = "Settings", + ExitButtonText = "Exit" + }; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta new file mode 100644 index 0000000..4fff258 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/UseCase/MenuFormUseCase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1fc5bfbd1fcf533448f2669b0eda64bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs new file mode 100644 index 0000000..5f1c55e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs @@ -0,0 +1,76 @@ +using GeometryTD.CustomEvent; +using TMPro; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class MenuForm : UGuiForm + { + [SerializeField] private TMP_Text _titleText; + [SerializeField] private TMP_Text _startButtonText; + [SerializeField] private TMP_Text _settingsButtonText; + [SerializeField] private TMP_Text _exitButtonText; + + private MenuFormContext _context; + + public void RefreshUI(MenuFormContext context) + { + _context = context; + if (_context == null) + { + return; + } + + SetText(_titleText, _context.TitleText); + SetText(_startButtonText, _context.StartButtonText); + SetText(_settingsButtonText, _context.SettingsButtonText); + SetText(_exitButtonText, _context.ExitButtonText); + } + + public void OnStartButtonClick() + { + GameEntry.Event.Fire(this, MenuStartRequestedEventArgs.Create()); + } + + public void OnSettingsButtonClick() + { + GameEntry.Event.Fire(this, MenuSettingsRequestedEventArgs.Create()); + } + + public void OnExitButtonClick() + { + GameEntry.Event.Fire(this, MenuExitRequestedEventArgs.Create()); + } + + protected override void OnOpen(object userData) + { + base.OnOpen(userData); + + if (userData is MenuFormContext context) + { + RefreshUI(context); + return; + } + + Log.Warning("MenuForm requires MenuFormContext as userData."); + } + + protected override void OnClose(bool isShutdown, object userData) + { + _context = null; + + base.OnClose(isShutdown, userData); + } + + private static void SetText(TMP_Text textComponent, string value) + { + if (textComponent == null) + { + return; + } + + textComponent.text = value ?? string.Empty; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta new file mode 100644 index 0000000..8d84250 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Menu/View/MenuForm.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdf317aa70fe94f44a332b6ee6ef5bbc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs b/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs index 2fd2ae9..2c60bc4 100644 --- a/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs +++ b/Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs @@ -1,10 +1,16 @@ using GeometryTD.CustomEvent; +using GeometryTD.Procedure; +using UnityEngine; using UnityGameFramework.Runtime; namespace GeometryTD.UI { public class TestMenuForm : UGuiForm { + [SerializeField] private GameObject combatButtonObject; + [SerializeField] private GameObject eventButtonObject; + [SerializeField] private GameObject shopButtonObject; + private TestMenuFormContext _context; public void RefreshUI(TestMenuFormContext context) @@ -12,8 +18,17 @@ namespace GeometryTD.UI _context = context; if (_context == null) { + SetButtonVisible(combatButtonObject, false); + SetButtonVisible(eventButtonObject, false); + SetButtonVisible(shopButtonObject, false); return; } + + SetButtonVisible( + combatButtonObject, + _context.CurrentNodeType == RunNodeType.Combat || _context.CurrentNodeType == RunNodeType.BossCombat); + SetButtonVisible(eventButtonObject, _context.CurrentNodeType == RunNodeType.Event); + SetButtonVisible(shopButtonObject, _context.CurrentNodeType == RunNodeType.Shop); } public void OnCombatButtonClick() @@ -47,8 +62,19 @@ namespace GeometryTD.UI protected override void OnClose(bool isShutdown, object userData) { _context = null; + SetButtonVisible(combatButtonObject, false); + SetButtonVisible(eventButtonObject, false); + SetButtonVisible(shopButtonObject, false); base.OnClose(isShutdown, userData); } + + private static void SetButtonVisible(GameObject buttonObject, bool visible) + { + if (buttonObject != null) + { + buttonObject.SetActive(visible); + } + } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Textures/BossCombat.png b/Assets/GameMain/Textures/BossCombat.png new file mode 100644 index 0000000000000000000000000000000000000000..3c02ecb46e44a273988190c5bcd32d352ec0a662 GIT binary patch literal 7413 zcmV|xvpBB+TA zm&yo=AjrwM@Q1!P-EMSY4>!$-ZrrpxnVV#ur@HFoJKygTPm>O1GXROS1rs<+;H z>V4j~s?JI7-j4oL1QdZ@1e74X&}e}ou(P8CQ7cdc1`tq!41l9WihvSCZ9owiKp-PQ z271*ZMPMcfWFg4W(b4HU@4Ry`6AV<%4Ml)9NLx%9UKWDv?(UxN?d`pvqL{W-1X2;8 z4Z;?a>`QG5TG5x1~1V2G4FAWO5y||Ypo^+xIeb{dQk)>MF6(9 zj2yU+wnK4(Sk@XaaDSe{UL&OIhrUw;Mi7AQF?yICXuepp%BpEu)9)61Ew&%n~IC6zft# zqllX&y=F%ML|Aju>=d^76<$NL7(vKfblydf9VmBU%TYy>B9I3G+8AxENBU{c`@z>@ z1bO!C+299*eas%zu0Wx7IbQ_!_xIa-kCnlYKr1gi9>fUp@bEAg!pQ6x1wF=~RTP1p z7cX9L^)eVG;G|h62rV&!fB>VNgW(G$NznXgWe)^sQ;(02i?OP((LpEP)n1Gs5I(rX zLOGLe*olH>Q3MbfIydGWo%q=3O0%g6q8s)V`1K(b0WPf&8P<+D5` z_Z>-Sh!6yZ9?WE?HQHW1@@BuD7JqlpsiE$FCMgdj}?V(zh))Xzs^fLpfN zjvG4C6mrC%Bt?**bzO&|2TGC-RP@yn0g?kY@_P9q{wBy)r3ezQ?o&%8$rBcO*FeCM zBlyIsAtL%#iXcI(9MD!tG62pt7B$Ebz0Ymo7G$eZ1ZnAz^r$3Bf^TygTXOI_R#M~$ z2B$`Xa1aNdeDcX1Z!{N1piuXg9NcpRd3-!$d71-Oo;_hR-H8(WWku)kyIK!RP+=tv-D5NJsrN1WJ>B-=qR;#K6d zs&5=s5(JZ3{SpggIOT*Qcaebx+J|`!@0a8O){7QtCjTomjB3Dt8dr>95xPy* zWN)&b0y=v6@@3~9gn&W}C(it4A|@`&7ac7rxUqJT!t{y0w>cftn1MOTVj@c{7$h3z zl1I3Vz_DUt+x0r%E`c=?q;mi?S`45K=rJb@Wg^i8a!jmEz-FQ_Nh?Ib^J4Ck2283?h#0>K zC4U;Zs)Q5LZ-*!(LJ)Mi;`KumXxD}D8d(g}xTlA2R|$PKL;>0U4&?YQ8pje2O*PFO zfj4j782j=ahX_GJJM~cxVVY}JpQ>JUK(=2*#UDl1w8aR7eoI`0Ahy#WW)95}*0204 z-RkLwK+>`p1cGgJoggvYe$ghl^DmmM{>0jqM~D1^-)g~jJn;k4YeYMKxzOb^Jojbd zbPZ_Oj`%aD{N4{ z!LrgVoeU}FIyRC8vGtE3P7)0UX2Ji4whJ6ekD_irz+iqNWyzaX4aZ z#CTHib40-&F*;D?QUwv^kT{_@+VIeJ zvV^&ej{f2VA%Gb9EP#Wa&2$Iv$c=Y2m`!1ueov#rVFmXm(aV>KFiNsTae{Er@Gf)n zzSs1MmfReIW)B4Hvdev?#iPaaRbY!r4lfHq=v@Fs5_8dhie#b&$ia2>6#Z>vADnL( zBER=l+nnD)w_2=xM z(oAx2{p_KhR`ErE&c^Obsvyb3!$YzSW+Mo}0q2F zCtz~&Mu~C~vyvkbz?kNxNCKM^i5?ttc7jw8MecA~Rp*ABGqB;AB!R(B=_JLX2d5@G zLD<4nrXGe&i;{YGE>h5K4FuZkDGYNfxj;hPmWg^~~fbvmL}tN|4MR#MwkPuv`av zO+!H1QDXW2tu&4LTTe<5s*%ZqP_)SaYwEp@=~sXFBS1%q+L9age}lX%X>x*a6gl?? zmVoR=bHxZCiijPcz@EO6Yp6vC!p#&seU5YSDfTzH=3=Yl+9)Cw?X&%dt3?PxOR%0^ z)Sy8+DZr_s=57SU-oo=Ie;wT^!~bx}-Ai7J5rl(4m=!(MvZSME%`-rND+#D6;w1O> z_Okr10DDldSYntJ^!k#UzG9ecTgOuKk7$%-A5xScGzN*^`l1{FEf%gRPxCYgNXUCkR60`+lkp*5cPnbpJ63QJsZcML;u&W!7dA1mH*{34kT^P#F;jAo^S9 z7SZ^r$z~D+Ye$LAl@jF1P-b_BRYbM_D?srj7G^V3#RiHJL~1^5h?WwkayAix$T1Zq2+qJI zB1jg`5s9ZZi$nnX$SODLMF|p#r8e6@1ZrI-ZvsJ5*RC6AZd*B|EGvo91o?96R3bEI z0VY*1Z6Aifn>TM#=P|W?r^2NPvN6ZAFJ8R(rK6*x^XJc>e~A16o`0$n@xm{8v<^K_ zkQwdr~?dd z5Baa&d+)t0zppUZxh+K0xWet|S9+l51&GADs6MZh%h?tsNUdRY%rsy`UqxgH^0xTQ z=TF{#`|TeblPz5iT^Eo!N)FU z``vfnO+MQ8?HGn0`^#tth&;1gYWZU0ThE&yFpSegmiOs2D}uo2e!XuXKJT$s{xzR^ zsdYGCkP#d`(8i^dwob-W*Q5`Ni4`2e>n>%z2ts1OFs``S!{$^JIC#~h@8Cc$iSKiD zVYBwmjy)=RG=%+X<38Iha7jHBII!c*rejlZ$~U`VL%~j#V*@F8#Qg}Y7%dNI=S`h> z??n(+wD}myEFgH%CCt_dy1=6b4=$(!!O9r>R|Uj<2`5@VD0zIjJyZ}BW_2HV?+~vxRku?vZoKTAPGQC^~%PmaiaBe<|fk*dPgDAlSOA> z65SWNLE1g$$amJCfoL>U|)`X5T&zz(&DE5mSiMLrdWpm*a` z@N1P~Y^@$TmmRG-QjeWB<|EuX*|n;U7_?Cojz$aASxdeIS!>vQfeGjSgc0SON;S(o z@2e*WLi3MfEc?jG36bb0lZ6Zjzh-@|x{1f-+)+5~FLZUIYQ)US1mY zE~pfh3n2>HrTo!1FWm$t>PG}*I1!SvoXjj&!Duw7A8a6b9xXAv_ZNc-*+MUZpl+!0 zrMuESt@EBfmp*fC#w(_+a68(lP^K~ zCHR*ZvS9taaM1-zu_b9BCOU#lv<&zjbTmnS$RZ%^Fk`jr`tqzVL86U!Kv^<=NgCAS zGcI)|5c~fGHTz#dS-C}df5s522##s1nES3T&z2-eES_uau#6KswOJExU!afwwzm?O z|B(>VCj(?o`sziW+>Gz1+UE=np)&~h5@bkl4P~(#Ja64^Z*RYY%J;|;=|3fe49F1k z`dGeZCmWnk6%nKhPcMSNBPD%bs;lD}z5@)8w?cYYk2Px000c0NkldO#RRFzCG+2o_k6Bq*_4 z6e8*0pyYRvy%UV?YoC7l>Hm8-5UL1=#wZfv&~CCd)H$iTWib0cGwi zCZnRF2tui~l7zZVm0?UDV3NOv{{9PjEurim;3eM!IsS63aKaakBm++Ej%656_I-yN zwvG0a>>FL5_G-vMOziXEC7K|VS{q4VkdvHbaqKR``2Q4!^<#ME-{0l3>zgpPuOt5q z%6|Uik3W8ivf_yb!TEycJcMo}!ZofJ$Y;?1kY!UUiD)1DH@i~Qyx~}hg|Cn#g0K?; z3y`_o3R&l}X^vdNBbjjk_-`SfBYyx)K1BW(Q&8Ct8V7XaQtAxXOXT$ZWW*TZ%%+|z zk|TKem`o621CTE3a^XH*c+lP|dt#U|gVW1N}-5WpPebYdoIVA(I?q_Yr&SW!WQH?I3c z6s1hhJoV#cre7M!NVa>4Z^BTLJ+4CNOFc~ z!ol!MbndlYw+I2uzsT|ma!8C5I^Ue|O-c|BgaZOmPB=h3XNe~8QX-Q8{WJ+8V3$|P zb3@yq9SN$|D{69rI88V}5XF7%L6j%}P*1WP&=p-JzTS?xm5Lf($P^=p(~hTIBnqB+ z+9gF4-KYc5+S0?rL+ZRt_Emg`U2%dqML-hWpExi!_nPzv;_$Hn_pg(pQw>2lYP;+@ z5%`cX)l*R&&B6#^d6Y6QH~iQ@Sfx>MRT0E#%Vih51wUkrU2>&Ngi}MW@(4uF3!EnZ zs*b!yBND452z92nz_N>5nTz=4QcXQjUdSo zmKOl0s01lL4XVKe2*f%pvHx!|W{k7igW$L?#GAxUNDPkJCKCdIb1tsMtO$}gdTp)< z1S2pjf(ZWSl)*r0gJcAvB6{gLpA|upr$_~qL?DVFB^74hN)V!;xmpD52gJqn+h~F$ zeuK2wq-v$Xjvm%I7TCej$Ai=SP9P4KRMG2AxRu#G_2+WEg z`a2%;G&{`OZ2wN#tOx@02>P9ZgwT$zG${f*JF_B4=r=-3f5;?aU>hI=^A`KZ8j6p8 zRs;cBv;43LdT)DDf=pxqK?EuNA=5;dY;re2^PK|-jUYKtRhdf!Qa>b2ZNF3`@@6&! zDGgL4zFXgHZ*On5%PUUa9)HXsM*v;?L#Ensok+i+lgEj4^6q9f1i^@^0Q%_Y=oGqa zREmkt#KET>POy^jDt%Nx8-f66@lgHz`SUAIw6C?ZKJ>W4b>U+il*@YP!8-Z)Vwj%9y;|25nC=tlWy^O`uI-4$i@wXAz*?R$d9OW%8BMX+z%$yIY$NO4Ub_Q3mOaFbtaafk1N!pFoX$dxI<6vOhfcCYDn^DmbGh4!z{UviN<}opqW8 zK{%NyC|iT0=cln=L6$KJTumA?4z@>~3sd>&#{rFnM$^;}&!;q2mZ7R66mEAq>$9Ml z(f-`FJ!YRU;z47lZm9DbGMZyL#s$V0VC}7((G?UH%71(f_aW-NfOq__}T=tqglC7Pd6@C&~y;)UCkQ4()3tn)nzYbfcFx#?Ja6hmX-x zMH()bLFaS;p5tKzBI#W;qa2^S92a%;X;6EeSr7!q5fwpVz(-$(B%EODIb+0lwP9cE z!_#OflZLyn^@BVs`(maL&rH&{mz7>k*$;H2bMmS`QYmPhBeH^vt0xG(I7T%YLD1KZ z@B~w&WG-qj0RxfJQ%X*N>Q7axCrH6_@S+p*G(}r~S9Bh#CkW2LXZy=GTW{J~0GL*2 z^#s9kC;22~T1d4wX$0&tTUxA_ys8Oefhihdy-?Ij8;d~I1i|MYv;QP^V=ZS(239pe zwqy=;m=z;XH9@fdh&qR_7;jarW&}EPtCk>k|IwkczM3HdclhA&?Ee1#5V~I@cYcu+ z@2gAI5=8eO)!9mvLRbZyyn6NO@b>ohntvkz_h)!_24UVLDfn4fy?^!xAclT=&i?^7 z);nFJzZ2`>CKABA0moHzg_0M;} z`UI6iWunQnsmcgqmsev1F-8QS58;(|k?E<`EUx?{!zT{xCAdR*Mo+tQFifXxN_WSgY`-0&Ii4_S`K zK^Z8&p+3X__bbWDaZZT%uE}B_=!;`sY1{R{xkFt#v^6=+`mEP{p7LIbAh~tE0q~rd zT}+%=%Z_yj;Lp&8k)U1G7yu``UC?}HIShpp-8*?Se)My~y3MxDdzP^d>*9S=){+=L z24LmTm}r;~wVEg&*j%o@U43FX>h%&IWhVOh=z}rQQ4t@fk8u?2W3|`uC&=Qsn%FcO z^}TP_$#!2QK`>Fyunp({@C3lSiSPykZ7!Q6;XP&f7yvtAJ=Evqwfnxt`&}9>>-l8X zMH{nB!PP9IDBq`Tvkuyl_)R14UF$d7xqGJvo|{oENCw)PME$7`=F1R^vQ0t656J1l znUb1%@_Eu+9YO5=!)%%X+Msv#LCTWEtmS#{)23YqdeA6IT4P9jZrAaBPB9|a2gbqZ zL+{OK7=;nW;PzT1yV+|v`Jq>dF|kkR7*>MTobfPK-zpY>0vV=(llSEL9gliXovLSAzhZ8J!V{!uyhn z&43^!;nBWJB2bzf9J>;PC}>s$dJs^8^Z=u;6#*ik1R)BV6@eZElpsC8=xarQ2y8b& zh=68AU;qIn$N)H6qzEWM)CLrR0R)sF1K?|Wy~Yods#+E(sL0AGy*opT@2%x8@-h^TOYL7S^K^gy*)gAklqf`>89pA>l7Ji$gk6GD?Q1!X4 z|7h_rirAd#zfy>PivHHJ$i*K$a<^q0=nBP?ygBVe@H2W|-K{}CmAjk03kUQslNejk)2WKJqZ_Fs^v(9QmS==C%Fy#b0>`{lnXs!$~F+$uPx)?w)@b zz{<)}xyzYmWF7a9350yv0-AMLZ7TTP=u3MmzSuN~p@_+aU76)X>* z;@OJz0!mUr8RM%>_n+jUY1e0Kb79IvncfX(Scv#v?F&&=6tO6f6eKr3UD_ANB?SvPfh4K@q-^;#8A#j~MBYDKu!f-te z$l_uOhhUJ}t5vJE^LVm2o~%51cDa|?Kq@qWDMsJ@HHC@z#~xgJlnlAp1{eX(mK-Tp zB8H95e8@|bC7N?|?HCI2$)UZ998>Edynry@1+2*X$8kKuVW4f;Q4T(1R>v2JainbF z=|#g#?dukLWtO#I;(P}4*-Isu@;q>%h+8}Ru)*z)o!Xl8c=pc1WXo6g&xDEI_)n1< zF!^}Wr*l6?(pItiUH=l-X0Ko0$dg)rv1uVuF>?0_Y4D5hE+;l|zCg|6ba5BEBS(pb ziT|#pA=p-%WPD*Df_d=0CP5LVT$Xmw^H(L7p*h6IP(Ll~a28&*#m8twW43gj$B;UYKH4CeeR2#97RCy~a!;c(}|=<7~FRA`T5`ir&%BG%0hTJ-{`i6M2ivSQUCz5Tmr8-~QmxX3WCQAzoA(X{ zR8hgr{rRD>WvWLDL!hutleI9I5@z8bSR3ZS=b2)~9v-_7;aoecKH!y$dwqIphFK84 zL`fq8Ki#zhrJagWba)Q zQ8h2~Jq<_@ypQuu`Q?^SmkadBu`qi%hRpwDE8(LVe~(JLk~hweT@S5WIE&RE5ner7 zXJSrnPk50b)m}dJ2GhN>;CR8Bw{&pBE2?cL6)Y!cTJu&<+Xv zTt`DfxN7WR_09QrLqkas1pwm)(pr%M6@=ng+ zKBuvxKQ3e3Fc0YI$cpfXOlHi|zC6dOR8TEOWJ&CyE0)<=#6l^cKJEL~f2jmpQ1$i8 zT4MA(Q@J0e*tBB5ATwJ{$|mPD-}{$px{27%kuaK)*vX z06&YK7-q(J{sV+wSK1``P1^RW`a9E zZj93I`yj+`zEo31S;kn8ReR`iEckQ`=Gzd|ce@Q|l6W2Sl9Z}a9Q@qO2vfjCU%00d8CC^HE|bQV2J9X4`gU_A$lp=0HMyf!{p!hrw&q!Rn9|Gd zpw?&w!ON0b!YpgQ?JWxoTla%S>D1w!Vv06I*5Thfx(gEgDTt5bIrDclP$5 z<0w6o!vbq!)=3`zOti5S!KvcRHr^j-8}dh~uQ#Z>2;(eqy) zOos*DR22IJj@}mT__>J07J6uReVQJ%XieDz1DBn~9kwiW7dztvY3p`IceERRJoQ}o zX!j86n-I3NPv=!;9L?96uK_8>GAp6R zZvEVAwn>{P{kXIm@Uli!uu$JHliPWI>f!M*v!0F3BoO0FAA4{E#zVJ_*|p^msDP43 zh*qK_1xo= zv1SP>-LehshkO6YBqISk%Jbqq!2o~R9`0gM@>%LodC^2uISC)6Iz`wIK%_M{r-?Oj z9I53rizAA1rN`W7MXR;(tkEyORPy5-{un@GvB@qNNDwa>YrcMU+1u@A;_E6Bt2(VY zB{_dkJK?)H?vDH4*bEs;3@ddkklpr8{lCxE+T=$Hwnlx<0Sq;+rMO(*X{37Pg%&yH zz|Lu~8>vY$31P85kb3xIFIeRLDXD{}`ziugeXM*Yw|RI{4yKVsH|%IO#)YluJy84 z0bY)JNS|_A7qsX{3-j_vg;!pkIczJwkpvDQFSFUM6Bry-cD~u~b1g?h|2O+n@NvzE zlzI)4ie==*d|80M)ytly(eh($BR4;gCgMqR{Ahz_Q%-5v#`-kGg7>DpAnLmB!3J+A zo6pztbG8^uV_R$y|9v=RVqU%9k}T{1CJ+PEBIqpFOy-T@ZLRGgc$zQSjQk+3WhdH) z2Ul4m5wCu%gym5lCC#c}Km1~;>?n(I6*!{Vo9w+}+*XSB6Q`mb`Vw41k9dfC70CI}Es0OH>6Vl%N z63>Sxe)0CwVGpX8-wO=poq8t#AUP#(LED#ebbVs^OeuiE-_fe2{=t{Y%q#P5k9ShY zp#3$WAlc5ctgzFUz5vsh3HTv-x z-tK~tGf+x;0dqalke399VK;IP1<}85x=5t7ZJkyUgEHE^pOwClZ00sivj#XC-Mq8J zuk|O2G|Iwn*BOTEU47VIW=1G2nP%P5AL{q$DmH(TA!*m@LpVT-3mzmx7_`eHQ%r*MWW3u2z`lJh zxrv9B3Pvg=8>L4aAmWWttYM*vSNpHZl7FY!0QFto0pviIYF~-m+a?oBGkgN;K&0m2 zl~=gB6LKkCafAWCX?_5g^fj53mx}mhD$tR6TX=P_PjhnPIA@bwg%eGi4DL((HIpIH zhrN2h0t%RIf94cT6Dp|M_Pp5}=D%0kG4fO*_~`CG$^~qStSS}HCYEB4($B7B6@3Xnq6qX+rt|C9M|r14o;u1 z&YztJ?NgH*287kQ;M^$c91s-G>?~&lZ|VfxMa&I*I~2|{4i;nz{`eSBu8^G23UTTp z+bH;C5-XL8G{=6p3szs+9`yQDSYi(3qGwh`KZgL}6{JZ8YHgMyOSeImb5rI+D%g1U z?@UINf*Sf)MCFkO|H;K$wFj^y8W5D2JEpBhIsO|TAA(Qcgs;gY^1rVn`x@>FPVlFt|7>&$SsgG%+q^Tk^8+C#N z#jxj`MCSrsO@rFC0?sC%Mt9aL2mq65+erMUWlNoMX{t?*PlPRAm1T52y*D2CZh#^a z&Gdm1amG=1T%CuyPu6?uqB^w~bAwe!6meQS*IuO&&7=Tm=ekTrx4C`627PNJB#Qq{ z7iDTl{IXOQ*oqLPYMmUzvTAray1l8FhGtXbHMZLOi==xswjK;sy>z@r4&;p{PtNGL z-vpq!Y`25?hJvU7tDwu*>drk9GjgapQ01-Dc8U`>c;KQlCo}vl35owIgi`Wg+=5)! z9yW9{3?7NSv0eLFtDlbs$cX*kR6ukyJ~q8^(@X07EFMt!g-x(Sx|lgi*2qxUnXQ4w z|^C;H0cy_s!4?AWWB|49YDCm}?GKKB`<}01DDLL5^N#0a)=DdF;f; zcM%RHlOjm08=hK>f*zn6%@vQ@_fI^f^%_zz&6u!bS6;rGumPOe(s7$fr8diRdvCqs zkBz~!zL!U(G4CtQE63eV*mGpQGS}g=2+Gn>PTE&S{LH9Tvh{)Xqd^V_W2{JdSs((3 zIVgAnf#9tDcMC{TN-bFD+Y?rB5gQmvj?RY?meboO?2GR(C(KAER#vzG4q+-@c=FW& zCz|ladNr<~)DV5%(PhUEW83JBke$@!w86$_t-K%RQQ8+SwbXd&c56D4Gn2k(>)Ogo zUa!7rohxOiV>t&Z6nx-%Ygq#a~Lq(zkimNQV@VRyIr9 zFCDr5;l%u(&{6ExXn?DicQJ{&KE6Dsa$TVR!dfhJ_Z zvC?bCyFMzO=sQTqQy`L~)g;M9}a4+_)VYqXwUyFQ70kRO2WUCEinB0tw zEZ)DoSG6s=J;)-=;9C*U-POnk|GH>S)j<%g z$T|j;j>73AnVu;)59LQ9L_0{w zWj8YVJD2LKDbM?m9Kp*m3-oyBU_z3Moj+(!>UaAQ>P{Z4ZZi3OkL&TujS)oUj})J-y_=pFjmmAJ^Ndpx6onMIx(K^G`G|d1VsPNW))u xZ_*{aKNQAni6Ia>J8NGDVt3D4`~KDN9>hLs?g)>zi|H(X)CxsnCbiXGwJA!)9<7Q!8?k38TAS8ZyD@^=t468O z+Eh!cs{Q-DpWhGXoacJ3`+lBt&X;qp`;Irz(_*0Iq$MLGW5A%*jjqsn^H(zgVMx!W1_mB7w#@?x7yhQWjpk;N8#1Y>ZY$%N4 z)+KWk`1gCS&TO^o$-DEdtOtjUVZ0uf(bcC%lHHx1o%jveLC3kSpqtLiQBt?L`|C95 zBJP1A>{8F-K}qL|1A2e|US1UJE)*0N+CGdoeBgGOUwsf6zahC-dd1mS&B1?Bgum1i zJA$N))sTQ!=ZQzE0y(y#rC@5)->FMhD$q$5iPAL875wPHXnH~gRF^NwASXu{rAY=x z`@kr}9GoV~^oNt^zgmiCE1NMqOjiMEVqu|1Cr>l0tCcb!N(VPE#h+R^`20dnm{k48 z^mysunr8xj5uy!rD@gJT2sNh#l^;~CoerjvSwbYA3=PzJi&o*MbzjB;-rU10JzjT% zV#DSS1vr?=-wmdr(EQTp?Pf=ofJ313`&A~CKcI^dBwicP4qN}Y)|^x-t1 zg1FESRlmqT?A;#Bas3hYjRkH^&oh{~-Ef9Z@BaHcF;pzizf)EV#1t9IP6Ur`|M*Dy z@?7hs=j`bsJqoAT|Ag-33q!alS*qZ!U11M)|Fo>In+8{I=#5h}@g{s|nMo9Dv#H_- zD&4G&@O;^RpQ2Z|e-hx?8|2=`XWe3nJD%Vv(R3SSUVJIf(Hn43LfQqYKIhNcjgLJ` zXlSLl76WGvrT$`BD_)ZT!AJ7w))+f7MBwGWxsB01!nfMa@0zONjjV-}J?osBb{jH( zN_ynU?xG#Q&oCEbmOn^MoNsg!%+C2Z-Z6CVSm4ms~nm9ZJN6cd+2lnKUvC?AtU$A z+AN@8&b%yvAGnF{OB~=zWtEz7@ta^)h09E#a}5I3z^9w@ef$;Nl}Bm>`af*l+guGA z%u&e47_49FdZe>x2f01iUOhWTl-ZS(TDHB`DUU;5Us<)=)>FpDfq%B%!9L=g$HZhk z!HM$HmRPE>`Ju%cH3`1Bz(sNY72iFP1PECN2oVqgo(C^mPh_?8eAGDf@Jppn61FVG zlo2-Xpr+PjDl)GPO@bnMz#F-6zZmvnI)yU+dvHt)o}0A-j4Mq-Y{qmr+yyfY_<=h6 z7>l?RURD`nm?zW-6PcA#|BL}BilReFYNA2f!DdWYe^6srd{iy(y^fYXuS=qa6 z1eR%i(_-PUAIYW3Qr}9yuz#!Bc6D-KF4{6PD;?qpV1Jy%`AO;Hox^m^Wcc5o;L9v! zcAY-A^@L>f5L(shb`93`@*}f)Pw+*#A_w`Qx`2fLR}xK0JVnsq&^v$Q6VMn-Ht?E~W0?KzKK8>tg49c> zHzkggcoCU$HMf|NWPS`eEo_9m@%qk#CpcYYgtu+@WN=t5q)M(nG)-N>kxqro>Q^`$ zpw}%b@>~ZazKK-fv_U)#qP8LV0i7!TNlxYwntoo67~*53;-&@f53*?&!VTX!Z@4?7 zK&Sa%d}5Ja4k`Vj=o^kisokI6Np5BW9F5@y2~nwDx;g2(HzUOZ!P9rr?nkNy^Wj0UjigG$;NE* zAwOb(4*3kPv4fbHH}2|TlP0YOmcRH@qb@Ywp;=cK+qGli3Jy=FXGyZ~-Qz|5!>KR)dV6 z)iLX}b*9sNLny{tPWC_=31KG`KPgRmM|1tCa-!Y0-CUJ@XR@>(xITHOJR-=e+)#8@ zC7F}G)fntjsc^B2Vng$OBv7@tS~f;l!wSu}S$rqH6=@qOon5m^f*36;1a+21oMn8s z%_5g_SThYalW7n8yhP+DNLKhvQdKUsmr#721e;se15wpnx=M4M)*^ewmx5hW5t?~g zDJ3!s+^n*sBcTbl%B&XUTtR4GL1+-ST9j23gn3l@EGR6j@$e0N{d1JQD5XSqpl|EI zj+TVDlg5{wvZU^l{r!E@)7&;o!n5m`#6}?ms+G>O`sMi#hZkW9h(n2vuJ2exN;MHK zwADNN`(!KeV-$^o{DR(XIEm)u=W4jsZ{nyWpMOoCK{wiaZYftwucrsMuQm2oiRis- z^3vi0yp*E8r;njgWkjl-Cd&MxZ{Tr9C$|a_RztA%=vmXR@NUHq)tMQ`eShx~pPFi% zWu~P=cFF&)h)njdY_9S%j{4M4CA9o{XhUIV*LR>|GuUzV*}X!q;h7EAG6W)g7#b&rmx^;m{x!N)~yN7US&BEaa{^hf2qLmZ7j$&qhQ3 zEOSONg?%B3@^JHVl*ElS@IIBo2|(kve!Pq^=ZRyP!=%x)l@NKkVN`H=1-e+no!TEY zF1XQEeqN4O1CfTwliEA>!D@0ey=fqIv?Yi6$psJLQoU4~j@~&t%nHwVOn;~gO|WM5 zipx#r-)6PeGS(qXs@-6iv---T(g3}11;?t#Q(#;&m_}%| zt5TI%=ez4Y-?PGs6j9amI%@7GYj>qv;+ZN2@0^Em!HcUQOV!a5x>IyVbn$-{n|HUD zwUB{0AUzA^#mUx4xQXcr+)-Nc<*_v({!eCSeLQl54k3Y%tc5TwD_!>yK&Md2)^g~K zHSbDt*;j|yS2aJ3;{2vx%ijN~+3~++5F)}{dOE>IfvX79tsk?~KFd*S!t?L}6GQy z;%r}{Z|;Xsta$1Qkg(3Lm!&#);S|?EvEMcyxWhu>kv7>@^(X2=M}bk_$`=;bzl~B8 zyBVJUAxM#W^EhZDfx@Fft}?2SyWHat*^>;BN(uL$F|!8%C| z)rO+G!va#@mk6yEKa75v`wbL;opeD$dPmDbzZL_fGDKQ-F)?9V#d}kS8L@gi&h1R< z40{9aj1a8weWF_zf;XoFH+~aVJpAD9)+d^FCMWR8X|*f`FZFcm+_!;P_w2{N>PwCp z#>eD6aOiIzTFocR2sOF78(pVW*>UDHRkq&kpXuNGPd2dP?t?0$Z~t z!scT##3p0*i3-SIxp(`UnN*>vO z8S-R=+YI~FYH(?GJ6W)_CYzAnYjBk->X}$Ire){{O-=(r?1DAQgm0L?5Mwi+~+%5D?o=| zp&L7k&H-gW2U*Ta(GXqh%6-?$>oSqERS%WIm)14$YDGE=N9zsxcvwH5+MeK4nY+mA z!qw9E^&!|2v0F=C0Mz!xh~fBVwUiDrUlbX`Ub|iVeqT{V4rgb!3w=y!UXX7xaNgp* z`j#3ShnsSi<=K@8vLNDj-zpCZBYzIO&w#i?t1L210J{kzF5QBk_xGz8venLx3#-?k z|D-4|?VxdxNoz`A0<_#ekZ+qVYN2;7&t6Z%seRY-djcSqZ+W08QTE z?@w*j@f8^e-hKayM@|!|`G`3mmbp9yKXhfrt*N4g(hSuhb;9QC;sSpJlRlZ8$Bf@xd+o6T z$Cv%#mQry4QIAbcYc*TTjDi@$AM0o`W%!B{vQO2AnvDnC)T3Uvw6w63dg!Xof#VrJ zHbNo#yd#Mzbq>VFKNW90dx)7)!QS^YK^q*gbR2q`6XGi6KGYRo~_LhQzl51{Pmw?F8P5G09XS~73nIJ=5OKavU8n8*lnw- z{ml-G8x*9#NO$Dvi3CK*`ahTm-rf4(pL;D|iB{$s;t$<|l|Jvj=;OS~Lus5&O^ts+ z$jqutnB~t(MVWMeSQGq3mk{%KPGy*_1HWrrGr6xv%ejBW0&KTK5Vg(W!l^T}@!qKP z9Ua4&efV{*-k#UWA3M-Ri?LQci_4v-^~uUMi-YWZz`pX>9`hm3Tqp982Fs6B2b_pH zjderVYrpk0_gC^3&kmT4oHZ4fMSi@Gl?9-J=!tZYj3px6ejs|+ohP1b z;Tkrn1ADxalxxwJX2Api=TOZ`BlE8(ULtbwQWGU!*e}m(6_}d(40d^1FayY;@p6xaRR;Ke;Ek<(kw{`I z@LPmD z=}R}33lS7pO-J~c5e%MVH?S37iSmtYokV@y`|?zZqc4B;4+UNIL1Z(ROj&tx>76fR zmgPz?V{&Xix0);&O9s+Hei*CRxC{&{4oFA52I4@^uSLQL-BxcjmN*HJAW)Fic}1 zam7eUml?zP(rx3iW)Ga-+@LokX!PA8nmrDxq_Zk3We`k(?HZIn{t>1pk^(_eV^nnr zjqIgfZc-)3c4n*D#_bsS6ou&EH zGvk|by=fP|=UrE*4!d>}`q3ST8*8=Jq4c<^HvRHd6j1t($!P7;n2Vtd(kDyXts$QYG{j)K zkxJ`IS)(g)b6AzoIZ51VIh<)I{xdp6|H^72_!JPI3^e4qb*oNBMEZBri#JJPw|_2I zXxA^(vgJY1o(4~QO;>8;2G+LB1Kl6@w!LUY;3gnHp0xs7X%}l7Y$%Eg`r>-`XN1g~ zo_jlord^e@if2y!<;oEc4NND?-#H1t?)CW5G$8(9h5w!eAt;Dtq{!E=OjbW>VLJoD zL?Z?>j5Ab~=#I9ibM>o%#n2bQOmKeBC=7vLoTcZ9LSVd})rYWfZZTFX&;zIQ1E$YU zAZ05yG*gj*@WiBw^Scpx0_C?;L{nKow#2$`(VSRxC4d8GBv1V|POxQ|!2)dI6x3?} zkx3K#&G?Sfmz~95A5yLSfV(sOWLLsH)w3CY+8DN#dhtF0e~`-w3b!pAwLfNIo>B+NBxOw&s=T!IjnC!aD&m zpqc71_-6uWXR7B#2k!WLYZN`cIu5OOk8s!RD;uKg*W47H))oGks(Sr`*MMd{(OazZ zF@P3={tPtxmiS+(?Jre*p;y+%dh%njZnrCTf>)PthujtW6L9_{QPXY-Ak@B7c`S5g zdSD{3H6`Z%VIH*$2hm;yMn%?pf^1j2bjYivEu^?|Dg@F!-s~aQ{#|)N|Nc=P<$Ssd esQ&u_Qj)o}fn{%#(;Z%A$S@ju>b0tNxc>o;H&+n= literal 0 HcmV?d00001 diff --git a/Assets/GameMain/Textures/Event.png.meta b/Assets/GameMain/Textures/Event.png.meta new file mode 100644 index 0000000..e0f0305 --- /dev/null +++ b/Assets/GameMain/Textures/Event.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 048acf1176eaa5f48a12485e8991aa96 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 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: 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: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Textures/Shop.png b/Assets/GameMain/Textures/Shop.png new file mode 100644 index 0000000000000000000000000000000000000000..24b1bf3b981dadcfbb79f2c417e4cce051f4c797 GIT binary patch literal 3329 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 V|8boAw>k8N&CJBgxYEci=6~Wz;t&7; literal 0 HcmV?d00001 diff --git a/Assets/GameMain/Textures/Shop.png.meta b/Assets/GameMain/Textures/Shop.png.meta new file mode 100644 index 0000000..835d056 --- /dev/null +++ b/Assets/GameMain/Textures/Shop.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: cdef6ec8b51831a4abf9688dde8e2281 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 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: 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: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/MenuForm.prefab b/Assets/GameMain/UI/UIForms/MenuForm.prefab new file mode 100644 index 0000000..7e9a8c7 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/MenuForm.prefab @@ -0,0 +1,720 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1485660147845521821 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3442204668286505931} + - component: {fileID: 7247274277813398792} + - component: {fileID: 5832248750743189576} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3442204668286505931 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485660147845521821} + 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: 3471644370828071279} + 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: 450} + m_SizeDelta: {x: 1000, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7247274277813398792 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485660147845521821} + m_CullTransparentMesh: 1 +--- !u!114 &5832248750743189576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485660147845521821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Geometry + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6351599272186829672 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3471644370828071279} + - component: {fileID: 1596541747939020788} + m_Layer: 5 + m_Name: MenuForm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3471644370828071279 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6351599272186829672} + 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: 3442204668286505931} + - {fileID: 2124736747478720832} + - {fileID: 8167974608901112604} + - {fileID: 7693594745400141304} + 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 &1596541747939020788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6351599272186829672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fdf317aa70fe94f44a332b6ee6ef5bbc, type: 3} + m_Name: + m_EditorClassIdentifier: + _titleText: {fileID: 5832248750743189576} + _startButtonText: {fileID: 4147629153443456746} + _settingsButtonText: {fileID: 6172671250818335926} + _exitButtonText: {fileID: 5635940221953385042} +--- !u!1001 &2533297389376661431 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3471644370828071279} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: StartButton + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u5F00\u59CB\u6E38\u620F" + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnStartButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.MenuForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!224 &2124736747478720832 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 2533297389376661431} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4147629153443456746 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 2533297389376661431} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5696765442475836907 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3471644370828071279} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: SettingsButton + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u6E38\u620F\u8BBE\u7F6E" + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnSettingsButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.MenuForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!114 &6172671250818335926 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 5696765442475836907} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8167974608901112604 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 5696765442475836907} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6093832046355637007 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3471644370828071279} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: ExitButton + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u9000\u51FA\u6E38\u620F" + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1596541747939020788} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnExitButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.MenuForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -150 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!114 &5635940221953385042 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6093832046355637007} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7693594745400141304 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6093832046355637007} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIForms/MenuForm.prefab.meta b/Assets/GameMain/UI/UIForms/MenuForm.prefab.meta new file mode 100644 index 0000000..b3f82c0 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/MenuForm.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9307a2d7191791348b6eaef1fbebf4cf +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/NodeMapForm.prefab b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab new file mode 100644 index 0000000..15adfd6 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab @@ -0,0 +1,2051 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2236041345382337146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 922934795576347983} + - component: {fileID: 6837590822495378204} + - component: {fileID: 4979270378593961630} + m_Layer: 5 + m_Name: CurrentNodeText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &922934795576347983 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2236041345382337146} + 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: 8242293742256433523} + 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: 400, y: -275} + m_SizeDelta: {x: 800, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6837590822495378204 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2236041345382337146} + m_CullTransparentMesh: 1 +--- !u!114 &4979270378593961630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2236041345382337146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'CurrentNode:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278519045 + m_fontColor: {r: 0.019607844, g: 0.019607844, b: 0.019607844, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2535225513627916256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8242293742256433523} + - component: {fileID: 7283867484231763511} + - component: {fileID: 4805351471214359968} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8242293742256433523 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535225513627916256} + 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: 1637083674392264047} + - {fileID: 2132470739264901798} + - {fileID: 922934795576347983} + - {fileID: 3583070692309943494} + m_Father: {fileID: 6947172419113945376} + 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 &7283867484231763511 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535225513627916256} + m_CullTransparentMesh: 1 +--- !u!114 &4805351471214359968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2535225513627916256} + 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.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2787322074212207936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2132470739264901798} + - component: {fileID: 1857064941803404492} + - component: {fileID: 7509393958380784646} + m_Layer: 5 + m_Name: ProgressText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2132470739264901798 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2787322074212207936} + 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: 8242293742256433523} + 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: -275} + m_SizeDelta: {x: 800, y: 100} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1857064941803404492 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2787322074212207936} + m_CullTransparentMesh: 1 +--- !u!114 &7509393958380784646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2787322074212207936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Progress: ' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278519045 + m_fontColor: {r: 0.019607844, g: 0.019607844, b: 0.019607844, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3216580919242808685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3583070692309943494} + m_Layer: 5 + m_Name: Nodes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3583070692309943494 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3216580919242808685} + 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: 5505438436700190872} + - {fileID: 6771197692057054118} + - {fileID: 704942745518313653} + - {fileID: 4506426388347863678} + - {fileID: 6247174972852701292} + - {fileID: 1431306299780175350} + - {fileID: 4740252980947722747} + - {fileID: 6240611274682527709} + - {fileID: 7498786908887636296} + - {fileID: 2246347047042530621} + m_Father: {fileID: 8242293742256433523} + 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: -125} + m_SizeDelta: {x: -400, y: -450} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3326466614698677232 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6947172419113945376} + - component: {fileID: 809390486919404248} + m_Layer: 5 + m_Name: NodeMapForm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6947172419113945376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326466614698677232} + 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: 8242293742256433523} + 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 &809390486919404248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3326466614698677232} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 16f09225744e9ed45ba3ed24c27f9602, type: 3} + m_Name: + m_EditorClassIdentifier: + _titleText: {fileID: 301711657670358600} + _progressText: {fileID: 7509393958380784646} + _currentNodeText: {fileID: 4979270378593961630} + _nodeItems: + - {fileID: 3184682408043299068} + - {fileID: 4444310373139600322} + - {fileID: 7610249257945868497} + - {fileID: 6836312762234927642} + - {fileID: 3956148775445606408} + - {fileID: 8325037704773217682} + - {fileID: 2422301256143903135} + - {fileID: 3949206296056518585} + - {fileID: 595730959170036012} + - {fileID: 9185615275182458201} +--- !u!1 &5191940055044151408 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1637083674392264047} + - component: {fileID: 4349516100757004026} + - component: {fileID: 301711657670358600} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1637083674392264047 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5191940055044151408} + 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: 8242293742256433523} + 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: -150} + m_SizeDelta: {x: 500, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4349516100757004026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5191940055044151408} + m_CullTransparentMesh: 1 +--- !u!114 &301711657670358600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5191940055044151408} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Map + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278519045 + m_fontColor: {r: 0.019607844, g: 0.019607844, b: 0.019607844, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1001 &1271109512820773181 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (8) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 2097.8003 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &595730959170036012 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 1271109512820773181} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7498786908887636296 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 1271109512820773181} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2615124379101881299 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (1) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 370.2 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &4444310373139600322 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 2615124379101881299} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6771197692057054118 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 2615124379101881299} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3386853298346459161 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (4) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1050 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &3956148775445606408 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3386853298346459161} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6247174972852701292 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3386853298346459161} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3398514899296085928 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (7) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1851.0001 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &3949206296056518585 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3398514899296085928} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6240611274682527709 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3398514899296085928} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3879242766800023789 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 123.4 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &3184682408043299068 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3879242766800023789} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5505438436700190872 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 3879242766800023789} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4069612836856637838 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (6) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1604.2001 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!114 &2422301256143903135 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 4069612836856637838} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &4740252980947722747 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 4069612836856637838} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5132101656774593035 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (3) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 863.80005 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -600 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &4506426388347863678 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 5132101656774593035} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6836312762234927642 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 5132101656774593035} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7394427989743777096 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (9) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 2344.6 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &2246347047042530621 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7394427989743777096} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9185615275182458201 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7394427989743777096} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7669609101079911811 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (5) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1400 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &1431306299780175350 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7669609101079911811} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8325037704773217682 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 7669609101079911811} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &8104962113636538560 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3583070692309943494} + m_Modifications: + - target: {fileID: 1139814490629641939, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Name + value: Node 1 (2) + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 617 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + - target: {fileID: 8781361341733077650, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 809390486919404248} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, type: 3} +--- !u!224 &704942745518313653 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8769328334771685493, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 8104962113636538560} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7610249257945868497 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1866624916103966737, guid: 94e1f0fbe373d4649aa3cb6748d9e95e, + type: 3} + m_PrefabInstance: {fileID: 8104962113636538560} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta new file mode 100644 index 0000000..ab165cb --- /dev/null +++ b/Assets/GameMain/UI/UIForms/NodeMapForm.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c97f2161a8ca2064ca526daab5af3c12 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/ShopForm.prefab b/Assets/GameMain/UI/UIForms/ShopForm.prefab index 49c0366..d389407 100644 --- a/Assets/GameMain/UI/UIForms/ShopForm.prefab +++ b/Assets/GameMain/UI/UIForms/ShopForm.prefab @@ -9,6 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5415218784008833447} + - component: {fileID: 5196229321978622645} m_Layer: 5 m_Name: GoodsArea m_TagString: Untagged @@ -29,16 +30,42 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8151958057702917095} - - {fileID: 7688139928625067640} - - {fileID: 5680695134824055502} - - {fileID: 7356148158948538594} + - {fileID: 3590466499647340283} + - {fileID: 1901628129711676341} + - {fileID: 7273079084572676742} m_Father: {fileID: 1205117627678350677} 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: -200, y: -600} + m_SizeDelta: {x: -200, y: -400} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5196229321978622645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2241808423083193139} + 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: 3 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &3049846567690401185 GameObject: m_ObjectHideFlags: 0 @@ -148,8 +175,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -150} - m_SizeDelta: {x: 1200, y: 150} + m_AnchoredPosition: {x: 100, y: -100} + m_SizeDelta: {x: 1200, y: 100} m_Pivot: {x: 0, y: 0.5} --- !u!222 &8192625378894433324 CanvasRenderer: @@ -207,8 +234,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 80 - m_fontSizeBase: 80 + m_fontSize: 50 + m_fontSizeBase: 50 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -305,9 +332,270 @@ MonoBehaviour: _goldText: {fileID: 6733122308210092107} _goldItems: - {fileID: 4011540134222967855} - - {fileID: 3187293301768225200} - - {fileID: 603388849832031494} - - {fileID: 2349754275062894378} + - {fileID: 8600096917386053939} + - {fileID: 6695085058778983549} + - {fileID: 2478495138848318798} +--- !u!1001 &85294096454229121 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 1 + objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!224 &3590466499647340283 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 85294096454229121} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8600096917386053939 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 85294096454229121} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &955635360829419302 PrefabInstance: m_ObjectHideFlags: 0 @@ -335,7 +623,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSize - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -355,7 +643,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSizeBase - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -435,7 +723,7 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_SizeDelta.y - value: 150 + value: 80 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -475,12 +763,12 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.x - value: -380 + value: -400 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.y - value: -150 + value: -100 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -508,7 +796,7 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 955635360829419302} m_PrefabAsset: {fileID: 0} ---- !u!1001 &4746075394203509149 +--- !u!1001 &3071191544911772111 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -519,7 +807,27 @@ PrefabInstance: - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_Name - value: GoodsItem 0 + value: GoodsItem 2 + objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 objectReference: {fileID: 0} - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -531,6 +839,56 @@ PrefabInstance: propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_Pivot.x @@ -549,7 +907,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -559,7 +917,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -569,7 +927,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_SizeDelta.y - value: 1013.25 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -609,12 +967,12 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.x - value: 322.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.y - value: -506.625 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -631,6 +989,307 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!224 &1901628129711676341 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 3071191544911772111} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6695085058778983549 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 3071191544911772111} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &4746075394203509149 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 0 + objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -654,7 +1313,7 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 4746075394203509149} m_PrefabAsset: {fileID: 0} ---- !u!1001 &6263004066066569880 +--- !u!1001 &6058408170495930620 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -667,6 +1326,26 @@ PrefabInstance: propertyPath: m_Name value: GoodsItem 3 objectReference: {fileID: 0} + - target: {fileID: 669693094614527628, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.00012207031 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 761798453953883578, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -380 + objectReference: {fileID: 0} - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target @@ -677,6 +1356,56 @@ PrefabInstance: propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 4898781408420543685} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1859538258681759610, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 2007177356427953005, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2732971145639930164, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2824363281443248115, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 170 + objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_Pivot.x @@ -695,7 +1424,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -705,7 +1434,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -715,7 +1444,7 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_SizeDelta.y - value: 1013.25 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -755,12 +1484,12 @@ PrefabInstance: - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.x - value: 2347.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: m_AnchoredPosition.y - value: -506.625 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} @@ -777,6 +1506,46 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 525 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 450 + objectReference: {fileID: 0} + - target: {fileID: 4208371627915977171, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 6823666478257055882, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -130 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSize + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 8198028867451079023, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_fontSizeBase + value: 50 + objectReference: {fileID: 0} - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, type: 3} propertyPath: _index @@ -787,11 +1556,11 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} ---- !u!114 &2349754275062894378 stripped +--- !u!114 &2478495138848318798 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, type: 3} - m_PrefabInstance: {fileID: 6263004066066569880} + m_PrefabInstance: {fileID: 6058408170495930620} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 @@ -799,162 +1568,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!224 &7356148158948538594 stripped +--- !u!224 &7273079084572676742 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, type: 3} - m_PrefabInstance: {fileID: 6263004066066569880} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &6506894752150803458 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 5415218784008833447} - m_Modifications: - - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Name - value: GoodsItem 1 - objectReference: {fileID: 0} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.x - value: 645 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.y - value: 1013.25 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 997.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -506.625 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _index - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} ---- !u!114 &3187293301768225200 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 6506894752150803458} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &7688139928625067640 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 6506894752150803458} + m_PrefabInstance: {fileID: 6058408170495930620} m_PrefabAsset: {fileID: 0} --- !u!1001 &6787368018900032306 PrefabInstance: @@ -983,7 +1601,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSize - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1003,7 +1621,7 @@ PrefabInstance: - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_fontSizeBase - value: 80 + value: 50 objectReference: {fileID: 0} - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1058,22 +1676,22 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMax.x - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMax.y - value: 0.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMin.x - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchorMin.y - value: 0.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1083,7 +1701,7 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_SizeDelta.y - value: 100 + value: 80 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1123,12 +1741,12 @@ PrefabInstance: - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.x - value: 1020 + value: -400 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} propertyPath: m_AnchoredPosition.y - value: -659 + value: 80 objectReference: {fileID: 0} - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, type: 3} @@ -1156,154 +1774,3 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 6787368018900032306} m_PrefabAsset: {fileID: 0} ---- !u!1001 &9090800509245628596 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 5415218784008833447} - m_Modifications: - - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Name - value: GoodsItem 2 - objectReference: {fileID: 0} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 4898781408420543685} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.x - value: 645 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_SizeDelta.y - value: 1013.25 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 1672.5 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -506.625 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - propertyPath: _index - value: 2 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} ---- !u!114 &603388849832031494 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 9090800509245628596} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &5680695134824055502 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, - type: 3} - m_PrefabInstance: {fileID: 9090800509245628596} - m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIForms/TestMenuForm.prefab b/Assets/GameMain/UI/UIForms/TestMenuForm.prefab index d19877f..9e30227 100644 --- a/Assets/GameMain/UI/UIForms/TestMenuForm.prefab +++ b/Assets/GameMain/UI/UIForms/TestMenuForm.prefab @@ -49,6 +49,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d1cfd203143c34c4e853705bdc409e04, type: 3} m_Name: m_EditorClassIdentifier: + combatButtonObject: {fileID: 4510397703366314199} + eventButtonObject: {fileID: 6875912589832396601} + shopButtonObject: {fileID: 8107616822249026203} --- !u!1 &6790072542047644883 GameObject: m_ObjectHideFlags: 0 @@ -353,6 +356,12 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 3758745783397349737} m_PrefabAsset: {fileID: 0} +--- !u!1 &4510397703366314199 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 3758745783397349737} + m_PrefabAsset: {fileID: 0} --- !u!1001 &6187312163487411847 PrefabInstance: m_ObjectHideFlags: 0 @@ -586,6 +595,12 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!1 &6875912589832396601 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6187312163487411847} + m_PrefabAsset: {fileID: 0} --- !u!224 &7748794988612724848 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, @@ -831,3 +846,9 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 8806106529173603109} m_PrefabAsset: {fileID: 0} +--- !u!1 &8107616822249026203 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 8806106529173603109} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIItems/NodeItem.prefab b/Assets/GameMain/UI/UIItems/NodeItem.prefab new file mode 100644 index 0000000..35071ce --- /dev/null +++ b/Assets/GameMain/UI/UIItems/NodeItem.prefab @@ -0,0 +1,330 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1139814490629641939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8769328334771685493} + - component: {fileID: 2051869934177668487} + - component: {fileID: 1866624916103966737} + m_Layer: 5 + m_Name: NodeItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8769328334771685493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139814490629641939} + 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: 9221979297406254555} + - {fileID: 1404818474728967281} + 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: -1200, y: 180} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2051869934177668487 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139814490629641939} + m_CullTransparentMesh: 1 +--- !u!114 &1866624916103966737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139814490629641939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d370c24f0bca1cd49b1163c3765e0f4c, type: 3} + m_Name: + m_EditorClassIdentifier: + _icon: {fileID: 5671637636532677122} + _bg: {fileID: 5994609020701889777} + _button: {fileID: 8781361341733077650} + _lockedColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + _activeColor: {r: 0, g: 1, b: 1, a: 1} + _passedColor: {r: 0, g: 1, b: 0, a: 1} + _failedColor: {r: 1, g: 0, b: 0, a: 1} + _defaultIconColor: {r: 1, g: 1, b: 1, a: 1} + _lockedIconColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} +--- !u!1 &4536174452495825529 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1404818474728967281} + - component: {fileID: 1379735801209342601} + - component: {fileID: 5671637636532677122} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1404818474728967281 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4536174452495825529} + 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: 8769328334771685493} + 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 &1379735801209342601 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4536174452495825529} + m_CullTransparentMesh: 1 +--- !u!114 &5671637636532677122 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4536174452495825529} + 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: 0.6039216, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 56b8df63bbad60749a69e38bc687fadf, 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!1001 &4733156844748389164 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 8769328334771685493} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: CommonButton + objectReference: {fileID: 0} + - target: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, + type: 3} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1866624916103966737} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.NodeItem, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7888786393168201163, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: bg + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: + - {fileID: 7607456171798064113, guid: 2307f223279813546a43b221ddd496cc, type: 3} + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!114 &5994609020701889777 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 4733156844748389164} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8781361341733077650 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 4733156844748389164} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &9221979297406254555 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 4733156844748389164} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIItems/NodeItem.prefab.meta b/Assets/GameMain/UI/UIItems/NodeItem.prefab.meta new file mode 100644 index 0000000..384819c --- /dev/null +++ b/Assets/GameMain/UI/UIItems/NodeItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 94e1f0fbe373d4649aa3cb6748d9e95e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Launcher.unity b/Assets/Launcher.unity index 6905868..7db504e 100644 --- a/Assets/Launcher.unity +++ b/Assets/Launcher.unity @@ -348,7 +348,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.size - value: 12 + value: 13 objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[0] @@ -372,35 +372,35 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[5] - value: GeometryTD.Procedure.ProcedureMenu + value: GeometryTD.Procedure.ProcedureMain objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[6] - value: GeometryTD.Procedure.ProcedurePreload + value: GeometryTD.Procedure.ProcedureMenu objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[7] - value: GeometryTD.Procedure.ProcedureSplash + value: GeometryTD.Procedure.ProcedurePreload objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[8] - value: GeometryTD.Procedure.ProcedureTest + value: GeometryTD.Procedure.ProcedureSplash objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[9] - value: GeometryTD.Procedure.ProcedureUpdateResources + value: GeometryTD.Procedure.ProcedureTest objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[10] - value: GeometryTD.Procedure.ProcedureUpdateVersion + value: GeometryTD.Procedure.ProcedureUpdateResources objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[11] - value: GeometryTD.Procedure.ProcedureVerifyResources + value: GeometryTD.Procedure.ProcedureUpdateVersion objectReference: {fileID: 0} - target: {fileID: 11405216, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AvailableProcedureTypeNames.Array.data[12] - value: Procedure.ProcedureVerifyResources + value: GeometryTD.Procedure.ProcedureVerifyResources objectReference: {fileID: 0} - target: {fileID: 11413340, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3} propertyPath: m_AudioMixer diff --git a/docs/CodeX-TODO.md b/docs/CodeX-TODO.md index 33c1eab..afb1565 100644 --- a/docs/CodeX-TODO.md +++ b/docs/CodeX-TODO.md @@ -1,39 +1,37 @@ # CodeX TODO -最后更新:2026-03-07 +最后更新:2026-03-08 ## 当前目标 -按 `docs/TODO.md` 的 M1 现状推进最小可玩闭环。当前代码已经具备: -- 基础战斗节点玩法 -- 事件节点基础占位 -- 仓库/组装 UI 骨架 -- 局内掉落与战斗结算的一部分 +按 `docs/TODO.md` 的 M1 目标推进最小可玩闭环,并以“能从开始游戏一路推进到 Boss 结算”为准检查当前实现。 -但离“可从开始游戏一路完成一个大关”的 M1 验收还有明显缺口。后续重点是: -- 补真正的单局 Run 流程,而不是继续依赖 `TestMenuForm` 手动点节点。 -- 把 10 节点固定大关、节点推进、Boss 终点串成闭环。 -- 把组装、品质、Tag、耐久从“有数据结构/有 UI”补成“实际影响战斗结果”的规则闭环。 -- 补商店节点真实实现,否则 M1 主流程无法跑通。 +和上一版相比,仓库已经把 Run 相关基础件进一步接到了 `ProcedureMain`,因此这份清单不再把重点放在“有没有 Run 模型”,而是聚焦下面这几个真实阻塞项: -## 已完成 +- 已有 `ProcedureMain + TestMenuForm` 的临时 Run 推进闭环,但还没有正式节点地图 / 节点面板。 +- 固定 10 节点顺序已经开始驱动战斗 / 事件 / 商店入口,但节点事件上下文仍然是空载版本。 +- 出战入口已有“至少有参战塔”的最小校验,但还没收口成严格的最终合法性约束。 +- 品质 / Tag / 耐久仍然停留在部分实现状态,尚未和 M1 范围完全对齐。 + +## 当前已完成 ### 1. 战斗主链路已经能独立跑通一场 -- `CombatNodeComponent` 能加载关卡、阶段和出怪表,并启动 `CombatScheduler`。 -- `CombatScheduler` 已经具备加载地图、推进 phase、结算与返回的基础流程。 -- 战斗内已有基地血量、建塔花费、敌人到家扣血、胜负结束等基础逻辑。 + +- `CombatNodeComponent` 能加载关卡、阶段、出怪表并启动 `CombatScheduler`。 +- `CombatScheduler` 已具备加载地图、推进 phase、结算、失败返回等基础流程。 +- 战斗内已有基地血量、建塔消耗、敌人到家扣血、胜负结束等基础规则。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs` - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatStates/` - `Assets/GameMain/Scripts/Entity/EntityLogic/MapEntity.cs` -- `Assets/GameMain/Scripts/Scene/Map/` ### 2. 战斗结算、掉落与奖励选择已有基础实现 -- 战斗内敌人被击败后,已能发放 coin / gold / 组件掉落。 -- `CombatInRunResourceManager` 已维护本场奖励背包快照。 -- 结算链已经包含奖励计算、奖励选择 UI、FinishForm 返回等基础骨架。 + +- 敌人被击败后已能发放 coin / gold / 组件掉落。 +- `CombatInRunResourceManager` 维护局内资源与奖励背包快照。 +- 结算链已包含奖励计算、奖励选择 UI、FinishForm 返回等基础骨架。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatInRunResourceManager.cs` @@ -41,11 +39,12 @@ - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatSettlementFlowService.cs` - `Assets/GameMain/Scripts/UI/Combat/` -### 3. 背包与组装基础能力已经存在 -- `PlayerInventoryComponent` 已有库存快照、金币读写、参战塔名单、组装塔入口。 +### 3. 背包、参战区与组装基础能力已经存在 + +- `PlayerInventoryComponent` 已支持库存快照、金币读写、参战塔名单、组装塔入口。 - `RepoForm` 已能展示组件、塔、参战区和组装区。 -- `CombineArea` 已有三槽约束,只有枪口/轴承/底座齐备时才会发起组合请求。 -- `PlayerInventoryTowerAssemblyService` 已能基于三组件生成 `TowerItemData` 与 `TowerStatsData`。 +- `CombineArea` 已有三槽约束,只有枪口 / 轴承 / 底座齐备时才会发起组合请求。 +- `PlayerInventoryTowerAssemblyService` 已能基于三组件生成 `TowerItemData` 和 `TowerStatsData`。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/PlayerInventoryComponent.cs` @@ -54,70 +53,110 @@ - `Assets/GameMain/Scripts/UI/Game/View/CombineArea.cs` - `Assets/GameMain/Scripts/UI/Game/Controller/RepoFormController.cs` -### 4. 事件节点有基础占位实现 -- `EventNodeComponent` 已能读取 `Event.txt`,解析事件选项并随机打开一个事件。 -- 事件完成后会发出 `NodeCompleteEventArgs` 返回上层流程。 +### 4. 事件节点已有可进入、可结算的基础实现 + +- `EventNodeComponent` 能读取 `Event.txt`,解析事件选项并随机打开事件。 +- `EventForm` 的打开 / 关闭现已统一走 `UIRouter`,不再混用私有 controller。 +- 事件完成后会关闭 UI 并发出 `NodeCompleteEventArgs`。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs` - `Assets/GameMain/Scripts/UI/Game/UseCase/EventFormUseCase.cs` - `Assets/GameMain/Scripts/UI/Game/Controller/EventFormController.cs` -## 还没完成 +### 5. Run 模型和 10 节点固定序列已经落地到代码与测试 -### 1. M1 真正的 Run 流程还不存在 -- 当前入口仍是 `ProcedureMenu` 里打开 `MainForm + TestMenuForm`。 -- 玩家目前是手动点击 `战斗 / 事件 / 商店` 按钮进入节点,不是通过单局大关顺序推进。 -- 代码里没有明确的“当前节点 / 节点列表 / 节点索引 / 大关完成”运行时模型。 -- `docs/TODO.md` 的 `P0-04 / P0-05 / P0-06` 从验收标准看都还没有完整落地。 - -直接证据: -- `ProcedureMenu` 进入后直接打开测试菜单。 -- `TestMenuFormController` 直接转发到 `StartCombat / StartEvent / StartShop`。 +- 已有 `RunNodeType / RunNodeStatus / RunState / RunNodeState` 等运行时模型。 +- 已有 `RunStateFactory` 和 `RunStateAdvanceService` 处理节点创建、推进、失败和完成。 +- 已有 `FixedRunNodeSequenceBuilder`,Plain 主题下固定生成 10 节点,并且第 10 节点是 `BossCombat`。 +- 已有 Editor 测试覆盖 `RunState` 创建、节点推进、Boss 节点和固定 10 节点序列。 关键文件: -- `Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs` -- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs` +- `Assets/GameMain/Scripts/Procedure/RunModel.cs` +- `Assets/GameMain/Scripts/Procedure/RunStateFactory.cs` +- `Assets/GameMain/Scripts/Procedure/RunStateAdvanceService.cs` +- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs` +- `Assets/GameMain/Tests/Editor/RunStateTests.cs` -### 2. 10 节点地图生成与 Boss 终点未实现 -- 当前没有发现“固定 10 节点”或“第 10 节点固定 Boss”的节点生成器。 -- `CombatNodeComponent.StartCombat()` 仍是从当前主题关卡池里随机抽一个 `DRLevel` 开战。 -- 现有 Boss 相关逻辑只存在于战斗内部的 `EntryType.Boss / BossDead`,不是大关节点层面的第 10 节点约束。 +### 6. 商店节点已经有最小可用实现 -关键文件: -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/EnemyManager/EnemySpawnDirector.cs` -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/PhaseEndConditions/BossDeadPhaseEndCondition.cs` - -### 3. 商店节点基本未实现,当前是主流程硬缺口 -- `ShopNodeComponent.StartShop()` 仍然是空方法。 -- 旧版 `ShopFormUseCase / ShopFormController / ShopForm` 基本都是整文件注释状态,不能视为可用实现。 -- 因此 `战斗 -> 事件 -> 商店 -> 组装 -> 下一节点` 这条 M1 主链路实际上卡在商店节点。 +- `ShopNodeComponent.StartShop()` 已不再是空方法。 +- 新版 `ShopFormUseCase` 已能随机生成 4 个组件商品。 +- 已支持购买、扣金、把组件写回 `PlayerInventory`、退出商店。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` -- `Assets/GameMain/Scripts/UI/Templates/GameScene/UseCase/ShopFormUseCase.cs` -- `Assets/GameMain/Scripts/UI/Templates/GameScene/Controller/ShopFormController.cs` -- `Assets/GameMain/Scripts/UI/Templates/GameScene/View/ShopForm.cs` +- `Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs` +- `Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs` +- `Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs` -### 4. 三组件约束只做到了“组装时”,还没做到“出战时” -- `CombineArea` 已经要求枪口/轴承/底座三槽都填满才能发起组装。 -- 但战斗入口并没有校验“玩家是否拥有可参战的完整塔”。 -- 当前可以在没有任何参战塔时直接调用 `StartCombat()`,不符合 `P0-10` 的“未满足三组件时禁止出战”。 +## 当前未完成 + +### 1. Run 主流程已经形成临时闭环,但还不是正式节点 UI + +- `ProcedureMain` 进入后会创建 Run,并打开 `MainForm + TestMenuForm`。 +- `TestMenuForm` 已不再同时提供三种节点入口,而是通过 `TestMenuFormContext.CurrentNodeType` 只显示当前节点对应的唯一按钮。 +- 点击按钮后由 `ProcedureMain` 根据当前 `RunState.CurrentNode` 决定是否允许进入战斗 / 事件 / 商店。 +- 节点完成或战斗失败后,`ProcedureMain` 会推进 `RunState`,再重新打开 Hub UI。 +- 因此当前已经能从开始游戏后按固定顺序推进一局的临时版本。 + +当前缺口: +- UI 仍是测试面板,不是正式节点地图或正式节点信息面板。 +- `TestMenuFormContext` 目前只传 `CurrentNodeType`,还没有显示节点序号、总数、Boss 标记等关键信息。 +- Run 完成后的正式结算 / 收尾表现仍未建立。 + +关键文件: +- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` +- `Assets/GameMain/Scripts/UI/Menu/View/TestMenuForm.cs` +- `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs` + +### 2. 固定 10 节点序列已开始驱动真实流程,但上下文仍不完整 + +- `FixedRunNodeSequenceBuilder` 已定义固定顺序和 Boss 终点。 +- `ProcedureMain` 已开始用当前 `RunNodeState.LinkedLevelId` 驱动战斗入口。 +- `EventNodeComponent` 和 `ShopNodeComponent` 已能进入并完成当前节点。 +- `EventNodeComponent` 的 UI 生命周期也已统一走 `UIRouter`。 +- 但 `NodeEnter / NodeComplete` 仍是默认空载事件,没有附带当前 Run 节点信息。 +- 因此“固定 10 节点序列”已经在驱动流程,但还没有形成可观测、可追踪的正式节点上下文系统。 + +关键文件: +- `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs` +- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` +- `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs` +- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` +- `Assets/GameMain/Scripts/Event/Game/NodeEnterEventArgs.cs` +- `Assets/GameMain/Scripts/Event/Game/NodeCompleteEventArgs.cs` + +### 3. 商店节点已纳入临时 Run 推进闭环,但回流目标仍是测试 Hub + +- 现在可以单独打开商店、随机生成组件、购买并退出。 +- 商店结束后已能通过 `ProcedureMain` 推进当前 `RunState`。 +- 但退出后仍是回到 `MainForm + TestMenuForm`,而不是真实节点地图或正式节点选择界面。 + +关键文件: +- `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` +- `Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs` +- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` + +### 4. 出战入口已有最小校验,但离最终验收还差一层 + +- `CombineArea` 已限制三槽必须齐备才能组塔。 +- `ProcedureMain` 已经补上“没有参战塔时禁止进入战斗节点”的最小校验。 +- 但这个校验目前仍是“有参战塔即可开战”,还不是“完整三组件合法塔”意义上的最终验收版本。 +- 这意味着当前还不满足 `P0-10` 里“未满足三组件时禁止出战”的验收要求。 关键文件: - `Assets/GameMain/Scripts/UI/Game/View/CombineArea.cs` +- `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` -- `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs` -### 5. 品质/槽位/Tag 规则只做了最浅一层 -- 塔品质目前只按三组件平均品质四舍五入得到。 -- `TowerItemData` 里没有“配件槽位数量”之类的落地字段,槽位规则没有真正实现。 -- Tag 当前不是按品质概率、数量、等级生成,而是: - - 掉落时直接复制 `PossibleTag` - - 组塔时直接把三组件 Tag 做并集 -- `DRTag` 虽然存在,但没有看到被用于实际掉落/组装规则计算。 -- `RarityType` 仍包含 `Red`,而 `docs/MVP-Scope.md.md` 里写的是 M1 不做红色,这里也还没统一。 +### 5. 品质 / 槽位 / Tag 规则仍只做了浅层版本 + +- 塔品质仍主要按三组件品质聚合得到。 +- `TowerItemData` 中没有真正落地“配件槽位数量”之类的核心字段。 +- Tag 仍主要来自组件自身配置或简单并集,未看到完整概率、数量、等级规则落地。 +- `DRTag` 已存在,但尚未形成明确的掉落 / 组装计算主链路。 +- `RarityType` 仍保留 `Red`,与部分 M1 文档描述未完全对齐。 关键文件: - `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/PlayerInventoryTowerAssemblyService.cs` @@ -126,12 +165,13 @@ - `Assets/GameMain/Scripts/Definition/DataStruct/TowerItemData.cs` - `Assets/GameMain/Scripts/Definition/Enum/RarityType.cs` -### 6. 耐久只停留在展示和扣数值,没有真正生效 -- 当前组件耐久会显示在仓库描述和 UI 颜色上。 -- 低血通关后会调用 `ReduceAllTowerEndurance(...)` 扣耐久。 -- 但塔的真实战斗属性是组装时固化到 `TowerStatsData` 的,不会随着耐久变化动态衰减。 -- 组件耐久归 0 后没有销毁、移除库存、拆塔或失效处理。 -- 所以 `P0-12` 的“耐久影响属性,归零后物品移除”目前未完成。 +### 6. 耐久仍停留在“展示 + 部分扣减”,没有形成真实生效闭环 + +- 当前组件耐久会显示在描述与 UI 上。 +- 低血通关后已存在扣耐久逻辑。 +- 但塔战斗属性是在组装时固化到 `TowerStatsData`,没有根据耐久实时衰减。 +- 组件耐久归 0 后也没有稳定的销毁 / 拆塔 / 失效闭环。 +- 因此 `P0-12` 的完整验收还没有达成。 关键文件: - `Assets/GameMain/Scripts/Utility/ItemDescUtility.cs` @@ -139,71 +179,76 @@ - `Assets/GameMain/Scripts/Definition/DataStruct/TowerItemData.cs` - `Assets/GameMain/Scripts/Definition/DataStruct/TowerCompItemData.cs` -### 7. M1 文档与当前实现还有几处范围不一致 -- `docs/MVP-Scope.md.md` 写的是固定 10 节点与固定顺序,但当前代码没有对应系统。 -- 文档写的是商店节点可购买/出售组件,但当前商店未实现。 -- 文档写的是 M1 不做耐久系统,但 `docs/TODO.md` 又把耐久列在 M1 的 `P0-12`;当前代码只做了半套,需要先统一目标再继续推进。 -- 文档写的是 M1 不做红色品质,但数据与枚举仍保留 `Red`。 +## 当前与 `docs/TODO.md` 的对照判断 -关键文件: -- `docs/TODO.md` -- `docs/MVP-Scope.md.md` -- `docs/GameDesign.md` +结合静态代码检查,当前更接近下面这个状态: + +- `P0-04`:基础模型已完成,并已接入 `ProcedureMain` 的临时 Run 闭环。 +- `P0-05`:固定 10 节点序列已由 builder + `ProcedureMain` 开始驱动实际流程,但缺完整事件上下文与正式节点 UI。 +- `P0-06`:节点进入、完成、失败后回 Hub 的临时闭环已存在,但“正式地图/节点界面 + 正式结算”仍未完成。 +- `P0-10`:未完成。 +- `P0-11`:未完成。 +- `P0-12`:未完成。 + +换句话说,仓库已经不再是“还没有 Run 模型 / 10 节点 / 商店最小实现”的状态;真正的缺口是“这些能力已经接成临时可跑版本,但还没收口成正式 M1 主流程表现层与上下文系统”。 ## 推荐的后续执行顺序 -1. 先补单局 Run 模型 -- 明确 `当前节点索引 / 节点列表 / 当前主题 / 大关完成状态` -- 把 `ProcedureMenu + TestMenuForm` 临时入口替换成真实节点推进入口 +1. 先把临时 Hub 升级成正式节点面板 + - 保留 `ProcedureMain` 持有 Run 的做法 + - 不再把 `TestMenuForm` 当测试菜单,而是改成正式节点信息面板或节点地图 + - 至少补上当前节点序号、总节点数、节点名称、Boss 标记 -2. 再补 10 节点固定大关 -- 先做最小版本:固定顺序 10 节点 -- 最后一个节点固定 Boss 战斗 -- 节点完成后推进到下一节点 +2. 再把节点事件改成带上下文的真实推进 + - `NodeEnterEventArgs` 和 `NodeCompleteEventArgs` 传递 `runId / nodeId / nodeType / sequenceIndex` + - 节点完成后由流程层调用 `RunStateAdvanceService` + - 节点失败时明确是否停局、重试或返回菜单 -3. 立刻补商店节点最小实现 -- 先只做 3 个随机组件、购买、返回 -- 不提前做复杂定价与出售扩展 +3. 然后继续收口战斗关卡选择 + - 普通战斗和 Boss 战斗继续统一由当前 `RunNodeState.LinkedLevelId` 驱动 + - 去掉遗留的随机选关兜底路径,避免偏离 Run 顺序 -4. 收口组装到出战闭环 -- 没有完整塔时禁止开始战斗 -- 只有参战塔列表合法时才允许进入战斗节点 +4. 再补出战合法性校验 + - 没有完整参战塔时禁止进入战斗节点 + - 在 UI 和流程层都给出明确反馈 -5. 最后补品质/Tag/耐久规则 -- 先把 M1 真实要做的规则重新对齐 -- 再决定是否保留红色品质、耐久和槽位到本阶段 +5. 最后再处理品质 / Tag / 耐久与文档对齐 + - 先确认 M1 是否真的保留红色品质和完整耐久 + - 再决定是补全实现,还是先缩范围并同步文档 ## 当前做变更时要记住的约束 -- 不要继续把 `TestMenuForm` 当作正式节点流程。 -- 优先补“流程闭环”,不要先做 M2 的深度系统。 -- 商店、节点推进、出战校验属于当前阻塞项,优先级高于数值打磨。 -- 如果 M1 最终决定不做完整耐久/红色品质,要先同步更新文档,再改代码目标。 -- 若继续保留 `PlayerInventory` 作为局内外共用库存入口,需要避免把单局 Run 状态也硬塞进去。 +- 不要再把 `TestMenuForm` 维持成“测试菜单”语义。 +- 优先补“临时闭环 -> 正式节点 UI / 正式上下文”的收口,不要继续只加单点功能。 +- 商店已经接入 Run,下一步重点不是继续扩商店,而是把 Hub/UI 做正式。 +- 若 M1 最终不做完整耐久 / 红色品质,要先同步文档再改代码目标。 +- `PlayerInventory` 可以继续作为库存入口,但不要把整局 Run 状态直接混进库存对象里。 ## 当前关键入口文件速查 - 流程入口: - - `Assets/GameMain/Scripts/Procedure/ProcedureMenu.cs` -- 临时节点菜单: + - `Assets/GameMain/Scripts/Procedure/ProcedureMain.cs` +- Run 模型: + - `Assets/GameMain/Scripts/Procedure/RunModel.cs` + - `Assets/GameMain/Scripts/Procedure/RunStateFactory.cs` + - `Assets/GameMain/Scripts/Procedure/RunStateAdvanceService.cs` + - `Assets/GameMain/Scripts/Procedure/FixedRunNodeSequenceBuilder.cs` +- 临时 Hub / 节点入口: - `Assets/GameMain/Scripts/UI/Menu/Controller/TestMenuFormController.cs` - 战斗节点 facade: - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatNodeComponent.cs` -- 战斗状态机: - - `Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatScheduler.cs` - 事件节点: - `Assets/GameMain/Scripts/CustomComponent/EventNodeComponent.cs` - 商店节点: - `Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs` +- 商店 UI: + - `Assets/GameMain/Scripts/UI/Shop/` - 背包与组装: - `Assets/GameMain/Scripts/CustomComponent/PlayerInventory/` -- 仓库 UI: - `Assets/GameMain/Scripts/UI/Game/` -- 战斗 UI: - - `Assets/GameMain/Scripts/UI/Combat/` ## 备注 -- 这份清单按“当前仓库真实实现状态”整理,不沿用旧版 `CodeX-TODO.md` 的 CombatNode 收口主题。 -- 当前判断主要基于代码静态检查,没有跑 Unity Editor / PlayMode。 -- 如果下一步要继续推进,最值得先做的是:`RunState + 10 节点流程 + ShopNode 最小可用版`。 +- 这份清单基于 2026-03-08 的静态代码检查更新。 +- 本次已修正上一版中“Run 模型不存在”“10 节点未实现”“商店节点基本未实现”等过期判断。 +- 当前最值得优先推进的是:`ProcedureMain 继续收口 Run 流程 -> 节点事件带上下文 -> 战斗按节点关卡进入 -> 出战校验`。 diff --git a/docs/TODO.md b/docs/TODO.md index dea54c5..a4cc314 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -16,9 +16,9 @@ | [x] | P0-01 | 冻结 MVP 范围(只保留:战斗节点/事件节点/商店节点/节点后组装) | `docs/MVP-Scope.md` | 明确“做/不做”清单,团队评审通过 | | [x] | P0-02 | 补齐数据表:组件、配件、敌人、波次、节点、事件、商店商品 | `Assets/GameMain/DataTables/*.txt` | 游戏启动可无报错加载全部新增表 | | [x] | P0-03 | 新增/完善 DataRow 解析类 | `Assets/GameMain/Scripts/DataTable/*.cs` | 每个新增表都有对应 DR 类并成功解析 | -| [x] | P0-04 | 建立单局 Run 状态模型(金币、生命、库存、当前节点) | `Assets/GameMain/Scripts/Procedure/` | 进入/退出节点时状态可持续传递 | -| [ ] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss) | `Assets/GameMain/Scripts/Scene/` | 每局都生成 10 节点且第 10 节点为 Boss | -| [x] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | 节点完成后可返回地图并进入下个节点 | +| [~] | P0-04 | 建立单局 Run 状态模型(金币、生命、库存、当前节点) | `Assets/GameMain/Scripts/Procedure/` | 已有 `RunState` / 推进模型 / 测试,并已接入 `ProcedureMain` 的临时 Run 闭环,但还不是正式节点 UI | +| [~] | P0-05 | 实现 10 节点地图生成(最后节点固定 Boss) | `Assets/GameMain/Scripts/Procedure/`
`Assets/GameMain/Scripts/Scene/` | 已有固定 10 节点序列 builder 与测试,且已开始驱动真实流程,但节点事件上下文与正式节点面板仍未完成 | +| [~] | P0-06 | 实现节点选择与跳转流程(战斗/事件/商店) | `Assets/GameMain/Scripts/Procedure/` | `ProcedureMain + TestMenuForm` 的临时闭环已可推进战斗/事件/商店,但仍缺正式节点地图/节点面板与正式结算收尾 | | [x] | P0-07 | 战斗节点基础玩法:放置塔、出怪、基地扣血、胜负判定 | `Assets/GameMain/Scripts/Entity/`
`Assets/GameMain/Scripts/Scene/` | 可完整打一场并得到胜利/失败结果 | | [x] | P0-08 | 胜利波次与结算规则(100/80/50/<50) | `Assets/GameMain/Scripts/Procedure/` | 结算奖励与惩罚严格匹配设计文档 | | [x] | P0-09 | 敌人掉落与关卡奖励(组件/配件/金币) | `Assets/GameMain/Scripts/Entity/` | 战斗结束能发放掉落并写入库存 | @@ -55,9 +55,9 @@ ## 本周建议开工顺序 -1. `P0-01` ~ `P0-04`(先把范围与数据基础打稳) -2. `P0-05` ~ `P0-09`(打通节点到战斗再到结算) -3. `P0-10` ~ `P0-12`(完成组装与耐久闭环) +1. 先把 `P0-04` ~ `P0-06` 从“临时闭环”收口成正式节点面板 / 节点地图,并补齐节点事件上下文 +2. 完成 `P0-10`(把“至少有参战塔”提升为“满足完整合法参战条件才能出战”) +3. 再处理 `P0-11` ~ `P0-12`(品质 / Tag / 耐久是否纳入 M1 需先统一范围) ## 设计优化 Backlog(新增) @@ -80,4 +80,4 @@ - 基地血量满足一定条件的额外奖励 2. ShopNodeComponent:商店节点的逻辑补全 3. RepoForm:仓库的逻辑补全 - - 组装防御塔逻辑的落实 \ No newline at end of file + - 组装防御塔逻辑的落实 diff --git a/数据表/UIForm.xlsx b/数据表/UIForm.xlsx index 3d689c1685aef3d42b3c8bacf2c6104798378491..efefb141a238db11457de8511fb9090fa4c617de 100644 GIT binary patch delta 3059 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 delta 3020 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 G-uxR6{D-yx