197 lines
5.8 KiB
C#
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();
|
|
}
|
|
}
|
|
} |