/// #pkgName FGUI包名 /// #panelName UIPanel名字 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字 /// 该脚本由模板创建 /// created by cb 2024 using FairyGUI; using FL.Data; using System.Collections.Generic; using UnityEngine; using XGame; using XGame.Database; using XGame.Framework; using XGame.Framework.UI; namespace FL.FGUI { /// /// UI逻辑处理类 /// /// public partial class PartnerEpiDetailInfoCtrl : UIController { protected override void OnEnable(object intent) { id = (int)intent; AddUIListenres(); UpView(); } protected override void OnDisable() { RemoveUIListenres(); } #region UI事件 private void AddUIListenres() { VM.ShangZhenBtn.onClick.Add(OnClickShangZhenBtn); VM.GotoBtn.onClick.Add(OnClickGotoBtn); VM.RankUpBtn.onClick.Add(OnClickRankUpBtn); } private void RemoveUIListenres() { VM.ShangZhenBtn.onClick.Remove(OnClickShangZhenBtn); VM.GotoBtn.onClick.Remove(OnClickGotoBtn); VM.RankUpBtn.onClick.Remove(OnClickRankUpBtn); } private void OnClickShangZhenBtn(EventContext context) { } private void OnClickGotoBtn(EventContext context) { } private void OnClickRankUpBtn(EventContext context) { var info = EpigraphData.Instance.GetEpigraphInfo(id); if (info == null) return; var table = epigraphUpTableRepo.GetEpiragphUp(id, info.starLv); if (table == null) return; if (table.LevelUpCost > ItemData.Instance.GetItemNum(id)) { EventSingle.Instance.Notify(EventDefine.ShowTips, StringDefine.epigraphUpUnenough); return; } EpigraphService.Instance.RequestEpiStarUp(id); } #endregion #region 属性 private int id; #endregion #region 页面 private void UpView() { UpDescInfo(); UpProgressInfo(); UpSkillList(); } private void UpDescInfo() { var table = EpigraphTableRepo.Get(id); if (table == null) return; VM.EpiLabel.Ctrl.SetEpiIcon(id, true); var initSkillId = table.Skill[0]; var skillTable = SkillTableRepo.Get(initSkillId); if (skillTable == null) return; VM.DescLabel.text = skillTable.Desc; VM.NameLabel.text = table.Name; var info = EpigraphData.Instance.GetEpigraphInfo(id); if (info != null) { VM.Up.selectedIndex = info.partnerId > 0 ? 1 : 0; int nextLv = info.starLv + 1; var nextUpTable = epigraphUpTableRepo.GetEpiragphUp(id, nextLv); VM.HaveState.selectedIndex = nextUpTable != null ? 1 : 2; } else { VM.HaveState.selectedIndex = 0; } if (table.Element > 0) { VM.AttrIcon.visible = true; VM.AttrIcon.url = AddressableDefine.PartnerElementType(((int)table.Element)); } else { VM.AttrIcon.visible = false; } string str = ""; for (int i = 0; i < table.Own_attr.Length; i += 2) { var attrTable = AttrDescTableRepo.Get(table.Own_attr[i]); if (attrTable == null) continue; var attrValue = table.Own_attr[i + 1]; var val = attrValue > 0 ? TableUtils.ToRealDouble(attrValue).ToString("F2") : "0"; if (i > 0) str += ","; str += $"{attrTable.ShowName}{val}%"; } VM.AttrLabel.text = str; } private void UpProgressInfo() { var info = EpigraphData.Instance.GetEpigraphInfo(id); var curlv = info != null ? info.starLv : 0; var table = epigraphUpTableRepo.GetEpiragphUp(id, curlv); if (table != null) { VM.ChipPbar.max = table.LevelUpCost; VM.ChipPbar.value = 0; } } private void UpSkillList() { var list = new List(); var epiTable = EpigraphTableRepo.Get(id); if (epiTable == null) return; for (var i = 2; i < epiTable.Skill.Length; i = i + 2) { var skill = epiTable.Skill[i]; var limit = epiTable.Skill[i + 1]; var skillLimit = new EpigraphSkillLimit() { epiId = id, limitLv = limit, skillId = skill, }; list.Add(skillLimit); } VM.EffectList.BindDatas(list); } #endregion } }