/// #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 { /// /// UI逻辑处理类 /// /// public partial class PlayerDetailsAttributeCtrl : UIController { private List _baseAttributeList; // 基础属性 private List _battleAttributeList; // 战斗属性 private List _battleResistanceAttrList; // 战斗抗性 private List _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() { GetAttributeParam(EAttributeType.Atk), GetAttributeParam(EAttributeType.Hp), GetAttributeParam(EAttributeType.Def), GetAttributeParam(EAttributeType.AtkSpeed) }; } if (_battleAttributeList == null) { _battleAttributeList = new List() { GetAttributeParam(EAttributeType.Verti),//击晕 GetAttributeParam(EAttributeType.Crit),// 暴击 GetAttributeParam(EAttributeType.DoubleHit),//连击 GetAttributeParam(EAttributeType.Eva), // 闪避 GetAttributeParam(EAttributeType.Counter)// 反击 }; } if (_battleResistanceAttrList == null) { _battleResistanceAttrList = new List() { GetAttributeParam(EAttributeType.VertigoRes),//抗击晕 GetAttributeParam(EAttributeType.CritDmgFac),//抗暴击 GetAttributeParam(EAttributeType.DoubleHitRes),//抗连击 GetAttributeParam(EAttributeType.EvaRes), //抗闪避 GetAttributeParam(EAttributeType.CounterRes)//抗反击 }; } if (_specialAttributeList == null) { _specialAttributeList = new List() { 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); } } }