Main/System/Arena/HeroCountryComponent.cs
@@ -4,100 +4,26 @@
public class HeroCountryComponent : MonoBehaviour
{
    [SerializeField] Button countryOnBtn;
    [SerializeField] Image countryOnImg;    //上阵阵型激活国家
    [SerializeField] UIEffectPlayer countryEffect;
    [SerializeField] List<Image> OnCountImgs;    //上阵数量激活
    /// <summary>
    /// 上阵队伍中各个国家的武将数量
    /// </summary>
    public Dictionary<HeroCountry, int> GetCountryHeroCountByTeamType(List<TeamHero> teamHeroes)
    List<TeamHero> teamHeroes;
    void Awake()
    {
        Dictionary<HeroCountry, int> heroCountryCount = new Dictionary<HeroCountry, int>();
        if (teamHeroes == null)
        countryOnBtn.AddListener(() =>
        {
            return heroCountryCount;
        }
        for (int i = 0; i < teamHeroes.Count; i++)
        {
            if (teamHeroes[i] == null)
                continue;
            var country = teamHeroes[i].Country;
            if (!heroCountryCount.ContainsKey(country))
            {
                heroCountryCount.Add(country, 1);
            }
            else
            {
                heroCountryCount[country] += 1;
            }
        }
        return heroCountryCount;
    }
    /// <summary>
    /// 获得上阵中武将数量最大的国家和数量
    /// </summary>
    public Int2 GetMaxCountHeroCountry(List<TeamHero> teamType)
    {
        var countryCountDict = GetCountryHeroCountByTeamType(teamType);
        //找到最大的国家和数量
        HeroCountry country = HeroCountry.None;
        int maxValue = 0;
        foreach (var data in countryCountDict)
        {
            if (data.Value > maxValue)
            {
                country = data.Key;
                maxValue = data.Value;
            }
        }
        return new Int2((int)country, maxValue);
            HeroUIManager.Instance.isCustonHeroFormation = true;
            HeroUIManager.Instance.custonTeamHeroes = teamHeroes;
            UIManager.Instance.OpenWindow<HeroFormationWin>();
        });
    }
    //上阵武将国家光环激活
    public void RefreshOnTeamCountry(List<TeamHero> teamType, bool playEffect = false)
    public void RefreshOnTeamCountry(List<TeamHero> teamHeroes, bool playEffect = false)
    {
        Int2 result = GetMaxCountHeroCountry(teamType);
        var config = HeroLineupHaloConfig.GetConfig(result.x, result.y);
        if (config == null)
        {
            countryOnImg.SetSprite("heroTeamCountry0");
            for (int i = 0; i < OnCountImgs.Count; i++)
            {
                OnCountImgs[i].SetActive(false);
            }
        }
        else
        {
            countryOnImg.SetSprite("heroTeamCountry" + result.x);
            for (int i = 0; i < OnCountImgs.Count; i++)
            {
                if (i < result.y)
                {
                    OnCountImgs[i].SetActive(true);
                    OnCountImgs[i].SetSprite("heroTeamCountryPoint" + result.x);
                }
                else
                {
                    OnCountImgs[i].SetActive(false);
                }
            }
            if (playEffect)
                countryEffect.Play();
        }
    }
    //上阵武将国家光环激活
    public void RefreshOnTeamCountry(TeamType selectTeamType, bool playEffect = false)
    {
        Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(selectTeamType, true);
        this.teamHeroes = teamHeroes;
        Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(teamHeroes);
        var config = HeroLineupHaloConfig.GetConfig(result.x, result.y);
        if (config == null)