using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; /// /// 武将突破界面 /// public class HeroLVBreakWin : UIBase { [SerializeField] Text breakLVText; [SerializeField] Text nextBreakLVText; [SerializeField] Text lvText; [SerializeField] Text nextLVText; [SerializeField] Text[] attrPerTextArr; [SerializeField] Text[] nextAttrPerTextArr; [SerializeField] Text potentialText; [SerializeField] Image moneyIcon; [SerializeField] Text moneyText; [SerializeField] Button breakBtn; [SerializeField] ScrollRect scrollRect; string guid; HeroInfo hero; protected override void InitComponent() { breakBtn.AddListener(BreakLV); } protected override void OnPreOpen() { guid = HeroUIManager.Instance.selectHeroGuid; hero = HeroManager.Instance.GetHero(guid); Refresh(); scrollRect.verticalNormalizedPosition = 1; } protected override void OnPreClose() { } public override void Refresh() { breakLVText.text = "+" + hero.breakLevel; nextBreakLVText.text = "+" + (hero.breakLevel + 1); lvText.text = hero.qualityBreakConfig.LVMax.ToString(); var nextBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel + 1); nextLVText.text = nextBreakLVConfig.LVMax.ToString(); for (int i = 0; i < attrPerTextArr.Length; i++) { attrPerTextArr[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], hero.qualityConfig.BreakLVAddPer * hero.breakLevel); } for (int i = 0; i < nextAttrPerTextArr.Length; i++) { nextAttrPerTextArr[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], hero.qualityConfig.BreakLVAddPer * (hero.breakLevel + 1)); } moneyIcon.SetOrgSprite(ItemConfig.Get(hero.qualityBreakConfig.UPCostItem[0]).IconKey); moneyText.text = UIHelper.ShowUseItem(PackType.Item, hero.qualityBreakConfig.UPCostItem[0], hero.qualityBreakConfig.UPCostItem[1]); var nextQualityBreakConfig = HeroBreakConfig.GetHeroBreakConfig(hero.heroId, hero.breakLevel + 1); if (nextQualityBreakConfig == null) { potentialText.text = ""; return; } List attrStrArr = new List(); for (int i = 0; i < nextQualityBreakConfig.AttrIDList.Length; i++) { if (nextQualityBreakConfig.AttrIDList[i] == 0) { continue; } attrStrArr.Add((string.IsNullOrEmpty(nextQualityBreakConfig.SkillIName) ? string.Empty : Language.Get("equipQualityFormat", nextQualityBreakConfig.SkillIName)) + PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[i], nextQualityBreakConfig.AttrValueList[i])); } if (nextQualityBreakConfig.SkillID != 0) { var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID); if (skill != null) { attrStrArr.Add(Language.Get("equipQualityFormat", skill.SkillName) + skill.Description); } else { Debug.LogError("未配置技能" + nextQualityBreakConfig.SkillID); } } potentialText.text = Language.Get("L1100", Language.Get("herocard56"), string.Join(Language.Get("L1112"), attrStrArr)); } void BreakLV() { if (ItemLogicUtility.CheckItemCount(PackType.Item, hero.qualityBreakConfig.UPCostItem[0], hero.qualityBreakConfig.UPCostItem[1], 2)) { var pack = new CB232_tagCSHeroBreak(); pack.ItemIndex = (ushort)hero.itemHero.gridIndex; GameNetSystem.Instance.SendInfo(pack); HeroUIManager.Instance.lastFightPower = new KeyValuePair(hero.itemHero.guid, hero.CalculatePower(false)); CloseWindow(); //设置个等待回复的标识 显示成功界面 HeroUIManager.Instance.waitResponse = new WaitHeroFuncResponse() { guid = guid, type = HeroFuncType.Break, time = Time.time }; } } }