//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, October 19, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using EnhancedUI.EnhancedScroller;
|
|
namespace vnxbqy.UI
|
{
|
|
public class SignInWin : Window
|
{
|
[SerializeField] ScrollerController m_SignInController;
|
[SerializeField] ScrollerController m_KeepSignInController;
|
[SerializeField] Text m_SignInRemind;
|
|
SignInModel m_Model;
|
SignInModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SignInModel>());
|
}
|
}
|
|
#region Built-in
|
protected override void BindController()
|
{
|
m_KeepSignInController.lockType = EnhanceLockType.KeepVertical;
|
m_SignInController.lockType = EnhanceLockType.KeepVertical;
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
DisplaySignIn();
|
DisplayKeepSignIn();
|
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()
|
{
|
DisplaySignIn();
|
DisplayKeepSignIn();
|
}
|
|
private void HandleAchievement()
|
{
|
if (AchievementGoto.achievementType == AchievementGoto.SignInAchievement)
|
{
|
var _cfg = SuccessConfig.Get(AchievementGoto.SignInAchievement);
|
if (!model.todaySignIn || model.keepSignInCount > 0)
|
{
|
var _num = Mathf.Max(0, model.alreadySignInCount);
|
var _line = _num / 5;
|
m_SignInController.JumpIndex(_line);
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("Achievement_16");
|
AchievementGoto.achievementType = 0;
|
}
|
}
|
m_SignInController.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void DisplaySignIn()
|
{
|
var configs = SignInConfig.GetValues();
|
if (m_SignInController.GetNumberOfCells(m_SignInController.m_Scorller) == 0)
|
{
|
m_SignInController.Refresh();
|
int page = Mathf.CeilToInt((float)configs.Count / 5);
|
for (int i = 0; i < page; i++)
|
{
|
m_SignInController.AddCell(ScrollerDataType.Header, i);
|
}
|
m_SignInController.Restart();
|
}
|
else
|
{
|
m_SignInController.m_Scorller.RefreshActiveCellViews();
|
}
|
|
m_SignInRemind.text = Language.Get("SignIn_3", model.alreadySignInCount, model.keepSignInCount);
|
}
|
|
private void DisplayKeepSignIn()
|
{
|
var configs = ContinueSignInConfig.GetValues();
|
if (m_KeepSignInController.GetNumberOfCells(m_KeepSignInController.m_Scorller) == 0)
|
{
|
m_KeepSignInController.Refresh();
|
for (int i = 0; i < configs.Count; i++)
|
{
|
m_KeepSignInController.AddCell(ScrollerDataType.Header, i);
|
}
|
m_KeepSignInController.Restart();
|
}
|
else
|
{
|
m_KeepSignInController.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
private void JumpToTodaySign()
|
{
|
var _num = Mathf.Max(0, model.alreadySignInCount);
|
var _line = _num / 5;
|
m_SignInController.JumpIndex(_line);
|
}
|
}
|
|
}
|