211 lines
5.8 KiB
C#
211 lines
5.8 KiB
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using GCGame.Table;
|
|||
|
using Module.Log;
|
|||
|
using System;
|
|||
|
|
|||
|
public class NewYearPage : MarketingUIBaseCS
|
|||
|
{
|
|||
|
#region 单例
|
|||
|
private static NewYearPage _instance;
|
|||
|
public static NewYearPage Instance
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
if (_instance != null)
|
|||
|
{
|
|||
|
return _instance;
|
|||
|
}
|
|||
|
|
|||
|
Debug.LogError("无法得到实例");
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void Awake()
|
|||
|
{
|
|||
|
if (_instance == null)
|
|||
|
{
|
|||
|
_instance = this;
|
|||
|
}
|
|||
|
|
|||
|
closeBtn.onClick.AddListener(Close);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
public UIContainerSelect menuContainer; // 列表容器
|
|||
|
public GameObject pageContainer; // 页面容器
|
|||
|
public List<MarketingActState> actPageInfo; // 菜单信息
|
|||
|
public Button closeBtn; // 关闭按钮
|
|||
|
|
|||
|
private int curPageID; // 当前显示页面ID
|
|||
|
|
|||
|
public int New_Order;
|
|||
|
|
|||
|
private void OnEnable()
|
|||
|
{
|
|||
|
Init();
|
|||
|
}
|
|||
|
private void OnDisable()
|
|||
|
{
|
|||
|
if (MarketingActsRoot.Instance() != null)
|
|||
|
{
|
|||
|
MarketingActsRoot.Instance().ClearShowingWin(_ActID);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void Close()
|
|||
|
{
|
|||
|
//UIManager.CloseUI(UIInfo.NewYearPage);
|
|||
|
gameObject.SetActive(false);
|
|||
|
}
|
|||
|
|
|||
|
private void Init()
|
|||
|
{
|
|||
|
AskForInfo();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 设置菜单
|
|||
|
/// </summary>
|
|||
|
/// <param name="menuInfos"></param>
|
|||
|
private void SetMenu(List<MarketingActState> menuInfos)
|
|||
|
{
|
|||
|
if (menuInfos.Count > 0)
|
|||
|
{
|
|||
|
List<MarketingActState> selectMenus = new List<MarketingActState>();
|
|||
|
|
|||
|
int L_ActID = 0;
|
|||
|
int L_openWithAct = 0;
|
|||
|
Tab_ActItemUsePath tab = TableManager.GetActItemUsePathByID(2, 0);
|
|||
|
if (tab != null)
|
|||
|
{
|
|||
|
string parm = tab.ActParam;
|
|||
|
string[] parms = parm.TrimEnd(' ', '"').Split('*');
|
|||
|
if (parms.Length > 1)
|
|||
|
{
|
|||
|
L_ActID = Convert.ToInt32(parms[0]);
|
|||
|
L_openWithAct = Convert.ToInt32(parms[1]);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if (_ActID == L_ActID && openWithAct == L_openWithAct)
|
|||
|
{
|
|||
|
if (menuInfos.Count > New_Order)
|
|||
|
{
|
|||
|
selectMenus.Add(menuInfos[New_Order]);
|
|||
|
openWithAct = -1;
|
|||
|
}
|
|||
|
else if (menuInfos.Count == New_Order)
|
|||
|
{
|
|||
|
selectMenus.Add(menuInfos[menuInfos.Count - 1]);
|
|||
|
openWithAct = -1;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
selectMenus.Add(menuInfos[0]);
|
|||
|
}
|
|||
|
|
|||
|
menuContainer.InitSelectContent(menuInfos, selectMenus, OnMenuSelect);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 加载页面
|
|||
|
/// </summary>
|
|||
|
/// <param name="info"></param>
|
|||
|
private void OnMenuSelect(object info)
|
|||
|
{
|
|||
|
MarketingActState selectMenu = info as MarketingActState;
|
|||
|
if (selectMenu != null)
|
|||
|
{
|
|||
|
if (MarketingActsRoot.Instance()._ShowingWin.ContainsKey(curPageID))
|
|||
|
{
|
|||
|
if (MarketingActsRoot.Instance()._ShowingWin[curPageID] != null)
|
|||
|
{
|
|||
|
MarketingActsRoot.Instance()._ShowingWin[curPageID].SetActive(false);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LogModule.DebugLog("Try to get an activity in Openservice. But is Null, please check _ActId = " + curPageID);
|
|||
|
}
|
|||
|
|
|||
|
MarketingActsRoot.Instance()._ShowingWin.Remove(curPageID);
|
|||
|
}
|
|||
|
|
|||
|
///////////// 临时修复Bug:会出现没及时删除旧页面的情况
|
|||
|
if (MarketingActsRoot.Instance()._ShowingWin.ContainsKey(selectMenu.actID))
|
|||
|
{
|
|||
|
if (MarketingActsRoot.Instance()._ShowingWin[selectMenu.actID] != null)
|
|||
|
{
|
|||
|
MarketingActsRoot.Instance()._ShowingWin[selectMenu.actID].SetActive(false);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LogModule.DebugLog("Try to get an activity in Openservice. But is Null, please check _ActId = " + curPageID);
|
|||
|
}
|
|||
|
|
|||
|
MarketingActsRoot.Instance()._ShowingWin.Remove(selectMenu.actID);
|
|||
|
}
|
|||
|
////////////
|
|||
|
|
|||
|
Tab_ActInfoClient tab = TableManager.GetActInfoClientByID(selectMenu.actID, 0);
|
|||
|
Hashtable parm = new Hashtable();
|
|||
|
parm.Add("ActState", selectMenu);
|
|||
|
|
|||
|
LuaUIManager.Instance.ShowLuaUIAsChild(tab.UIPath, pageContainer, MarketingActsRoot.Instance().LoadUICallBack, parm, true);
|
|||
|
curPageID = selectMenu.actID;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
LogModule.ErrorLog("No this page.");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#region 协议请求与接收
|
|||
|
/// <summary>
|
|||
|
/// 请求
|
|||
|
/// </summary>
|
|||
|
private void AskForInfo()
|
|||
|
{
|
|||
|
MarketingActsReq request = new MarketingActsReq();
|
|||
|
request.actType = _ActID;
|
|||
|
|
|||
|
request.SendMsg();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 接收
|
|||
|
/// </summary>
|
|||
|
/// <param name="marketActsRet"></param>
|
|||
|
protected override void MarketingActRetInner(MarketingActsRet marketActsRet)
|
|||
|
{
|
|||
|
base.MarketingActRetInner(marketActsRet);
|
|||
|
SetMenu(marketActsRet.actIDState);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
// 用于设置活动接收菜单数据后显示的活动
|
|||
|
// 无论存在此活动与否,都要在第一次显示过后,设回 -1
|
|||
|
// -1 不跳转
|
|||
|
private static int openWithAct = -1;
|
|||
|
public static int OpenWithAct
|
|||
|
{
|
|||
|
get { return openWithAct; }
|
|||
|
set { openWithAct = value; }
|
|||
|
}
|
|||
|
}
|