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;
|
|
|
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();
|
}
|
|
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(nextBreakLVConfig.UPCostItem[0]).IconKey);
|
moneyText.text = UIHelper.ShowUseItem(PackType.Item, nextBreakLVConfig.UPCostItem[0], nextBreakLVConfig.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(PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[i], nextQualityBreakConfig.AttrValueList[i]));
|
}
|
if (nextQualityBreakConfig.SkillID != 0)
|
{
|
var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID);
|
if (skill != null)
|
{
|
attrStrArr.Add(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.CalculatePower(false));
|
CloseWindow();
|
//设置个等待回复的标识 显示成功界面
|
HeroUIManager.Instance.waitResponse = new WaitHeroFuncResponse()
|
{
|
guid = guid,
|
type = HeroFuncType.Break,
|
time = Time.time
|
};
|
}
|
}
|
}
|