//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, October 24, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class VipRechargeWin : Window
|
{
|
[SerializeField] Button closeBtn;
|
[SerializeField] FunctionButton vipPayTitleBtn;
|
[SerializeField] FunctionButton vipTitleBtn;
|
[SerializeField] FunctionButton voucherBtn;
|
[SerializeField] FunctionButtonGroup buttonGroup;
|
[SerializeField] Image m_Line;
|
[SerializeField] Vector3[] m_LinePositions;
|
|
private VipModel m_Model;
|
private VipModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<VipModel>());
|
}
|
}
|
|
TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
|
AddUpRechargeModel addUpRechargeModel { get { return ModelCenter.Instance.GetModel<AddUpRechargeModel>(); } }
|
private VipModel.VipWinType presentWinType = VipModel.VipWinType.Vip;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.onClick.AddListener(OnClose);
|
vipPayTitleBtn.onClick.AddListener(OnVipPay);
|
vipTitleBtn.onClick.AddListener(OnVip);
|
//addUpBtn.onClick.AddListener(OnAddUp);
|
voucherBtn.AddListener(() => {
|
CloseChildWin();
|
WindowCenter.Instance.Open<VoucherWin>();
|
presentWinType = VipModel.VipWinType.AddUp; //改成代金券
|
functionOrder = 2;
|
});
|
}
|
|
//private void OnAddUp()
|
//{
|
// CloseChildWin();
|
// WindowCenter.Instance.Open<AddUpRechargeWin>();
|
// presentWinType = VipModel.VipWinType.AddUp;
|
// functionOrder = 2;
|
//}
|
|
public void OnVipPay()
|
{
|
CloseChildWin();
|
WindowCenter.Instance.Open<RechargeWin>();
|
presentWinType = VipModel.VipWinType.Pay;
|
functionOrder = 0;
|
}
|
|
private void OnVip()
|
{
|
CloseChildWin();
|
WindowCenter.Instance.Open<VipWin>();
|
presentWinType = VipModel.VipWinType.Vip;
|
functionOrder = 1;
|
}
|
|
protected override void OnPreOpen()
|
{
|
DisplayButtonStates();
|
CloseChildWin();
|
model.OnVipOpenPayWinEvent += OnVipWinOpenEvnet;
|
RechargeTipWin.JumpVipPanel += JumpVipPanel;
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
|
}
|
|
private void JumpVipPanel()
|
{
|
functionOrder = 0;
|
buttonGroup.TriggerByOrder(functionOrder);
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
buttonGroup.TriggerByOrder(functionOrder);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
CloseChildWin();
|
model.OnVipOpenPayWinEvent -= OnVipWinOpenEvnet;
|
RechargeTipWin.JumpVipPanel -= JumpVipPanel;
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
if (!WindowJumpMgr.Instance.IsJumpState)
|
{
|
WindowCenter.Instance.Open<MainInterfaceWin>();
|
ModelCenter.Instance.GetModel<TreasureModel>().TryOpenNewGotTreasureWin();
|
}
|
}
|
#endregion
|
|
private void OnClose()
|
{
|
if (treasureModel.newGotTreasureId != 0)
|
{
|
WindowJumpMgr.Instance.ClearJumpData();
|
}
|
CloseImmediately();
|
}
|
|
private void CloseChildWin()
|
{
|
var children = WindowConfig.GetChildWindows("VipRechargeWin");
|
foreach (var window in children)
|
{
|
WindowCenter.Instance.Close(window);
|
}
|
}
|
|
private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType == PlayerDataType.VIPLv)
|
{
|
DisplayButtonStates();
|
}
|
}
|
|
void DisplayButtonStates()
|
{
|
var isAddUpOpen = addUpRechargeModel.SatisfyAnyVipLevel();
|
//addUpBtn.SetActive(isAddUpOpen);
|
m_Line.rectTransform.localPosition = isAddUpOpen ? m_LinePositions[1] : m_LinePositions[0];
|
}
|
|
private void OnVipWinOpenEvnet()
|
{
|
if (presentWinType == model.vipWinType)
|
{
|
return;
|
}
|
switch (model.vipWinType)
|
{
|
case VipModel.VipWinType.Pay:
|
OnVipPay();
|
vipPayTitleBtn.state = TitleBtnState.Click;
|
break;
|
case VipModel.VipWinType.Vip:
|
OnVip();
|
vipTitleBtn.state = TitleBtnState.Click;
|
break;
|
//case VipModel.VipWinType.AddUp:
|
// OnAddUp();
|
// addUpBtn.state = TitleBtnState.Click;
|
// break;
|
}
|
}
|
}
|
|
}
|
|
|
|
|