//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Sunday, May 05, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class DayQuestDetailsWin : Window
|
{
|
[SerializeField] CyclicScroll m_QuestScroll;
|
[SerializeField] Button m_Calendar;
|
[SerializeField] Button m_LivenessRewardBtn;
|
[SerializeField] Button m_LivenessBtn;
|
[SerializeField] GameObject m_LivenessTip;
|
[SerializeField] Text m_LivenessTxt;
|
[SerializeField] Text m_LivenessTipTxt;
|
IEnumerator m_CheckMouseDown;
|
DailyQuestModel model { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
int LevelUpLiveness = int.Parse(FuncConfigConfig.Get("ImmortalDomainActivePoint").Numerical3);
|
int MaxLLiveness = int.Parse(FuncConfigConfig.Get("ActivityPlace").Numerical1);
|
m_LivenessTipTxt.text = UIHelper.ReplaceNewLine(Language.Get("DayQuestDetailsWin_Text_2", LevelUpLiveness, MaxLLiveness));
|
m_LivenessTip.SetActive(false);
|
}
|
|
protected override void AddListeners()
|
{
|
m_Calendar.AddListener(ShowCalendar);
|
m_LivenessRewardBtn.AddListener(OnLivenessRewardBtnDown);
|
m_LivenessBtn.AddListener(OnLivenessBtnDown);
|
}
|
|
protected override void OnPreOpen()
|
{
|
OnUpdateUsableActivePoint();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
model.usableActivePointUpdateEvent += OnUpdateUsableActivePoint;
|
model.categoryChangeEvent += ShowQuestGroups;
|
model.newDailyQuestOpenEvent += ShowQuestGroups;
|
}
|
|
protected override void OnPreClose()
|
{
|
model.currentDailyQuest = 0;
|
model.wannaLookDailyQuest = 0;
|
m_QuestScroll.Dispose();
|
|
model.newDailyQuestOpenEvent -= ShowQuestGroups;
|
model.categoryChangeEvent -= ShowQuestGroups;
|
model.usableActivePointUpdateEvent -= OnUpdateUsableActivePoint;
|
if (m_CheckMouseDown != null)
|
{
|
StopCoroutine(m_CheckMouseDown);
|
m_CheckMouseDown = null;
|
m_LivenessTip.SetActive(false);
|
}
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
IEnumerator CheckMouseDown()
|
{
|
yield return 0;
|
while (!Input.GetMouseButtonDown(0))
|
{
|
yield return 0;
|
}
|
m_LivenessTip.SetActive(false);
|
m_CheckMouseDown = null;
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
ShowQuestGroups();
|
}
|
|
#endregion
|
|
private void OnLivenessBtnDown()
|
{
|
if (!m_LivenessTip.activeSelf)
|
{
|
m_LivenessTip.SetActive(true);
|
m_CheckMouseDown = CheckMouseDown();
|
StartCoroutine(m_CheckMouseDown);
|
}
|
}
|
|
private void OnLivenessRewardBtnDown()
|
{
|
model.LivenessRewardRedPoint.state = RedPointState.None;
|
WindowCenter.Instance.Open<LivenessRewardWin>();
|
}
|
|
private void ShowQuestGroups()
|
{
|
var quests = model.GetDailyQuests(model.category, true);
|
var index = quests.IndexOf(model.wannaLookDailyQuest);
|
|
var groupDatas = new List<DailyQuestGroup.GroupData>();
|
var max = quests.Count;
|
for (int i = 0; i < max; i++, i++)
|
{
|
DailyQuestData data1 = null;
|
model.TryGetDailyQuest(quests[i], out data1);
|
DailyQuestData data2 = null;
|
if (i + 1 < max)
|
{
|
model.TryGetDailyQuest(quests[i + 1], out data2);
|
}
|
groupDatas.Add(new DailyQuestGroup.GroupData(data1, data2));
|
}
|
|
m_QuestScroll.Init(groupDatas);
|
if (index != -1)
|
{
|
m_QuestScroll.MoveToCenter(index / 2);
|
}
|
}
|
|
private void ShowCalendar()
|
{
|
WindowCenter.Instance.Open<DailyQuestCalendarWin>();
|
}
|
|
private void OnUpdateUsableActivePoint()
|
{
|
m_LivenessTxt.text = model.usableActivePoint.ToString();
|
}
|
|
}
|
|
}
|