using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class ChestDetailBehaviour : MonoBehaviour
|
{
|
[SerializeField] Text m_ItemName;
|
[SerializeField] ItemCell m_Item;
|
[SerializeField] Text m_ItemType;
|
[SerializeField] Text m_Condition0;
|
[SerializeField] Text m_ConditionValue0;
|
[SerializeField] Text m_Condition1;
|
[SerializeField] Image m_ConditionValue1;
|
|
[SerializeField] RichText m_Description;
|
[SerializeField] ScrollRect m_Scroller;
|
|
[SerializeField] Text m_UseTimes;
|
[SerializeField] AdaptiveLayout m_Adaptive;
|
|
[SerializeField] Button m_Close;
|
|
ItemTipsModel m_ItemTipsModel;
|
ItemTipsModel itemTipsModel
|
{
|
get
|
{
|
return m_ItemTipsModel ?? (m_ItemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>());
|
}
|
}
|
|
BoxGetItemModel boxModel;
|
BoxGetItemModel BoxModel
|
{
|
get { return boxModel ?? (boxModel = ModelCenter.Instance.GetModel<BoxGetItemModel>()); }
|
}
|
|
Color32 conditionColor = new Color32(255, 244, 205, 255);
|
Color32 conditionRedColor = new Color32(255, 1, 1, 255);
|
|
private void Awake()
|
{
|
m_Close.onClick.AddListener(Close);
|
}
|
|
private void OnEnable()
|
{
|
m_Adaptive.adaptiveUpdateEvent += AdaptiveUpdateEvent;
|
AdaptiveUpdateEvent();
|
}
|
|
private void OnDisable()
|
{
|
m_Adaptive.adaptiveUpdateEvent -= AdaptiveUpdateEvent;
|
}
|
|
private void AdaptiveUpdateEvent()
|
{
|
m_Adaptive.rectTransform.localPosition = Vector3.zero.SetY(m_Adaptive.Size / 2);
|
}
|
|
public void Display()
|
{
|
var config = ChestsConfig.Get(itemTipsModel.curAttrData.itemId);
|
var itemConfig = ItemConfig.Get(itemTipsModel.curAttrData.itemId);
|
m_ItemType.text = itemConfig.ItemTypeName;
|
m_ItemName.text = itemConfig.ItemName;
|
m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor);
|
ItemCellModel cellModel = new ItemCellModel(itemTipsModel.curAttrData.itemId, true, itemTipsModel.curAttrData.count);
|
m_Item.Init(cellModel);
|
|
m_Condition0.gameObject.SetActive(false);
|
m_ConditionValue0.gameObject.SetActive(false);
|
m_Condition1.gameObject.SetActive(false);
|
m_ConditionValue1.gameObject.SetActive(false);
|
|
if (config != null && config.OpenMoney > 0)
|
{
|
m_Condition0.gameObject.SetActive(true);
|
ulong haveMoney = UIHelper.GetMoneyCnt(1);
|
if (haveMoney >= (ulong)config.OpenMoney)
|
{
|
m_Condition0.text = Language.Get("OpenBoxCostMoney", UIHelper.AppendColor(TextColType.Green, config.OpenMoney.ToString()));
|
}
|
else
|
{
|
m_Condition0.text = Language.Get("OpenBoxCostMoney", UIHelper.AppendColor(TextColType.Red, config.OpenMoney.ToString()));
|
}
|
}
|
else
|
{
|
DisplayUseLimit(itemConfig);
|
}
|
|
string infoDes = itemTipsModel.curAttrData.GetAllInfoDes();
|
if (infoDes.Contains("{Exp}"))
|
{
|
ulong expValue = itemTipsModel.GetAddExpValue(itemTipsModel.curAttrData.itemConfig.EffectValueA1, itemTipsModel.curAttrData.itemConfig.EffectValueB1);
|
infoDes = infoDes.Replace("{Exp}", UIHelper.ReplaceLargeNum(expValue));
|
}
|
if (infoDes.Contains("{FightPower}"))
|
{
|
int fightPower = 0;
|
itemTipsModel.TryGetFightPowerByItemId(itemTipsModel.curAttrData.itemId, out fightPower);
|
infoDes = infoDes.Replace("{FightPower}", fightPower.ToString());
|
}
|
if (infoDes.Contains("{ShareNum}"))
|
{
|
string shareNumDes = itemTipsModel.GetShareNumItemDes(itemTipsModel.curAttrData.itemId);
|
infoDes = infoDes.Replace("{ShareNum}", shareNumDes);
|
}
|
|
m_Description.text = infoDes;
|
|
int useCnt = BoxModel.GetUseCntByID(itemTipsModel.curAttrData.itemId);
|
m_UseTimes.gameObject.SetActive(itemConfig.MaxSkillCnt > 0);
|
if (itemConfig.MaxSkillCnt > 0)
|
{
|
m_UseTimes.text = Language.Get("BoxUseCntTip", StringUtility.Contact(useCnt, "/", itemTipsModel.curAttrData.itemConfig.MaxSkillCnt));
|
}
|
}
|
|
void DisplayUseLimit(ItemConfig itemConfig)
|
{
|
int[] uselimits = itemConfig.UseCondiType;
|
if (uselimits == null)
|
{
|
return;
|
}
|
|
for (int i = 0; i < uselimits.Length; i++)
|
{
|
switch (uselimits[i])
|
{
|
case 0:
|
if (itemConfig.UseLV > 1)
|
{
|
m_Condition0.gameObject.SetActive(true);
|
m_ConditionValue0.gameObject.SetActive(true);
|
}
|
m_Condition0.text = Language.Get("KnapS110");
|
m_ConditionValue0.text = itemConfig.UseLV.ToString();
|
|
if (PlayerDatas.Instance.baseData.LV >= itemConfig.UseLV)
|
{
|
m_Condition0.color = conditionColor;
|
m_ConditionValue0.color = conditionColor;
|
}
|
else
|
{
|
m_Condition0.color = conditionRedColor;
|
m_ConditionValue0.color = conditionRedColor;
|
}
|
break;
|
case 1:
|
m_Condition1.gameObject.SetActive(true);
|
m_ConditionValue1.gameObject.SetActive(true);
|
m_Condition1.text = Language.Get("RealmLimit1");
|
RealmConfig realmConfig = RealmConfig.Get(itemConfig.RealmLimit);
|
if (itemConfig.RealmLimit <= 0)
|
{
|
m_ConditionValue1.SetSprite("NoRealm");
|
}
|
else
|
{
|
if (realmConfig != null)
|
{
|
m_ConditionValue1.SetSprite(realmConfig.Img);
|
m_ConditionValue1.SetNativeSize();
|
}
|
}
|
|
if (PlayerDatas.Instance.baseData.realmLevel >= itemConfig.RealmLimit)
|
{
|
m_Condition1.color = conditionColor;
|
}
|
else
|
{
|
m_Condition1.color = conditionRedColor;
|
}
|
break;
|
}
|
}
|
|
}
|
|
private void Close()
|
{
|
KnapSackEventMgr.Instance.HideItemPopWin();
|
}
|
}
|
}
|
|