Bladeren bron

圣兵铭文

zouweichen 6 dagen geleden
bovenliggende
commit
2a2f3b7a89
75 gewijzigde bestanden met toevoegingen van 1428 en 198 verwijderingen
  1. BIN
      Assets/Res/Addressable/FGUI/Partner/Partner_atlas0.png
  2. BIN
      Assets/Res/Addressable/FGUI/Partner/Partner_atlas0_1.png
  3. BIN
      Assets/Res/Addressable/FGUI/Partner/Partner_fui.bytes
  4. 3 9
      Assets/Scripts/Business/Runtime/Data/Partners/PartnersService.cs
  5. 2 0
      Assets/Scripts/Business/Runtime/Define/StringDefine.cs
  6. 26 3
      Assets/Scripts/Business/Runtime/FGUI/Partner/CostLabel/PartnerCostLabelCtrl.cs
  7. 0 1
      Assets/Scripts/Business/Runtime/FGUI/Partner/DetailsPanel/PartnerDetailsPanelCtrl.cs
  8. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn.meta
  9. 42 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnCtrl.cs
  10. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnCtrl.cs.meta
  11. 30 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnVM.Gen.cs
  12. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnVM.Gen.cs.meta
  13. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnView.cs
  14. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnView.cs.meta
  15. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem.meta
  16. 53 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemCtrl.cs
  17. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemCtrl.cs.meta
  18. 34 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemVM.Gen.cs
  19. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemVM.Gen.cs.meta
  20. 21 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.ListItem.cs
  21. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.ListItem.cs.meta
  22. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.cs
  23. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.cs.meta
  24. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem.meta
  25. 42 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemCtrl.cs
  26. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemCtrl.cs.meta
  27. 30 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemVM.Gen.cs
  28. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemVM.Gen.cs.meta
  29. 20 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.ListItem.cs
  30. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.ListItem.cs.meta
  31. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.cs
  32. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.cs.meta
  33. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem.meta
  34. 42 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemCtrl.cs
  35. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemCtrl.cs.meta
  36. 29 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemVM.Gen.cs
  37. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemVM.Gen.cs.meta
  38. 21 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.ListItem.cs
  39. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.ListItem.cs.meta
  40. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.cs
  41. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.cs.meta
  42. 90 7
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagPanel/PartnerSbBagPanelCtrl.cs
  43. 27 28
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBaseItem/PartnerSbBaseItemCtrl.cs
  44. 2 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbBaseItem/PartnerSbBaseItemVM.Gen.cs
  45. 0 1
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNested/PartnerSbDetailNestedCtrl.cs
  46. 2 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNested/PartnerSbDetailNestedVM.Gen.cs
  47. 92 5
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNoIconNested/PartnerSbDetailNoIconNestedCtrl.cs
  48. 5 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNoIconNested/PartnerSbDetailNoIconNestedVM.Gen.cs
  49. 41 6
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailSkillListItem/PartnerSbDetailSkillListItemCtrl.cs
  50. 9 2
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailSkillListItem/PartnerSbDetailSkillListItemView.ListItem.cs
  51. 27 24
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbItem/PartnerSbItemCtrl.cs
  52. 21 8
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbLevelUpBtn/PartnerSbLevelUpBtnCtrl.cs
  53. 3 3
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbLevelUpBtn/PartnerSbLevelUpBtnVM.Gen.cs
  54. 97 17
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbMainPanel/PartnerSbMainPanelCtrl.cs
  55. 14 0
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbRecommendPanel/PartnerSbRecommendPanelCtrl.cs
  56. 34 7
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbReplacePanel/PartnerSbReplacePanelCtrl.cs
  57. 21 8
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbStarUpBtn/PartnerSbStarUpBtnCtrl.cs
  58. 106 9
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbStrengthPanel/PartnerSbStrengthPanelCtrl.cs
  59. 8 2
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbStrengthPanel/PartnerSbStrengthPanelVM.Gen.cs
  60. 14 6
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbUpLineListItem/PartnerSbUpLineListItemCtrl.cs
  61. 2 2
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbUpLineListItem/PartnerSbUpLineListItemView.ListItem.cs
  62. 30 7
      Assets/Scripts/Business/Runtime/FGUI/Partner/SbUpPanel/PartnerSbUpPanelCtrl.cs
  63. 1 0
      fl-fgui-project/assets/Partner/NewEpigraph/item/MwSetBtn.xml
  64. 4 4
      fl-fgui-project/assets/Partner/NewPartner/SbBagPanel.xml
  65. 1 1
      fl-fgui-project/assets/Partner/NewPartner/SbMainPanel.xml
  66. 3 1
      fl-fgui-project/assets/Partner/NewPartner/SbReplacePanel.xml
  67. 29 12
      fl-fgui-project/assets/Partner/NewPartner/SbStrengthPanel.xml
  68. 9 0
      fl-fgui-project/assets/Partner/NewPartner/components/SbBagTitle.xml
  69. 8 2
      fl-fgui-project/assets/Partner/NewPartner/item/SbBagListItem.xml
  70. 3 5
      fl-fgui-project/assets/Partner/NewPartner/item/SbBagListTitleItem.xml
  71. 13 3
      fl-fgui-project/assets/Partner/NewPartner/item/SbBaseItem.xml
  72. 3 2
      fl-fgui-project/assets/Partner/NewPartner/item/SbDetailNested.xml
  73. 20 9
      fl-fgui-project/assets/Partner/NewPartner/item/SbDetailNoIconNested.xml
  74. 1 1
      fl-fgui-project/assets/Partner/NewPartner/item/SbLevelUpBtn.xml
  75. 4 3
      fl-fgui-project/assets/Partner/package.xml

BIN
Assets/Res/Addressable/FGUI/Partner/Partner_atlas0.png


BIN
Assets/Res/Addressable/FGUI/Partner/Partner_atlas0_1.png


BIN
Assets/Res/Addressable/FGUI/Partner/Partner_fui.bytes


+ 3 - 9
Assets/Scripts/Business/Runtime/Data/Partners/PartnersService.cs

@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using System.Security.Cryptography;
 using FL.Network;
+using UnityEngine;
 using XGame;
 using XGame.Database;
 using XGame.Framework.Data;
@@ -312,16 +313,9 @@ namespace FL.Data
         /// <returns></returns>
         public int GetStarStep(int starLevel)
         {
-            int step = PartnersData.MaxStarStep - 1;
-            for (int i = step; starLevel >= 0; i--)
-            {
-                if (starLevel > i * PartnersData.MaxStarNum)
-                {
-                    return i + 1;
-                }
-            }
-            return 1;
+            return Mathf.FloorToInt((starLevel - 1) / PartnersData.MaxStarNum) + 1;
         }
+
         /// <summary>
         /// 获取升星当前级别星星等级
         /// </summary>

+ 2 - 0
Assets/Scripts/Business/Runtime/Define/StringDefine.cs

@@ -50,6 +50,8 @@ namespace FL
         public static string EpigraphNotInPlanTips = "当前铭文不在方案内";
         public static string EpigraphAlreadyUpTips = "当前铭文已在方案内上阵";
         public static string EpigraphCantStarUpAll = "当前没有铭文可升星";
+        public static string Have = "已拥有";
+        public static string NoHave = "未拥有";
         public static string RenameEmptyStrTips = "输入名字不能为空";
     }
 }

+ 26 - 3
Assets/Scripts/Business/Runtime/FGUI/Partner/CostLabel/PartnerCostLabelCtrl.cs

@@ -5,6 +5,7 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -19,20 +20,42 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
         private void AddUIListenres()
         {
-
+            EventSingle.Instance.AddListener(EventDefine.UpdataItemData, OnItemUpdate);
         }
+
         private void RemoveUIListenres()
         {
-
+            EventSingle.Instance.RemoveListener(EventDefine.UpdataItemData, OnItemUpdate);
         }
 
+        private void OnItemUpdate(int eventId, object args)
+        {
+            ShowUI();
+        }
         #endregion
+        private int _id;
+        private int _cost;
+
+        public void SetData(int id, int costNum)
+        {
+            _id = id;
+            _cost = costNum;
+            ShowUI();
+        }
+
+        private void ShowUI()
+        {
+            var num = ItemData.Instance.GetItemNum(_id);
+            VM.CountLabel.text = $"{num}/{_cost}";
+        }
     }
-}
+}

+ 0 - 1
Assets/Scripts/Business/Runtime/FGUI/Partner/DetailsPanel/PartnerDetailsPanelCtrl.cs

@@ -6,7 +6,6 @@
 
 using System.Collections.Generic;
 using System.Linq;
-using System.Security.Cryptography;
 using FairyGUI;
 using FL.Data;
 using XGame;

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: XC5KtiurV3OXQwTTMl+bq18x7lkQfN6uWD7wkJxba7IrL7nfWkYbuRo=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 42 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnCtrl.cs

@@ -0,0 +1,42 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PartnerMwSetBtnCtrl : UIController<PartnerMwSetBtnVM>
+    {
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+
+        }
+        private void RemoveUIListenres()
+        {
+
+        }
+
+        #endregion
+        public void SetData(int mwId, int sbId, bool showStar)
+        {
+            VM.MwSet.Ctrl.SetData(mwId, sbId, showStar);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnCtrl.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CH8ZvC75AS80tcsI0CVgWEdMgeiY3GGownprIOE7pCQG1bq5aIClKl4=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 30 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnVM.Gen.cs

@@ -0,0 +1,30 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// #PropertyDefineArea 属性定义区域
+/// #PropertyAssignArea 属性赋值区域
+/// #ComponentType 组件类型
+/// #PropertyName 属性名字
+/// 该脚本由模板创建,不可编辑
+/// created by cb 2024
+using FairyGUI;
+using XGame.Framework.FGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// 该脚本由模板创建,不可修改,不可编辑
+    /// </summary>
+    public partial class PartnerMwSetBtnVM : FguiViewModel
+    {
+        public PartnerMwSetBaseView MwSet { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            MwSet = adapter.CreateNested<PartnerMwSetBaseView>(new FguiNested(panel.GetChild("MwSet").asCom), true);
+            AddChild(MwSet);
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnVM.Gen.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: Dnkb43yvAnspMOwDfwPVaUbhxDKscFgPpIiCT3JRjMS2U8kCmCmwHI0=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnView.cs

@@ -0,0 +1,23 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public static partial class UINestedKeys
+    {
+        private static UIKey _PartnerMwSetBtn;
+        public static UIKey PartnerMwSetBtn => _PartnerMwSetBtn ?? (_PartnerMwSetBtn = new UIKey("Partner", "MwSetBtn", typeof(PartnerMwSetBtnView)));
+    }
+    public partial class PartnerMwSetBtnView : NestedView<PartnerMwSetBtnCtrl, PartnerMwSetBtnVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/MwSetBtn/PartnerMwSetBtnView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: Cykf4XmoVnyIDKKwLumbbXJOxlUEHi2mFklAWJhEptz9zR9OBSIeD9I=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: WXlJ53z4Vnr68HT006QfJDzY3tstq/GECJmc995rI4g0fgmlsbvFur0=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemCtrl.cs

@@ -0,0 +1,53 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+using XGame;
+using XGame.Database;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PartnerSbBagListItemCtrl : UIController<PartnerSbBagListItemVM>
+    {
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+
+        }
+        private void RemoveUIListenres()
+        {
+
+        }
+
+        #endregion
+        private int _id;
+        public void OnRefresh(int index, int sbId)
+        {
+            _id = sbId;
+            var table = PartnerTableRepo.Get(sbId);
+            if (table == null)
+            {
+                Log.Error($"圣兵表不存在,id:{_id}");
+                return;
+            }
+            VM.NameLabel.text = table.Name;
+            VM.SbItem.Ctrl.ShowUI(_id);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemCtrl.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: WXket3j8Un0b8h06XXqZXT/ZWZSDlWrZJCLjPKTBfLrb5GwA7sgvwuM=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 34 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemVM.Gen.cs

@@ -0,0 +1,34 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// #PropertyDefineArea 属性定义区域
+/// #PropertyAssignArea 属性赋值区域
+/// #ComponentType 组件类型
+/// #PropertyName 属性名字
+/// 该脚本由模板创建,不可编辑
+/// created by cb 2024
+using FairyGUI;
+using XGame.Framework.FGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// 该脚本由模板创建,不可修改,不可编辑
+    /// </summary>
+    public partial class PartnerSbBagListItemVM : FguiViewModel
+    {
+        public Controller IsUP { get; private set; }
+        public PartnerSbItemView SbItem { get; private set; }
+        public GTextField NameLabel { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            IsUP = panel.GetController("IsUP");
+            SbItem = adapter.CreateNested<PartnerSbItemView>(new FguiNested(panel.GetChild("SbItem").asCom), true);
+            AddChild(SbItem);
+            NameLabel = panel.GetChild("NameLabel") as GTextField;
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemVM.Gen.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: C3kZ5HurVXzipmKupXOF/MX6O6Nqbwy1nX316NCnSeEoTO/sdDWTPi4=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 21 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.ListItem.cs

@@ -0,0 +1,21 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+
+namespace FL.FGUI
+{
+    public partial class PartnerSbBagListItemView : IGListItemHandle
+    {
+        public int ItemIndex { get; private set; }
+
+        void IGListItemHandle.OnRefresh(int index, object data)
+        {
+            ItemIndex = index;
+            Ctrl.OnRefresh(index, (int)data);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.ListItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CyxJ4X6lUS1IiyGcdD44EDcDnOCI4icFTCCPhWGtq2ebDUdNo6luWGA=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.cs

@@ -0,0 +1,23 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public static partial class UINestedKeys
+    {
+        private static UIKey _PartnerSbBagListItem;
+        public static UIKey PartnerSbBagListItem => _PartnerSbBagListItem ?? (_PartnerSbBagListItem = new UIKey("Partner", "SbBagListItem", typeof(PartnerSbBagListItemView)));
+    }
+    public partial class PartnerSbBagListItemView : NestedView<PartnerSbBagListItemCtrl, PartnerSbBagListItemVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListItem/PartnerSbBagListItemView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: WSgZvC+sVHvZCije6242XrjQEKNgdnFlNaWkY4CbPxBiGGOMBraERIw=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: BnsXsnupW3mB9jM/dq2LwpgiztkwxqMFWWvB49YDQock9lfOdtHtQeM=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 42 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemCtrl.cs

@@ -0,0 +1,42 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PartnerSbBagListLineItemCtrl : UIController<PartnerSbBagListLineItemVM>
+    {
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+
+        }
+        private void RemoveUIListenres()
+        {
+
+        }
+
+        #endregion
+        public void OnRefresh(int index, PartnerSbBagListParam param)
+        {
+            VM.List.BindDatas(param.SbList);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemCtrl.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: Cn5JtSL4VCqTezeRr/i9QkUtCuz2uYFc0iefrdAlL2NcqCpDNY4NT1I=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 30 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemVM.Gen.cs

@@ -0,0 +1,30 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// #PropertyDefineArea 属性定义区域
+/// #PropertyAssignArea 属性赋值区域
+/// #ComponentType 组件类型
+/// #PropertyName 属性名字
+/// 该脚本由模板创建,不可编辑
+/// created by cb 2024
+using FairyGUI;
+using XGame.Framework.FGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// 该脚本由模板创建,不可修改,不可编辑
+    /// </summary>
+    public partial class PartnerSbBagListLineItemVM : FguiViewModel
+    {
+        public GList List { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            List = panel.GetChild("List") as GList;
+            List.Init(typeof(PartnerSbBagListItemView), adapter.CreateListItem);
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemVM.Gen.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CHxM4CqpVihC25eMjz0YzjuidcBKkOimHAqJ/sjy8jG5LI2P6piwBNA=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.ListItem.cs

@@ -0,0 +1,20 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+
+namespace FL.FGUI
+{
+    public partial class PartnerSbBagListLineItemView : IGListItemHandle
+    {
+        public int ItemIndex { get; private set; }
+        void IGListItemHandle.OnRefresh(int index, object data)
+        {
+            ItemIndex = index;
+            Ctrl.OnRefresh(index, data as PartnerSbBagListParam);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.ListItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: WnoZ4X6pBSmhj04LbqHCgZKkqiulCtwckHa90mhxryd0QoFLcqQGy5w=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.cs

@@ -0,0 +1,23 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public static partial class UINestedKeys
+    {
+        private static UIKey _PartnerSbBagListLineItem;
+        public static UIKey PartnerSbBagListLineItem => _PartnerSbBagListLineItem ?? (_PartnerSbBagListLineItem = new UIKey("Partner", "SbBagListLineItem", typeof(PartnerSbBagListLineItemView)));
+    }
+    public partial class PartnerSbBagListLineItemView : NestedView<PartnerSbBagListLineItemCtrl, PartnerSbBagListLineItemVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListLineItem/PartnerSbBagListLineItemView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: WSsZ4C2kVHlBWRFvkbyN9ina4cNZ8Mq/zpO0T7AFeixYuecf/UE5fcY=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: WSsYs3uvAnmgF/p67Q18MMZBlQ5Ow8QMBMXhKGp2Jqr2ye4wgsMcKsE=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 42 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemCtrl.cs

@@ -0,0 +1,42 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PartnerSbBagListTitleItemCtrl : UIController<PartnerSbBagListTitleItemVM>
+    {
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+
+        }
+        private void RemoveUIListenres()
+        {
+
+        }
+
+        #endregion
+        public void OnRefresh(int index, PartnerSbBagListParam data)
+        {
+            VM.TitleLabel.title = data.Title;
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemCtrl.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: Dy4ZtniuVSkEyRD3VJ6Sy0lEFLsGBSF5n3TY9febwnG1sTfAgWlyMEc=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 29 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemVM.Gen.cs

@@ -0,0 +1,29 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// #PropertyDefineArea 属性定义区域
+/// #PropertyAssignArea 属性赋值区域
+/// #ComponentType 组件类型
+/// #PropertyName 属性名字
+/// 该脚本由模板创建,不可编辑
+/// created by cb 2024
+using FairyGUI;
+using XGame.Framework.FGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// 该脚本由模板创建,不可修改,不可编辑
+    /// </summary>
+    public partial class PartnerSbBagListTitleItemVM : FguiViewModel
+    {
+        public GLabel TitleLabel { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            TitleLabel = panel.GetChild("TitleLabel") as GLabel;
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemVM.Gen.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: DH4ds3mqBil2YRPnb4iUacX9k4xCMEiK3CRMZW5bqv1ab9pv0y78s6c=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 21 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.ListItem.cs

@@ -0,0 +1,21 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+
+namespace FL.FGUI
+{
+    public partial class PartnerSbBagListTitleItemView : IGListItemHandle
+    {
+        public int ItemIndex { get; private set; }
+
+        void IGListItemHandle.OnRefresh(int index, object data)
+        {
+            ItemIndex = index;
+            Ctrl.OnRefresh(index, data as PartnerSbBagListParam);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.ListItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: B3Mf4H6oAShGV7X6BIDDdJcNXyJ3Pr28fqoeix/GBp1ro57aQx94j7E=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.cs

@@ -0,0 +1,23 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public static partial class UINestedKeys
+    {
+        private static UIKey _PartnerSbBagListTitleItem;
+        public static UIKey PartnerSbBagListTitleItem => _PartnerSbBagListTitleItem ?? (_PartnerSbBagListTitleItem = new UIKey("Partner", "SbBagListTitleItem", typeof(PartnerSbBagListTitleItemView)));
+    }
+    public partial class PartnerSbBagListTitleItemView : NestedView<PartnerSbBagListTitleItemCtrl, PartnerSbBagListTitleItemVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagListTitleItem/PartnerSbBagListTitleItemView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: XSwZ4SyqVnymQzJKyo58d5pbRBU+8Y861q905a84XyR1BP0yE+p7adI=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 90 - 7
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBagPanel/PartnerSbBagPanelCtrl.cs

@@ -4,11 +4,24 @@
 /// 该脚本由模板创建
 /// created by cb 2024
 
+using System.Collections.Generic;
 using FairyGUI;
+using FL.Data;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
 {
+    public class PartnerSbBagListParam
+    {
+        /// <summary>
+        /// 道具类型,为0则是标题,否则是列表
+        /// </summary>
+        public int Type;
+        public string Title;
+        public List<int> SbList;
+    }
+
     /// <summary>
     /// UI逻辑处理类
     /// </summary>
@@ -19,30 +32,100 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
+            InitView();
+            ShowUI();
         }
+
         #region UI事件
         private void AddUIListenres()
         {
             VM.OnStrongBtn.onClick.Add(OnClickOnStrongBtn);
             VM.SortBtn.onClick.Add(OnClickSortBtn);
-
         }
+
         private void RemoveUIListenres()
         {
             VM.OnStrongBtn.onClick.Remove(OnClickOnStrongBtn);
             VM.SortBtn.onClick.Remove(OnClickSortBtn);
-
         }
-        private void OnClickOnStrongBtn(EventContext context)
+
+        private void OnClickOnStrongBtn(EventContext context) { }
+
+        private void OnClickSortBtn(EventContext context) { }
+
+        #endregion
+        private List<PartnerSbBagListParam> _dataList = new List<PartnerSbBagListParam>();
+        private bool _init = false;
+
+        private void InitView()
         {
+            if (_init)
+                return;
+            _init = true;
+            VM.List.ListType = EGListType.Virtual;
+            VM.List.itemProvider = (index) =>
+            {
+                var data = _dataList[index];
+                if (data.Type == 0)
+                {
+                    return "ui://Partner/SbBagListTitleItem";
+                }
+                else
+                {
+                    return "ui://Partner/SbBagListLineItem";
+                }
+            };
         }
-        private void OnClickSortBtn(EventContext context)
+
+        private void ShowUI()
         {
+            var allSbList = PartnerTableRepo.GetAll();
+            var haveList = new List<int>();
+            var noHaveList = new List<int>();
+            foreach (var sb in allSbList)
+            {
+                var attr = PartnersData.Instance.GetPartnerAttrByTableId(sb.Id);
+                if (attr != null)
+                {
+                    haveList.Add(sb.Id);
+                }
+                else
+                {
+                    noHaveList.Add(sb.Id);
+                }
+            }
+            _dataList.Clear();
+            _dataList.Add(new PartnerSbBagListParam() { Type = 0, Title = StringDefine.Have });
+            var list = new List<int>();
+            foreach (var have in haveList)
+            {
+                list.Add(have);
+                if (list.Count >= 5)
+                {
+                    _dataList.Add(new PartnerSbBagListParam() { Type = 1, SbList = list });
+                    list = new List<int>();
+                }
+            }
+            if (list.Count > 0)
+            {
+                _dataList.Add(new PartnerSbBagListParam() { Type = 1, SbList = list });
+                list = new List<int>();
+            }
+            _dataList.Add(new PartnerSbBagListParam() { Type = 0, Title = StringDefine.NoHave });
+            foreach (var noHave in noHaveList)
+            {
+                list.Add(noHave);
+                if (list.Count >= 5)
+                {
+                    _dataList.Add(new PartnerSbBagListParam() { Type = 1, SbList = list });
+                    list = new List<int>();
+                }
+            }
+            VM.List.BindDatas(_dataList);
         }
-
-        #endregion
     }
-}
+}

+ 27 - 28
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBaseItem/PartnerSbBaseItemCtrl.cs

@@ -56,35 +56,34 @@ namespace FL.FGUI
             VM.PartnerImg.visible = true;
             VM.ElementLoader.url = AddressableDefine.SbElementType((int)table.Element);
             VM.QualityImg.icon = AddressableDefine.SbPzDi((int)table.Quality);
-            VM.PartnerImg.icon = table.Icon;
-            var partnerData = PartnersData.Instance.GetPartnerAttrByTableId(sbId);
-            var level = partnerData?.Level ?? 0;
-            bool bShowLevel = level > 0;
-            VM.LevelTxt.visible = bShowLevel;
-            if (bShowLevel)
-            {
-                VM.LevelTxt.text = $"LV.{level}";
-            }
+            VM.PartnerImg.icon = table.Icon;
             VM.ShowOther.selectedIndex = showOther ? 0 : 1;
-            if (showOther)
-            {
-                var starLv = partnerData?.RisingStarLv == null ? 1 : partnerData.RisingStarLv;
-                var curNum = PartnersService.Instance.GetStarLv(starLv);
-                var curStep = PartnersService.Instance.GetStarStep(starLv);
-                var list = new List<int>();
-                for (int i = 0; i < curNum; i++)
-                {
-                    list.Add(curStep);
-                }
-                VM.StarList.BindDatas(list);
-                var starTable = partnerStarUpTableRepo.GetPartnerStarTable(sbId, starLv);
-                if (starTable == null)
-                {
-                    Log.Error($"圣兵升星表不存在,id:{sbId},starLv:{starLv}");
-                    return;
-                }
-                VM.SpPbar.max = starTable.StarUpCost;
-                VM.SpPbar.value = ItemData.Instance.GetItemNum(starTable.PetId);
+            var partnerData = PartnersData.Instance.GetPartnerAttrByTableId(sbId);
+            VM.Have.selectedIndex = partnerData != null ? 0 : 1;
+            if(partnerData != null)
+            {
+                var level = partnerData?.Level ?? 1;
+                VM.LevelTxt.text = $"LV.{level}";
+                if (showOther)
+                {
+                    var starLv = partnerData?.RisingStarLv == null ? 1 : partnerData.RisingStarLv;
+                    var curNum = PartnersService.Instance.GetStarLv(starLv);
+                    var curStep = PartnersService.Instance.GetStarStep(starLv);
+                    var list = new List<int>();
+                    for (int i = 0; i < curNum; i++)
+                    {
+                        list.Add(curStep);
+                    }
+                    VM.StarList.BindDatas(list);
+                    var starTable = partnerStarUpTableRepo.GetPartnerStarTable(sbId, starLv);
+                    if (starTable == null)
+                    {
+                        Log.Error($"圣兵升星表不存在,id:{sbId},starLv:{starLv}");
+                        return;
+                    }
+                    VM.SpPbar.max = starTable.StarUpCost;
+                    VM.SpPbar.value = ItemData.Instance.GetItemNum(starTable.PetId);
+                }
             }
         }
     }

+ 2 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbBaseItem/PartnerSbBaseItemVM.Gen.cs

@@ -19,6 +19,7 @@ namespace FL.FGUI
     public partial class PartnerSbBaseItemVM : FguiViewModel
     {
         public Controller ShowOther { get; private set; }
+        public Controller Have { get; private set; }
         public GLoader QualityImg { get; private set; }
         public GLoader PartnerImg { get; private set; }
         public GTextField LevelTxt { get; private set; }
@@ -29,6 +30,7 @@ namespace FL.FGUI
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
             ShowOther = panel.GetController("ShowOther");
+            Have = panel.GetController("Have");
             QualityImg = panel.GetChild("QualityImg") as GLoader;
             PartnerImg = panel.GetChild("PartnerImg") as GLoader;
             LevelTxt = panel.GetChild("LevelTxt") as GTextField;

+ 0 - 1
Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNested/PartnerSbDetailNestedCtrl.cs

@@ -95,7 +95,6 @@ namespace FL.FGUI
             string descSpeed =
                 atkSpeed > 0 ? TableUtils.ToRealDouble(atkSpeed).ToString("F1") : "0";
             VM.SpeedValLabel.text = descSpeed;
-            //
             //VM.ItemBase.Ctrl.ShowUI()
             VM.ElementLoader.url = AddressableDefine.SbElementType(((int)table.Element));
             VM.TypeLoader.url = AddressableDefine.SbTypeIcon(table.Type);

+ 2 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNested/PartnerSbDetailNestedVM.Gen.cs

@@ -29,6 +29,7 @@ namespace FL.FGUI
         public GLoader ElementLoader { get; private set; }
         public GLoader TypeLoader { get; private set; }
         public GProgressBar SpPbar { get; private set; }
+        public GGroup SpGroup { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
@@ -45,6 +46,7 @@ namespace FL.FGUI
             ElementLoader = panel.GetChild("ElementLoader") as GLoader;
             TypeLoader = panel.GetChild("TypeLoader") as GLoader;
             SpPbar = panel.GetChild("SpPbar") as GProgressBar;
+            SpGroup = panel.GetChild("SpGroup") as GGroup;
 
         }
     }

+ 92 - 5
Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNoIconNested/PartnerSbDetailNoIconNestedCtrl.cs

@@ -4,7 +4,12 @@
 /// 该脚本由模板创建
 /// created by cb 2024
 
+using System.Collections.Generic;
 using FairyGUI;
+using FL.Data;
+using log4net.Core;
+using XGame;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -13,26 +18,108 @@ namespace FL.FGUI
     /// UI逻辑处理类
     /// </summary>
     /// <typeparam name=""></typeparam>
-    public partial class PartnerSbDetailNoIconNestedCtrl : UIController<PartnerSbDetailNoIconNestedVM>
+    public partial class PartnerSbDetailNoIconNestedCtrl
+        : UIController<PartnerSbDetailNoIconNestedVM>
     {
         protected override void OnEnable(object intent)
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
-        private void AddUIListenres()
+        private void AddUIListenres() { }
+
+        private void RemoveUIListenres() { }
+
+        #endregion
+        private int _sbId;
+
+        public void ShowUI(int sbId)
         {
+            _sbId = sbId;
+            var table = PartnerTableRepo.Get(_sbId);
+            if (table == null)
+            {
+                Log.Error($"圣兵表不存在,id:{_sbId}");
+                return;
+            }
+            var attr = PartnersData.Instance.GetPartnerAttrByTableId(_sbId);
+            var level = attr?.Level ?? 1;
+            var star = attr?.RisingStarLv ?? 1;
 
+            //
+            ShowSkillBaseInfo(table.Skill[0]);
+            //
+            ShowAttr(level);
+            //
+            VM.ElementLoader.url = AddressableDefine.SbElementType(((int)table.Element));
+            VM.TypeLoader.url = AddressableDefine.SbTypeIcon(table.Type);
+            ShowBuff(star);
         }
-        private void RemoveUIListenres()
+
+        private void ShowAttr(int level)
         {
+            var lvTable = partnerLvUpTableRepo.GetPartnerLvUpTable(_sbId, level);
+            if (lvTable == null)
+            {
+                Log.Error($"圣兵等级不存在,id:{_sbId},level:{level}");
+                return;
+            }
+            var atkVal = lvTable.LvAttr[1];
+            //var attributeInfo = AttrDescTableRepo.Get(attrType);
+            string descAtk = atkVal > 0 ? TableUtils.ToRealDouble(atkVal).ToString("F1") : "0";
+            VM.AtkValLabel.text = descAtk;
+            var atkSpeed = lvTable.LvAttr[3];
+            string descSpeed =
+                atkSpeed > 0 ? TableUtils.ToRealDouble(atkSpeed).ToString("F1") : "0";
+            VM.SpeedValLabel.text = descSpeed;
+            //VM.ItemBase.Ctrl.ShowUI()
+        }
 
+        /// <summary>
+        /// 基础技能描述
+        /// </summary>
+        /// <param name="skillId"></param>
+        private void ShowSkillBaseInfo(int skillId)
+        {
+            var skillInfo = SkillTableRepo.Get(skillId);
+            if (skillInfo == null)
+            {
+                Log.Error($"技能表不存在,id{skillId}");
+                return;
+            }
+            VM.DescLabel.text = skillInfo.Desc;
         }
 
-        #endregion
+        private void ShowBuff(int starLv)
+        {
+            var table = PartnerTableRepo.Get(_sbId);
+            if (table == null)
+            {
+                Log.Error($"圣兵tableId {_sbId} 不存在");
+                return;
+            }
+            var starSkillIds = table?.Skill;
+            var dataList = new List<PartnerSbDetailSkillListItemParam>();
+            if (starSkillIds?.Length > 0)
+            {
+                for (int i = 2; i < starSkillIds.Length; i += 2)
+                {
+                    var data = new PartnerSbDetailSkillListItemParam()
+                    {
+                        SkillId = starSkillIds[i],
+                        NeedStarLevel = starSkillIds[i + 1],
+                        CurStarLevel = starLv,
+                    };
+                    dataList.Add(data);
+                }
+            }
+            VM.SkillList.BindDatas(dataList);
+        }
     }
-}
+}

+ 5 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailNoIconNested/PartnerSbDetailNoIconNestedVM.Gen.cs

@@ -19,20 +19,25 @@ namespace FL.FGUI
     public partial class PartnerSbDetailNoIconNestedVM : FguiViewModel
     {
         public Controller IsEmpty { get; private set; }
+        public Controller IsUp { get; private set; }
         public GTextField AtkValLabel { get; private set; }
         public GTextField SpeedValLabel { get; private set; }
         public GTextField OwnerLabel { get; private set; }
         public GTextField DescLabel { get; private set; }
+        public GList SkillList { get; private set; }
         public GLoader ElementLoader { get; private set; }
         public GLoader TypeLoader { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
             IsEmpty = panel.GetController("IsEmpty");
+            IsUp = panel.GetController("IsUp");
             AtkValLabel = panel.GetChild("AtkValLabel") as GTextField;
             SpeedValLabel = panel.GetChild("SpeedValLabel") as GTextField;
             OwnerLabel = panel.GetChild("OwnerLabel") as GTextField;
             DescLabel = panel.GetChild("DescLabel") as GTextField;
+            SkillList = panel.GetChild("SkillList") as GList;
+            SkillList.Init(typeof(PartnerSbDetailSkillListItemView), adapter.CreateListItem);
             ElementLoader = panel.GetChild("ElementLoader") as GLoader;
             TypeLoader = panel.GetChild("TypeLoader") as GLoader;
 

+ 41 - 6
Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailSkillListItem/PartnerSbDetailSkillListItemCtrl.cs

@@ -5,6 +5,10 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
+using System.Collections.Generic;
+using XGame;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -13,26 +17,57 @@ namespace FL.FGUI
     /// UI逻辑处理类
     /// </summary>
     /// <typeparam name=""></typeparam>
-    public partial class PartnerSbDetailSkillListItemCtrl : UIController<PartnerSbDetailSkillListItemVM>
+    public partial class PartnerSbDetailSkillListItemCtrl
+        : UIController<PartnerSbDetailSkillListItemVM>
     {
         protected override void OnEnable(object intent)
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
-        private void AddUIListenres()
-        {
+        private void AddUIListenres() { }
 
+        private void RemoveUIListenres() { }
+
+        #endregion
+        public void OnRefresh(int index, PartnerSbDetailSkillListItemParam data)
+        {
+            ShowUI(data.SkillId, data.NeedStarLevel, data.CurStarLevel);
         }
-        private void RemoveUIListenres()
+        public void ShowUI(int skillId, int needStarLevel, int curStarLv)
         {
+            ShowSkillDesc(skillId);
+            VM.Unlock.selectedIndex = (needStarLevel > curStarLv) ? 0 : 1;
+            ShowStarIcon(needStarLevel);
+        }
 
+        private void ShowSkillDesc(int skillId)
+        {
+            var skillInfo = SkillTableRepo.Get(skillId);
+            if (skillInfo == null)
+            {
+                Log.Error($"技能表不存在,id:{skillId}");
+                return;
+            }
+            VM.DescLabel.text = skillInfo.Desc;
         }
 
-        #endregion
+        private void ShowStarIcon(int star)
+        {
+            var starStep = PartnersService.Instance.GetStarStep(star);
+            var starLv = PartnersService.Instance.GetStarLv(star);
+            var list = new List<int>();
+            for (int i = 0; i < starLv; i++)
+            {
+                list.Add(starStep);
+            }
+            VM.StarList.BindDatas(list);
+        }
     }
-}
+}

+ 9 - 2
Assets/Scripts/Business/Runtime/FGUI/Partner/SbDetailSkillListItem/PartnerSbDetailSkillListItemView.ListItem.cs

@@ -11,11 +11,18 @@ namespace FL.FGUI
     public partial class PartnerSbDetailSkillListItemView : IGListItemHandle
     {
         public int ItemIndex { get; private set; }
+
         void IGListItemHandle.OnRefresh(int index, object data)
         {
             ItemIndex = index;
-            //Ctrl.OnRefresh(index, data as GListData);
-            throw new System.NotImplementedException("业务需要实现: PartnerSbDetailSkillListItemViewCtrl.OnRefresh()");
+            Ctrl.OnRefresh(index, data as PartnerSbDetailSkillListItemParam);
         }
     }
+
+    public class PartnerSbDetailSkillListItemParam
+    {
+        public int SkillId;
+        public int NeedStarLevel;
+        public int CurStarLevel;
+    }
 }

+ 27 - 24
Assets/Scripts/Business/Runtime/FGUI/Partner/SbItem/PartnerSbItemCtrl.cs

@@ -20,37 +20,40 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
-        private void AddUIListenres()
-        {
+        private void AddUIListenres() { }
 
-        }
-        private void RemoveUIListenres()
-        {
+        private void RemoveUIListenres() { }
 
-        }
-
         #endregion
-
-        public void ShowUI(int id, int planId = -1, int slotId = -1)
-        {
-            VM.PartnerBase.Ctrl.ShowUI(id, true);
-            if (planId >= 0 && slotId >= 0)
-            {
-                var slot = PartnersData.Instance.GetPlanSlot(planId, slotId);
-                VM.EpiSetBase.Ctrl.SetData(slot?.MwId ?? 0, id, false);
-            }
-            else
-            {
-                var info = PartnersData.Instance.GetPartnerAttrByTableId(id);
-                VM.EpiSetBase.Ctrl.SetData(info?.EpigraphId ?? 0, id, false);
-            }
-            bool isEmpty = id <= 0;
-            VM.IsEmpty.selectedIndex = isEmpty ? 1 : 0;
+
+        public void ShowUI(int id, int planId = -1, int slotId = -1)
+        {
+            VM.PartnerBase.Ctrl.ShowUI(id, true);
+            bool isEmpty = id <= 0;
+            VM.IsEmpty.selectedIndex = isEmpty ? 1 : 0;
+            if (isEmpty)
+            {
+                VM.EpiSetBase.Disable();
+                return;
+            }
+            VM.EpiSetBase.Enable(null);
+            if (planId >= 0 && slotId >= 0)
+            {
+                var slot = PartnersData.Instance.GetPlanSlot(planId, slotId);
+                VM.EpiSetBase.Ctrl.SetData(slot?.MwId ?? 0, id, false);
+            }
+            else
+            {
+                var info = PartnersData.Instance.GetPartnerAttrByTableId(id);
+                VM.EpiSetBase.Ctrl.SetData(info?.EpigraphId ?? 0, id, false);
+            }
         }
     }
-}
+}

+ 21 - 8
Assets/Scripts/Business/Runtime/FGUI/Partner/SbLevelUpBtn/PartnerSbLevelUpBtnCtrl.cs

@@ -5,6 +5,10 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
+using log4net.Core;
+using XGame;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -19,20 +23,29 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
-        #region UI事件
-        private void AddUIListenres()
-        {
 
-        }
-        private void RemoveUIListenres()
-        {
+        #region UI事件
+        private void AddUIListenres() { }
 
-        }
+        private void RemoveUIListenres() { }
 
         #endregion
+        public void ShowUI(int sbId)
+        {
+            var attr = PartnersData.Instance.GetPartnerAttrByTableId(sbId);
+            var level = attr?.Level ?? 1;
+            var upLevelTable = partnerLvUpTableRepo.GetPartnerLvUpTable(sbId, level);
+            if (upLevelTable == null)
+            {
+                Log.Error($"圣兵升级表不存在,id:{sbId},level:{level}");
+                return;
+            }
+            VM.CostLabel.Ctrl.SetData(upLevelTable.LevelUpCost[0], upLevelTable.LevelUpCost[1]);
+        }
     }
-}
+}

+ 3 - 3
Assets/Scripts/Business/Runtime/FGUI/Partner/SbLevelUpBtn/PartnerSbLevelUpBtnVM.Gen.cs

@@ -19,13 +19,13 @@ namespace FL.FGUI
     public partial class PartnerSbLevelUpBtnVM : FguiViewModel
     {
         public Controller Grayed { get; private set; }
-        public PartnerCostLabelView IconLoader { get; private set; }
+        public PartnerCostLabelView CostLabel { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
             Grayed = panel.GetController("grayed");
-            IconLoader = adapter.CreateNested<PartnerCostLabelView>(new FguiNested(panel.GetChild("IconLoader").asCom), true);
-            AddChild(IconLoader);
+            CostLabel = adapter.CreateNested<PartnerCostLabelView>(new FguiNested(panel.GetChild("CostLabel").asCom), true);
+            AddChild(CostLabel);
 
         }
     }

+ 97 - 17
Assets/Scripts/Business/Runtime/FGUI/Partner/SbMainPanel/PartnerSbMainPanelCtrl.cs

@@ -41,6 +41,12 @@ namespace FL.FGUI
             VM.MaskBtn.onClick.Add(OnClickMaskBtn);
             VM.ConfirmBtn.onClick.Add(OnClickConfirmBtn);
             VM.CancelBtn.onClick.Add(OnClickCancelBtn);
+            EventSingle.Instance.AddListener(EventDefine.PartnerFinishUpMode, OnFinishUpMode);
+            EventSingle.Instance.AddListener(EventDefine.PartnerOpenUpMode, OnOpenUpMode);
+            EventSingle.Instance.AddListener(
+                EventDefine.PartnerUpModeSelect,
+                OnPartnerUpModeSelect
+            );
         }
 
         private void RemoveUIListenres()
@@ -53,17 +59,41 @@ namespace FL.FGUI
             VM.MaskBtn.onClick.Remove(OnClickMaskBtn);
             VM.ConfirmBtn.onClick.Remove(OnClickConfirmBtn);
             VM.CancelBtn.onClick.Remove(OnClickCancelBtn);
+            EventSingle.Instance.RemoveListener(EventDefine.PartnerFinishUpMode, OnFinishUpMode);
+            EventSingle.Instance.RemoveListener(EventDefine.PartnerOpenUpMode, OnOpenUpMode);
+            EventSingle.Instance.RemoveListener(
+                EventDefine.PartnerUpModeSelect,
+                OnPartnerUpModeSelect
+            );
         }
 
-        private void OnClickReplaceBtn(EventContext context) { }
+        private void OnClickReplaceBtn(EventContext context) {
+            Context.UI.OpenAsync(UIKeys.PartnerSbReplacePanel, _sbId);
+        }
 
-        private void OnClickStrengthBtn(EventContext context) { }
+        private void OnClickStrengthBtn(EventContext context)
+        {
+            var slot = PartnersData.Instance.GetPlanSlot(
+                PartnersData.Instance.UsePlanId,
+                _curSelectPos
+            );
+            if (slot == null || slot.SbId == 0)
+            {
+                Context.ShowTips(StringDefine.PartnerEmptyTips);
+                return;
+            }
+            Context.UI.OpenAsync(UIKeys.PartnerSbStrengthPanel, slot.SbId);
+        }
 
         private void OnClickOneUpBtn(EventContext context) { }
 
-        private void OnClickRecommendBtn(EventContext context) { }
+        private void OnClickRecommendBtn(EventContext context) {
+            Context.UI.OpenAsync(UIKeys.PartnerSbRecommendPanel);
+        }
 
-        private void OnClickBagBtn(EventContext context) { }
+        private void OnClickBagBtn(EventContext context) {
+            Context.UI.OpenAsync(UIKeys.PartnerSbBagPanel);
+        }
 
         private void OnClickMaskBtn(EventContext context) { }
 
@@ -71,10 +101,34 @@ namespace FL.FGUI
 
         private void OnClickCancelBtn(EventContext context) { }
 
+        /// <summary>
+        /// 圣兵上阵打开事件
+        /// </summary>
+        /// <param name="eventId"></param>
+        /// <param name="args"></param>
+        private void OnOpenUpMode(int eventId, object args)
+        {
+            ShowUpMode();
+        }
+
+        private void OnFinishUpMode(int eventId, object args)
+        {
+            ShowUpMode();
+        }
+
+        private void OnPartnerUpModeSelect(int eventId, object args)
+        {
+            var pos = (int)args;
+            if (pos == _curSelectPos)
+                return;
+            _curSelectPos = pos;
+            UpdateDetail();
+        }
         #endregion
         #region 属性
         private bool _initView = false;
         private int _curSelectPos = 0;
+        private int _sbId = 0;
         #endregion
         #region 页面
         private void InitView()
@@ -91,13 +145,29 @@ namespace FL.FGUI
             UpdateDetail();
         }
 
+        private void ShowUpMode()
+        {
+            if (PartnersData.Instance.UpModeSelect > 0)
+            {
+                VM.UpPartner.selectedIndex = 1;
+            }
+            else if (EpigraphData.Instance.UpModeSelect > 0)
+            {
+                VM.UpPartner.selectedIndex = 1;
+            }
+            else
+            {
+                VM.UpPartner.selectedIndex = 0;
+            }
+        }
+
         private void RefreshGoneUpPartners(bool chooseFirstSb)
         {
             var plan = PartnersData.Instance.CurUsePlan;
-            if(plan == null)
-            {
-                Log.Error($"圣兵上阵方案不存在,id:{PartnersData.Instance.CurUsePlan}");
-                return;
+            if (plan == null)
+            {
+                Log.Error($"圣兵上阵方案不存在,id:{PartnersData.Instance.CurUsePlan}");
+                return;
             }
             if (chooseFirstSb)
             {
@@ -124,16 +194,26 @@ namespace FL.FGUI
             }
             VM.SbList.BindDatas(list);
         }
-        private void UpdateDetail()
-        {
+
+        private void UpdateDetail()
+        {
             var plan = PartnersData.Instance.CurUsePlan;
-            if (plan == null)
-            {
-                Log.Error($"圣兵上阵方案不存在,id:{PartnersData.Instance.CurUsePlan}");
-                return;
-            }
-            var slot = plan.GetSlot(_curSelectPos);
-            VM.SbDetailNested.Ctrl.ShowUI(slot?.SbId ?? 0);
+            if (plan == null)
+            {
+                Log.Error($"圣兵上阵方案不存在,id:{PartnersData.Instance.CurUsePlan}");
+                return;
+            }
+            var slot = plan.GetSlot(_curSelectPos);
+            _sbId = slot?.SbId ?? 0;
+            VM.SbDetailNested.Ctrl.ShowUI(slot?.SbId ?? 0);
+            if (slot == null || slot.SbId == 0)
+            {
+                VM.IsEmpty.selectedIndex = 1;
+            }
+            else
+            {
+                VM.IsEmpty.selectedIndex = 0;
+            }
         }
         #endregion
     }

+ 14 - 0
Assets/Scripts/Business/Runtime/FGUI/Partner/SbRecommendPanel/PartnerSbRecommendPanelCtrl.cs

@@ -5,6 +5,7 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -18,6 +19,8 @@ namespace FL.FGUI
         protected override void OnEnable(object intent)
         {
             AddUIListenres();
+            VM.Tabs.selectedIndex = 0;
+            ShowUI();
         }
         protected override void OnDisable()
         {
@@ -49,5 +52,16 @@ namespace FL.FGUI
         }
 
         #endregion
+        private bool _init = false;
+        private void InitView()
+        {
+            if(_init) return;
+            _init = true;
+            VM.List.ListType = EGListType.Virtual;
+        }
+        private void ShowUI()
+        {
+            
+        }
     }
 }

+ 34 - 7
Assets/Scripts/Business/Runtime/FGUI/Partner/SbReplacePanel/PartnerSbReplacePanelCtrl.cs

@@ -4,7 +4,9 @@
 /// 该脚本由模板创建
 /// created by cb 2024
 
+using System.Collections.Generic;
 using FairyGUI;
+using FL.Data;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -17,22 +19,47 @@ namespace FL.FGUI
     {
         protected override void OnEnable(object intent)
         {
+            _id = (int)intent;
             AddUIListenres();
+            InitView();
+            ShowUI();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
-        private void AddUIListenres()
-        {
+        private void AddUIListenres() { }
 
-        }
-        private void RemoveUIListenres()
-        {
+        private void RemoveUIListenres() { }
 
+        #endregion
+        private int _id;
+        private bool _initView;
+
+        private void InitView()
+        {
+            if (_initView)
+                return;
+            _initView = true;
+            VM.List.ListType = EGListType.Virtual;
         }
 
-        #endregion
+        private void ShowUI()
+        {
+            VM.DetailNested.VM.SpGroup.visible = false;
+            VM.DetailNested.Ctrl.ShowUI(_id);
+            var list = PartnersData.Instance.PartnerList;
+            var dataList = new List<int>();
+            foreach (var item in list)
+            {
+                if (item.TableId == _id)
+                    continue;
+                dataList.Add(item.TableId);
+            }
+            VM.List.BindDatas(dataList);
+        }
     }
-}
+}

+ 21 - 8
Assets/Scripts/Business/Runtime/FGUI/Partner/SbStarUpBtn/PartnerSbStarUpBtnCtrl.cs

@@ -5,6 +5,9 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
+using XGame;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -19,20 +22,30 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
-        #region UI事件
-        private void AddUIListenres()
-        {
 
-        }
-        private void RemoveUIListenres()
-        {
+        #region UI事件
+        private void AddUIListenres() { }
 
-        }
+        private void RemoveUIListenres() { }
 
         #endregion
+        public void ShowUI(int sbId)
+        {
+            var attr = PartnersData.Instance.GetPartnerAttrByTableId(sbId);
+            var star = attr?.RisingStarLv ?? 1;
+            var starUpTable = partnerStarUpTableRepo.GetPartnerStarTable(sbId, star);
+            if (starUpTable == null)
+            {
+                Log.Error($"圣兵升星表不存在,id:{sbId},starlv:{star}");
+                return;
+            }
+            VM.SpPbar.max = starUpTable.StarUpCost;
+            VM.SpPbar.value = ItemData.Instance.GetItemNum(starUpTable.PetId);
+        }
     }
-}
+}

+ 106 - 9
Assets/Scripts/Business/Runtime/FGUI/Partner/SbStrengthPanel/PartnerSbStrengthPanelCtrl.cs

@@ -4,7 +4,12 @@
 /// 该脚本由模板创建
 /// created by cb 2024
 
+using System.Collections.Generic;
+using Codice.CM.Common;
 using FairyGUI;
+using FL.Data;
+using XGame;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -18,41 +23,133 @@ namespace FL.FGUI
         protected override void OnEnable(object intent)
         {
             AddUIListenres();
+            InitView();
+            _curSelectId = (int)intent;
+            ShowUI();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
         private void AddUIListenres()
         {
             VM.UpBtn.onClick.Add(OnClickUpBtn);
             VM.LeftBtn.onClick.Add(OnClickLeftBtn);
             VM.RightBtn.onClick.Add(OnClickRightBtn);
-            VM.MwSet.onClick.Add(OnClickMwSet);
-
+            //VM.MwSet.onClick.Add(OnClickMwSet);
         }
+
         private void RemoveUIListenres()
         {
             VM.UpBtn.onClick.Remove(OnClickUpBtn);
             VM.LeftBtn.onClick.Remove(OnClickLeftBtn);
             VM.RightBtn.onClick.Remove(OnClickRightBtn);
-            VM.MwSet.onClick.Remove(OnClickMwSet);
+            //VM.MwSet.onClick.Remove(OnClickMwSet);
+        }
+
+        private void OnClickUpBtn(EventContext context) { }
 
+        private void OnClickLeftBtn(EventContext context)
+        {
+            OnSelectPartnerOffset(-1);
         }
-        private void OnClickUpBtn(EventContext context)
+
+        private void OnClickRightBtn(EventContext context)
         {
+            OnSelectPartnerOffset(1);
         }
-        private void OnClickLeftBtn(EventContext context)
+
+        private void OnClickMwSet(EventContext context) { }
+
+        #endregion
+        private bool _init = false;
+        private List<int> _sbList = new List<int>();
+        private int _curSelectId;
+
+        private void InitView()
         {
+            if (_init)
+                return;
+            _init = true;
+            var tableList = PartnerTableRepo.GetAll();
+            foreach (var item in tableList)
+            {
+                _sbList.Add(item.Id);
+            }
         }
-        private void OnClickRightBtn(EventContext context)
+
+        private void ShowUI()
         {
+            ShowInfo();
+            ShowEpi();
         }
-        private void OnClickMwSet(EventContext context)
+
+        private void ShowInfo()
         {
+            var table = PartnerTableRepo.Get(_curSelectId);
+            if (table == null)
+            {
+                Log.Error($"圣兵表不存在,id:{_curSelectId}");
+                return;
+            }
+            VM.NameLabel.text = table.Name;
+            var attr = PartnersData.Instance.GetPartnerAttrByTableId(table.Id);
+            VM.Have.selectedIndex = attr == null ? 1 : 0;
+            var level = attr == null ? 1 : attr.Level;
+            var star = attr == null ? 1 : attr.RisingStarLv;
+            var curLv = PartnersService.Instance.GetStarLv(star);
+            var curStep = PartnersService.Instance.GetStarStep(star);
+            var list = new List<int>();
+            for (int i = 0; i < curStep; i++)
+            {
+                list.Add(curStep);
+            }
+            VM.StarList.BindDatas(list);
+            VM.LvLabel.text = $"Lv {level}";
+            VM.DetailNested.Ctrl.ShowUI(_curSelectId);
+            if (attr != null)
+            {
+                ShowUpBtn(attr.TableId);
+            }
         }
 
-        #endregion
+        private void ShowEpi()
+        {
+            var info = PartnersData.Instance.GetPartnerAttrByTableId(_curSelectId);
+            if (info == null)
+            {
+                VM.MwSet.Disable();
+            }
+            else
+            {
+                VM.MwSet.Enable(null);
+                VM.MwSet.Ctrl.SetData(info.EpigraphId, _curSelectId, true);
+            }
+        }
+
+        private void ShowUpBtn(int sbId)
+        {
+            VM.StarUpBtn.Ctrl.ShowUI(sbId);
+            VM.LevelUpBtn.Ctrl.ShowUI(sbId);
+        }
+
+        private void OnSelectPartnerOffset(int offset)
+        {
+            var index = _sbList.IndexOf(_curSelectId);
+            index += offset;
+            if (index < 0)
+            {
+                index += _sbList.Count;
+            }
+            else if (index >= _sbList.Count)
+            {
+                index -= _sbList.Count;
+            }
+            _curSelectId = _sbList[index];
+            ShowUI();
+        }
     }
-}
+}

+ 8 - 2
Assets/Scripts/Business/Runtime/FGUI/Partner/SbStrengthPanel/PartnerSbStrengthPanelVM.Gen.cs

@@ -18,6 +18,7 @@ namespace FL.FGUI
     /// </summary>
     public partial class PartnerSbStrengthPanelVM : FguiViewModel
     {
+        public Controller Have { get; private set; }
         public GLoader3D Spine { get; private set; }
         public GTextField NameLabel { get; private set; }
         public GTextField LvLabel { get; private set; }
@@ -27,11 +28,13 @@ namespace FL.FGUI
         public GButton UpBtn { get; private set; }
         public GButton LeftBtn { get; private set; }
         public GButton RightBtn { get; private set; }
-        public GButton MwSet { get; private set; }
+        public PartnerMwSetBtnView MwSet { get; private set; }
         public GImage UpArrImg { get; private set; }
+        public GList StarList { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
+            Have = panel.GetController("Have");
             Spine = panel.GetChild("Spine") as GLoader3D;
             NameLabel = panel.GetChild("NameLabel") as GTextField;
             LvLabel = panel.GetChild("LvLabel") as GTextField;
@@ -44,8 +47,11 @@ namespace FL.FGUI
             UpBtn = panel.GetChild("UpBtn") as GButton;
             LeftBtn = panel.GetChild("LeftBtn") as GButton;
             RightBtn = panel.GetChild("RightBtn") as GButton;
-            MwSet = panel.GetChild("MwSet") as GButton;
+            MwSet = adapter.CreateNested<PartnerMwSetBtnView>(new FguiNested(panel.GetChild("MwSet").asCom), true);
+            AddChild(MwSet);
             UpArrImg = panel.GetChild("UpArrImg") as GImage;
+            StarList = panel.GetChild("StarList") as GList;
+            StarList.Init(typeof(PartnerSbStarListItemView), adapter.CreateListItem);
 
         }
     }

+ 14 - 6
Assets/Scripts/Business/Runtime/FGUI/Partner/SbUpLineListItem/PartnerSbUpLineListItemCtrl.cs

@@ -5,6 +5,9 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
+using XGame;
+using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -19,25 +22,30 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
         private void AddUIListenres()
         {
             VM.UpBtn.onClick.Add(OnClickUpBtn);
-
         }
+
         private void RemoveUIListenres()
         {
             VM.UpBtn.onClick.Remove(OnClickUpBtn);
-
-        }
-        private void OnClickUpBtn(EventContext context)
-        {
         }
 
+        private void OnClickUpBtn(EventContext context) { }
+
         #endregion
+        public void OnRefresh(int index, int id)
+        {
+            VM.DetailNested.VM.SpGroup.visible = false;
+            VM.DetailNested.Ctrl.ShowUI(id);
+        }
     }
-}
+}

+ 2 - 2
Assets/Scripts/Business/Runtime/FGUI/Partner/SbUpLineListItem/PartnerSbUpLineListItemView.ListItem.cs

@@ -5,6 +5,7 @@
 /// created by cb 2024
 
 using FairyGUI;
+using FL.Data;
 
 namespace FL.FGUI
 {
@@ -14,8 +15,7 @@ namespace FL.FGUI
         void IGListItemHandle.OnRefresh(int index, object data)
         {
             ItemIndex = index;
-            //Ctrl.OnRefresh(index, data as GListData);
-            throw new System.NotImplementedException("业务需要实现: PartnerSbUpLineListItemViewCtrl.OnRefresh()");
+            Ctrl.OnRefresh(index, (int)data);
         }
     }
 }

+ 30 - 7
Assets/Scripts/Business/Runtime/FGUI/Partner/SbUpPanel/PartnerSbUpPanelCtrl.cs

@@ -4,7 +4,9 @@
 /// 该脚本由模板创建
 /// created by cb 2024
 
+using System.Collections.Generic;
 using FairyGUI;
+using FL.Data;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -19,20 +21,41 @@ namespace FL.FGUI
         {
             AddUIListenres();
         }
+
         protected override void OnDisable()
         {
             RemoveUIListenres();
         }
+
         #region UI事件
-        private void AddUIListenres()
-        {
+        private void AddUIListenres() { }
 
-        }
-        private void RemoveUIListenres()
-        {
+        private void RemoveUIListenres() { }
 
+        #endregion
+        private bool _init = false;
+
+        public void Init()
+        {
+            if (_init)
+                return;
+            _init = true;
+            VM.List.ListType = EGListType.Virtual;
         }
 
-        #endregion
+        public void ShowUI()
+        {
+            var list = PartnersData.Instance.PartnerList;
+            var dataList = new List<int>();
+            foreach (var item in list)
+            {
+                var pos = PartnersData.Instance.GetPartnerUpPosById(item.TableId);
+                if (pos < 0)
+                {
+                    dataList.Add(item.TableId);
+                }
+            }
+            VM.List.BindDatas(dataList);
+        }
     }
-}
+}

+ 1 - 0
fl-fgui-project/assets/Partner/NewPartner/components/MwSetBtn.xml → fl-fgui-project/assets/Partner/NewEpigraph/item/MwSetBtn.xml

@@ -5,4 +5,5 @@
     <text id="n130_scnr" name="n130" xy="0,82" pivot="0.5,0.5" size="84,29" fontSize="20" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" text="镶嵌铭文"/>
   </displayList>
   <Button downEffect="scale" downEffectValue=".9"/>
+  <scriptData genuitypescnr85="1" gencodescnr85="1"/>
 </component>

+ 4 - 4
fl-fgui-project/assets/Partner/NewPartner/SbBagPanel.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<component size="756,1344" designImage="ui://2981jnh7ifoa5i" designImageAlpha="45" designImageLayer="1">
+<component size="756,1344" designImage="ui://2981jnh7ifoa5i" designImageAlpha="0" designImageLayer="1">
   <controller name="CurSelect" pages="0,,1,,2,,3," selected="0">
     <remark page="0" value="上阵"/>
     <remark page="1" value="品质"/>
@@ -17,12 +17,12 @@
     <image id="n36_q0v6" name="n36" src="q0v65u" fileName="NewPartner/img/titlebg1.png" xy="0,22" group="n87_q0v6"/>
     <text id="n38_q0v6" name="n1" xy="31,39" pivot="0.5,0.5" size="124,42" group="n87_q0v6" fontSize="30" color="#ffffff" strokeColor="#000000" strokeSize="2" text="圣兵列表"/>
     <group id="n87_q0v6" name="n87" xy="0,22" size="226,79"/>
-    <list id="n101_q0v6" name="List" xy="22,115" size="660,986" overflow="scroll" autoClearItems="true">
+    <list id="n101_q0v6" name="List" xy="22,115" size="711,986" overflow="scroll" autoClearItems="true">
       <relation target="" sidePair="bottomext-bottom"/>
-      <item url="ui://2981jnh7q0v67a"/>
+      <item url="ui://2981jnh7lkie8j"/>
       <item url="ui://2981jnh7q0v67b"/>
       <item url="ui://2981jnh7q0v67b"/>
-      <item url="ui://2981jnh7q0v67a"/>
+      <item url="ui://2981jnh7lkie8j"/>
       <item url="ui://2981jnh7q0v67b"/>
       <item url="ui://2981jnh7q0v67b"/>
     </list>

+ 1 - 1
fl-fgui-project/assets/Partner/NewPartner/SbMainPanel.xml

@@ -31,7 +31,7 @@
     <component id="n48_q0v6" name="OneUpBtn" src="q0v66n" fileName="NewPartner/components/Yellow2Btn.xml" xy="254,1115" group="n88_q0v6">
       <Button title="一键上阵"/>
     </component>
-    <component id="n50_q0v6" name="RecommendBtn" src="q0v66p" fileName="NewPartner/components/DiaBtn.xml" xy="20,1114" group="n88_q0v6">
+    <component id="n50_q0v6" name="RecommendBtn" src="q0v66p" fileName="NewPartner/components/DiaBtn.xml" xy="20,1114" group="n88_q0v6" visible="false">
       <Button title="推荐阵容" icon="ui://2981jnh7q0v66o"/>
     </component>
     <component id="n53_q0v6" name="BagBtn" src="q0v66p" fileName="NewPartner/components/DiaBtn.xml" xy="655,1114" group="n88_q0v6">

+ 3 - 1
fl-fgui-project/assets/Partner/NewPartner/SbReplacePanel.xml

@@ -14,9 +14,11 @@
       <item/>
       <item/>
     </list>
-    <component id="n112_q0v6" name="n112" src="q0v67a" fileName="NewPartner/item/SbBagListTitleItem.xml" xy="23,446">
+    <component id="n112_q0v6" name="n112" src="q0v67a" fileName="NewPartner/components/SbBagTitle.xml" xy="23,446">
       <Label title="可上阵"/>
     </component>
+    <image id="n115_lkie" name="n115" src="q0v67f" fileName="NewPartner/img/yishangzhen.png" xy="49,253"/>
+    <text id="n116_lkie" name="n116" xy="87,258" size="64,29" fontSize="20" color="#ffffff" strokeColor="#000000" strokeSize="2" text="已上阵"/>
   </displayList>
   <scriptData gencodevl6j0="1" gencodeq0v675="1" gencodeq0v67o="1"/>
 </component>

+ 29 - 12
fl-fgui-project/assets/Partner/NewPartner/SbStrengthPanel.xml

@@ -1,25 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="756,1344" designImage="ui://2981jnh7ifoa5e" designImageAlpha="45" designImageLayer="1">
+  <controller name="Have" pages="0,,1," selected="0">
+    <remark page="0" value="拥有"/>
+    <remark page="1" value="未拥有"/>
+  </controller>
   <displayList>
     <image id="n113_q0v6" name="n113" src="q0v67t" fileName="NewPartner/bg/imagesbqh.jpg" xy="0,0"/>
     <loader3D id="n130_uai3" name="Spine" xy="356,329" pivot="0.5,0.5" size="0,12" animation="" skin="" loop="true"/>
     <image id="n36_q0v6" name="n36" src="q0v65u" fileName="NewPartner/img/titlebg1.png" xy="0,22" group="n87_q0v6"/>
     <text id="n38_q0v6" name="n1" xy="31,39" pivot="0.5,0.5" size="124,42" group="n87_q0v6" fontSize="30" color="#ffffff" strokeColor="#000000" strokeSize="2" text="圣兵强化"/>
     <group id="n87_q0v6" name="n87" xy="0,22" size="226,79"/>
-    <image id="n114_q0v6" name="n114" src="q0v66r" fileName="NewPartner/img/banping1bg.png" xy="0,560" size="756,784"/>
-    <image id="n123_q0v6" name="n123" src="q0v683" fileName="NewPartner/img/titlebg3.png" xy="191,545"/>
-    <text id="n124_q0v6" name="NameLabel" xy="316,545" pivot="0.5,0.5" size="124,42" fontSize="30" color="#ffffff" align="center" strokeColor="#000000" strokeSize="2" autoClearText="true" text="霜之哀伤"/>
-    <text id="n127_q0v6" name="LvLabel" xy="329,462" pivot="0.5,0.5" size="95,42" fontSize="30" color="#ffffff" align="center" strokeColor="#000000" strokeSize="2" text="Lv 999"/>
-    <component id="n115_q0v6" name="DetailNested" src="q0v67u" fileName="NewPartner/item/SbDetailNoIconNested.xml" xy="21,597"/>
-    <component id="n128_q0v6" name="StarUpBtn" src="q0v67z" fileName="NewPartner/item/SbStarUpBtn.xml" xy="120,1112"/>
-    <component id="n116_q0v6" name="LevelUpBtn" src="q0v682" fileName="NewPartner/item/SbLevelUpBtn.xml" xy="390,1110"/>
-    <component id="n122_q0v6" name="UpBtn" src="q0v66p" fileName="NewPartner/components/DiaBtn.xml" xy="653,1114">
+    <image id="n114_q0v6" name="n114" src="q0v66r" fileName="NewPartner/img/banping1bg.png" xy="0,560" size="756,784" group="n133_jmnf"/>
+    <image id="n123_q0v6" name="n123" src="q0v683" fileName="NewPartner/img/titlebg3.png" xy="191,545" group="n133_jmnf"/>
+    <text id="n124_q0v6" name="NameLabel" xy="316,545" pivot="0.5,0.5" size="124,42" group="n133_jmnf" fontSize="30" color="#ffffff" align="center" strokeColor="#000000" strokeSize="2" autoClearText="true" text="霜之哀伤"/>
+    <text id="n127_q0v6" name="LvLabel" xy="329,462" pivot="0.5,0.5" size="95,42" group="n133_jmnf" fontSize="30" color="#ffffff" align="center" strokeColor="#000000" strokeSize="2" text="Lv 999"/>
+    <component id="n115_q0v6" name="DetailNested" src="q0v67u" fileName="NewPartner/item/SbDetailNoIconNested.xml" xy="21,597" group="n133_jmnf"/>
+    <component id="n128_q0v6" name="StarUpBtn" src="q0v67z" fileName="NewPartner/item/SbStarUpBtn.xml" xy="120,1112" group="n134_jmnf"/>
+    <component id="n116_q0v6" name="LevelUpBtn" src="q0v682" fileName="NewPartner/item/SbLevelUpBtn.xml" xy="390,1110" group="n134_jmnf"/>
+    <component id="n122_q0v6" name="UpBtn" src="q0v66p" fileName="NewPartner/components/DiaBtn.xml" xy="653,1114" group="n134_jmnf">
       <Button title="上阵" icon="ui://2981jnh7q0v67f"/>
     </component>
-    <component id="n125_q0v6" name="LeftBtn" src="z7d1g" fileName="NewPartner/components/ArrowBtn.xml" xy="32,517"/>
-    <component id="n126_q0v6" name="RightBtn" src="z7d1g" fileName="NewPartner/components/ArrowBtn.xml" xy="624,517" scale="-1,1"/>
-    <component id="n129_scnr" name="MwSet" src="scnr85" fileName="NewPartner/components/MwSetBtn.xml" xy="615,416"/>
-    <image id="n131_uai3" name="UpArrImg" src="q0v672" fileName="NewPartner/img/Upgradable.png" xy="331,1108"/>
+    <group id="n134_jmnf" name="n134" xy="120,1110" size="617,83" group="n133_jmnf" advanced="true">
+      <gearDisplay controller="Have" pages="0"/>
+    </group>
+    <component id="n125_q0v6" name="LeftBtn" src="z7d1g" fileName="NewPartner/components/ArrowBtn.xml" xy="32,517" group="n133_jmnf"/>
+    <component id="n126_q0v6" name="RightBtn" src="z7d1g" fileName="NewPartner/components/ArrowBtn.xml" xy="624,517" group="n133_jmnf" scale="-1,1"/>
+    <component id="n129_scnr" name="MwSet" src="scnr85" fileName="NewPartner/components/MwSetBtn.xml" xy="615,416" group="n133_jmnf"/>
+    <image id="n131_uai3" name="UpArrImg" src="q0v672" fileName="NewPartner/img/Upgradable.png" xy="331,1108" group="n133_jmnf"/>
+    <list id="n132_jmnf" name="StarList" xy="289,506" size="200,34" group="n133_jmnf" scale="0.9,0.9" layout="row" colGap="-11" defaultItem="ui://2981jnh7q0v67w" autoItemSize="false" align="center" autoClearItems="true" scrollItemToViewOnClick="false">
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <group id="n133_jmnf" name="n133" xy="0,416" size="756,928" advanced="true">
+      <relation target="" sidePair="bottom-bottom"/>
+    </group>
   </displayList>
   <scriptData gencodevl6j0="1" gencodeq0v675="1" gencodeq0v67m="1" gencodeq0v67s="1"/>
 </component>

+ 9 - 0
fl-fgui-project/assets/Partner/NewPartner/components/SbBagTitle.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="714,34" extention="Label">
+  <displayList>
+    <image id="n91_q0v6" name="n91" src="q0v676" fileName="NewPartner/img/Separation.png" xy="112,8" pivot="0.5,0.5"/>
+    <image id="n92_q0v6" name="n92" src="q0v676" fileName="NewPartner/img/Separation.png" xy="480,8" pivot="0.5,0.5" scale="-1,1"/>
+    <text id="n93_q0v6" name="title" xy="315,0" pivot="0.5,0.5" size="76,34" fontSize="24" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" autoClearText="true" text="已拥有"/>
+  </displayList>
+  <scriptData genuitypeq0v67a="2" gencodeq0v67a="0"/>
+</component>

+ 8 - 2
fl-fgui-project/assets/Partner/NewPartner/item/SbBagListItem.xml

@@ -1,10 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="113,327">
+  <controller name="IsUP" pages="0,,1," selected="0">
+    <remark page="0" value="未上阵"/>
+    <remark page="1" value="已上阵"/>
+  </controller>
   <displayList>
-    <component id="n95_q0v6" name="n95" src="q0v65x" fileName="NewPartner/item/SbItem.xml" xy="0,0"/>
+    <component id="n95_q0v6" name="SbItem" src="q0v65x" fileName="NewPartner/item/SbItem.xml" xy="0,0"/>
     <image id="n96_q0v6" name="n96" src="q0v677" fileName="NewPartner/img/yishangzhenbg.png" xy="4,164" group="n98_q0v6"/>
     <text id="n97_q0v6" name="n97" xy="25,166" pivot="0.5,0.5" size="64,29" group="n98_q0v6" fontSize="20" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" text="已上阵"/>
-    <group id="n98_q0v6" name="n98" xy="4,164" size="106,31"/>
+    <group id="n98_q0v6" name="n98" xy="4,164" size="106,31" advanced="true">
+      <gearDisplay controller="IsUP" pages="1"/>
+    </group>
     <text id="n99_q0v6" name="NameLabel" xy="1,291" pivot="0.5,0.5" size="108,36" fontSize="26" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" text="霜之哀伤"/>
   </displayList>
   <scriptData genuitypeq0v678="2" gencodeq0v678="1"/>

+ 3 - 5
fl-fgui-project/assets/Partner/NewPartner/item/SbBagListTitleItem.xml

@@ -1,9 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<component size="714,34" extention="Label">
+<component size="714,34">
   <displayList>
-    <image id="n91_q0v6" name="n91" src="q0v676" fileName="NewPartner/img/Separation.png" xy="112,8" pivot="0.5,0.5"/>
-    <image id="n92_q0v6" name="n92" src="q0v676" fileName="NewPartner/img/Separation.png" xy="480,8" pivot="0.5,0.5" scale="-1,1"/>
-    <text id="n93_q0v6" name="title" xy="315,0" pivot="0.5,0.5" size="76,34" fontSize="24" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" autoClearText="true" text="已拥有"/>
+    <component id="n94_lkie" name="TitleLabel" src="q0v67a" fileName="NewPartner/components/SbBagTitle.xml" xy="0,0"/>
   </displayList>
-  <scriptData genuitypeq0v67a="2" gencodeq0v67a="1"/>
+  <scriptData genuitypeq0v67a="2" gencodeq0v67a="0" genuitypelkie8j="2" gencodelkie8j="1"/>
 </component>

+ 13 - 3
fl-fgui-project/assets/Partner/NewPartner/item/SbBaseItem.xml

@@ -1,12 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
-<component size="113,291" initName="PartnerBase" designImage="ui://2981jnh7ifoa5f" designImageOffsetX="-29" designImageOffsetY="-398" designImageAlpha="33" designImageLayer="1">
+<component size="113,291" initName="PartnerBase" designImage="ui://2981jnh7ifoa5f" designImageOffsetX="-29" designImageOffsetY="-398" designImageAlpha="33">
   <controller name="ShowOther" pages="0,show,1,no" selected="0"/>
+  <controller name="Have" pages="0,,1," selected="0">
+    <remark page="0" value="拥有"/>
+    <remark page="1" value="未拥有"/>
+  </controller>
   <displayList>
     <loader id="n11_vn6w" name="QualityImg" xy="1,4" size="109,285" url="ui://2981jnh7q0v65y" align="center" vAlign="middle" autoSize="true" clearOnPublish="true"/>
-    <loader id="n2_vl6j" name="PartnerImg" xy="3,9" pivot="0.5,0.5" size="108,280" url="ui://2981jnh7uai38i" align="center" vAlign="middle" autoSize="true" clearOnPublish="true"/>
-    <text id="n13_vn6w" name="LevelTxt" xy="32,3" size="65,29" fontSize="20" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" text="Lv.102"/>
+    <loader id="n2_vl6j" name="PartnerImg" xy="3,9" pivot="0.5,0.5" size="108,280" url="ui://2981jnh7uai38i" align="center" vAlign="middle" autoSize="true" clearOnPublish="true">
+      <gearColor controller="Have" pages="1" values="#333333" default="#ffffff"/>
+    </loader>
+    <text id="n13_vn6w" name="LevelTxt" xy="32,3" size="65,29" fontSize="20" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" text="Lv.102">
+      <gearDisplay controller="Have" pages="0"/>
+    </text>
     <component id="n18_q0v6" name="SpPbar" src="q0v66j" fileName="NewPartner/components/SpProgress.xml" xy="18,28">
       <gearDisplay controller="ShowOther" pages="0"/>
+      <gearDisplay2 controller="Have" pages="0" condition="0"/>
       <ProgressBar value="2" max="2"/>
     </component>
     <image id="n19_q0v6" name="n19" src="q0v66g" fileName="NewPartner/img/suipian.png" xy="13,30">
@@ -15,6 +24,7 @@
     <loader id="n20_q0v6" name="ElementLoader" xy="-8,-7" pivot="0.5,0.5" size="46,46" scale="0.7,0.7" url="ui://2981jnh7q0v66y" align="center" vAlign="middle" autoSize="true" clearOnPublish="true"/>
     <list id="n21_q0v6" name="StarList" xy="5,196" size="200,34" scale="0.5,0.5" layout="row" colGap="-8" defaultItem="ui://2981jnh7q0v67w" align="center" autoClearItems="true">
       <gearDisplay controller="ShowOther" pages="0"/>
+      <gearDisplay2 controller="Have" pages="0" condition="0"/>
       <item/>
       <item/>
       <item/>

+ 3 - 2
fl-fgui-project/assets/Partner/NewPartner/item/SbDetailNested.xml

@@ -38,10 +38,11 @@
     <loader id="n76_q0v6" name="ElementLoader" xy="167,73" size="35,30" group="n83_q0v6" url="ui://2981jnh7q0v66f"/>
     <loader id="n77_q0v6" name="TypeLoader" xy="209,73" size="53,29" group="n83_q0v6" url="ui://2981jnh7q0v66v"/>
     <group id="n83_q0v6" name="n83" xy="167,73" size="95,30" group="n81_q0v6"/>
-    <component id="n78_q0v6" name="SpPbar" src="q0v66j" fileName="NewPartner/components/SpProgress.xml" xy="45,145" size="90,30" group="n81_q0v6">
+    <component id="n78_q0v6" name="SpPbar" src="q0v66j" fileName="NewPartner/components/SpProgress.xml" xy="45,145" size="90,30" group="n85_lkie">
       <ProgressBar value="50" max="100"/>
     </component>
-    <image id="n79_q0v6" name="n79" src="q0v66g" fileName="NewPartner/img/suipian.png" xy="25,146" group="n81_q0v6" scale="1.4,1.4"/>
+    <image id="n79_q0v6" name="n79" src="q0v66g" fileName="NewPartner/img/suipian.png" xy="25,146" group="n85_lkie" scale="1.4,1.4"/>
+    <group id="n85_lkie" name="SpGroup" xy="25,145" size="110,30" group="n81_q0v6" advanced="true"/>
     <group id="n81_q0v6" name="n81" xy="22,23" size="667,253" advanced="true">
       <gearDisplay controller="IsEmpty" pages="0"/>
     </group>

+ 20 - 9
fl-fgui-project/assets/Partner/NewPartner/item/SbDetailNoIconNested.xml

@@ -4,10 +4,19 @@
     <remark page="0" value="不为空"/>
     <remark page="1" value="为空"/>
   </controller>
+  <controller name="IsUp" pages="0,,1," selected="0">
+    <remark page="0" value="未上阵"/>
+    <remark page="1" value="已上阵"/>
+  </controller>
   <displayList>
     <image id="n42_q0v6" name="n42" src="q0v66k" fileName="NewPartner/img/banping2bg.png" xy="0,0" size="714,504">
       <relation target="" sidePair="bottomext-bottom"/>
     </image>
+    <image id="n86_jmnf" name="n86" src="q0v67f" fileName="NewPartner/img/yishangzhen.png" xy="567,30" group="n88_jmnf"/>
+    <text id="n87_jmnf" name="n87" xy="604,35" size="64,29" group="n88_jmnf" fontSize="20" color="#ffffff" strokeColor="#000000" strokeSize="2" text="已上阵"/>
+    <group id="n88_jmnf" name="n88" xy="567,30" size="101,42" group="n81_q0v6" advanced="true">
+      <gearDisplay controller="IsUp" pages="1"/>
+    </group>
     <image id="n57_q0v6" name="n57" src="q0v66u" fileName="NewPartner/img/Textbg.png" xy="39,73" size="297,32" group="n60_q0v6"/>
     <image id="n56_q0v6" name="n56" src="q0v66s" fileName="NewPartner/img/gongsutubiao.png" xy="45,75" group="n60_q0v6"/>
     <text id="n58_q0v6" name="n58" xy="73,73" size="92,32" group="n60_q0v6" fontSize="22" color="#ffffff" align="center" vAlign="middle" strokeColor="#000000" strokeSize="2" text="伤害系数"/>
@@ -20,17 +29,15 @@
     <group id="n65_q0v6" name="n65" xy="375,73" size="298,32" group="n81_q0v6"/>
     <image id="n66_q0v6" name="n66" src="q0v66u" fileName="NewPartner/img/Textbg.png" xy="38,121" size="636,32" group="n71_q0v6"/>
     <image id="n67_q0v6" name="n67" src="q0v65q" fileName="NewPartner/img/jiahao.png" xy="46,123" group="n71_q0v6"/>
-    <text id="n69_q0v6" name="n69" xy="73,121" size="212,32" group="n71_q0v6" fontSize="22" color="#ffffff" align="center" strokeColor="#000000" text="基础攻击&amp;防御&amp;生命"/>
+    <text id="n69_q0v6" name="n69" xy="73,121" size="212,32" group="n71_q0v6" fontSize="22" color="#ffffff" align="center" strokeColor="#000000" strokeSize="2" text="基础攻击&amp;防御&amp;生命"/>
     <text id="n70_q0v6" name="OwnerLabel" xy="603,121" pivot="1,0" size="64,32" group="n71_q0v6" fontSize="22" color="#1ef369" align="center" strokeColor="#000000" strokeSize="2" autoClearText="true" text="+46%"/>
-    <component id="n84_q0v6" name="n84" src="q0v67a" fileName="NewPartner/item/SbBagListTitleItem.xml" xy="1,241" group="n71_q0v6">
+    <group id="n71_q0v6" name="n71" xy="38,121" size="636,32" group="n81_q0v6"/>
+    <text id="n72_q0v6" name="DescLabel" xy="39,165" size="647,69" group="n81_q0v6" fontSize="22" color="#ffffff" leading="0" autoSize="none" strokeColor="#000000" strokeSize="2" autoClearText="true" text="释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个"/>
+    <image id="n90_jmnf" name="n90" src="q0v66u" fileName="NewPartner/img/Textbg.png" xy="37,234" size="636,239" group="n89_jmnf"/>
+    <component id="n84_q0v6" name="n84" src="q0v67a" fileName="NewPartner/item/SbBagListTitleItem.xml" xy="1,241" group="n89_jmnf">
       <Label title="升星效果"/>
     </component>
-    <group id="n71_q0v6" name="n71" xy="1,121" size="714,154" group="n81_q0v6"/>
-    <text id="n72_q0v6" name="DescLabel" xy="39,165" size="647,69" group="n81_q0v6" fontSize="22" color="#ffffff" leading="0" autoSize="none" strokeColor="#000000" strokeSize="2" autoClearText="true" text="释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个释放一个"/>
-    <loader id="n76_q0v6" name="ElementLoader" xy="38,30" size="35,30" group="n83_q0v6" url="ui://2981jnh7q0v66f"/>
-    <loader id="n77_q0v6" name="TypeLoader" xy="82,30" size="53,29" group="n83_q0v6" url="ui://2981jnh7q0v66v"/>
-    <group id="n83_q0v6" name="n83" xy="38,30" size="97,30" group="n81_q0v6"/>
-    <list id="n85_q0v6" name="n85" xy="43,284" size="626,178" group="n81_q0v6" overflow="scroll" lineGap="19" defaultItem="ui://2981jnh7q0v67y" autoClearItems="true">
+    <list id="n85_q0v6" name="SkillList" xy="43,274" size="626,196" group="n89_jmnf" overflow="scroll" margin="10,0,0,0" lineGap="19" defaultItem="ui://2981jnh7q0v67y" autoClearItems="true">
       <item/>
       <item/>
       <item/>
@@ -42,7 +49,11 @@
       <item/>
       <item/>
     </list>
-    <group id="n81_q0v6" name="n81" xy="1,30" size="714,432" advanced="true">
+    <group id="n89_jmnf" name="n89" xy="1,234" size="714,239" group="n81_q0v6"/>
+    <loader id="n76_q0v6" name="ElementLoader" xy="38,30" size="35,30" group="n83_q0v6" url="ui://2981jnh7q0v66f"/>
+    <loader id="n77_q0v6" name="TypeLoader" xy="82,30" size="53,29" group="n83_q0v6" url="ui://2981jnh7q0v66v"/>
+    <group id="n83_q0v6" name="n83" xy="38,30" size="97,30" group="n81_q0v6"/>
+    <group id="n81_q0v6" name="n81" xy="1,30" size="714,443" advanced="true">
       <gearDisplay controller="IsEmpty" pages="0"/>
     </group>
   </displayList>

+ 1 - 1
fl-fgui-project/assets/Partner/NewPartner/item/SbLevelUpBtn.xml

@@ -9,7 +9,7 @@
       <gearDisplay controller="grayed" pages="0"/>
     </image>
     <text id="n117_q0v6" name="n117" xy="100,31" size="52,34" fontSize="24" color="#ffffff" align="center" strokeColor="#000000" strokeSize="2" text="升星"/>
-    <component id="n120_q0v6" name="IconLoader" src="q0v681" fileName="NewPartner/item/CostLabel.xml" xy="35,0" pivot="0.5,0.5"/>
+    <component id="n120_q0v6" name="CostLabel" src="q0v681" fileName="NewPartner/item/CostLabel.xml" xy="35,0" pivot="0.5,0.5"/>
   </displayList>
   <Button downEffect="scale" downEffectValue=".9"/>
   <scriptData genuitypeq0v682="1" gencodeq0v682="1"/>

+ 4 - 3
fl-fgui-project/assets/Partner/package.xml

@@ -164,8 +164,8 @@
     <image id="q0v676" name="Separation.png" path="/NewPartner/img/"/>
     <image id="q0v677" name="yishangzhenbg.png" path="/NewPartner/img/"/>
     <component id="q0v678" name="SbBagListItem.xml" path="/NewPartner/item/"/>
-    <component id="q0v67a" name="SbBagListTitleItem.xml" path="/NewPartner/item/"/>
-    <component id="q0v67b" name="SbBagListLineItem.xml" path="/NewPartner/item/"/>
+    <component id="q0v67a" name="SbBagTitle.xml" path="/NewPartner/components/"/>
+    <component id="q0v67b" name="SbBagListLineItem.xml" path="/NewPartner/item/" exported="true"/>
     <image id="q0v67c" name="shaixuanbg.png" path="/NewPartner/img/" scale="9grid" scale9grid="10,10,12,12"/>
     <image id="q0v67d" name="shaixuanButton1.png" path="/NewPartner/img/"/>
     <image id="q0v67e" name="shaixuanButton0.png" path="/NewPartner/img/"/>
@@ -195,7 +195,7 @@
     <component id="q0v682" name="SbLevelUpBtn.xml" path="/NewPartner/item/"/>
     <image id="q0v683" name="titlebg3.png" path="/NewPartner/img/"/>
     <component id="scnr84" name="MwSetBase.xml" path="/NewEpigraph/item/"/>
-    <component id="scnr85" name="MwSetBtn.xml" path="/NewPartner/components/"/>
+    <component id="scnr85" name="MwSetBtn.xml" path="/NewEpigraph/item/"/>
     <component id="iqx986" name="SbRecommendPanel.xml" path="/NewPartner/" exported="true"/>
     <image id="iqx987" name="tanchuangtitlebg.png" path="/NewPartner/img/"/>
     <image id="iqx988" name="tanchuangbg.png" path="/NewPartner/img/" scale="9grid" scale9grid="21,40,42,4"/>
@@ -207,6 +207,7 @@
     <component id="uai38f" name="SbRecommendListItem.xml" path="/NewPartner/item/"/>
     <image id="uai38g" name="partner_icon2_20111.png" path="/Epigraph/Images/mwpinzhi/"/>
     <image id="uai38i" name="partner_icon_20121.png" path="/Epigraph/Images/mwpinzhi/"/>
+    <component id="lkie8j" name="SbBagListTitleItem.xml" path="/NewPartner/item/" exported="true"/>
   </resources>
   <publish name="" genCode="true" excluded="uai38g,v4ke16,v4ke11,pu684a,drii42,v4ke1z,v4ke1a,v4ke1q,v4ke2m"/>
 </packageDescription>