using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
/// <summary>
|
/// 图鉴激活升级界面
|
/// </summary>
|
public class HeroCollectionLvUpWin : UIBase
|
{
|
[SerializeField] GameObject lvupPanel;
|
[SerializeField] GameObject fullPanel;
|
|
[SerializeField] HeroHeadBaseCell beforeHeadCell;
|
[SerializeField] Text name1;
|
[SerializeField] GameObject unActiveGo;
|
[SerializeField] HeroHeadBaseCell afterHeadCell;
|
[SerializeField] Text name2;
|
|
[SerializeField] Text[] attrNames;
|
[SerializeField] Text[] beforeAttrValues;
|
[SerializeField] Text[] afterAttrValues;
|
|
[SerializeField] RichText awardInfo;
|
[SerializeField] Button btn;
|
[SerializeField] Text btnText;
|
|
[SerializeField] HeroHeadBaseCell fullHeadCell;
|
[SerializeField] Text name3;
|
[SerializeField] Text[] fullAttrs;
|
|
[SerializeField] GameObject fullImg;
|
|
[SerializeField] Text titleText;
|
|
|
protected override void InitComponent()
|
{
|
btn.AddListener(OnBtnClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
HeroUIManager.Instance.OnHeroCollectEvent += Display;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
HeroUIManager.Instance.OnHeroCollectEvent -= Display;
|
}
|
|
|
void Display()
|
{
|
var state = HeroUIManager.Instance.GetHeroBookState(HeroUIManager.Instance.selectCollectHeroID, HeroConfig.Get(HeroUIManager.Instance.selectCollectHeroID).Quality);
|
var config = HeroConfig.Get(HeroUIManager.Instance.selectCollectHeroID);
|
|
HB122_tagSCHeroInfo.tagSCHero colData;
|
HeroUIManager.Instance.TryGetHeroBookInfo(HeroUIManager.Instance.selectCollectHeroID, out colData);
|
var bookPer = HeroUIManager.Instance.GetHeroBookPer(HeroUIManager.Instance.selectCollectHeroID);
|
if (state == 5 || state == 2)
|
{
|
//已满级
|
titleText.text = state == 5 ? Language.Get("HeroAwake13") : Language.Get("HeroAwake12");
|
fullPanel.SetActive(true);
|
lvupPanel.SetActive(false);
|
|
fullHeadCell.Init(HeroUIManager.Instance.selectCollectHeroID, config.SkinIDList[0], colData.BookStarLV);
|
name3.text = colData.BookBreakLV == 0 ? config.Name : Language.Get("herocardbreaklv", config.Name, colData.BookBreakLV);
|
|
for (int i = 0; i < fullAttrs.Length; i++)
|
{
|
fullAttrs[i].text = PlayerPropertyConfig.GetFullDescription(PlayerPropertyConfig.basePerAttrs[i],
|
bookPer, "{0} " + UIHelper.AppendColor(TextColType.Green, "+{1}"));
|
}
|
var nextHeroID = HeroUIManager.Instance.FindHeroIDCanAddCollectAttr(HeroUIManager.Instance.selectCollectHeroID);
|
if (nextHeroID != 0)
|
{
|
fullImg.SetActive(false);
|
btn.SetActive(true);
|
//下一个
|
btnText.text = Language.Get("HeroAwake14");
|
}
|
else
|
{
|
fullImg.SetActive(state == 5);
|
btn.SetActive(state == 2);
|
btnText.text = Language.Get("L1109");
|
}
|
|
}
|
else
|
{
|
fullPanel.SetActive(false);
|
lvupPanel.SetActive(true);
|
btn.SetActive(true);
|
|
beforeHeadCell.Init(HeroUIManager.Instance.selectCollectHeroID, config.SkinIDList[0], colData.BookStarLV);
|
name1.text = colData.BookBreakLV == 0 ? config.Name : Language.Get("herocardbreaklv", config.Name, colData.BookBreakLV);
|
|
int addPer = 0;
|
var qualityConfig = HeroQualityConfig.Get(config.Quality);
|
awardInfo.text = string.Empty;
|
unActiveGo.SetActive(false);
|
titleText.text = Language.Get("HeroAwake12");
|
int afterBreakLV = colData.BookBreakLV;
|
int afterStarLV = colData.BookStarLV;
|
if (state == 1)
|
{
|
//激活
|
addPer = qualityConfig.BookInitAddPer;
|
btnText.text = Language.Get("L1131"); //L1131 激活
|
awardInfo.text = Language.Get("HeroAwake10", UIHelper.GetIconNameWithMoneyType(qualityConfig.BookActAwardMoney[0]),
|
qualityConfig.BookActAwardMoney[1]);
|
unActiveGo.SetActive(true);
|
titleText.text = Language.Get("HeroAwake11");
|
}
|
else if (state == 3)
|
{
|
//突破
|
addPer = qualityConfig.BookBreakLVAddPer;
|
btnText.text = Language.Get("L1109"); //升级
|
afterBreakLV++;
|
}
|
else if (state == 4)
|
{
|
//升星
|
addPer = qualityConfig.BookStarAddPer;
|
btnText.text = Language.Get("L1109");
|
afterStarLV++;
|
}
|
else
|
{
|
var nextHeroID = HeroUIManager.Instance.FindHeroIDCanAddCollectAttr(HeroUIManager.Instance.selectCollectHeroID);
|
if (nextHeroID != 0)
|
{
|
//下一个
|
btnText.text = Language.Get("HeroAwake14");
|
}
|
else
|
{
|
btnText.text = Language.Get("L1109");
|
}
|
}
|
|
afterHeadCell.Init(HeroUIManager.Instance.selectCollectHeroID, config.SkinIDList[0], afterStarLV);
|
name2.text = afterBreakLV == 0 ? config.Name :Language.Get("herocardbreaklv", config.Name, afterBreakLV);
|
|
|
for (int i = 0; i < beforeAttrValues.Length; i++)
|
{
|
beforeAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], bookPer);
|
attrNames[i].text = PlayerPropertyConfig.Get(PlayerPropertyConfig.basePerAttrs[i]).Name;
|
afterAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i], bookPer + addPer);
|
}
|
}
|
|
}
|
|
void OnBtnClick()
|
{
|
var state = HeroUIManager.Instance.GetHeroBookState(HeroUIManager.Instance.selectCollectHeroID, HeroConfig.Get(HeroUIManager.Instance.selectCollectHeroID).Quality);
|
if (state == 1)
|
{
|
//激活
|
SendPack(0);
|
}
|
else if (state == 3)
|
{
|
//突破
|
SendPack(2);
|
}
|
else if (state == 4)
|
{
|
//升星
|
SendPack(1);
|
}
|
else
|
{
|
var nextHeroID = HeroUIManager.Instance.FindHeroIDCanAddCollectAttr(HeroUIManager.Instance.selectCollectHeroID);
|
if (nextHeroID != 0)
|
{
|
//下一个
|
HeroUIManager.Instance.selectCollectHeroID = nextHeroID;
|
Display();
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("HeroGift8");
|
}
|
}
|
}
|
|
void SendPack(int type)
|
{
|
var pack = new CB237_tagCSHeroBookUP();
|
pack.BookType = (byte)type;
|
pack.HeroID = (uint)HeroUIManager.Instance.selectCollectHeroID;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
|
}
|