//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, March 12, 2019
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class EquipStrengthRein : MonoBehaviour
|
{
|
[SerializeField] ItemCell m_ItemMoney;
|
[SerializeField] ItemCell m_ItemEquip;
|
[SerializeField] Text m_EquipStar;
|
[SerializeField] IntensifySmoothSlider m_Slider;
|
[SerializeField] Text NeedMoney;
|
[SerializeField] Text m_AttributesText1;
|
[SerializeField] Text m_AttributesText2;
|
[SerializeField] Text m_AttributesText3;
|
[SerializeField] Text m_SliderText;
|
[SerializeField] Text m_TextNumber;
|
[SerializeField] Text m_TextNumberNow;
|
[SerializeField] Text m_TextMaxLv;
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
EquipStrengthModel strengthModel { get { return ModelCenter.Instance.GetModel<EquipStrengthModel>(); } }
|
|
EquipStarModel equipStarModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
|
|
int equipLevel = 0;
|
int equipPlace = 0;
|
|
public void SetEquipStrengthRein(string equipGuid, int level, int equipPlace)
|
{
|
this.equipLevel = level;
|
this.equipPlace = equipPlace;
|
|
int equipIndex = EquipPlaceMapConfig.GetServerPlace(level, equipPlace);
|
int equipLv = 0;
|
EquipStrength equipStrength = new EquipStrength();
|
if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//获取当前强化等级
|
{
|
equipLv = strengthModel.EquipStrengthDic[equipIndex].StrengthLevel;
|
equipStrength = strengthModel.EquipStrengthDic[equipIndex];
|
}
|
var itemPlus = strengthModel.GetEquipConfig(level, equipPlace);
|
if (itemPlus == null)
|
{
|
DebugEx.LogError("没有索引到对应的强化表数据");
|
return;
|
}
|
var item = packModel.GetItemByGuid(equipGuid);
|
if (item != null)
|
{
|
m_ItemEquip.Init(item);
|
m_ItemEquip.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(equipGuid);
|
});
|
}
|
|
m_TextNumber.text = "+" + (equipLv + 1);
|
m_TextNumberNow.text = "+" + equipLv;
|
DisplayMoney();
|
|
int equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace);
|
|
var star = equipStarModel.GetEquipStarLevel(new Int2(level, equipPlace));
|
var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, level);
|
star = Mathf.Min(star, maxStar);
|
|
m_EquipStar.text = Language.Get("EquipStarLevel", star);
|
m_EquipStar.SetActive(star > 0);
|
|
//var equipMaxLv = strengthModel.GetEquipLevelMax(equipType, star);
|
m_TextMaxLv.text = string.Empty;//Language.Get("ZBQH_02", star, equipMaxLv);
|
|
var equipLvNowList = strengthModel.GetEquipValueList(level, equipPlace);
|
var equipAddLvList = strengthModel.GetEquipValueList(level, equipPlace, 1);
|
m_AttributesText1.SetActive(false);
|
m_AttributesText2.SetActive(false);
|
m_AttributesText3.SetActive(false);
|
for (int i = 0; i < 3; i++)
|
{
|
if (i < equipLvNowList.Count)
|
{
|
int type = i;
|
var _equipLv = equipLvNowList[type];
|
var _equipAddLv = equipAddLvList[type];
|
switch (type)
|
{
|
case 0:
|
m_AttributesText1.SetActive(true);
|
Text addText = m_AttributesText1.transform.Find("Number").GetComponent<Text>();
|
|
m_AttributesText1.text = _equipLv.StrName + ":" + _equipLv.AttValue;
|
addText.text = "+" + (_equipAddLv.AttValue - _equipLv.AttValue);
|
break;
|
case 1:
|
m_AttributesText2.SetActive(true);
|
Text addText1 = m_AttributesText2.transform.Find("Number").GetComponent<Text>();
|
m_AttributesText2.text = _equipLv.StrName + ":" + _equipLv.AttValue;
|
addText1.text = "+" + (_equipAddLv.AttValue - _equipLv.AttValue);
|
break;
|
case 2:
|
m_AttributesText3.SetActive(true);
|
Text addText2 = m_AttributesText3.transform.Find("Number").GetComponent<Text>();
|
m_AttributesText3.text = _equipLv.StrName + ":" + _equipLv.AttValue;
|
addText2.text = "+" + (_equipAddLv.AttValue - _equipLv.AttValue);
|
break;
|
}
|
}
|
|
}
|
m_SliderText.text = equipStrength.Exp + "/" + itemPlus.upExpNeed;
|
if (strengthModel.IsChangeBool)
|
{
|
strengthModel.IsChangeBool = false;
|
m_Slider.delay = 0f;
|
m_Slider.stage = equipLv;
|
m_Slider.ResetStage();
|
m_Slider.value = (float)Math.Round((double)equipStrength.Exp / itemPlus.upExpNeed, 2, MidpointRounding.AwayFromZero);
|
}
|
else
|
{
|
m_Slider.delay = 0.2f;
|
m_Slider.stage = equipLv;
|
m_Slider.value = (float)Math.Round((double)equipStrength.Exp / itemPlus.upExpNeed, 2, MidpointRounding.AwayFromZero);
|
}
|
}
|
|
public void DisplayMoney()
|
{
|
var config = strengthModel.GetEquipConfig(equipLevel, equipPlace);
|
if (config == null)
|
{
|
return;
|
}
|
|
ulong money = UIHelper.GetMoneyCnt(3);
|
ulong requireMoney = (ulong)config.costCount;
|
|
if (requireMoney != 0)
|
{
|
string moneyLabel = ItemLogicUtility.Instance.OnChangeCoinsUnit(UIHelper.GetMoneyCnt(3));
|
moneyLabel = UIHelper.AppendColor(money >= requireMoney ? TextColType.Green : TextColType.Red, moneyLabel, true);
|
string requireLabel = ItemLogicUtility.Instance.OnChangeCoinsUnit(requireMoney);
|
|
NeedMoney.text = StringUtility.Contact(moneyLabel, "/", requireLabel);
|
|
ItemCellModel cellModel = new ItemCellModel(2100, true, (ulong)1);
|
m_ItemMoney.Init(cellModel);
|
m_ItemMoney.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(2100);
|
});
|
|
}
|
else
|
{
|
if (config.costItemInfo.Length != 2) return;
|
var costItemID = config.costItemInfo[0];
|
var costCnt = config.costItemInfo[1];
|
var itemCount = packModel.GetItemCountByID(PackType.Item, costItemID);
|
var strNeedItemCount = itemCount + "/" + costCnt;
|
|
strNeedItemCount = UIHelper.AppendColor(itemCount >= costCnt ? TextColType.Green : TextColType.Red, strNeedItemCount, true);
|
|
NeedMoney.text = strNeedItemCount;
|
|
ItemCellModel cellModel = new ItemCellModel(costItemID, true, (ulong)1);
|
m_ItemMoney.Init(cellModel);
|
m_ItemMoney.button.SetListener(() =>
|
{
|
ItemTipUtility.Show(costItemID);
|
});
|
}
|
}
|
}
|
|
}
|