using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; /// /// 武将突破界面 /// public class HeroLVBreakSuccessWin : UIBase { [SerializeField] Text breakLVText; [SerializeField] Text nextBreakLVText; [SerializeField] Text lvText; [SerializeField] Text nextLVText; [SerializeField] Text[] attrPerTextArr; [SerializeField] Text[] nextAttrPerTextArr; [SerializeField] Text potentialText; [SerializeField] Button okBtn; [SerializeField] ScrollRect scrollRect; string guid; protected override void InitComponent() { okBtn.AddListener(CloseWindow); } protected override void OnPreOpen() { guid = HeroUIManager.Instance.waitResponse.guid; if (string.IsNullOrEmpty(guid)) return; Display(HeroManager.Instance.GetHero(guid)); scrollRect.verticalNormalizedPosition = 1; } protected override void OnPreClose() { } public void Display(HeroInfo hero) { breakLVText.text = "+" + (hero.breakLevel - 1); nextBreakLVText.text = "+" + hero.breakLevel; var beforeBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel - 1); lvText.text = beforeBreakLVConfig.LVMax.ToString(); nextLVText.text = hero.qualityBreakConfig.LVMax.ToString(); for (int i = 0; i < attrPerTextArr.Length; i++) { attrPerTextArr[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], hero.qualityConfig.BreakLVAddPer * (hero.breakLevel - 1)); } for (int i = 0; i < nextAttrPerTextArr.Length; i++) { nextAttrPerTextArr[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], hero.qualityConfig.BreakLVAddPer * hero.breakLevel); } var nextQualityBreakConfig = HeroBreakConfig.GetHeroBreakConfig(hero.heroId, hero.breakLevel); if (nextQualityBreakConfig == null) { potentialText.text = ""; return; } List attrStrArr = new List(); for (int i = 0; i < nextQualityBreakConfig.AttrIDList.Length; i++) { var id = nextQualityBreakConfig.AttrIDList[i]; if (id == 0) continue; attrStrArr.Add((string.IsNullOrEmpty(nextQualityBreakConfig.SkillIName) ? string.Empty : Language.Get("equipQualityFormat", nextQualityBreakConfig.SkillIName)) + PlayerPropertyConfig.GetFullDescription(id, nextQualityBreakConfig.AttrValueList[i])); } if (nextQualityBreakConfig.SkillID != 0) { var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID); attrStrArr.Add(Language.Get("equipQualityFormat", skill.SkillName) + skill.Description); } potentialText.text = Language.Get("L1100", Language.Get("herocard56"), string.Join(Language.Get("L1112"), attrStrArr)); } }