using Spine.Unity; namespace ZooMatch { using System; using System.Linq; using DG.Tweening; using FairyGUI; public class RewardUI : BaseUI { private RewardUICtrl ctrl; private RewardModel model; private FGUI.ZM_Reward_10.com_reward ui; private bool isMultiple = false; private Action closeCallback; public int rate = 2; public RewardUI(RewardUICtrl ctrl) : base(ctrl) { uiName = UIConst.RewardUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "ZM_Reward_10"; uiInfo.assetName = "com_reward"; uiInfo.layerType = UILayerType.Popup; uiInfo.isNeedOpenAnim = true; uiInfo.isNeedCloseAnim = true; uiInfo.isNeedUIMask = true; } protected override void OnInit() { model = moduleManager.GetModel(ModelConst.RewardModel) as RewardModel; } protected override void OnClose() { tween?.Kill(); CommonHelper.FadeOut(ui); } protected override void OnBind() { ui = baseUI as FGUI.ZM_Reward_10.com_reward; } protected override void OnOpenBefore(object args) { InitData(); InitView(); } protected override void OnOpen(object args) { CommonHelper.FadeIn(ui); if (GetRewardOrigin() == RewardOrigin.H5Icon) { uiMask.touchable = false; } } private void InitData() { foreach (var rewardSingleData in ctrl.rewardInfo.GetRewardDataList() .Where(rewardSingleData => rewardSingleData.multiRate == 1)) { rewardSingleData.multiRate = rewardSingleData.origin == RewardOrigin.Play ? GameHelper.GetQuizRate() : GameHelper.GetVideoRate(); } } private void InitView() { AudioManager.Instance.PlayDynamicEffect("reward_show"); if (GetRewardOrigin() == RewardOrigin.H5Icon) { uiMask.touchable = false; } if (GameHelper.IsGiftSwitch() && ConfigSystem.GetConfig().PiggyBankSwitch == 1) (ui.btn_multi.GetChild("img_saveingpot") as GImage).visible = true; var value = GetRewardValue(); ui.text_num.text = GameHelper.Get101Str(value); DOVirtual.DelayedCall(0.2f, () => { var gamwin = FXManager.Instance.SetFx(ui.fx_place, Fx_Type.gamwin, ref closeCallback); gamwin.state.SetAnimation(0, "out", true); }); ui.btn_multi.SetClick(OnClickDouble); ui.btn_collect.SetClick(OnClickClaim); SetName(); SetAvatar(); Set101(); } private Tween tween; public void Set101(decimal cash = -1) { if (cash < 0) { cash = GameHelper.Get101(); } // ui.text_num1.text = $"{GameHelper.Get101Str(cash)}"; } private void SetAvatar() { // GameHelper.SetSelfAvatar(((btn_avatar)ui.btn_av).loader_avatar); } private void SetName() { // GameHelper.SetName(ui.text_name); } private RewardSingleData GetRewardData(int index = 0) { return ctrl.rewardInfo.GetRewardDataList()[index]; } private decimal GetRewardValue(int index = 0) { return GetRewardData(index).value; } private RewardOrigin GetRewardOrigin(int index = 0) { return GetRewardData(index).origin; } private void OnClickClaim() { if (ctrl.rewardInfo.condition == RewardCondition.AD) { GameHelper.ShowInterstitial("interstitial_skipDouble"); } ctrl.GetReward(); CtrlCloseUI(); } private void OnClickDouble() { GameHelper.ShowVideoAd("reward_doubleReward", (isSuccess) => { if (isSuccess) { ctrl.GetReward(rate); CtrlCloseUI(); } }); } } }