//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, September 11, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//红包信息
|
namespace vnxbqy.UI
|
{
|
|
public class RedBagTipsWin : Window, SecondWindowInterface
|
{
|
[SerializeField]
|
ScrollerController m_ScrollerController;
|
[SerializeField]
|
ScrollerController m_ScrollerController1;
|
List<int> RedBagSorting = new List<int>();//红包排序
|
public static RedBagTipsWin _RedBagTipsWin;
|
[SerializeField] Button _V6Btn;//V6封红包按钮
|
private int _PlayerID;//获取玩家的ID
|
public bool _RedBool = false;//用来控制判断是否V6红包
|
RedPacketModel m_RedPacket;
|
RedPacketModel redPacket { get { return m_RedPacket ?? (m_RedPacket = ModelCenter.Instance.GetModel<RedPacketModel>()); } }
|
|
#region Built-in
|
public Button close { get; set; }
|
|
protected override void BindController()
|
{
|
if (this is SecondWindowInterface)
|
{
|
var frame = this.GetComponentInChildren<SecondFrameLoader2>();
|
frame.Create();
|
close = frame.GetComponentInChildren<Button>();
|
}
|
|
_RedBagTipsWin = this;
|
}
|
|
protected override void AddListeners()
|
{
|
_V6Btn.onClick.AddListener(V6Button);
|
close.onClick.AddListener(CloseButton);
|
}
|
|
protected override void OnPreOpen()
|
{
|
RedPacketModel.Event_RedEnvelopeToAdd += RedEnvelopeToAdd;//红包的添加
|
RedPacketModel.Event_RedEnvelopeToRefresh += RedEnvelopeToRefresh;//红包的刷新
|
//PlayerRedPacketDatas.Event_DetailsRedEnvelopeRefresh += DetailsRedEnvelopeRefresh;//红包详情刷新
|
m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
|
m_ScrollerController1.OnRefreshCell += BulletinBoard;
|
_PlayerID = (int)PlayerDatas.Instance.baseData.PlayerID;//获取玩家的ID
|
_RedBool = false;
|
OnCreateGridLineCellEntry(m_ScrollerController1);
|
OnCreateGridLineCell(m_ScrollerController);
|
}
|
protected override void OnAfterOpen()
|
{
|
m_ScrollerController1.lockType = EnhanceLockType.LockVerticalBottom;
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
m_ScrollerController1.OnRefreshCell -= BulletinBoard;
|
m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
|
//PlayerRedPacketDatas.Event_DetailsRedEnvelopeRefresh -= DetailsRedEnvelopeRefresh;//红包详情刷新
|
RedPacketModel.Event_RedEnvelopeToAdd -= RedEnvelopeToAdd;//红包的添加
|
RedPacketModel.Event_RedEnvelopeToRefresh -= RedEnvelopeToRefresh;//红包的刷新
|
}
|
|
private void BulletinBoard(ScrollerDataType type, CellView cell)//公告栏生成位置
|
{
|
|
int _key = cell.index;
|
if (!redPacket._DicRedBag.ContainsKey(_key))
|
{
|
return;
|
}
|
Text _particulars = cell.GetComponent<Text>();
|
if (redPacket._DicRedBag[_key].MoneyType == 1)
|
{
|
_particulars.text = string.Format(Language.Get("RedBag_V6"), TimeUtility.GetTime((uint)redPacket._DicRedBag[_key].Time).
|
ToString("yyyy-MM-dd HH:mm"), UIHelper.ServerStringTrim(redPacket._DicRedBag[_key].Name), redPacket._DicRedBag[_key].MoneyNum);
|
}
|
else
|
{
|
|
_particulars.text = string.Format(Language.Get("Z1055"), TimeUtility.GetTime((uint)redPacket._DicRedBag[_key].Time).
|
ToString("yyyy-MM-dd HH:mm"), UIHelper.ServerStringTrim(redPacket._DicRedBag[_key].Name),
|
RedEnvelopeContent(redPacket._DicRedBag[_key].GetWay), redPacket._DicRedBag[_key].MoneyNum);
|
}
|
|
}
|
|
private void OnCreateGridLineCellEntry(ScrollerController gridCtrl)//动态创建
|
{
|
gridCtrl.Refresh();
|
foreach (int key in redPacket._DicRedBag.Keys)
|
{
|
if (redPacket.IsDisplayInFamily(redPacket._DicRedBag[key].GetWay))
|
{
|
gridCtrl.AddCell(ScrollerDataType.Header, key);
|
}
|
}
|
gridCtrl.Restart();
|
}
|
private void OnCreateGridLineCell(ScrollerController gridCtrl)//动态创建
|
{
|
gridCtrl.Refresh();
|
RedBagSorting = RedEnvelopeSorting();
|
int line = Mathf.CeilToInt((float)RedBagSorting.Count / 3);
|
for (int i = 0; i < line; i++)
|
{
|
gridCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
gridCtrl.Restart();
|
}
|
|
private void OnRefreshGridCell(ScrollerDataType type, CellView cell)//属性赋值
|
{
|
int gridlineIndex = cell.index;
|
int childCode = 0;
|
for (childCode = 0; childCode < cell.transform.childCount; childCode++)
|
{
|
int cellCount = (cell.transform.childCount) * gridlineIndex + (childCode + 1);
|
RedBagScripts _redBagS = cell.transform.GetChild(childCode).GetComponent<RedBagScripts>();
|
_redBagS.RedBag.SetActive(false);
|
if (cellCount - 1 < RedBagSorting.Count)
|
{
|
int INdex = cellCount - 1;
|
_redBagS.RedBag.SetActive(true);
|
_redBagS.RedPacket(redPacket._DicRedBag[(RedBagSorting[INdex])].State, RedBagSorting[INdex]);
|
}
|
}
|
}
|
#endregion
|
|
void CloseButton()//关闭按钮
|
{
|
Close();
|
}
|
void V6Button()//V6 红包
|
{
|
int VipLV = PlayerDatas.Instance.baseData.VIPLv;
|
if (VipLV >= 6)
|
{
|
_RedBool = true;
|
WindowCenter.Instance.Open<GiveRedBagTipsWin>();//打开发放红包界面
|
}
|
else
|
{
|
ScrollTip.ShowTip(Language.Get("BossHome_VipNoMeet"));//当前金币不足
|
}
|
|
}
|
List<RedPackConfig> redpack = new List<RedPackConfig>();
|
string RedEnvelopeContent(int _getWay)//红包显示内容
|
{
|
string _str = null;
|
if (_getWay == 0)
|
{
|
_str = Language.Get("AnswerThree_Z");
|
return _str;
|
}
|
if (redpack.Count <= 0)
|
{
|
redpack = RedPackConfig.GetValues();
|
}
|
// var redpack = RedPackConfig.GetValues();
|
foreach (var value in redpack)
|
{
|
if (value.RedEnvelopeType == _getWay)
|
{
|
_str = value.content;
|
return _str;
|
}
|
}
|
return _str;
|
}
|
|
void RedEnvelopeToAdd(FamilyRedPacket _familyRedPacket)//红包的添加
|
{
|
OnCreateGridLineCell(m_ScrollerController);
|
OnCreateGridLineCellEntry(m_ScrollerController1);
|
}
|
void RedEnvelopeToRefresh(FamilyRedPacket _familyRedPacket)//红包的刷新
|
{
|
OnCreateGridLineCell(m_ScrollerController);
|
}
|
void DetailsRedEnvelopeRefresh()//红包详情的刷新
|
{
|
//WindowCenter.Instance.Open<RedDetailsTipsWin>();
|
}
|
List<int> RedEnvelopeSorting()//红包排序
|
{
|
List<int> _list = new List<int>();
|
|
foreach (int key in redPacket._DicRedBag.Keys)
|
{
|
if (redPacket.IsDisplayInFamily(redPacket._DicRedBag[key].GetWay))
|
{
|
_list.Add(key);
|
}
|
|
}
|
_list.Sort(Compare);
|
return _list;
|
}
|
int Compare(int x, int y)
|
{
|
FamilyRedPacket xPack = redPacket._DicRedBag[x];
|
FamilyRedPacket yPack = redPacket._DicRedBag[y];
|
bool isGetX = xPack.State == 1;
|
bool isGetY = yPack.State == 1;
|
if (isGetX.CompareTo(isGetY) != 0) return -isGetX.CompareTo(isGetY);
|
if (xPack.State.CompareTo(yPack.State) != 0) return xPack.State.CompareTo(yPack.State);
|
if (xPack.RedPacketID.CompareTo(yPack.RedPacketID) != 0) return -xPack.RedPacketID.CompareTo(yPack.RedPacketID);
|
return 1;
|
}
|
}
|
|
|
|
}
|
|
|
|
|