//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, June 11, 2019
|
//--------------------------------------------------------
|
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
using vnxbqy.UI;
|
using UnityEngine;
|
using System;
|
|
public class FuncSysPrivilegeWin : ILWindow
|
{
|
Button m_Close;
|
Text aciveinfo;
|
Button Active;
|
Image activeImage;
|
Button ActiveAll;
|
ScrollerController tabScroller;
|
ScrollerController ScrollerAward;
|
RectTransform SevenGameObject;
|
RectTransform NormalGameObject;
|
Text count;
|
Button DiscountBuy;
|
Button Buy;
|
Toggle Toggle1;
|
Toggle Toggle3;
|
Toggle Toggle15;
|
Text Money;
|
Text moneyOnSale;
|
|
TextEx orgPrice;
|
|
VipModel vipModel { get { return ModelCenter.Instance.GetModelEx<VipModel>(); } }
|
FuncSysPrivilegeModel model = FuncSysPrivilegeModel.Instance;
|
#region Built-in
|
protected override void BindController()
|
{
|
m_Close = proxy.GetWidgtEx<Button>("Btn_Close");
|
aciveinfo = proxy.GetWidgtEx<Text>("aciveinfo");
|
Active = proxy.GetWidgtEx<Button>("Active");
|
activeImage = proxy.GetWidgtEx<Image>("activeImage");
|
ActiveAll = proxy.GetWidgtEx<Button>("AllActiveButton");
|
tabScroller = proxy.GetWidgtEx<ScrollerController>("ScrollerTab");
|
ScrollerAward = proxy.GetWidgtEx<ScrollerController>("ScrollerAward");
|
SevenGameObject = proxy.GetWidgtEx<RectTransform>("SevenGameObject");
|
NormalGameObject = proxy.GetWidgtEx<RectTransform>("NormalGameObject");
|
count = proxy.GetWidgtEx<Text>("count");
|
DiscountBuy = proxy.GetWidgtEx<Button>("DiscountBuy");
|
Buy = proxy.GetWidgtEx<Button>("buy");
|
Toggle1 = proxy.GetWidgtEx<Toggle>("Toggle1");
|
Toggle3 = proxy.GetWidgtEx<Toggle>("Toggle3");
|
Toggle15 = proxy.GetWidgtEx<Toggle>("Toggle15");
|
Money = proxy.GetWidgtEx<Text>("Money");
|
moneyOnSale = proxy.GetWidgtEx<Text>("moneyOnSale");
|
|
var obj = Buy.FindComponent("Text", "Txt_orgPrice");
|
if (obj != null)
|
orgPrice = obj as TextEx;
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.SetListener(()=> {
|
CloseWin<FuncSysPrivilegeWin>();
|
});
|
|
ActiveAll.SetListener(ActiveAllPrivilege);
|
DiscountBuy.SetListener(()=>{
|
vipModel.CTG(model.DiscountCTGID);
|
});
|
|
Toggle1.SetListener(onToggleChange);
|
Toggle3.SetListener(onToggleChange);
|
Toggle15.SetListener(onToggleChange);
|
Buy.SetListener(onBuy);
|
}
|
|
protected override void OnPreOpen()
|
{
|
FuncSysPrivilegeModel.Instance.OnPrivilegeEvent += OnPrivilegeEvent;
|
model.SelectEvent += OnSelectEvent;
|
GameEvent.playerDataRefreshEvent += OnPlayerDataRefreshEvent;
|
tabScroller.OnRefreshCell += OnRefreshTabCell;
|
ScrollerAward.OnRefreshCell += OnRefreshAwardCell;
|
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
vipModel.rechargeCountEvent += rechargeCountEvent;
|
|
model.selectType = model.GetDefaultSelectType();
|
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
Display();
|
tabScroller.JumpIndex(model.OpenPrivilegeIDs.IndexOf(model.selectType));
|
}
|
|
protected override void OnPreClose()
|
{
|
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
FuncSysPrivilegeModel.Instance.OnPrivilegeEvent -= OnPrivilegeEvent;
|
GameEvent.playerDataRefreshEvent -= OnPlayerDataRefreshEvent;
|
model.SelectEvent -= OnSelectEvent;
|
tabScroller.OnRefreshCell -= OnRefreshTabCell;
|
ScrollerAward.OnRefreshCell -= OnRefreshAwardCell;
|
vipModel.rechargeCountEvent -= rechargeCountEvent;
|
}
|
|
#endregion
|
|
void onBuy()
|
{
|
var index = Toggle1.isOn ? 0 : Toggle3.isOn ? 1 : 2;
|
vipModel.CTG(model.BuyCountCTGID[index]);
|
}
|
|
void onToggleChange(bool isOn)
|
{
|
DisplayMoney();
|
}
|
|
|
|
private void rechargeCountEvent(int id)
|
{
|
DisplayBuy();
|
}
|
void DisplayBuy()
|
{
|
VipModel.RechargeCount rechargeCount;
|
vipModel.TryGetRechargeCount(model.DiscountCTGID, out rechargeCount);
|
|
if (rechargeCount.totalCount < CTGConfig.Get(model.DiscountCTGID).TotalBuyCount)
|
{
|
SevenGameObject.SetActiveIL(true);
|
NormalGameObject.SetActiveIL(false);
|
|
}
|
else
|
{
|
SevenGameObject.SetActiveIL(false);
|
NormalGameObject.SetActiveIL(true);
|
}
|
}
|
|
void OnFuncStateChangeEvent(int id)
|
{
|
if (model.funcIDToPrivilegeID.ContainsKey(id))
|
{
|
CreateTabScroller();
|
DisplayPrivilege();
|
}
|
}
|
void CreateTabScroller()
|
{
|
tabScroller.Refresh();
|
for (int i = 0; i < model.OpenPrivilegeIDs.Count; i++)
|
{
|
tabScroller.AddCell(ScrollerDataType.Header, model.OpenPrivilegeIDs[i]);
|
}
|
tabScroller.Restart();
|
tabScroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
void CreateAwardScroller()
|
{
|
ScrollerAward.Refresh();
|
for (int i = 0; i < model.PrivilegeIDItems[model.selectType].Count; i++)
|
{
|
ScrollerAward.AddCell(ScrollerDataType.Header, i);
|
}
|
ScrollerAward.Restart();
|
|
}
|
|
private void OnRefreshTabCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<FuncPrivilegeTabCell>();
|
if (_cell == null)
|
{
|
return;
|
}
|
_cell.Display(cell.index);
|
}
|
|
private void OnRefreshAwardCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<FuncPrivilegeAwardCell>();
|
_cell.Display(cell.index);
|
}
|
|
|
|
void OnSelectEvent()
|
{
|
DisplayPrivilege();
|
}
|
|
void Display()
|
{
|
CreateTabScroller();
|
DisplayPrivilege();
|
DisplayBuy();
|
DisplayMoney();
|
count.text = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default3).ToString();
|
|
}
|
|
|
void DisplayMoney()
|
{
|
var index = Toggle1.isOn ? 0 : Toggle3.isOn ? 1 : 2;
|
OrderInfoConfig config;
|
vipModel.TryGetOrderInfo(model.BuyCountCTGID[index], out config);
|
Money.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat((int)config.PayRMBNum));
|
if (orgPrice != null)
|
{
|
orgPrice.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off);
|
orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(config.m_PayRMBNum));
|
}
|
|
vipModel.TryGetOrderInfo(model.DiscountCTGID, out config);
|
var discount = UIHelper.GetMoneyFormat((int)config.PayRMBNum);
|
vipModel.TryGetOrderInfo(model.BuyCountCTGID[0], out config);
|
moneyOnSale.text = string.Format("{0} {1}", Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat((int)config.m_PayRMBNum)), Language.Get("PayMoneyNum", discount));
|
}
|
|
void DisplayPrivilege()
|
{
|
aciveinfo.text = Language.Get("FuncPrivilege1",
|
Language.Get("FuncPrivilegeName"+ model.selectType), model.PrivilegeIDItems[model.selectType].Count);
|
|
var getState = model.GetStateByPrivilegeID(model.selectType);
|
activeImage.SetActiveIL(getState != 0);
|
Active.SetActiveIL(getState == 0);
|
Active.SetListener(ActivePrivilege);
|
|
tabScroller.m_Scorller.RefreshActiveCellViews();
|
CreateAwardScroller();
|
}
|
|
void OnPlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType != PlayerDataType.default3)
|
{
|
return;
|
}
|
count.text = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default3).ToString();
|
}
|
|
void ActivePrivilege()
|
{
|
var itemCount = PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default3);
|
if (itemCount == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("FuncPrivilege2");
|
return;
|
}
|
|
IL_CB211_tagCMActivateFuncSysPrivilege pack = new IL_CB211_tagCMActivateFuncSysPrivilege();
|
pack.ActivateCount = 1;
|
pack.ActivateFuncSysIDList = new byte[] { (byte)model.selectType };
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
|
void OnPrivilegeEvent()
|
{
|
Display();
|
tabScroller.JumpIndex(Math.Max(model.OpenPrivilegeIDs.IndexOf(model.selectType) - 2, 0));
|
}
|
|
void ActiveAllPrivilege()
|
{
|
var itemCount = (int)PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default3);
|
if (itemCount == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("FuncPrivilege2");
|
return;
|
}
|
List<int> tmp = new List<int>();
|
for (int i = 0; i < model.OpenPrivilegeIDs.Count; i++)
|
{
|
if (model.GetStateByPrivilegeID(model.OpenPrivilegeIDs[i]) == 0)
|
{
|
tmp.Add(model.OpenPrivilegeIDs[i]);
|
}
|
}
|
|
var showinfo = itemCount >= tmp.Count ? "FuncPrivilege3" : "FuncPrivilege4";
|
var useCnt = itemCount >= tmp.Count ? tmp.Count : itemCount;
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get(showinfo, useCnt), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
IL_CB211_tagCMActivateFuncSysPrivilege pack = new IL_CB211_tagCMActivateFuncSysPrivilege();
|
|
byte[] ids = new byte[useCnt];
|
for (int i = 0; i < useCnt; i++)
|
{
|
ids[i] = (byte)tmp[i];
|
}
|
pack.ActivateCount = (byte)ids.Length;
|
pack.ActivateFuncSysIDList = ids;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
});
|
|
|
}
|
}
|