//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, May 08, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class ReikiRootResetWin : Window
|
{
|
[SerializeField] Transform m_ContainerFree;
|
[SerializeField] Text m_FreeRemind;
|
[SerializeField] Text m_ResetRemind1;
|
[SerializeField] Transform m_ContainerCost;
|
[SerializeField] Text m_ResetRemind2;
|
[SerializeField] ItemBehaviour m_Item;
|
[SerializeField] Button m_Reset;
|
[SerializeField] Button m_Close;
|
|
bool freeReset = false;
|
|
ReikiRootModel model { get { return ModelCenter.Instance.GetModel<ReikiRootModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
SkillModel skillModel { get { return ModelCenter.Instance.GetModel<SkillModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Reset.AddListener(OnReset);
|
m_Close.AddListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
freeReset = PlayerDatas.Instance.baseData.LV < model.freeResetLevel;
|
|
Display();
|
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void Display()
|
{
|
m_ContainerFree.SetActive(freeReset);
|
m_ContainerCost.SetActive(!freeReset);
|
|
m_FreeRemind.text = Language.Get("ReikiRoot2", model.freeResetLevel);
|
m_ResetRemind1.text = Language.Get("ResetPoint", model.GetTotalWashPoint());
|
m_ResetRemind2.text = Language.Get("ResetPoint", model.GetTotalWashPoint());
|
|
if (!freeReset)
|
{
|
var count = 0;
|
for (int i = 0; i < model.resetCostItemIds.Length; i++)
|
{
|
var items = packModel.GetItemsById(PackType.Item, model.resetCostItemIds[i]);
|
if (items != null)
|
{
|
foreach (var item in items)
|
{
|
if (!ItemLogicUtility.Instance.IsOverdue(item.guid))
|
{
|
count++;
|
}
|
}
|
}
|
}
|
m_Item.SetItem(model.GetUnLimitTimeResetItem(), 1);
|
m_Item.count.text = StringUtility.Contact(count >= 1 ? "<color=#35e112>" : "<color=#ff0303>", count,
|
"</color><color=#f7f7f7>/", 1, "</color>");
|
}
|
}
|
|
private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType == PlayerDataType.LV)
|
{
|
if (PlayerDatas.Instance.baseData.LV >= model.freeResetLevel && freeReset)
|
{
|
freeReset = false;
|
Display();
|
}
|
}
|
}
|
|
private void OnReset()
|
{
|
if (freeReset)
|
{
|
SetResetFlag();
|
var pak = new CB207_tagCMResetAttrPoint();
|
GameNetSystem.Instance.SendInfo(pak);
|
model.resetReikiRootRecord = true;
|
skillModel.skillMatchRedpointable = true;
|
CloseImmediately();
|
}
|
else
|
{
|
var count = 0;
|
for (int i = 0; i < model.resetCostItemIds.Length; i++)
|
{
|
var items = packModel.GetItemsById(PackType.Item, model.resetCostItemIds[i]);
|
if (items != null)
|
{
|
foreach (var item in items)
|
{
|
if (!ItemLogicUtility.Instance.IsOverdue(item.guid))
|
{
|
count++;
|
break;
|
}
|
}
|
}
|
}
|
if (count < 1)
|
{
|
ItemTipUtility.Show(model.GetUnLimitTimeResetItem());
|
return;
|
}
|
SetResetFlag();
|
var pak = new CB207_tagCMResetAttrPoint();
|
GameNetSystem.Instance.SendInfo(pak);
|
model.resetReikiRootRecord = true;
|
skillModel.skillMatchRedpointable = true;
|
CloseImmediately();
|
}
|
}
|
|
void SetResetFlag()
|
{
|
var win = WindowCenter.Instance.Get<ReikiRootWin>();
|
if (win != null)
|
{
|
win.m_ResetAnimationTime = DateTime.Now;
|
}
|
}
|
}
|
|
}
|
|
|
|
|