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

256 lines
8.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BingoBrain.Core;
using FairyGUI;
using FGUI.bkg_reward_new;
using System;
using DG.Tweening;
using BingoBrain.HotFix;
namespace BingoBrain
{
public class RewardMulNewUI : BaseUI
{
private RewardMulNewUICtrl ctrl;
private RewardMulNewModel model;
private FGUI.bkg_reward_new.com_reward_mul ui;
private Action closeCallback;
private GiftData rewardInfo;
bool hasCoin = false;
decimal m_coinReward = 0;
public RewardMulNewUI(RewardMulNewUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.RewardMulNewUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "bkg_reward_new";
uiInfo.assetName = "com_reward_mul";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = true;
}
protected override void OnInit()
{
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as FGUI.bkg_reward_new.com_reward_mul;
}
protected override void OnOpenBefore(object args)
{
rewardInfo = (GiftData)args;
InitView();
}
protected override void OnOpen(object args)
{
}
private void InitView()
{
// AudioManager.Instance.PlayDynamicEffect(AudioConst.reward_show);
ui.node_coin.visible = false;
ui.node_undo.visible = false;
ui.node_move_out.visible = false;
ui.node_refresh.visible = false;
ui.add_undo.visible = false;
ui.add_move_out.visible = false;
ui.add_refresh.visible = false;
if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig<CommonModel>().PiggyBankSwitch == 1)
{
(ui.btn_mul.GetChild("img_saveingpot") as GImage).visible = true;
}
else
{
(ui.btn_mul.GetChild("img_saveingpot") as GImage).visible = false;
}
for (int i = 0; i < rewardInfo.type.Count; i++)
{
if (rewardInfo.type[i] == (int)GiftType.coin)
{
hasCoin = true;
ui.node_coin.visible = true;
ui.node_coin.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
}
else if (rewardInfo.type[i] == (int)GiftType.undo)
{
ui.node_undo.visible = true;
ui.node_undo.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
ui.add_undo.visible = true;
ui.add_undo.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
}
else if (rewardInfo.type[i] == (int)GiftType.move_out)
{
ui.node_move_out.visible = true;
ui.node_move_out.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
ui.add_move_out.visible = true;
ui.add_move_out.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
}
else if (rewardInfo.type[i] == (int)GiftType.refresh)
{
ui.node_refresh.visible = true;
ui.node_refresh.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
ui.add_refresh.visible = true;
ui.add_refresh.GetChild("lab_num").text = "x" + rewardInfo.reward[i];
}
}
ui.btn_mul.SetClick(() =>
{
GameHelper.ShowVideoAd("reward_lobby", isSuccess =>
{
if (isSuccess)
{
GameHelper.ShowTips("Successfully claimed");
getReward(2);
playCoinAni();
ui.ani_group.visible = true;
ui.t0.Play(() =>
{
ui.ani_group.visible = false;
});
}
});
});
ui.btn_claim.SetClick(() =>
{
ui.btn_claim.SetClick(() => { });
ui.btn_mul.SetClick(() => { });
getReward(1);
playCoinAni();
DOVirtual.DelayedCall(2f, () =>
{
GameHelper.addInterAdnumber();
});
ui.ani_group.visible = true;
ui.t0.Play(() =>
{
ui.ani_group.visible = false;
});
});
}
private void getReward(int rate = 1)
{
for (int i = 0; i < rewardInfo.type.Count; i++)
{
if (rewardInfo.type[i] == (int)GiftType.coin || rewardInfo.type[i] == 101)
{
m_coinReward = rewardInfo.reward[i] * rate;
}
else if (rewardInfo.type[i] == (int)GiftType.undo)
{
int num = GameHelper.GetItemNumber(1) + rewardInfo.reward[i] * rate;
GameHelper.SetItemNumber(1, num);
ui.add_undo.GetChild("lab_num").text = "x" + rewardInfo.reward[i] * rate;
}
else if (rewardInfo.type[i] == (int)GiftType.move_out)
{
int num = GameHelper.GetItemNumber(0) + rewardInfo.reward[i] * rate;
GameHelper.SetItemNumber(0, num);
ui.add_move_out.GetChild("lab_num").text = "x" + rewardInfo.reward[i] * rate;
}
else if (rewardInfo.type[i] == (int)GiftType.refresh)
{
int num = GameHelper.GetItemNumber(2) + rewardInfo.reward[i] * rate;
GameHelper.SetItemNumber(2, num);
ui.add_refresh.GetChild("lab_num").text = "x" + rewardInfo.reward[i] * rate;
}
}
}
private bool isget = false;
private void playCoinAni()
{
if (!hasCoin)
{
GameDispatcher.Instance.Dispatch(GameMsg.rewardMul_close);
CtrlCloseUI();
return;
}
if (isget) return;
isget = true;
// var rewardData = new RewardData();
// int curr_type = 101;
Vector2 end_ = GameHelper.GetUICenterPosition(ui.node_end, true);
// var rewardSingleData = new RewardSingleData(curr_type, m_coinReward, RewardOrigin.Play)
// {
// startPosition = GameHelper.GetUICenterPosition(ui.btn_mul, true),
// endPosition = new Vector2(end_.x + 30, end_.y + 30),
// };
// rewardData.AddReward(rewardSingleData);
// rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange;
// rewardData.AddCompleted(success =>
// {
// if (success)
// {
// DOVirtual.DelayedCall(0.7f, () =>
// {
// GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh);
// GameDispatcher.Instance.Dispatch(GameMsg.Sheep_item_refresh);
// GameDispatcher.Instance.Dispatch(GameMsg.rewardMul_close);
// CtrlCloseUI();
// });
// }
// });
// GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData);
var rewardData = new RewardData
{
displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange
};
var rewardSingleData = new Goda(101, (decimal)m_coinReward, RewardOrigin.Play)
{
startPosition = GameHelper.GetUICenterPosition(ui.btn_mul, true),
endPosition = new Vector2(end_.x + 30, end_.y + 30),
};
rewardData.AddReward(rewardSingleData);
rewardData.AddCompleted(success =>
{
if (success)
{
DOVirtual.DelayedCall(0.7f, () =>
{
GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh);
GameDispatcher.Instance.Dispatch(GameMsg.Sheep_item_refresh);
GameDispatcher.Instance.Dispatch(GameMsg.rewardMul_close);
CtrlCloseUI();
});
}
});
GameDispatcher.Instance.Dispatch(BingoInfo.GetReward, rewardData);
}
}
}