Files
BallCrushBest_GP/Assets/Scripts/ModuleUI/FirstReward/FirstRewardUI.cs
T
2026-04-20 12:06:34 +08:00

153 lines
4.5 KiB
C#

using System;
using UnityEngine;
// using FGUI.G002_main;
using Spine.Unity;
using DG.Tweening;
using FGUI.ZM_Lobby_03;
using FGUI.ZM_Common_01;
using IgnoreOPS;
namespace BallKingdomCrush
{
public class FirstRewardUI : BaseUI
{
private FirstRewardUICtrl ctrl;
private FirstRewardModel model;
private FGUI.ZM_Lobby_03.com_first_award ui;
private Action closeCallback;
private Action open_sign;
private bool is_get = false;
public FirstRewardUI(FirstRewardUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.FirstRewardUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "ZM_Lobby_03";
uiInfo.assetName = "com_first_award";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
#region
protected override void OnInit()
{
model = ModuleManager.Instance.GetModel(ModelConst.FirstRewardModel) as FirstRewardModel;
}
protected override void OnClose()
{
closeCallback();
//open_sign();
}
protected override void OnBind()
{
ui = baseUI as FGUI.ZM_Lobby_03.com_first_award;
}
protected override void OnOpenBefore(object args)
{
if (Screen.safeArea.y != 0)
{//刘海屏
ui.com_gold.y += Screen.safeArea.y;
}
InitView();
}
protected override void OnOpen(object args)
{
//open_sign = (System.Action)args;
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
protected override void AddListener()
{
}
protected override void RemoveListener()
{
}
#endregion
//初始化页面逻辑
private void InitView()
{
ui.com_gold.GetChild("text_gold").text = $"{DataMgr.Coin.Value:N0}";
ui.text_num.text = GameHelper.Get101Str(ConfigSystem.GetCommonConf().InitialNum);
var sk = FXManager.Instance.SetFx<SkeletonAnimation>(ui.spine_parent, Fx_Type.fx_first_reward, ref closeCallback);
sk.state.SetAnimation(0, "newbie_reward_an01", false);
sk.state.Complete += (a) =>
{
sk.state.SetAnimation(0, "newbie_reward_an02", true);
ui.btn_getreward.SetClick(() =>
{
ui.btn_getreward.visible = false;
sk.state.SetAnimation(0, "newbie_reward_an03", false);
sk.state.Complete += (a) =>
{
ui.state.selectedIndex = com_first_award.State_page;
};
});
};
ui.btn_get.SetClick(GetReward);
ui.btn_close.SetClick(GetReward);
}
private void GetReward()
{
if (is_get) return;
is_get = true;
var start = GameHelper.GetUICenterPosition(ui.img_money);
var end = GameHelper.GetUICenterPosition((ui.com_gold as com_gold).img);
int awardNum = ConfigSystem.GetCommonConf().InitialNum;
var rewardData = new RewardData();
var floor = Math.Floor((decimal)awardNum);
var rewardSingleData = new RewardSingleData(101, floor, RewardOrigin.AdTask)
{
startPosition = start,
endPosition = new Vector2(end.x, end.y)
};
rewardData.AddReward(rewardSingleData);
rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange;
rewardData.AddCompleted(success =>
{
if (success)
{
ui.com_gold.GetChild("text_gold").text = $"{awardNum:N0}";
DataMgr.GetFirstReaward.Value = true;
DataMgr.GetFirstReaward.Save();
DOVirtual.DelayedCall(1.5f, () =>
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FirstRewardUI_Close);
});
}
});
GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData);
}
}
}