| using System.Linq; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
| //阵型 | 
| public class HeroFormationCell : CellView | 
| { | 
|     [SerializeField] Image activeImg; | 
|     [SerializeField] Image countryOnImg;    //上阵阵型激活国家 | 
|     [SerializeField] Image[] OnCountImgs;    //上阵数量激活 | 
|     [SerializeField] RichText attrText; | 
|   | 
|     public void Display(int index) | 
|     { | 
|         Int2 result; | 
|         if (HeroUIManager.Instance.isCustonHeroFormation) | 
|         { | 
|             result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.custonTeamHeroes);; | 
|         } | 
|         else | 
|         { | 
|             result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType, true); | 
|         } | 
|   | 
|         var config = HeroLineupHaloConfig.GetConfig(result.x, result.y); | 
|         bool sameCountry = result.x == (index + 1); | 
|   | 
|         activeImg.SetActive(config != null && sameCountry); | 
|   | 
|   | 
|         countryOnImg.SetSprite("heroTeamCountry" + (index + 1)); | 
|         if (config == null || !sameCountry) | 
|         { | 
|             for (int i = 0; i < OnCountImgs.Length; i++) | 
|             { | 
|                 OnCountImgs[i].SetActive(false); | 
|             } | 
|         } | 
|         else | 
|         { | 
|             for (int i = 0; i < OnCountImgs.Length; i++) | 
|             { | 
|                 if (i < result.y) | 
|                 { | 
|                     OnCountImgs[i].SetActive(true); | 
|                     OnCountImgs[i].SetSprite("heroTeamCountryPoint" + result.x); | 
|                 } | 
|                 else | 
|                 { | 
|                     OnCountImgs[i].SetActive(false); | 
|                 } | 
|             } | 
|         } | 
|   | 
|   | 
|         var attrDict = HeroLineupHaloConfig.GetAttrsByCountry(index + 1); | 
|         var countList = attrDict.Keys.ToList(); | 
|         countList.Sort(); | 
|         string text = string.Empty; | 
|         for (int k = 0; k < countList.Count; k++) | 
|         { | 
|             int count = countList[k]; | 
|             string lineText = string.Empty; | 
|             bool isActive = sameCountry && count <= result.y; | 
|             string countStr = isActive ? UIHelper.AppendColor(TextColType.Green, count.ToString()) : count.ToString(); | 
|             lineText = (k == 0 ? "" : "</r>") + Language.Get("herocard37", countStr, HeroUIManager.Instance.GetJobName(index + 1)); | 
|             var attrConfig = attrDict[count]; | 
|             for (int i = 0; i < attrConfig.AttrIDList.Length; i++) | 
|             { | 
|                 string format = !isActive ? "{0}+{1}" : "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}"); | 
|                 lineText += " " + PlayerPropertyConfig.GetFullDescription(attrConfig.AttrIDList[i], attrConfig.AttrValueList[i], format); | 
|             } | 
|   | 
|             text += UIHelper.AppendColor(isActive ? TextColType.NavyBrown : TextColType.Gray, lineText); | 
|         } | 
|         attrText.text = text; | 
|     } | 
| } |