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
};
}
}
}