//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, October 19, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using TableConfig;
|
using EnhancedUI.EnhancedScroller;
|
|
namespace Snxxz.UI
|
{
|
|
public class SignInWin : Window
|
{
|
[SerializeField]
|
ScrollerController signInCtrl;
|
[SerializeField]
|
ScrollerController ctnSignCtrl;
|
[SerializeField]
|
Text signInfo;
|
|
SignInModel m_Model;
|
SignInModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SignInModel>());
|
}
|
}
|
|
#region Built-in
|
protected override void BindController()
|
{
|
ctnSignCtrl.lockType = EnhanceLockType.KeepVertical;
|
signInCtrl.lockType = EnhanceLockType.KeepVertical;
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
InitSignIn();
|
InitCtnSign();
|
|
ctnSignCtrl.mScrollRect.verticalNormalizedPosition = 1;
|
|
model.OnSignRefresh += OnSignRefresh;
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
JumpToTodaySign();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
HandleAchievement();
|
}
|
|
protected override void OnPreClose()
|
{
|
model.OnSignRefresh -= OnSignRefresh;
|
AchievementGoto.achievementType = 0;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
private void OnSignRefresh()
|
{
|
InitSignIn();
|
InitCtnSign();
|
}
|
|
private void HandleAchievement()
|
{
|
if (AchievementGoto.achievementType == AchievementGoto.SignInAchievement)
|
{
|
var _cfg = Config.Instance.Get<SuccessConfig>(AchievementGoto.SignInAchievement);
|
if (!model.todaySign || model.surSignNum > 0)
|
{
|
var _num = Mathf.Max(0, model.signNum);
|
var _line = _num / 5;
|
signInCtrl.JumpIndex(_line);
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("Achievement_16");
|
AchievementGoto.achievementType = 0;
|
}
|
}
|
signInCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void InitSignIn()
|
{
|
if (signInCtrl.GetNumberOfCells(signInCtrl.m_Scorller) == 0)
|
{
|
signInCtrl.Refresh();
|
int page = Mathf.CeilToInt((float)model.signAwardList.Count / 5);
|
for (int i = 0; i < page; i++)
|
{
|
signInCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
signInCtrl.Restart();
|
}
|
else
|
{
|
signInCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
signInfo.text = Language.Get("SignIn_3", model.signNum, model.surSignNum);
|
}
|
|
private void InitCtnSign()
|
{
|
if (ctnSignCtrl.GetNumberOfCells(ctnSignCtrl.m_Scorller) == 0)
|
{
|
ctnSignCtrl.Refresh();
|
for (int i = 0; i < model.cntSignList.Count; i++)
|
{
|
ctnSignCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
ctnSignCtrl.Restart();
|
}
|
else
|
{
|
ctnSignCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
private void JumpToTodaySign()
|
{
|
var _num = Mathf.Max(0, model.signNum);
|
var _line = _num / 5;
|
signInCtrl.JumpIndex(_line);
|
}
|
}
|
|
}
|