Files
RedHotRoast-ios/Assets/Scripts/ModuleUI/Broadcast/BroadcastUI.cs
T

222 lines
6.3 KiB
C#

using System;
using System.Collections.Generic;
using DG.Tweening;
using FGUI.ZM_Common_01;
using Spine.Unity;
using UnityEngine;
using Random = UnityEngine.Random;
namespace RedHotRoast
{
public class BroadcastUI : BaseUI
{
private BroadcastUICtrl ctrl;
private BroadcastModel model;
private com_broadcast1 ui;
public BroadcastUI(BroadcastUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.BroadcastUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "ZM_Common_01";
uiInfo.assetName = "com_broadcast1";
uiInfo.layerType = UILayerType.Highest;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = false;
}
#region
protected override void OnInit()
{
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as com_broadcast1;
}
protected override void OnOpenBefore(object args)
{
InitView();
//ui.y = 241;
if (UIManager.Instance.IsExistUI(UIConst.RainPlayUI))
{
Settop();
}
else
{
Setbuttom();
}
// ui.visible = false;
// if (Screen.safeArea.y != 0)
// {//刘海屏
// ui.y += Screen.safeArea.y;
// }
text_ui = ui.broad_cast_text;
text_ui.btn_broad.SetClick(OpenRecord);
if (ConfigSystem.GetConfig<SubscribePodcast>() == null) return;
config_name_list = SubscribePodcastModel.config_name_list;
config_vip_level_list = SubscribePodcastModel.config_vip_level_list;
GameDispatcher.Instance.AddListener(GameMsg.hideBroadCast, hideEvent);
GameDispatcher.Instance.AddListener(GameMsg.showBroadCast, showEvent);
UICtrlDispatcher.Instance.AddListener(UICtrlMsg.MainUI_Open, Setbuttom);
UICtrlDispatcher.Instance.AddListener(UICtrlMsg.RainPlayUI_Open, Settop);
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
protected override void AddListener()
{
}
protected override void RemoveListener()
{
}
#endregion
private int time_count = 11;
private com_broadcast_text1 text_ui;
private List<string> config_name_list;
private List<string> config_vip_level_list;
private bool main_ui_show = true;
//初始化页面逻辑
private Action closeCallback;
private void InitView()
{
HallManager.Instance.UpdateSecondEvent += timeEvent;
var sk = FXManager.Instance.SetFx<SkeletonAnimation>(ui.broad_cast_text.bg_panel, Fx_Type.fx_broad, ref closeCallback);
sk.state.SetAnimation(0, "animation", true);
ui.broad_cast_text.bg_panel.SetScale(1.45f, 1.1f);
}
private void OpenRecord()
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RecordViewUI_Open);
}
private void hideEvent(object sender = null)
{
Debug.Log("hide");
main_ui_show = false;
ui.visible = false;
}
private void showEvent(object sender = null)
{
Debug.Log("show");
main_ui_show = true;
ui.visible = true;
}
private void Settop(object sender = null)
{
ui.group_.y = 350;
if (Screen.safeArea.y != 0)
{//刘海屏
ui.group_.y += 68;
}
}
private void Setbuttom(object sender = null)
{
ui.group_.y = 170;
if (Screen.safeArea.y != 0)
{//刘海屏
ui.group_.y += 68;
}
}
# if GAME_RELEASE
private const int MaxTime = 300;
#else
private const int MaxTime = 10;
#endif
void timeEvent()
{
time_count++;
Debug.Log(time_count);
Debug.Log(MaxTime);
if (time_count > MaxTime)
{
time_count = 0;
var name_index = Random.Range(0, config_name_list.Count);
var money_index = Random.Range(0, config_vip_level_list.Count);
Debug.Log(text_ui.cast_text.text);
string name = config_name_list[name_index];
if (name.Length > 8)
{
name = name[..8] + "..";
}
string broad_text = String.Format(text_ui.hide_text.text, name,
config_vip_level_list[money_index], DateTimeManager.Instance.GetCurrDateTime());
text_ui.cast_text.text = broad_text;
var lv = GetVipLevelFromName(config_vip_level_list[money_index]);
text_ui.broad_icon_loader.url = $"ui://LG_Common/vip_{lv}";
// Tweener tweener = DOTween.To(() => ui.broad.x,
// x => ui.broad.x = x, 200, 0.5f);
ui.t0.Play();
DOVirtual.DelayedCall(3.5f, () =>
{
// Tweener tweener = DOTween.To(() => ui.broad.x,
// x => ui.broad.x = x, 1080, 0.5f);
ui.t1.Play();
});
string str = name + "#" + config_vip_level_list[money_index] + "#" + DateTimeManager.Instance.GetCurrDateTime();
GameDispatcher.Instance.Dispatch(GameMsg.updateRecordList, str);
}
}
private int GetVipLevelFromName(string name)
{
var vip_level = 1;
switch (name)
{
case "Gold":
vip_level = 1;
break;
case "Platinum":
vip_level = 2;
break;
case "Diamond":
vip_level = 3;
break;
}
return vip_level;
}
}
}