Files
BingoGrassland/Assets/BingoBrain/ModuleUI/FirstReward/FirstRewardUI.cs
T

162 lines
5.0 KiB
C#
Raw Normal View History

2026-04-20 13:49:36 +08:00
using System;
using BingoBrain.Core;
using BingoBrain.HotFix;
using DG.Tweening;
using FGUI.ACommon;
using Spine.Unity;
using UnityEngine;
namespace BingoBrain
{
public class FirstRewardUI : BaseUI
{
private FirstRewardUICtrl ctrl;
private FirstRewardModel model;
private FGUI.JMain.com_firstreward ui;
private Action closeCallback;
2026-05-08 11:03:00 +08:00
private bool is_get;
2026-04-20 13:49:36 +08:00
public FirstRewardUI(FirstRewardUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.FirstRewardUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "JMain";
uiInfo.assetName = "com_firstreward";
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()
{
}
protected override void OnBind()
{
ui = baseUI as FGUI.JMain.com_firstreward;
}
protected override void OnOpenBefore(object args)
{
2026-05-08 11:03:00 +08:00
if (Screen.safeArea.y != 0)
{//刘海屏
ui.end_point.y += 68;
}
2026-04-20 13:49:36 +08:00
InitView();
}
protected override void OnOpen(object args)
{
2026-05-08 11:03:00 +08:00
//open_sign = (System.Action)args;
2026-04-20 13:49:36 +08:00
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region
protected override void AddListener()
{
}
protected override void RemoveListener()
{
}
#endregion
2026-05-08 11:03:00 +08:00
SkeletonAnimation sk;
2026-04-20 13:49:36 +08:00
//初始化页面逻辑
private void InitView()
{
2026-05-08 11:03:00 +08:00
//ui.money.GetChild("text_gold").text = $"{DataMgr.Coin.Value:N0}";
2026-04-20 13:49:36 +08:00
2026-05-08 11:03:00 +08:00
ui.text_num.text = GameHelper.Get102Str(ConfigSystem.GetConfig<CommonModel>().InitialNum);
FX.Instance.SetFx<SkeletonAnimation>(ui.spine_parent, Fx_Type.fx_first_reward, ps =>
{
// ps.transform.localPosition = new Vector3(0, 195, 0);
sk = ps;
// NAAVsa.PlayAnim(ske_pot, "edie", true);
}, closeCallback);
// 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 = 1;
};
});
};
2026-04-20 13:49:36 +08:00
ui.btn_get.SetClick(GetReward);
2026-05-08 11:03:00 +08:00
// ui.btn_close.SetClick(GetReward);
2026-04-20 13:49:36 +08:00
}
private void GetReward()
{
2026-05-08 11:03:00 +08:00
if (is_get) return;
is_get = true;
var start = GameHelper.GetUICenterPosition(ui.img_gold);
var end = GameHelper.GetUICenterPosition(ui.end_point);
int awardNum = ConfigSystem.GetConfig<CommonModel>().InitialNum;
var rewardData = new RewardData();
var rewardSingleData = new Goda(102, awardNum, RewardOrigin.AdTask)
2026-04-20 13:49:36 +08:00
{
2026-05-08 11:03:00 +08:00
startPosition = start,
endPosition = new Vector2(end.x - 110, end.y - 110)
2026-04-20 13:49:36 +08:00
};
rewardData.AddReward(rewardSingleData);
2026-05-08 11:03:00 +08:00
rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange;
rewardData.AddCompleted(success =>
2026-04-20 13:49:36 +08:00
{
2026-05-08 11:03:00 +08:00
if (success)
{
GameHelper.AddGoldNumber(50);
//var startNum = DataMgr.Coin.Value - awardNum;
// DOVirtual.Float((float)startNum, (float)DataMgr.Coin.Value, 1,
// value => { ui.money.GetChild("text_gold").text = GameHelper.Get101Str((decimal)value); });
// SaveData.GetSaveobject().IsGetFirstReward = true;
// SaveData.saveDataFunc();
PlayerPrefs.SetInt("first_", 1);
DOVirtual.DelayedCall(1f, () =>
{
UICtrlDispatcher.Instance.Dispatch(SkinInfo.FirstRewardUI_Close);
GameDispatcher.Instance.Dispatch(BingoInfo.Update101);
});
}
2026-04-20 13:49:36 +08:00
});
2026-05-08 11:03:00 +08:00
GameDispatcher.Instance.Dispatch(BingoInfo.GetReward, rewardData);
2026-04-20 13:49:36 +08:00
}
}
}