/// #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);
}
}
}