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; 
 | 
    } 
 | 
} 
 |