using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class KingThreeDimensionsBehaviour : MonoBehaviour
|
{
|
[SerializeField] RectTransform m_ContainerSeasonNotStart;
|
[SerializeField] RectTransform m_ContainerSeasonStartOrEnd;
|
[SerializeField] Text m_Season;
|
[SerializeField] Image m_EndState;
|
[SerializeField] Image m_OnGoingState;
|
[SerializeField] Text m_Division;
|
[SerializeField] Text m_Score;
|
[SerializeField] RectTransform m_ContainerWearToggle;
|
[SerializeField] Image m_WearCheck;
|
[SerializeField] TreasureUIEvent m_Wear;
|
|
KingTreasureModel model
|
{
|
get { return ModelCenter.Instance.GetModel<KingTreasureModel>(); }
|
}
|
|
TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
|
CrossServerOneVsOneModel oneVsOneModel
|
{
|
get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); }
|
}
|
|
int displayTreasureId = 0;
|
|
private void Awake()
|
{
|
m_Wear.onClick += OnWear;
|
}
|
|
public void Display(int treasureId)
|
{
|
displayTreasureId = treasureId;
|
|
var season = 0;
|
Treasure treasure;
|
if (model.TryGetSeason(treasureId, out season)
|
&& treasureModel.TryGetTreasure(treasureId, out treasure))
|
{
|
var seasonNotStart = model.GetSeasonState(treasureId) == 0;
|
m_ContainerSeasonNotStart.SetActive(seasonNotStart);
|
m_ContainerSeasonStartOrEnd.SetActive(!seasonNotStart);
|
|
bool seasonEnd = model.GetSeasonState(treasureId) == 2;
|
if (!seasonNotStart)
|
{
|
m_EndState.SetActive(seasonEnd);
|
m_OnGoingState.SetActive(!seasonEnd);
|
m_Season.text = season.ToString();
|
m_Division.SetActive(seasonEnd && treasure.state == TreasureState.Collected);
|
CrossServerOneVsOneModel.CrossServerOneVsOneHistory history;
|
if (oneVsOneModel.TryGetOneVsOneHistory(season, out history))
|
{
|
var divisionConfig = CrossServerArenaConfig.Get(history.division);
|
if (divisionConfig != null)
|
{
|
m_Division.text = divisionConfig.Name;
|
m_Division.color = UIHelper.GetDanLVColor(history.division);
|
}
|
m_Score.SetActive(treasure.state == TreasureState.Collected);
|
m_Score.text = Language.Get("KingTreasureScore", model.GetSeasonScore(treasureId));
|
}
|
else
|
{
|
m_Division.SetActive(false);
|
m_Score.SetActive(false);
|
}
|
}
|
}
|
|
DisplayWear();
|
|
model.treasureWearRefresh -= TreasureWearRefresh;
|
model.treasureWearRefresh += TreasureWearRefresh;
|
}
|
|
void DisplayWear()
|
{
|
Treasure treasure;
|
if (treasureModel.TryGetTreasure(displayTreasureId, out treasure))
|
{
|
m_ContainerWearToggle.SetActive(treasure.state == TreasureState.Collected);
|
m_WearCheck.SetActive(model.IsWear(displayTreasureId));
|
}
|
else
|
{
|
m_ContainerWearToggle.SetActive(false);
|
}
|
}
|
|
public void OnWear()
|
{
|
if (displayTreasureId != 0)
|
{
|
model.TryWearTreasure(displayTreasureId);
|
}
|
}
|
|
private void TreasureWearRefresh()
|
{
|
DisplayWear();
|
}
|
|
public void Dispose()
|
{
|
model.treasureWearRefresh -= TreasureWearRefresh;
|
}
|
}
|
}
|
|