using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
using System;
|
|
namespace Snxxz.UI
|
{
|
public class TreasureSoulBehaviour : MonoBehaviour
|
{
|
[SerializeField] Text m_SoulName;
|
[SerializeField] Text m_SoulState;
|
[SerializeField] Image m_Lock;
|
[SerializeField] Image m_SelectImg;
|
[SerializeField] Button m_SelectBtn;
|
[SerializeField] RedpointBehaviour m_Redpoint;
|
|
int treasureId = 0;
|
|
Treasure treasure;
|
|
TreasureModel model
|
{
|
get
|
{
|
return ModelCenter.Instance.GetModel<TreasureModel>();
|
}
|
}
|
|
private void Awake()
|
{
|
m_SelectBtn.onClick.AddListener(OnSelect);
|
}
|
|
private void OnEnable()
|
{
|
model.treasureSelectSoulChangeEvent += TreasureSelectSoulChangeEvent;
|
PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
|
}
|
|
private void OnDisable()
|
{
|
model.treasureSelectSoulChangeEvent -= TreasureSelectSoulChangeEvent;
|
PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
|
}
|
|
public void Display(int _id)
|
{
|
treasureId = _id;
|
m_Redpoint.redpointId = 0;
|
if (model.TryGetTreasure(_id, out treasure))
|
{
|
var _privilege = treasure.unLockPrivilege;
|
var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_privilege);
|
if (config == null)
|
{
|
return;
|
}
|
m_Redpoint.redpointId = treasure.specialData.privilegeRedpoint != null ? treasure.specialData.privilegeRedpoint.id : 0;
|
m_SoulName.text = config.Name;
|
m_SelectImg.SetSprite(model.selectSoul == treasureId ? "ListBtn_Select" : "ListBtn_UnSelect");
|
DisplayState();
|
}
|
}
|
|
void DisplayState()
|
{
|
if (treasure != null)
|
{
|
var stage = treasure.treasureStages[treasure.StageCount - 1];
|
m_Lock.gameObject.SetActive(PlayerDatas.Instance.baseData.LV < stage.limitLevel);
|
if (PlayerDatas.Instance.baseData.LV < stage.limitLevel)
|
{
|
m_SoulState.text = Language.Get("TreasurePrivilege_Unlock", stage.limitLevel);
|
}
|
else if (treasure.IsMaxStage())
|
{
|
m_SoulState.text = Language.Get("TreasureSoul_Awoke");
|
}
|
else
|
{
|
m_SoulState.text = Language.Get("TreasureSoul_Awaking");
|
}
|
}
|
}
|
|
private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
|
{
|
if (refreshType == PlayerDataRefresh.LV)
|
{
|
DisplayState();
|
}
|
}
|
|
private void TreasureSelectSoulChangeEvent(int _id)
|
{
|
if (treasure != null)
|
{
|
m_SelectImg.SetSprite(model.selectSoul == treasureId ? "ListBtn_Select" : "ListBtn_UnSelect");
|
}
|
}
|
|
private void OnSelect()
|
{
|
if(model.TryGetTreasure(treasureId,out treasure))
|
{
|
model.selectSoul = treasureId;
|
}
|
}
|
}
|
}
|