using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 武将阵型激活界面 /// public class HeroFormationWin : UIBase { [SerializeField] Button closeBtn; [SerializeField] ScrollerController scroller; [SerializeField] Text totalAttrText; protected override void InitComponent() { closeBtn.AddListener(CloseWindow); } protected override void OnPreOpen() { scroller.OnRefreshCell += OnRefreshCell; CreateScroller(); // 优先检查混搭阵型 HeroLineupHaloConfig activeConfig = null; if (HeroUIManager.Instance.isCustonHeroFormation) { activeConfig = HeroUIManager.Instance.GetMixedFormationConfig(HeroUIManager.Instance.custonTeamHeroes); if (activeConfig == null) { var result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.custonTeamHeroes); activeConfig = HeroLineupHaloConfig.GetConfig(result.x, result.y); } } else { activeConfig = HeroUIManager.Instance.GetMixedFormationConfig(HeroUIManager.Instance.selectTeamType, true); if (activeConfig == null) { var result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType, true); activeConfig = HeroLineupHaloConfig.GetConfig(result.x, result.y); } } if (activeConfig == null) { totalAttrText.text = ""; } else { string lineText = string.Empty; for (int i = 0; i < activeConfig.AttrIDList.Length; i++) { string format = "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}"); lineText += " " + PlayerPropertyConfig.GetFullDescription(activeConfig.AttrIDList[i], activeConfig.AttrValueList[i], format); } totalAttrText.text = Language.Get("herocard36") + lineText.Trim(); } } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as HeroFormationCell; _cell.Display(cell.index); } void CreateScroller() { scroller.Refresh(); for (int i = 0; i < 4; i++) { scroller.AddCell(ScrollerDataType.Header, i); } // 第5个为混搭阵型格子(显示在最后) scroller.AddCell(ScrollerDataType.Header, 4); scroller.Restart(); } }