Bladeren bron

角色详细属性界面

zhenglijun 6 dagen geleden
bovenliggende
commit
cf0fd0e51a
44 gewijzigde bestanden met toevoegingen van 816 en 2 verwijderingen
  1. BIN
      Assets/Res/Addressable/FGUI/DragonEgg/DragonEgg_fui.bytes
  2. BIN
      Assets/Res/Addressable/FGUI/Player/Player_atlas0.png
  3. BIN
      Assets/Res/Addressable/FGUI/Player/Player_fui.bytes
  4. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem.meta
  5. 59 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemCtrl.cs
  6. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemCtrl.cs.meta
  7. 29 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemVM.Gen.cs
  8. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemVM.Gen.cs.meta
  9. 20 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.ListItem.cs
  10. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.ListItem.cs.meta
  11. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.cs
  12. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.cs.meta
  13. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList.meta
  14. 45 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListCtrl.cs
  15. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListCtrl.cs.meta
  16. 32 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListVM.Gen.cs
  17. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListVM.Gen.cs.meta
  18. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListView.cs
  19. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListView.cs.meta
  20. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute.meta
  21. 145 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeCtrl.cs
  22. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeCtrl.cs.meta
  23. 37 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeVM.Gen.cs
  24. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeVM.Gen.cs.meta
  25. 34 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeView.cs
  26. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeView.cs.meta
  27. 1 1
      Assets/Scripts/Business/Runtime/FGUI/Player/MainPanel/PlayerMainPanelCtrl.cs
  28. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList.meta
  29. 44 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListCtrl.cs
  30. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListCtrl.cs.meta
  31. 32 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListVM.Gen.cs
  32. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListVM.Gen.cs.meta
  33. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListView.cs
  34. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListView.cs.meta
  35. 1 0
      fl-fgui-project/assets/DragonEgg/Box.xml
  36. 7 0
      fl-fgui-project/assets/Player/AttributeItem.xml
  37. 21 0
      fl-fgui-project/assets/Player/AttributeList.xml
  38. 25 0
      fl-fgui-project/assets/Player/DetailsAttribute.xml
  39. BIN
      fl-fgui-project/assets/Player/Images/imgContent.png
  40. BIN
      fl-fgui-project/assets/Player/Images/imgContentBlue.png
  41. BIN
      fl-fgui-project/assets/Player/Images/imgContentWhite.png
  42. BIN
      fl-fgui-project/assets/Player/Images/imgFlower.png
  43. 31 0
      fl-fgui-project/assets/Player/SpecialAttributeList.xml
  44. 9 1
      fl-fgui-project/assets/Player/package.xml

BIN
Assets/Res/Addressable/FGUI/DragonEgg/DragonEgg_fui.bytes


BIN
Assets/Res/Addressable/FGUI/Player/Player_atlas0.png


BIN
Assets/Res/Addressable/FGUI/Player/Player_fui.bytes


+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem.meta

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

+ 59 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemCtrl.cs

@@ -0,0 +1,59 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using Codice.CM.Common;
+using FairyGUI;
+using XGame.Database;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public class AttributeParam
+    {
+        public EAttributeType attributeType;
+        public long attributeValue;
+    }
+
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PlayerAttributeItemCtrl : UIController<PlayerAttributeItemVM>
+    {
+        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, AttributeParam attrParam)
+        {
+            var attributeInfo = AttrDescTableRepo.Get((int)attrParam.attributeType);
+            if (attributeInfo != null) 
+            {
+                //生命属性 [color=#33CCFF]123456789[/color]	
+                string format = attrParam.attributeValue > 0 ? "F3" : "F0";
+                string desc = attributeInfo.Num_type == 1 ? TableUtils.ToRealDouble(attrParam.attributeValue).ToString(format) + "%" :
+                             (attrParam.attributeType == EAttributeType.AtkSpeed ? TableUtils.ToRealDouble(attrParam.attributeValue).ToString("F1") : attrParam.attributeValue.ToString());
+                VM.AttributeLabel.text = $"{attributeInfo.ShowName} [color=#6699CC]{desc}[/color]";
+            }
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemCtrl.cs.meta

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

+ 29 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemVM.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 PlayerAttributeItemVM : FguiViewModel
+    {
+        public GTextField AttributeLabel { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            AttributeLabel = panel.GetChild("AttributeLabel") as GTextField;
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemVM.Gen.cs.meta

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

+ 20 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.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 PlayerAttributeItemView : IGListItemHandle
+    {
+        public int ItemIndex { get; private set; }
+        void IGListItemHandle.OnRefresh(int index, object data)
+        {
+            ItemIndex = index;
+            Ctrl.OnRefresh(index, data as AttributeParam);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.ListItem.cs.meta

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

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.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 _PlayerAttributeItem;
+        public static UIKey PlayerAttributeItem => _PlayerAttributeItem ?? (_PlayerAttributeItem = new UIKey("Player", "AttributeItem", typeof(PlayerAttributeItemView)));
+    }
+    public partial class PlayerAttributeItemView : NestedView<PlayerAttributeItemCtrl, PlayerAttributeItemVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeItem/PlayerAttributeItemView.cs.meta

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

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList.meta

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

+ 45 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListCtrl.cs

@@ -0,0 +1,45 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+using System.Collections.Generic;
+using XGame.Database;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PlayerAttributeListCtrl : UIController<PlayerAttributeListVM>
+    {
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+
+        }
+        private void RemoveUIListenres()
+        {
+
+        }
+
+        #endregion
+
+        public void ShowUI(List<AttributeParam> attributeDataList)
+        {
+            VM.AttrsList.BindDatas(attributeDataList);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListCtrl.cs.meta

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

+ 32 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListVM.Gen.cs

@@ -0,0 +1,32 @@
+/// #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 PlayerAttributeListVM : FguiViewModel
+    {
+        public GTextField Title { get; private set; }
+        public GList AttrsList { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            Title = panel.GetChild("title") as GTextField;
+            AttrsList = panel.GetChild("AttrsList") as GList;
+            AttrsList.Init(typeof(PlayerAttributeItemView), adapter.CreateListItem);
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListVM.Gen.cs.meta

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

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListView.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 _PlayerAttributeList;
+        public static UIKey PlayerAttributeList => _PlayerAttributeList ?? (_PlayerAttributeList = new UIKey("Player", "AttributeList", typeof(PlayerAttributeListView)));
+    }
+    public partial class PlayerAttributeListView : NestedView<PlayerAttributeListCtrl, PlayerAttributeListVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/AttributeList/PlayerAttributeListView.cs.meta

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

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: W3IcsHz4AnmTZ3EplNRAslV2RrWE/U87ue+IC5P3sEryKPkZD+rIQRE=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 145 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeCtrl.cs

@@ -0,0 +1,145 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FL.Data;
+using System.Collections.Generic;
+using XGame.Database;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PlayerDetailsAttributeCtrl : UIController<PlayerDetailsAttributeVM>
+    {
+        private List<AttributeParam> _baseAttributeList;        // 基础属性
+        private List<AttributeParam> _battleAttributeList;      // 战斗属性
+        private List<AttributeParam> _battleResistanceAttrList; // 战斗抗性
+        private List<AttributeParam> _specialAttributeList;     // 特殊属性
+
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+            InitData();
+            ShowAttributeUI();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+            if (_baseAttributeList != null) 
+            {
+                _baseAttributeList.Clear();
+                _baseAttributeList = null;
+            }
+            if (_battleAttributeList != null)
+            {
+                _battleAttributeList.Clear();
+                _battleAttributeList = null;
+            }
+            if (_battleResistanceAttrList != null)
+            {
+                _battleResistanceAttrList.Clear();
+                _battleResistanceAttrList = null;
+            }
+            if (_specialAttributeList != null)
+            {
+                _specialAttributeList.Clear();
+                _specialAttributeList = null;
+            }
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+
+        }
+        private void RemoveUIListenres()
+        {
+
+        }
+
+        #endregion
+
+        private void InitData()
+        {
+            if (_baseAttributeList == null)
+            {
+                _baseAttributeList = new List<AttributeParam>() 
+                {
+                    GetAttributeParam(EAttributeType.Atk),
+                    GetAttributeParam(EAttributeType.Hp),
+                    GetAttributeParam(EAttributeType.Def),
+                    GetAttributeParam(EAttributeType.AtkSpeed)
+                };
+
+            }
+            if (_battleAttributeList == null)
+            {
+                _battleAttributeList = new List<AttributeParam>()
+                {
+                    GetAttributeParam(EAttributeType.Verti),//击晕
+                    GetAttributeParam(EAttributeType.Crit),// 暴击
+                    GetAttributeParam(EAttributeType.DoubleHit),//连击
+                    GetAttributeParam(EAttributeType.Eva),  // 闪避
+                    GetAttributeParam(EAttributeType.Counter)// 反击
+                };
+            }
+
+            if (_battleResistanceAttrList == null)
+            {
+                _battleResistanceAttrList = new List<AttributeParam>()
+                {
+                    GetAttributeParam(EAttributeType.VertigoRes),//抗击晕
+                    GetAttributeParam(EAttributeType.CritDmgFac),//抗暴击
+                    GetAttributeParam(EAttributeType.DoubleHitRes),//抗连击
+                    GetAttributeParam(EAttributeType.EvaRes),   //抗闪避
+                    GetAttributeParam(EAttributeType.CounterRes)//抗反击
+                };
+            }
+
+            if (_specialAttributeList == null)
+            {
+                _specialAttributeList = new List<AttributeParam>()
+                {
+                    GetAttributeParam(EAttributeType.CritDmgRes),//暴击减伤
+                    GetAttributeParam(EAttributeType.DoubleHitDmgRes),//连击减伤
+                    GetAttributeParam(EAttributeType.CounterDmgRes),//反击减伤
+                    GetAttributeParam(EAttributeType.DmgRes),//伤害减免
+                    GetAttributeParam(EAttributeType.BossDmgRes),  //BOSS减伤
+                    GetAttributeParam(EAttributeType.IceFac),//冰系增伤
+                    GetAttributeParam(EAttributeType.FireFac),//火系增伤
+                    GetAttributeParam(EAttributeType.PoisonFac),//毒系增伤
+                    GetAttributeParam(EAttributeType.WindFac),//风系增伤
+                    GetAttributeParam(EAttributeType.ThunderFac),//雷系增伤
+                    GetAttributeParam(EAttributeType.IceDmgRes),//冰系减伤
+                    GetAttributeParam(EAttributeType.FireDmgRes),//火系减伤
+                    GetAttributeParam(EAttributeType.PoisonDmgRes),//毒系减伤
+                    GetAttributeParam(EAttributeType.WindDmgRes),//风系减伤
+                    GetAttributeParam(EAttributeType.ThunderDmgRes),//雷系减伤
+                };
+            }
+        }
+        private AttributeParam GetAttributeParam(EAttributeType attributeType)
+        {
+            var attrParam = new AttributeParam()
+            {
+                attributeType = attributeType,
+                attributeValue = PlayerData.Instance.Attr.GetValue(attributeType)
+            };
+            return attrParam;
+        }
+
+        private void ShowAttributeUI()
+        {
+            VM.BaseAttributeList.Ctrl.ShowUI(_baseAttributeList);
+            VM.BattleAttributeList.Ctrl.ShowUI(_battleAttributeList);
+            VM.BattleResistanceAttrList.Ctrl.ShowUI(_battleResistanceAttrList);
+            VM.SpecialAttributeList.Ctrl.ShowUI(_specialAttributeList);
+        }
+
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeCtrl.cs.meta

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

+ 37 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeVM.Gen.cs

@@ -0,0 +1,37 @@
+/// #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 PlayerDetailsAttributeVM : FguiViewModel
+    {
+        public CommonBackGroundNestedView Background { get; private set; }
+        public PlayerAttributeListView BaseAttributeList { get; private set; }
+        public PlayerAttributeListView BattleAttributeList { get; private set; }
+        public PlayerAttributeListView BattleResistanceAttrList { get; private set; }
+        public PlayerSpecialAttributeListView SpecialAttributeList { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            Background = adapter.CreateNested<CommonBackGroundNestedView>(new FguiNested(panel.GetChild("Background").asCom), true);
+            BaseAttributeList = adapter.CreateNested<PlayerAttributeListView>(new FguiNested(panel.GetChild("BaseAttributeList").asCom), true);
+            BattleAttributeList = adapter.CreateNested<PlayerAttributeListView>(new FguiNested(panel.GetChild("BattleAttributeList").asCom), true);
+            BattleResistanceAttrList = adapter.CreateNested<PlayerAttributeListView>(new FguiNested(panel.GetChild("BattleResistanceAttrList").asCom), true);
+            SpecialAttributeList = adapter.CreateNested<PlayerSpecialAttributeListView>(new FguiNested(panel.GetChild("SpecialAttributeList").asCom), true);
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeVM.Gen.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: XS5OvH/5Bn6PaS6v1Joh1y4Cs5q/12xrf8V0iLZszj4YwVQJAzsO9ZQ=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 34 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeView.cs

@@ -0,0 +1,34 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public static partial class UIKeys
+    {
+        private static UIKey _PlayerDetailsAttribute;
+        public static UIKey PlayerDetailsAttribute => _PlayerDetailsAttribute ?? (_PlayerDetailsAttribute = new UIKey("Player", "DetailsAttribute", typeof(PlayerDetailsAttributeView)));
+    }
+    public partial class PlayerDetailsAttributeView : UIView
+    {
+        public static UILayer Layer => UILayer.Popup;
+        protected override void AddController(IUIControllerGroup group)
+        {
+            group.Add(new PlayerDetailsAttributeCtrl());
+        }
+
+        protected override IUIViewModel CreateViewModel()
+        {
+            return new PlayerDetailsAttributeVM();
+        }
+
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/DetailsAttribute/PlayerDetailsAttributeView.cs.meta

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

+ 1 - 1
Assets/Scripts/Business/Runtime/FGUI/Player/MainPanel/PlayerMainPanelCtrl.cs

@@ -80,7 +80,7 @@ namespace FL.FGUI
 
         private void OnClickAttrInfoBtn(EventContext context)
         {
-            EventSingle.Instance.Notify(EventDefine.ShowTips, "显示角色属性详情界面");
+            Context.UI.OpenAsync(UIKeys.PlayerDetailsAttribute);
         }
         private void OnClickSkillBtn(EventContext context)
         {

+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList.meta

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

+ 44 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListCtrl.cs

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

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListCtrl.cs.meta

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

+ 32 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListVM.Gen.cs

@@ -0,0 +1,32 @@
+/// #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 PlayerSpecialAttributeListVM : FguiViewModel
+    {
+        public GTextField Title { get; private set; }
+        public GList AttrsList { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            Title = panel.GetChild("title") as GTextField;
+            AttrsList = panel.GetChild("AttrsList") as GList;
+            AttrsList.Init(typeof(PlayerAttributeItemView), adapter.CreateListItem);
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListVM.Gen.cs.meta

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

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListView.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 _PlayerSpecialAttributeList;
+        public static UIKey PlayerSpecialAttributeList => _PlayerSpecialAttributeList ?? (_PlayerSpecialAttributeList = new UIKey("Player", "SpecialAttributeList", typeof(PlayerSpecialAttributeListView)));
+    }
+    public partial class PlayerSpecialAttributeListView : NestedView<PlayerSpecialAttributeListCtrl, PlayerSpecialAttributeListVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SpecialAttributeList/PlayerSpecialAttributeListView.cs.meta

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

+ 1 - 0
fl-fgui-project/assets/DragonEgg/Box.xml

@@ -6,6 +6,7 @@
     <image id="n0_sbyi" name="n0" src="sbyi2x" fileName="images/imgTop.png" xy="0,0" size="756,1176">
       <relation target="" sidePair="width-width,height-height"/>
     </image>
+    <image id="n51_lcje" name="n51" src="x6wo14" fileName="images/imgContentBg2.png" xy="0,41" size="756,365" group="n50_l2th"/>
     <image id="n13_ely2" name="n13" src="qwg436" fileName="images/imgEgg.png" xy="2,101" size="140,130" group="n50_l2th"/>
     <component id="n7_k0hr" name="EquipUI" src="k0hr2z" fileName="EquipmentUI.xml" xy="0,254" size="756,136" group="n50_l2th"/>
     <component id="n14_ely2" name="EggPointBar" src="717y1w" fileName="Components/EggBar.xml" xy="143,136" size="456,60" group="n50_l2th">

+ 7 - 0
fl-fgui-project/assets/Player/AttributeItem.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="200,34">
+  <displayList>
+    <text id="n0_ph37" name="AttributeLabel" xy="20,0" pivot="0,0.5" size="94,34" fontSize="24" vAlign="middle" leading="0" ubb="true" text="攻击123"/>
+  </displayList>
+  <scriptData genuitypeph37q="2" gencodeph37q="1"/>
+</component>

+ 21 - 0
fl-fgui-project/assets/Player/AttributeList.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="666,120">
+  <displayList>
+    <image id="n0_ph37" name="n0" src="ph37l" fileName="Images/imgContent.png" xy="0,0" pivot="0.5,0.5" size="666,120"/>
+    <image id="n2_ph37" name="n2" src="ph37o" fileName="Images/imgFlower.png" xy="138,15">
+      <relation target="n1_ph37" sidePair="right-left"/>
+    </image>
+    <image id="n3_ph37" name="n3" src="ph37o" fileName="Images/imgFlower.png" xy="530,15" scale="-1,1">
+      <relation target="n1_ph37" sidePair="left-right"/>
+    </image>
+    <text id="n1_ph37" name="title" xy="271,0" pivot="0.5,0.5" size="124,42" fontSize="30" color="#6699cc" align="center" vAlign="middle" leading="0" text="基础属性"/>
+    <list id="n4_ph37" name="AttrsList" xy="27,44" size="612,64" layout="flow_hz" overflow="hidden" margin="0,0,20,0" lineItemCount="3" defaultItem="ui://7pswoevwph37q" autoClearItems="true">
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+  </displayList>
+  <customProperty target="title" propertyId="0"/>
+  <scriptData genuitypeph37p="1" gencodeph37p="1"/>
+</component>

+ 25 - 0
fl-fgui-project/assets/Player/DetailsAttribute.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="756,1344">
+  <displayList>
+    <component id="n0_ph37" name="Background" src="c95i2g" fileName="BackGroundNested.xml" pkg="gt6q23qw" xy="0,0">
+      <relation target="" sidePair="width-width,height-height"/>
+    </component>
+    <image id="n1_ph37" name="n1" src="ph37n" fileName="Images/imgContentBlue.png" xy="0,156" size="756,858" group="n10_ph37"/>
+    <image id="n2_ph37" name="n2" src="ph37m" fileName="Images/imgContentWhite.png" xy="28,243" size="700,722" group="n10_ph37"/>
+    <text id="n3_ph37" name="n3" xy="304,176" pivot="0.5,0.5" size="148,49" group="n10_ph37" fontSize="36" color="#ffffff" align="center" vAlign="middle" leading="0" singleLine="true" text="详细属性"/>
+    <component id="n6_ph37" name="BaseAttributeList" src="ph37p" fileName="AttributeList.xml" xy="45,284" group="n10_ph37">
+      <property target="title" propertyId="0" value="基础属性"/>
+    </component>
+    <component id="n7_ph37" name="BattleAttributeList" src="ph37p" fileName="AttributeList.xml" xy="45,424" group="n10_ph37">
+      <property target="title" propertyId="0" value="战斗属性"/>
+    </component>
+    <component id="n8_ph37" name="BattleResistanceAttrList" src="ph37p" fileName="AttributeList.xml" xy="45,564" group="n10_ph37">
+      <property target="title" propertyId="0" value="战斗抗性"/>
+    </component>
+    <component id="n9_ph37" name="SpecialAttributeList" src="ph37r" fileName="SpecialAttributeList.xml" xy="45,704" group="n10_ph37"/>
+    <group id="n10_ph37" name="n10" xy="0,156" size="756,858" advanced="true">
+      <relation target="" sidePair="center-center,middle-middle"/>
+    </group>
+  </displayList>
+  <scriptData genuilayerph37k="4" gencodeph37k="1"/>
+</component>

BIN
fl-fgui-project/assets/Player/Images/imgContent.png


BIN
fl-fgui-project/assets/Player/Images/imgContentBlue.png


BIN
fl-fgui-project/assets/Player/Images/imgContentWhite.png


BIN
fl-fgui-project/assets/Player/Images/imgFlower.png


+ 31 - 0
fl-fgui-project/assets/Player/SpecialAttributeList.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="666,222">
+  <displayList>
+    <image id="n0_ph37" name="n0" src="ph37l" fileName="Images/imgContent.png" xy="0,0" pivot="0.5,0.5" size="666,222"/>
+    <image id="n2_ph37" name="n2" src="ph37o" fileName="Images/imgFlower.png" xy="138,15">
+      <relation target="n1_ph37" sidePair="right-left"/>
+    </image>
+    <image id="n3_ph37" name="n3" src="ph37o" fileName="Images/imgFlower.png" xy="531,15" scale="-1,1">
+      <relation target="n1_ph37" sidePair="left-right"/>
+    </image>
+    <text id="n1_ph37" name="title" xy="271,0" pivot="0.5,0.5" size="124,42" fontSize="30" color="#6699cc" align="center" vAlign="middle" leading="0" text="特殊属性"/>
+    <list id="n4_ph37" name="AttrsList" xy="27,44" size="612,172" layout="flow_hz" overflow="hidden" margin="0,0,20,0" lineItemCount="3" defaultItem="ui://7pswoevwph37q" autoClearItems="true">
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+  </displayList>
+  <customProperty target="title" propertyId="0"/>
+  <scriptData genuitypeph37p="1" gencodeph37p="1" genuitypeph37r="1" gencodeph37r="1"/>
+</component>

+ 9 - 1
fl-fgui-project/assets/Player/package.xml

@@ -15,9 +15,17 @@
     <image id="j5xqc" name="imgMount.png" path="/Images/"/>
     <image id="j5xqd" name="imgArtifact.png" path="/Images/"/>
     <image id="j5xqe" name="imgContract.png" path="/Images/"/>
-    <image id="j5xqh" name="imgBlue.png" path="/Images/"/>
+    <image id="j5xqh" name="imgBlue.png" path="/Images/" scale="9grid" scale9grid="32,32,64,64"/>
     <image id="j5xqi" name="imgPurple.png" path="/Images/"/>
     <component id="d813j" name="NotOpenBtn.xml" path="/Components/"/>
+    <component id="ph37k" name="DetailsAttribute.xml" path="/" exported="true"/>
+    <image id="ph37l" name="imgContent.png" path="/Images/" scale="9grid" scale9grid="7,7,14,14"/>
+    <image id="ph37m" name="imgContentWhite.png" path="/Images/" scale="9grid" scale9grid="14,18,28,20"/>
+    <image id="ph37n" name="imgContentBlue.png" path="/Images/" scale="9grid" scale9grid="245,144,21,63"/>
+    <image id="ph37o" name="imgFlower.png" path="/Images/"/>
+    <component id="ph37p" name="AttributeList.xml" path="/" exported="true"/>
+    <component id="ph37q" name="AttributeItem.xml" path="/" exported="true"/>
+    <component id="ph37r" name="SpecialAttributeList.xml" path="/" exported="true"/>
   </resources>
   <publish name="" genCode="true"/>
 </packageDescription>