/// #pkgName FGUI包名 /// #panelName UIPanel名字 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字 /// 该脚本由模板创建 /// created by cb 2024 using FairyGUI; using FL.Battle.Buffs; using XGame.Database; using XGame.Framework.UI; namespace FL.FGUI { /// /// UI逻辑处理类 /// /// public partial class MainHomeBuffInfoNestedCtrl : UIController { protected override void OnEnable(object intent) { AddUIListenres(); EventSingle.Instance.AddListener(EventDefine.GameMainMapPreviewBuff, OnSinglePreviewBuff); EventSingle.Instance.AddListener(EventDefine.GameMainMapPushPreviewBuffs, OnPreviewBuffs); } protected override void OnDisable() { RemoveUIListenres(); EventSingle.Instance.RemoveListener(EventDefine.GameMainMapPreviewBuff, OnSinglePreviewBuff); EventSingle.Instance.RemoveListener(EventDefine.GameMainMapPushPreviewBuffs, OnPreviewBuffs); } #region UI事件 private void AddUIListenres() { VM.BuffShowBtn.onClick.Add(OnClickBuffShowBtn); } private void RemoveUIListenres() { VM.BuffShowBtn.onClick.Remove(OnClickBuffShowBtn); } private void OnClickBuffShowBtn(EventContext context) { EventSingle.Instance.Notify(EventDefine.GameMainMapReqPreviewBuffs); } #endregion private void OnSinglePreviewBuff(int eventId, object args) { var dto = (BuffPreviewDto)args; var isShow = dto.buffTableId > 0; VM.ShowInfoCtrl.selectedIndex = isShow ? 1 : 0; if (isShow) { var buffTable = BuffTableRepo.Get(dto.buffTableId); VM.BuffIcon.url = buffTable.Icon; VM.BuffLayerPar.max = dto.layerLimit; VM.BuffLayerPar.value = dto.layer; string triggerName; EQualityLevel quality; if (dto.isSkill) { var skill = SkillTableRepo.Get(dto.skillId); if (skill.BuffTie.Length == 2) { var triBuff = BuffTableRepo.Get(skill.BuffTie[1]); triggerName = triBuff.Name; } else { triggerName = skill.Name; } quality = (EQualityLevel)skill.Quality; } else { var epigraph = EpigraphTableRepo.Get(dto.skillId); triggerName = epigraph.Name; quality = epigraph.Quality; } VM.TriggerNameLabel.text = string.Format(StringDefine.common_bracket, triggerName); VM.TriggerNameLabel.color = quality.ToEquipNameColor(); VM.TipsLabel.text = dto.layer == dto.layerLimit ? StringDefine.buff_preview_tips_attack : StringDefine.buff_preview_tips_coming; } } private void OnPreviewBuffs(int eventId, object args) { Context.UI.OpenAsync(UIKeys.MainBuffPreviewPanel, args); } } }