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

97 lines
2.7 KiB
C#

using GCGame.Table;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
// 开服活动菜单
// 需要额外控制 “红点” 和 “已结束”、“进行中” 标签
public class OpenServiceWinMenuItemCS : UIItemSelect
{
public Text _MenuText;
public Text _HLMenuText;
public Image actStateTips;
public Sprite runingSprite;
public Sprite endSprite;
public GameObject _RedDot;
public Text remainTimeText;
public GameObject _NonInvestment; // 用于投资活动,标记 “未投资” 状态
public int _ActId;
public override void Show(Hashtable hash)
{
base.Show(hash);
MarketingActState actState = (MarketingActState)hash["InitObj"];
ShowActState(actState);
}
private void ShowActState(MarketingActState actState)
{
_ActId = actState.actID;
var actInfo = TableManager.GetActInfoClientByID(actState.actID, 0);
if (_MenuText != null && actInfo != null)
{
_MenuText.text = actInfo.Name.Replace("#r", "\n");
if (_HLMenuText != null)
{
_HLMenuText.text = _MenuText.text;
}
}
else if (actInfo == null)
{
Debug.LogError("找不到活动配置 活动id:" + actState.actID);
}
if (_RedDot != null)
{
_RedDot.SetActive(actState.state > 0);
}
if (remainTimeText)
remainTimeText.text = (actState.state >= 99 ? 99 : actState.state).ToString();
// 用于投资活动, 0.未购买 1.已购买
if (_NonInvestment != null)
{
_NonInvestment.SetActive(actState.ispurchase == 0);
}
RefreshActRunTips(actState.isRunning);
}
public void RefreshActState(int state)
{
if (_RedDot != null)
{
_RedDot.SetActive(state > 0);
}
if (remainTimeText)
remainTimeText.text = (state >= 99 ? 99 : state).ToString();
if (state > 0 == true && _NonInvestment != null)
{
_NonInvestment.SetActive(false);
}
}
public void RefreshActRunTips(int state)
{
if (actStateTips != null)
{
switch (state)
{
case 0:
actStateTips.gameObject.SetActive(false);
break;
case 1:
actStateTips.overrideSprite = runingSprite;
actStateTips.gameObject.SetActive(true);
break;
case 2:
actStateTips.overrideSprite = endSprite;
actStateTips.gameObject.SetActive(true);
break;
}
}
}
}