hch
82 分钟以前 75c4861be8567f6705af1c71e11ba8555d9ed6a2
Main/System/HeroUI/HeroTrainWin.cs
@@ -7,8 +7,9 @@
/// <summary>
/// 武将培养界面
/// </summary>
public partial class HeroTrainWin : UIBase
public class HeroTrainWin : UIBase
{
    [SerializeField] RawImage bgTexture;
    [SerializeField] Button showFuncBtn;    //只显示立绘时点击,显示功能
    [SerializeField] Transform funcForm;
    [SerializeField] UIHeroController roleLhModel;    //展示英雄立绘
@@ -32,13 +33,15 @@
    [SerializeField] Button awakeBtn;
    [SerializeField] Button closeBtn;   //关闭按钮
    [SerializeField] Button starBtn;   //显示星级文字
    [SerializeField] List<Image> starImgList;
    [SerializeField] Text nameText;
    [SerializeField] UIEffectPlayer nameEffect;
    [SerializeField] Image countryImg;
    [SerializeField] Text awakeLVText;
    //属性区
    [SerializeField] ScrollRect allAttrScroll;
    [SerializeField] Button attrBtn;
    [SerializeField] Image unfoldImg; //展开时按钮的图标
    [SerializeField] Image foldImg; //收起时按钮的图标
@@ -51,14 +54,48 @@
    [SerializeField] Text[] inheritAttrText;    //武将会继承的属性
    [SerializeField] RichText heroAddPerText; //主公(上阵)加成描述
    [SerializeField] Text[] heroAddAttrPerText; //主公(上阵)加成
    [SerializeField] Text[] addPerText;    //增加百分比(飘动)
    [SerializeField] PositionTween addPerObject;
    [SerializeField] Transform addPerParent;
    [SerializeField] HeroTrainAddAttrCell addPerObject;
    [SerializeField] Image lvupMoneyIcon;
    [SerializeField] Text lvupMoneyText;
    [SerializeField] Text lvupBtnText;
    [SerializeField] LongPressButton lvupBtn;
    [SerializeField] LongPressButton lvupBtn;   //升级 突破
    [SerializeField] Button allAttrBtn;
    [SerializeField] Text allPotentialText; //潜能
    [SerializeField] GameObject potentialCell; //潜能和觉醒用于创建
    [SerializeField] Transform potentialCellParent; //潜能父节点
    List<GameObject> potentialCellList;   //潜能
    [SerializeField] Transform awakeCellParent; //潜能父节点
    [SerializeField] GameObject awakeGo;
    List<GameObject> awakeCellList;   //觉醒
    [SerializeField] GameObject fetterGo;
    [SerializeField] Text[] fetterText;   //羁绊
    [SerializeField] Text[] fetterNameText;   //羁绊
    //天赋
    [SerializeField] GiftBaseCell[] giftBaseCells;
    [SerializeField] Button totalGiftBtn;
    [SerializeField] Button starUPBtn;
    [SerializeField] Text starUPBtnText;
    [SerializeField] Button washBtn;
    //冻结处理
    [SerializeField] Button freezeTipBtn;
    [SerializeField] GameObject freezeTipGo;
    [SerializeField] Text freezeStarText;
    [SerializeField] Text freezeAawkeLVText;
    [SerializeField] List<Image> starImgFreezeList;
    //伪红点用图片代替
    [SerializeField] Image redpointAwake;
    [SerializeField] Image redpointGift;
    [SerializeField] Image redpointLVUP;
    Queue<HeroTrainAddAttrCell> lvupAttrQueue = new Queue<HeroTrainAddAttrCell>();
    string guid;
    HeroInfo hero;
@@ -84,12 +121,16 @@
            ChangeHero(-1);
        });
        lockBtn.AddListener(SetLockState);
        resetBtn.AddListener(ResetBtnClick);
        lockBtn.AddListener(() => { hero.ChangeLockState(); });
        resetBtn.AddListener(() =>
        {
            HeroUIManager.Instance.ResetBtnClick(hero);
        });
        deleteBtn.AddListener(DeleteHero);
        awakeBtn.AddListener(() =>
        {
            // UIManager.Instance.OpenWindow<HeroAwakeWin>(hero.heroId);
            HeroUIManager.Instance.selectAwakeHeroGuid = guid;
            UIManager.Instance.OpenWindow<HeroAwakeWin>();
        });
        inheritText.OnClick = () =>
        {
@@ -115,6 +156,29 @@
        });
        lvupBtn.AddListener(LVUp);
        lvupBtn.onPress.AddListener(LVUp);
        totalGiftBtn.AddListener(() =>
        {
            UIManager.Instance.OpenWindow<HeroGiftWin>();
        });
        starUPBtn.AddListener(StarUP);
        washBtn.AddListener(Wash);
        starBtn.AddListener(() =>
        {
            SmallTipWin.showText = Language.Get("HeroGift14", hero.heroStar);
            SmallTipWin.worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
            UIManager.Instance.OpenWindow<SmallTipWin>();
        });
        potentialCellList = new List<GameObject>();
        awakeCellList = new List<GameObject>();
        freezeTipBtn.AddListener(() =>
        {
            freezeTipGo.SetActive(!freezeTipGo.activeSelf);
        });
    }
@@ -122,24 +186,42 @@
    {
        PackManager.Instance.RefreshItemLockEvent += RefreshItemLockEvent;
        HeroManager.Instance.onHeroChangeEvent += RefreshHeroEvent;
        UIManager.Instance.OnCloseWindow += OnCloseWindow;
        TeamManager.Instance.OnTeamChange += TeamPosChangeEvent;
        guid = HeroUIManager.Instance.selectHeroGuid;
        hero = HeroManager.Instance.GetHero(guid);
        unfoldState = false;
        addPerObject.SetActive(false);
        Refresh();
        allAttrScroll.verticalNormalizedPosition = 1;
        Display();
    }
    protected override void OnPreClose()
    {
        PackManager.Instance.RefreshItemLockEvent -= RefreshItemLockEvent;
        HeroManager.Instance.onHeroChangeEvent -= RefreshHeroEvent;
        UIManager.Instance.OnCloseWindow -= OnCloseWindow;
        TeamManager.Instance.OnTeamChange -= TeamPosChangeEvent;
    }
    public override void Refresh()
    private void OnCloseWindow(UIBase closeUI)
    {
        roleLhModel.Create(hero.SkinID, HeroUIManager.lihuiScale, motionName: "", isLh: true);
        roleXsModel.Create(hero.SkinID);
        //其他界面删除武将会影响逻辑
        if (closeUI is HeroDeleteWin)
        {
            HeroUIManager.Instance.SortHeroList();
            if (HeroManager.Instance.GetHero(guid) == null)
            {
                CloseWindow();
            }
        }
    }
    public void Display()
    {
        bgTexture.SetTexture2D("countryBG" + hero.heroConfig.Country);
        roleLhModel.Create(hero.SkinID, 1, motionName: "", isLh: true);
        roleXsModel.Create(hero.SkinID, 1);
        jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(hero.heroConfig.Class));
        jobPosNameText.text = HeroUIManager.Instance.GetJobName(hero.heroConfig.Class);
        descText.text = hero.heroConfig.Desc;
@@ -147,7 +229,6 @@
        PlayerMainDate.Instance.AddPowerNotOnTeam(hero);
        lockImg.SetActive(hero.isLock);
        unLockImg.SetActive(!hero.isLock);
        nameText.text = hero.breakLevel == 0 ? hero.heroConfig.Name : Language.Get("herocardbreaklv", hero.heroConfig.Name, hero.breakLevel);
        RefreshConn();
        normalSkillCell.Init(hero.heroConfig.AtkSkillID, () =>
@@ -165,6 +246,13 @@
        RefreshFoldState();
        RefreshAttr();
        RefreshAllPotential();
        RefreshFetter();
        RefreshGift();
        RefreshAwake();
        RefreshFreeze();
        RefreshRedImg();
        HeroUIManager.Instance.RemoveNewHero(hero.heroId);
    }
    void RefreshItemLockEvent(PackType type, string guid, bool lockState)
@@ -177,7 +265,7 @@
    void RefreshHeroEvent(HeroInfo hero)
    {
        Refresh();
        Display();
    }
    void RefreshConn()
@@ -185,7 +273,7 @@
        if (hero.heroConfig.FetterIDList.Length > 0)
        {
            connetionForm.SetActive(true);
            connetionForm.Display(hero.heroConfig.FetterIDList[0], Language.Get("herocard40"), true, guid);
            connetionForm.Display(hero.heroConfig.FetterIDList[0], Language.Get("herocard38") + "\n", true, guid);
        }
        else
        {
@@ -199,6 +287,7 @@
        var index = HeroUIManager.Instance.heroSortList.IndexOf(guid);
        if (index == -1)
            return;
        allAttrScroll.verticalNormalizedPosition = 1;
        int resultIndex = index + changeValue;
        //循环处理
        if (resultIndex < 0)
@@ -211,77 +300,22 @@
        }
        guid = HeroUIManager.Instance.heroSortList[resultIndex];
        hero = HeroManager.Instance.GetHero(guid);
        Refresh();
        Display();
    }
    void SetLockState()
    {
        var pack = new CB238_tagCSHeroLock();
        pack.ItemIndex = (ushort)hero.itemHero.gridIndex;
        pack.IsLock = hero.isLock ? (byte)0 : (byte)1;
        GameNetSystem.Instance.SendInfo(pack);
    }
    void ResetBtnClick()
    {
        //升级、突破、觉醒
        if (hero.heroLevel == 1 && hero.breakLevel == 0 && hero.awakeLevel == 0)
        {
            SysNotifyMgr.Instance.ShowTip("HeroCanNotReset");
            return;
        }
        List<Item> items = new List<Item>();
        var payBack1 = CommonFunc.AddDict(HeroUIManager.Instance.GetHeroLVPayBack(hero.Quality, hero.heroLevel),
        HeroUIManager.Instance.GetHeroBreakPayBack(hero.heroId, hero.breakLevel));
        //已觉醒的需要消耗货币
        if (hero.awakeLevel == 0)
        {
            items = CommonFunc.ChangeToItemList(payBack1);
            ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard42"), Language.Get("herocard43"), (bool isOk) =>
            {
                if (isOk)
                {
                    //发包
                    SendReborn(hero.itemHero.gridIndex);
                }
            });
        }
        else
        {
            payBack1 = CommonFunc.AddDict(payBack1, HeroUIManager.Instance.GetHeroQualityAwakePayBack(hero.heroId, hero.awakeLevel));
            items = CommonFunc.ChangeToItemList(payBack1);
            var info2 = Language.Get("herocard44", HeroUIManager.Instance.awakeRebirthCnt);
            ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard42"), Language.Get("herocard43"), (bool isOk) =>
            {
                if (isOk)
                {
                    //发包
                    SendReborn(hero.itemHero.gridIndex);
                }
            }, info2, "", HeroUIManager.Instance.payBackMoney, HeroUIManager.Instance.payBackMoneyType);
        }
    }
    void SendReborn(int index)
    {
        var pack = new CB239_tagCSHeroRebirth();
        pack.ItemIndex = (ushort)index;
        GameNetSystem.Instance.SendInfo(pack);
    }
    void DeleteHero()
    {
        if (hero.isLock)
        {
            SysNotifyMgr.Instance.ShowTip("UnlockHero");
            return;
        }
        // if (hero.isLock)
        // {
        //     SysNotifyMgr.Instance.ShowTip("UnlockHero");
        //     return;
        // }
        UIManager.Instance.OpenWindow<HeroDeleteWin>();
    }
    void RefreshStars()
@@ -310,6 +344,7 @@
    {
        RefreshStars();
        nameText.text = hero.breakLevel == 0 ? hero.heroConfig.Name : Language.Get("herocardbreaklv", hero.heroConfig.Name, hero.breakLevel);
        nameText.color = UIHelper.GetUIColorByFunc(hero.Quality);
        if (hero.Quality >= 4)
@@ -371,8 +406,6 @@
        if (!HeroUIManager.Instance.IsLVMax(hero))
        {
            lvupBtnText.text = Language.Get("L1109");
            lvupBtn.interactable = true;
            lvupBtn.SetColorful(null, true);
            lvupMoneyIcon.SetActive(true);
            if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
@@ -380,22 +413,22 @@
                lvupBtnText.text = Language.Get("L1111");
                var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
                lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(breakConfig.UPCostItem[0]).IconKey);
                lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, breakConfig.UPCostItem[0], (ulong)breakConfig.UPCostItem[1]);
                lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, breakConfig.UPCostItem[0], breakConfig.UPCostItem[1]);
            }
            else
            {
                lvupBtnText.text = Language.Get("L1109");
                var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel);
                lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(lvupConfig.UPCostItem[0]).IconKey);
                lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, lvupConfig.UPCostItem[0], (ulong)lvupConfig.UPCostItem[1]);
                lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, lvupConfig.UPCostItem[0], lvupConfig.UPCostItem[1]);
            }
            lvupBtn.SetInteractable(true);
        }
        else
        {
            lvupBtnText.text = Language.Get("L1110");
            lvupBtn.interactable = false;
            lvupBtn.SetColorful(null, false);
            lvupBtn.SetInteractable(false);
            lvupMoneyIcon.SetActive(false);
        }
@@ -404,7 +437,7 @@
    void LVUp()
    {
        int itemID = 0;
        ulong needCount = 0;
        long needCount = 0;
        if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
        {
            //突破
@@ -419,7 +452,7 @@
            //升级
            var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel);
            itemID = lvupConfig.UPCostItem[0];
            needCount = (ulong)lvupConfig.UPCostItem[1];
            needCount = lvupConfig.UPCostItem[1];
            if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, needCount, 2))
            {
                var pack = new CB230_tagCSHeroLVUP();
@@ -427,21 +460,38 @@
                GameNetSystem.Instance.SendInfo(pack);
                //预显示
                lvupEffect.Play();
                addPerObject.SetActive(true);
                for (int i = 0; i < addPerText.Length; i++)
                {
                    addPerText[i].text = "+" + PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], hero.qualityConfig.BreakLVAddPer);
                }
                addPerObject.Play(() =>
                {
                    addPerObject.SetActive(false);
                var cell = RequestCell();
                cell.transform.localPosition = new Vector3(0, 0, 0);
                cell.Display(hero.qualityConfig.LVAddPer, ()=>
                {
                    cell.SetActive(false);
                    ReturnCell(cell);
                });
                HeroUIManager.Instance.lastFightPower = new KeyValuePair<int, long>(hero.heroId, hero.CalculatePower(false));
                HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false));
            }
        }
    }
    HeroTrainAddAttrCell RequestCell()
    {
        if (lvupAttrQueue.Count == 0)
        {
            return Instantiate(addPerObject, addPerParent);
        }
        return lvupAttrQueue.Dequeue();
    }
    void ReturnCell(HeroTrainAddAttrCell cell)
    {
        lvupAttrQueue.Enqueue(cell);
    }
    void RefreshAllPotential()
    {
@@ -452,7 +502,6 @@
        list.Sort();
        string allAttrStr = string.Empty;
        for (int i = 0; i < list.Count; i++)
        {
            var nextQualityBreakConfig = HeroBreakConfig.GetHeroBreakConfig(hero.heroId, i + 1);
@@ -461,27 +510,298 @@
            List<string> attrStrArr = new List<string>();
            for (int j = 0; j < nextQualityBreakConfig.AttrIDList.Length; j++)
            {
                if (nextQualityBreakConfig.AttrIDList[j] == 0)
                    continue;
                string format = i < hero.breakLevel ? "{0}" + UIHelper.AppendColor(TextColType.Green, "+{1}") : "{0}+{1}";
                attrStrArr.Add(PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[j], nextQualityBreakConfig.AttrValueList[j], format));
                attrStrArr.Add((string.IsNullOrEmpty(nextQualityBreakConfig.SkillIName) ? string.Empty : Language.Get("equipQualityFormat", nextQualityBreakConfig.SkillIName)) +
                PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[j], nextQualityBreakConfig.AttrValueList[j], format));
            }
            if (nextQualityBreakConfig.SkillID != 0)
            {
                attrStrArr.Add(SkillConfig.Get(nextQualityBreakConfig.SkillID)?.Description);
                var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID);
                if (skill != null)
                {
                    attrStrArr.Add(Language.Get("equipQualityFormat", skill.SkillName) + skill.Description);
                }
                else
                {
                    Debug.LogError("未配置技能" + nextQualityBreakConfig.SkillID);
                }
            }
            if (i >= potentialCellList.Count)
            {
                potentialCellList.Add(Instantiate(potentialCell, potentialCellParent));
            }
            var go = potentialCellList[i];
            var descText = go.GetComponent<Text>();
            var nameText = go.GetComponent<Text>("skillname");
            go.SetActive(true);
            if (i < hero.breakLevel)
            {
                allAttrStr += Language.Get("herocard63", i + 1, string.Join(Language.Get("L1112"), attrStrArr)) + "\n";
                nameText.text = Language.Get("herocard63", i + 1);
                descText.text = string.Join(Language.Get("L1112"), attrStrArr);
            }
            else
            {
                //置灰
                allAttrStr += UIHelper.AppendColor(TextColType.Gray, Language.Get("herocard63", i + 1, string.Join(Language.Get("L1112"), attrStrArr))) + "\n";
                nameText.text = UIHelper.AppendColor(TextColType.NavyGray, Language.Get("herocard63", i + 1));
                descText.text = UIHelper.AppendColor(TextColType.NavyGray, UIHelper.RemoveColor(string.Join(Language.Get("L1112"), attrStrArr)));
            }
        }
        allPotentialText.text = allAttrStr.Trim();
    }
    //羁绊
    void RefreshFetter()
    {
        if (hero.heroConfig.FetterIDList.Length == 0)
        {
            fetterGo.SetActive(false);
            return;
        }
        fetterGo.SetActive(true);
        for (int i = 0; i < fetterText.Length; i++)
        {
            if (i < hero.heroConfig.FetterIDList.Length)
            {
                fetterText[i].SetActive(true);
                var fetterID = hero.heroConfig.FetterIDList[i];
                HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID);
                List<string> heroNames = new List<string>();
                bool isAllCollect = true; //是否全收集
                foreach (var tmpHeroID in fetterConfig.HeroIDList)
                {
                    heroNames.Add(HeroConfig.Get(tmpHeroID).Name);
                    if (HeroManager.Instance.GetHeroCountByID(tmpHeroID) == 0)
                    {
                        isAllCollect = false;
                    }
                }
                var attrStr = string.Join(Language.Get("SplitString1"), heroNames) + Language.Get("herocard38");
                for (int j = 0; j < fetterConfig.AttrIDList.Length; j++)
                {
                    string format = !isAllCollect ? "{0}+{1}" : "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}");
                    attrStr += Language.Get("L1112") + PlayerPropertyConfig.GetFullDescription(fetterConfig.AttrIDList[j], fetterConfig.AttrValueList[j], format);
                }
                fetterText[i].text = attrStr;
                fetterText[i].color = UIHelper.GetUIColor(isAllCollect ? TextColType.NavyBrown : TextColType.NavyGray);
                fetterNameText[i].text = fetterConfig.FetterName;
                fetterNameText[i].color = UIHelper.GetUIColor(isAllCollect ? TextColType.NavyBrown : TextColType.NavyGray);
            }
            else
            {
                fetterText[i].SetActive(false);
            }
        }
    }
    void RefreshGift()
    {
        HeroUIManager.Instance.RefreshGiftCell(giftBaseCells, hero);
        if (hero.heroStar >= HeroUIManager.Instance.GetMaxStarCount(hero.heroId, hero.Quality))
        {
            starUPBtnText.text = Language.Get("HeroGift7");
            starUPBtn.SetInteractable(false);
        }
        else
        {
            starUPBtnText.text = Language.Get("HeroGift3");
            starUPBtn.SetInteractable(true);
        }
    }
    void StarUP()
    {
        if (hero.heroStar >= HeroUIManager.Instance.GetMaxStarCount(hero.heroId, hero.Quality))
        {
            return;
        }
        else if (hero.IsFullStar())
        {
            SysNotifyMgr.Instance.ShowTip("HeroGift1");
            return;
        }
        HeroUIManager.Instance.selectHeroGuidForGiftFunc = hero.itemHero.guid;
        UIManager.Instance.OpenWindow<HeroGiftEatWin>();
    }
    void Wash()
    {
        if (hero.heroStar < HeroUIManager.Instance.canWashStarLevel)
        {
            SysNotifyMgr.Instance.ShowTip("HeroGift2", HeroUIManager.Instance.canWashStarLevel);
            return;
        }
        HeroUIManager.Instance.selectWashHeroGUID = hero.itemHero.guid;
        UIManager.Instance.OpenWindow<HeroGiftWashWin>();
    }
    void RefreshAwake()
    {
        if (!HeroAwakeConfig.CanAwake(hero.heroId, 1))
        {
            awakeGo.SetActive(false);
            return;
        }
        awakeGo.SetActive(true);
        var maxLV = HeroAwakeConfig.GetMaxAwakeLV(hero.heroId);
        var starCnt = HeroQualityConfig.Get(hero.Quality).InitStarUpper;
        for (int i = 1; i <= maxLV; i++)
        {
            if (i > awakeCellList.Count)
            {
                awakeCellList.Add(Instantiate(potentialCell, awakeCellParent));
            }
            var go = awakeCellList[i - 1];
            var descText = go.GetComponent<Text>();
            var nameText = go.GetComponent<Text>("skillname");
            go.SetActive(true);
            var config = HeroAwakeConfig.GetHeroAwakeConfig(hero.heroId, i);
            int type = config.UnlockTalentSlot != 0 ? 1 : config.SkillID != 0 ? 2 : 3;
            var awakeStr = string.Empty;
            if (type == 1)
            {
                starCnt += config.AddStarUpper;
                awakeStr = Language.Get("HeroAwake8", config.UnlockTalentSlot, starCnt);
            }
            else if (type == 2)
            {
                var skill = SkillConfig.Get(config.SkillID);
                awakeStr = Language.Get("equipQualityFormat", skill.SkillName) + skill.Description;
            }
            else
            {
                for (int k = 0; k < config.AttrIDList.Length; k++)
                {
                    awakeStr += (string.IsNullOrEmpty(config.SkillIName) ? string.Empty : Language.Get("equipQualityFormat", config.SkillIName)) +
                    PlayerPropertyConfig.GetFullDescription(config.AttrIDList[k], config.AttrValueList[k], "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}"))
                    + (k == config.AttrIDList.Length - 1 ? "" : "\n");
                }
            }
            if (i - 1 < hero.awakeLevel)
            {
                nameText.text = Language.Get("herocard12", i) + Language.Get("L1096");
                descText.text = awakeStr;
            }
            else
            {
                //置灰
                nameText.text = UIHelper.AppendColor(TextColType.NavyGray, Language.Get("herocard12", i) + Language.Get("L1096"));
                descText.text = UIHelper.AppendColor(TextColType.NavyGray, UIHelper.RemoveColor(awakeStr));
            }
        }
    }
    void TeamPosChangeEvent(TeamType teamType)
    {
        if (teamType != TeamType.Story)
            return;
        fightPowerText.text = UIHelper.ReplaceLargeArtNum(hero.CalculatePower());
    }
    void RefreshFreeze()
    {
        //至少需要觉醒到多少级
        int needAwakeLV = HeroUIManager.Instance.GetAwakeLVByStarLV(hero.heroId, hero.heroStarMaxBefore);
        if (hero.awakeLevel < needAwakeLV)
        {
            freezeTipBtn.SetActive(true);
            //星级
            for (int i = 0; i < starImgFreezeList.Count; i++)
            {
                if ((hero.heroStarMaxBefore - 1) % starImgFreezeList.Count >= i)
                {
                    starImgFreezeList[i].SetActive(true);
                    starImgFreezeList[i].SetSprite("herostar" + (((hero.heroStarMaxBefore - 1) / starImgFreezeList.Count) + 1) * starImgFreezeList.Count);
                }
                else
                {
                    starImgFreezeList[i].SetActive(false);
                }
            }
            freezeStarText.text = Language.Get("HeroAwake16", hero.heroStarMaxBefore);
            freezeAawkeLVText.text = Language.Get("HeroAwake17", needAwakeLV);
        }
        else
        {
            freezeTipBtn.SetActive(false);
        }
        freezeTipGo.SetActive(false);
    }
    void RefreshRedImg()
    {
        redpointAwake.SetActive(false);
        redpointGift.SetActive(false);
        redpointLVUP.SetActive(false);
        if (!hero.IsInTeamByTeamType(TeamType.Story))
        {
            return;
        }
        var heroCnt = PackManager.Instance.GetItemCountByID(PackType.Hero, hero.heroId);
        var itemPack = PackManager.Instance.GetSinglePack(PackType.Item);
        //5星后才能觉醒
        if (hero.heroStar >= HeroUIManager.Instance.starLevelCanAwake)
        {
            //判断觉醒材料是否足够
            var maxAwakeLV = HeroAwakeConfig.GetMaxAwakeLV(hero.heroId);
            if (hero.awakeLevel < maxAwakeLV)
            {
                var config = HeroQualityAwakeConfig.GetQualityAwakeConfig(hero.Quality, hero.awakeLevel);
                if (itemPack.GetCountById(config.UPCostItem[0]) >= config.UPCostItem[1])
                {
                    redpointAwake.SetActive(true);
                }
            }
        }
        if (heroCnt > 1)
        {
            redpointGift.SetActive(true);
        }
        var maxBreakLV = HeroBreakConfig.GetMaxBreakLv(hero.heroId);
        if (hero.breakLevel < maxBreakLV)
        {
            if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero))
            {
                var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel);
                if (itemPack.GetCountById(breakConfig.UPCostItem[0]) >= breakConfig.UPCostItem[1])
                {
                    redpointLVUP.SetActive(true);
                    return;
                }
            }
        }
        if (!HeroUIManager.Instance.IsLVMax(hero))
        {
            var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel);
            if (itemPack.GetCountById(lvupConfig.UPCostItem[0]) >= lvupConfig.UPCostItem[1])
            {
                redpointLVUP.SetActive(true);
            }
        }
    }
}