using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; /// /// 图鉴激活升级界面 /// public class HeroCollectionLvUpWin : UIBase { [SerializeField] GameObject lvupPanel; [SerializeField] GameObject fullPanel; [SerializeField] HeroHeadBaseCell beforeHeadCell; [SerializeField] Text name1; [SerializeField] GameObject unActiveGo; [SerializeField] HeroHeadBaseCell afterHeadCell; [SerializeField] Text name2; [SerializeField] Text[] attrNames; [SerializeField] Text[] beforeAttrValues; [SerializeField] Text[] afterAttrValues; [SerializeField] RichText awardInfo; [SerializeField] Button btn; [SerializeField] Text btnText; [SerializeField] HeroHeadBaseCell fullHeadCell; [SerializeField] Text name3; [SerializeField] Text[] fullAttrs; [SerializeField] GameObject fullImg; [SerializeField] Text titleText; protected override void InitComponent() { btn.AddListener(OnBtnClick); } protected override void OnPreOpen() { HeroUIManager.Instance.OnHeroCollectEvent += Display; Display(); } protected override void OnPreClose() { HeroUIManager.Instance.OnHeroCollectEvent -= Display; } void Display() { var state = HeroUIManager.Instance.GetHeroBookState(HeroUIManager.Instance.selectCollectHeroID, HeroConfig.Get(HeroUIManager.Instance.selectCollectHeroID).Quality); var config = HeroConfig.Get(HeroUIManager.Instance.selectCollectHeroID); HB122_tagSCHeroInfo.tagSCHero colData; HeroUIManager.Instance.TryGetHeroBookInfo(HeroUIManager.Instance.selectCollectHeroID, out colData); var bookPer = HeroUIManager.Instance.GetHeroBookPer(HeroUIManager.Instance.selectCollectHeroID); if (state == 5 || state == 2) { //已满级 titleText.text = state == 5 ? Language.Get("HeroAwake13") : Language.Get("HeroAwake12"); fullPanel.SetActive(true); lvupPanel.SetActive(false); fullHeadCell.Init(HeroUIManager.Instance.selectCollectHeroID, config.SkinIDList[0], colData.BookStarLV); name3.text = colData.BookBreakLV == 0 ? config.Name : Language.Get("herocardbreaklv", config.Name, colData.BookBreakLV); for (int i = 0; i < fullAttrs.Length; i++) { fullAttrs[i].text = PlayerPropertyConfig.GetFullDescription(PlayerPropertyConfig.basePerAttrs[i], bookPer, "{0} " + UIHelper.AppendColor(TextColType.Green, "+{1}")); } var nextHeroID = HeroUIManager.Instance.FindHeroIDCanAddCollectAttr(HeroUIManager.Instance.selectCollectHeroID); if (nextHeroID != 0) { fullImg.SetActive(false); btn.SetActive(true); //下一个 btnText.text = Language.Get("HeroAwake14"); } else { fullImg.SetActive(state == 5); btn.SetActive(state == 2); btnText.text = Language.Get("L1109"); } } else { fullPanel.SetActive(false); lvupPanel.SetActive(true); btn.SetActive(true); beforeHeadCell.Init(HeroUIManager.Instance.selectCollectHeroID, config.SkinIDList[0], colData.BookStarLV); name1.text = colData.BookBreakLV == 0 ? config.Name : Language.Get("herocardbreaklv", config.Name, colData.BookBreakLV); int addPer = 0; var qualityConfig = HeroQualityConfig.Get(config.Quality); awardInfo.text = string.Empty; unActiveGo.SetActive(false); titleText.text = Language.Get("HeroAwake12"); int afterBreakLV = colData.BookBreakLV; int afterStarLV = colData.BookStarLV; if (state == 1) { //激活 addPer = qualityConfig.BookInitAddPer; btnText.text = Language.Get("L1131"); //L1131 激活 awardInfo.text = Language.Get("HeroAwake10", UIHelper.GetIconNameWithMoneyType(qualityConfig.BookActAwardMoney[0]), qualityConfig.BookActAwardMoney[1]); unActiveGo.SetActive(true); titleText.text = Language.Get("HeroAwake11"); } else if (state == 3) { //突破 addPer = qualityConfig.BookBreakLVAddPer; btnText.text = Language.Get("L1109"); //升级 afterBreakLV++; } else if (state == 4) { //升星 addPer = qualityConfig.BookStarAddPer; btnText.text = Language.Get("L1109"); afterStarLV++; } else { var nextHeroID = HeroUIManager.Instance.FindHeroIDCanAddCollectAttr(HeroUIManager.Instance.selectCollectHeroID); if (nextHeroID != 0) { //下一个 btnText.text = Language.Get("HeroAwake14"); } else { btnText.text = Language.Get("L1109"); } } afterHeadCell.Init(HeroUIManager.Instance.selectCollectHeroID, config.SkinIDList[0], afterStarLV); name2.text = afterBreakLV == 0 ? config.Name :Language.Get("herocardbreaklv", config.Name, afterBreakLV); for (int i = 0; i < beforeAttrValues.Length; i++) { beforeAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], bookPer); attrNames[i].text = PlayerPropertyConfig.Get(PlayerPropertyConfig.basePerAttrs[i]).Name; afterAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], bookPer + addPer); } } } void OnBtnClick() { var state = HeroUIManager.Instance.GetHeroBookState(HeroUIManager.Instance.selectCollectHeroID, HeroConfig.Get(HeroUIManager.Instance.selectCollectHeroID).Quality); if (state == 1) { //激活 SendPack(0); } else if (state == 3) { //突破 SendPack(2); } else if (state == 4) { //升星 SendPack(1); } else { var nextHeroID = HeroUIManager.Instance.FindHeroIDCanAddCollectAttr(HeroUIManager.Instance.selectCollectHeroID); if (nextHeroID != 0) { //下一个 HeroUIManager.Instance.selectCollectHeroID = nextHeroID; Display(); } else { SysNotifyMgr.Instance.ShowTip("HeroGift8"); } } } void SendPack(int type) { var pack = new CB237_tagCSHeroBookUP(); pack.BookType = (byte)type; pack.HeroID = (uint)HeroUIManager.Instance.selectCollectHeroID; GameNetSystem.Instance.SendInfo(pack); } }