//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, April 08, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class HazyRegionBuyTimesWin : Window
|
{
|
[SerializeField] Text m_BuyTimes;
|
[SerializeField] Text m_Money;
|
[SerializeField] Button m_Buy;
|
|
[SerializeField] Transform m_ContainerUseItem;
|
[SerializeField] Text m_UseItemTimes;
|
[SerializeField] ItemBehaviour m_Item;
|
[SerializeField] Button m_Use;
|
|
[SerializeField] Button m_Close;
|
|
HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.AddListener(CloseClick);
|
m_Buy.AddListener(OnBuyTimes);
|
m_Use.AddListener(OnUseItem);
|
}
|
|
protected override void OnPreOpen()
|
{
|
dailyQuestModel.dailyQuestProgressUpdateEvent += DailyQuestProgressUpdateEvent;
|
packModel.refreshItemCountEvent += RefreshItemCountEvent;
|
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
dailyQuestModel.dailyQuestProgressUpdateEvent -= DailyQuestProgressUpdateEvent;
|
packModel.refreshItemCountEvent -= RefreshItemCountEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void Display()
|
{
|
DisplayMoney();
|
DisplayTimes();
|
DisplayItem();
|
}
|
|
void DisplayMoney()
|
{
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
m_Money.text = Language.Get("HazyRegionBuyTimesCost", dailyQuestOpenTime.BuyNeedMoney);
|
}
|
|
void DisplayTimes()
|
{
|
DailyQuestTimes dailyQuestTimes;
|
|
var dayUseItemTimes = 0;
|
var dayBuyTimes = 0;
|
|
if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
{
|
dayUseItemTimes = dailyQuestTimes.dayUseItemTimes;
|
dayBuyTimes = dailyQuestTimes.dayBuyTimes;
|
}
|
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
|
var times = Mathf.Clamp(dailyQuestOpenTime.DayBuyTimes - dayBuyTimes, 0, dailyQuestOpenTime.DayBuyTimes);
|
var label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
|
m_BuyTimes.text = StringUtility.Contact(label, "/", dailyQuestOpenTime.DayBuyTimes);
|
|
if (dailyQuestOpenTime.DayItemID != 0)
|
{
|
times = Mathf.Clamp(dailyQuestOpenTime.DayItemAddTimes - dayUseItemTimes, 0, dailyQuestOpenTime.DayItemAddTimes);
|
label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
|
|
m_UseItemTimes.text = StringUtility.Contact(label, "/", dailyQuestOpenTime.DayItemAddTimes);
|
}
|
}
|
|
void DisplayItem()
|
{
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
|
m_ContainerUseItem.gameObject.SetActive(dailyQuestOpenTime.DayItemID != 0);
|
if (dailyQuestOpenTime.DayItemID != 0)
|
{
|
m_Item.SetItem(dailyQuestOpenTime.DayItemID, 1);
|
}
|
}
|
|
private void DailyQuestProgressUpdateEvent(int id)
|
{
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
if (config != null && id == config.RelatedID)
|
{
|
DisplayTimes();
|
}
|
}
|
|
private void RefreshItemCountEvent(PackType packType, int index, int itemId)
|
{
|
if (packType == PackType.Item)
|
{
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
if (config != null)
|
{
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
if (dailyQuestOpenTime != null && dailyQuestOpenTime.DayItemID == itemId)
|
{
|
DisplayItem();
|
}
|
}
|
}
|
}
|
|
private void OnUseItem()
|
{
|
DailyQuestTimes dailyQuestTimes;
|
|
var dayUseItemTimes = 0;
|
|
if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
{
|
dayUseItemTimes = dailyQuestTimes.dayUseItemTimes;
|
}
|
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
if (dayUseItemTimes >= dailyQuestOpenTime.DayItemAddTimes)
|
{
|
return;
|
}
|
|
if (!model.TryAddTimes())
|
{
|
return;
|
}
|
|
var itemCount = packModel.GetItemCountByID(PackType.Item, dailyQuestOpenTime.DayItemID);
|
if (itemCount <= 0)
|
{
|
ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(dailyQuestOpenTime.DayItemID);
|
return;
|
}
|
|
var pak = new CA525_tagCMBuyDailyActionCnt();
|
pak.AddType = 1;
|
pak.ActionID = (uint)config.RelatedID;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
|
private void OnBuyTimes()
|
{
|
DailyQuestTimes dailyQuestTimes;
|
|
var dayBuyTimes = 0;
|
|
if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
{
|
dayBuyTimes = dailyQuestTimes.dayBuyTimes;
|
}
|
|
var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
if (dayBuyTimes >= dailyQuestOpenTime.DayBuyTimes)
|
{
|
return;
|
}
|
|
if (!model.TryAddTimes())
|
{
|
return;
|
}
|
|
if (PlayerDatas.Instance.baseData.diamond < dailyQuestOpenTime.BuyNeedMoney)
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
return;
|
}
|
|
var pak = new CA525_tagCMBuyDailyActionCnt();
|
pak.AddType = 0;
|
pak.ActionID = (uint)config.RelatedID;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
}
|
|
}
|
|
|
|
|