//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, February 28, 2019
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class EquipStarUpgradeMaterialBehaviour : MonoBehaviour
|
{
|
[SerializeField] int m_Index;
|
[SerializeField] Text m_Hint;
|
[SerializeField] RectTransform m_Empty;
|
[SerializeField] ItemBehaviour m_Item;
|
[SerializeField] Button m_AddMaterial;
|
[SerializeField] Button m_RemoveMaterial;
|
[SerializeField] RectTransform m_Locked;
|
|
bool isUnLocked = false;
|
EquipStarModel model { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
public void Display(bool isUnLocked)
|
{
|
this.isUnLocked = isUnLocked;
|
DisplayBaseInfo(this.isUnLocked);
|
DisplayDynamicInfo(true);
|
|
m_AddMaterial.SetListener(AddMaterials);
|
m_RemoveMaterial.SetListener(RemoveMaterial);
|
}
|
|
private void LateUpdate()
|
{
|
DisplayDynamicInfo(false);
|
}
|
|
private void DisplayBaseInfo(bool isUnLocked)
|
{
|
m_Locked.gameObject.SetActive(!isUnLocked);
|
m_Hint.text = Language.Get("ComposeWin_PutInText_2");
|
}
|
|
private void DisplayDynamicInfo(bool force)
|
{
|
if (force || model.GetMaterialLogicStringByIndex(m_Index).dirty)
|
{
|
var material = model.GetMaterialLogicStringByIndex(m_Index).Fetch();
|
var hasMaterial = !string.IsNullOrEmpty(material);
|
m_Hint.gameObject.SetActive(isUnLocked && !hasMaterial);
|
if (hasMaterial)
|
{
|
m_Empty.gameObject.SetActive(false);
|
var item = packModel.GetItemByGuid(material);
|
m_Item.gameObject.SetActive(true);
|
m_Item.SetItem(item.itemId, 1);
|
}
|
else
|
{
|
m_Item.gameObject.SetActive(false);
|
m_Empty.gameObject.SetActive(true);
|
}
|
|
m_AddMaterial.gameObject.SetActive(isUnLocked && !hasMaterial);
|
m_RemoveMaterial.gameObject.SetActive(isUnLocked && hasMaterial);
|
}
|
}
|
|
private void AddMaterials()
|
{
|
model.operateMaterialIndex.value = m_Index;
|
}
|
|
private void RemoveMaterial()
|
{
|
model.RemoveMaterial(m_Index);
|
}
|
|
}
|
|
}
|