Files
JJBB/Assets/Project/Script/LuaScripts/UI/MarketingPacketPageRoot.cs
2024-08-23 15:49:34 +08:00

174 lines
4.9 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using Games.GlobeDefine;
using GCGame.Table;
using GCGame;
using System;
public class MarketingPacketPageRoot : MarketingUIBaseCS
{
public static MarketingPacketPageRoot Instance;
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
Instance = null;
}
public UIContainerBase _SubTagContainer;
public UIContainerSelect _SubTagMenuContainer;
public Image _ActIcon;
public List<Text> _DescList; //页面描述
public UICameraTexture _CameraTexture;
private int _SelectedTagId = -1;
void OnEnable()
{
InitWin();
}
public void InitWin()
{
ReqActList();
}
public void ReqActList()
{
MarketingActAwardPageReq packet = new MarketingActAwardPageReq();
packet.actID = _ActID;
packet.updateOrInit = 1;
packet.SendMsg();
}
private List<MarketingActPacketSubTag> _SubTags;
public List<MarketingActPacketSubTag> SubTags
{
get { return _SubTags; }
}
protected override void MarketingActPageAwardRetDelInner(object tags)
{
MarketingActPacketPageRet _Tags = (MarketingActPacketPageRet)tags;
for (int index = 0; index < _DescList.Count; index++)
{
_DescList[index].gameObject.SetActive(index < _Tags.pageDescList.Count);
}
for(int index = 0; index < _DescList.Count && index < _Tags.pageDescList.Count; index++)
{
_DescList[index].text = StrDictionary.GetServerDictionaryFormatString(_Tags.pageDescList[index]);
}
_SubTags = new List<MarketingActPacketSubTag>();
_SubTags.AddRange(_Tags.subTags);
Tab_ActInfoClient actInfoClient = TableManager.GetActInfoClientByID(_Tags.actId, 0);
if (actInfoClient != null)
{
LoadAssetBundle.Instance.SetImageSprite(_ActIcon, actInfoClient.Icon);
}
if (_Tags.subTags.Count > 0 && _SubTagMenuContainer != null)
{
if(!_SubTagMenuContainer.gameObject.activeInHierarchy)
{
_SubTagMenuContainer.gameObject.SetActive(true);
}
int needShowIndex = 0;
for(int index = 0; index < _Tags.subTags.Count; index++)
{
if (_Tags.subTags[index].tagId == _SelectedTagId)
{
needShowIndex = index;
break;
}
}
_SubTagMenuContainer.InitSelectContent(_Tags.subTags, new List<MarketingActPacketSubTag> { _Tags.subTags[needShowIndex] }, OnMenuSelect);
_SubTagMenuContainer.ForeachActiveItem<MarketingTagDailyRechargeMenuItemCS>((menuItem) =>
{
for(int index = 0; index < _Tags.subTags.Count; index++)
{
if(menuItem._TagId == _Tags.subTags[index].tagId)
{
menuItem.ShowRedIcon(_Tags.subTags[index].state);
break;
}
}
});
}
}
public void OnMenuSelect(object actObj)
{
MarketingActPacketSubTag info = actObj as MarketingActPacketSubTag;
_SelectedTagId = info.tagId;
InitSubTagPage(_SelectedTagId);
}
public virtual void InitSubTagPage(int tagId)
{
for(int index = 0; index < SubTags.Count; index++)
{
if(SubTags[index].tagId == tagId)
{
_SubTagContainer.InitContentItem(SubTags[index].awardTags);
//当前页面是否需要显示模型
ShowCharModel(SubTags[index].modleID);
}
}
}
public void ShowCharModel(int charModelId)
{
if(_CameraTexture != null && charModelId != -1)
{
Tab_CharModel charModel = TableManager.GetCharModelByID(charModelId, 0);
if(charModel != null)
{
_CameraTexture.gameObject.SetActive(true);
_CameraTexture.InitModelPath(charModel.ResPath, charModel);
}else
{
_CameraTexture.gameObject.SetActive(false);
}
}
}
public void GetAwardRet(MarketingActAwardPageGetAwardRet packet)
{
//菜单状态设置为已领取
_SubTagMenuContainer.ForeachActiveItem<MarketingTagDailyRechargeMenuItemCS>((menuItem) =>
{
if (menuItem._TagId == packet.tagID)
{
menuItem.ShowRedIcon(packet.btnState);
}
});
//奖励状态
_SubTagContainer.ForeachActiveItem<MarketingPacketTag>((tagItem) =>
{
if (tagItem._SubTagId == packet.subTagId)
{
tagItem.RefreshTagState(packet.btnState);
}
});
}
public void OnRechargeBtnClick()
{
YuanBaoShopLogic.OpenChargePage();
}
}