//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, May 13, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class ReikiRootQualityPromoteWin : Window
|
{
|
[SerializeField] RawImage m_RawRole;
|
[SerializeField] ScrollRect m_Scroller;
|
[SerializeField] VerticalLayoutGroup m_Layout;
|
[SerializeField] ReikiRootPromoteBehaviour[] m_ReikiRootBehaviours;
|
[SerializeField] Text m_CloseTip;
|
[SerializeField] Button m_Close;
|
|
DateTime openTime = DateTime.Now;
|
|
ReikiRootModel model { get { return ModelCenter.Instance.GetModel<ReikiRootModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.AddListener(OnClose);
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_CloseTip.SetActive(false);
|
|
openTime = DateTime.Now;
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
DisplayPlayer();
|
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
|
UI3DModelExhibition.Instance.StopShow();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
if ((DateTime.Now - openTime).TotalSeconds > 2f && !m_CloseTip.gameObject.activeSelf)
|
{
|
m_CloseTip.SetActive(true);
|
}
|
}
|
#endregion
|
|
private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType == PlayerDataType.EquipShowSwitch)
|
{
|
DisplayPlayer();
|
}
|
}
|
|
void Display()
|
{
|
List<int> displayIds = new List<int>();
|
foreach (var id in model.lastReikiRootPoints.Keys)
|
{
|
if (model.GetReikiRootQuality(id, model.lastReikiRootPoints[id])
|
< model.GetReikiRootQuality(id, model.afterReikiRootPoints[id]))
|
{
|
displayIds.Add(id);
|
}
|
}
|
|
for (int i = 0; i < m_ReikiRootBehaviours.Length; i++)
|
{
|
if (i < displayIds.Count)
|
{
|
m_ReikiRootBehaviours[i].SetActive(true);
|
m_ReikiRootBehaviours[i].Display(displayIds[i], model.lastReikiRootPoints[displayIds[i]]
|
, model.afterReikiRootPoints[displayIds[i]], i == displayIds.Count - 1);
|
}
|
else
|
{
|
m_ReikiRootBehaviours[i].SetActive(false);
|
}
|
}
|
|
m_Scroller.verticalNormalizedPosition = 1f;
|
m_Scroller.enabled = displayIds.Count > 1;
|
m_Layout.childAlignment = displayIds.Count > 1 ? TextAnchor.UpperLeft : TextAnchor.MiddleLeft;
|
if (displayIds.Count <= 1)
|
{
|
m_Layout.transform.localPosition = m_Layout.transform.localPosition.SetY(0);
|
}
|
}
|
|
void DisplayPlayer()
|
{
|
m_RawRole.SetActive(true);
|
UI3DModelExhibition.Instance.ShowPlayer(m_RawRole, PlayerDatas.Instance.baseData.Job);
|
}
|
|
private void OnClose()
|
{
|
if ((DateTime.Now - openTime).TotalSeconds < 2f)
|
{
|
return;
|
}
|
CloseClick();
|
}
|
|
}
|
|
}
|
|
|
|
|