| using System.Collections.Generic; | 
| using System.Linq; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
|   | 
| /// <summary> | 
| /// 武将突破界面 | 
| /// </summary> | 
| 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<string> attrStrArr = new List<string>(); | 
|         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("L1039", 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("L1039", 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<string, long>(hero.itemHero.guid, hero.CalculateFightPower(false)); | 
|             CloseWindow(); | 
|             //设置个等待回复的标识 显示成功界面 | 
|             HeroUIManager.Instance.waitResponse = new WaitHeroFuncResponse() | 
|             { | 
|                 guid = guid, | 
|                 type = HeroFuncType.Break, | 
|                 time = Time.time | 
|             }; | 
|         } | 
|     } | 
| } |