Files
BingoGrassland/Assets/BingoBrain/ModuleUI/Baspt/BasptUI.cs
T
2026-04-20 13:49:36 +08:00

197 lines
5.8 KiB
C#

using FairyGUI;
using System.Linq;
using BingoBrain.Core;
using UnityEngine;
using BingoBrain.HotFix;
using FGUI.JTodo;
using FGUI.ACommon;
using DG.Tweening;
namespace BingoBrain
{
public class BasptUI : BaseUI
{
private BasptUICtrl ctrl;
private BasptModel model;
private com_todo ui;
private float time = 0;
public BasptUI(BasptUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.BasptUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "JTodo";
uiInfo.assetName = "com_todo";
uiInfo.layerType = UILayerType.Normal;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = false;
uiInfo.isTickUpdate = true;
}
#region
public override void OnUpdate()
{
time += Time.deltaTime;
if (time > 1)
{
GameDispatcher.Instance.Dispatch(BingoInfo.UpdateTodoView);
time = 0;
}
}
protected override void OnInit()
{
model = ModuleBoardk.GetModel(ModelConst.BasptModel) as BasptModel;
}
protected override void OnClose()
{
GameDispatcher.Instance.RemoveListener(BingoInfo.GetReward, SetMakeup);
}
protected override void OnBind()
{
ui = baseUI as com_todo;
}
protected override void OnOpenBefore(object args)
{
GameDispatcher.Instance.AddListener(BingoInfo.GetReward, SetMakeup);
if (!GameHelper.IsGiftSwitch())
{
ui.btn_cash.visible = false;
ui.btn_coin.visible = false;
ui.settings.visible=false;
}
else
{
(ui.btn_cash as com_102).gift.selectedIndex = 1;
}
if (Screen.safeArea.y != 0)
{//刘海屏
ui.group_.y += Screen.safeArea.y;
}
InitView();
SetMakeup();
}
protected override void OnOpen(object args)
{
}
#endregion
void SetMakeup(object a = null)
{
com_102 cash = ui.btn_cash as com_102;
com_101 gold = ui.btn_coin as com_101;
DOVirtual.Float(0, (float)PreferencesMgr.Instance.Currency102, 0.5f,
value => { cash.title.text = value.ToString("0.00"); });
DOVirtual.Float(0, PreferencesMgr.Instance.Currency101, 0.5f,
value => { gold.title.text = ((int)value).ToString(); });
}
private void InitView()
{
// ui.list_todo.itemRenderer = OnTodoItemRenderer;
// ui.list_todo.numItems = 3;
initBtn();
ui.settings.SetClick(() =>
{
UICtrlDispatcher.Instance.Dispatch(SkinInfo.JThinkUI_Open);
});
}
private void initBtn()
{
FGUI.JTodo.btn_todo[] btn_arr = new FGUI.JTodo.btn_todo[] { ui.btn_0, ui.btn_1, ui.btn_2 };
for (int i = 0; i < btn_arr.Length; i++)
{
OnTodoItemRenderer(i, btn_arr[i]);
if (GameHelper.IsGiftSwitch()) btn_arr[i].gift.selectedIndex = 1;
}
}
private void OnTodoItemRenderer(int index, GObject item)
{
if (item is FGUI.JTodo.btn_todo todoItem)
{
todoItem.cont_type.selectedIndex = index;
todoItem.SetClick(() =>
{
switch (index)
{
case 0:
OnClickSignIn();
break;
case 1:
OnClickLuckyWheel();
break;
case 2:
OnClickDailyTask();
break;
}
});
todoItem.cont_red.selectedIndex = index switch
{
0 => IsCanSignIn() ? FGUI.JTodo.btn_todo.Red_red : FGUI.JTodo.btn_todo.Red_none,
1 => IsCanLuckyWheel() ? FGUI.JTodo.btn_todo.Red_red : FGUI.JTodo.btn_todo.Red_none,
2 => IsCanDailyTask() ? FGUI.JTodo.btn_todo.Red_red : FGUI.JTodo.btn_todo.Red_none,
_ => todoItem.cont_red.selectedIndex
};
}
}
private void OnClickSignIn()
{
UICtrlDispatcher.Instance.Dispatch(SkinInfo.JTodUI_Open);
}
private void OnClickLuckyWheel()
{
UICtrlDispatcher.Instance.Dispatch(SkinInfo.BingoToyUI_Open);
}
private void OnClickDailyTask()
{
UICtrlDispatcher.Instance.Dispatch(SkinInfo.MissionUI_Open);
}
private bool IsCanSignIn()
{
return GameHelper.IsCanSignInToday();
}
private bool IsCanLuckyWheel()
{
return GameHelper.GetNowTime() >= PreferencesMgr.Instance.NextOpenWheelStampTime;
}
internal bool IsCanDailyTask()
{
bool hasActiveMission = false;
for (int i = 0; i < PreferencesMgr.Instance.ActiveMissions.Count; i++)
{
if (!PreferencesMgr.Instance.ActiveMissions[i].IsReward && PreferencesMgr.Instance.ActiveMissions[i].Progress >= PreferencesMgr.Instance.ActiveMissions[i].MaxProgress)
{
hasActiveMission = true;
break;
}
}
return hasActiveMission;
}
public void OnRefreshView()
{
InitView();
}
}
}