Files
CaptainDiceDubloons_IOS_unity/Assets/Scripts/ModuleUI/LevelReward/LevelRewardUI.cs
T
2026-05-20 12:01:19 +08:00

116 lines
3.0 KiB
C#

using System;
using DG.Tweening;
using FairyGUI;
using FGUI.Lobby_03;
using IgnoreOPS;
using UnityEngine;
namespace ChillConnect
{
public class LevelRewardUI : BaseUI
{
private LevelRewardUICtrl ctrl;
private LevelRewardModel model;
private com_level_reward ui;
protected GProgressBar pb_loading;
private Tweener tweener;
protected int currValue;
public LevelRewardUI(LevelRewardUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.LevelRewardUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "Lobby_03";
uiInfo.assetName = "com_level_reward";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = true;
uiInfo.isNeedCloseAnim = true;
uiInfo.isNeedUIMask = true;
}
#region 生命周期
protected override void OnInit()
{
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as com_level_reward;
}
private Action closeCallback = null;
protected override void OnOpenBefore(object args)
{
int gold = 0;
if (args == null)
{
return;
}
gold = (int)args;
ui.text_reward.text = gold.ToString();
ui.btn_get.SetClick(() =>
{
getReward(gold);
});
ui.btn_close.SetClick(() =>
{
getReward(gold);
});
}
private void getReward(int gold)
{
var start = GameHelper.GetUICenterPosition(ui.btn_get);
var end = GameHelper.GetUICenterPosition(ui.btn_gold.GetChild("text_gold"));
var rewardData = new RewardData();
var rewardSingleData = new RewardSingleData(101, gold, RewardOrigin.AdTask)
{
startPosition = start,
endPosition = new Vector2(end.x - 110, end.y - 110)
};
rewardData.AddReward(rewardSingleData);
rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange;
rewardData.AddCompleted(isScu =>
{
DOVirtual.DelayedCall(0.2f, () =>
{
var startNum = DataMgr.Coin.Value - gold;
DOVirtual.Float(startNum, GameHelper.GetGoldNumber(), 1f,
value => { ui.btn_gold.GetChild("text_gold").text = GameHelper.Get101Str((decimal)value); });
});
});
GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData);
CtrlCloseUI();
}
protected override void OnOpen(object args)
{
}
#endregion
}
}