using FGUI.ZM_Common_01; using IgnoreOPS; using Spine.Unity; namespace BallKingdomCrush { using System; using System.Collections.Generic; using System.Linq; using DG.Tweening; using FairyGUI; using FGUI.LG_Common; using UnityEngine; 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 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(); ui.btn_null.SetClick(() => { }); } 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() { Debug.Log(GetRewardOrigin()); AudioManager.Instance.PlayDynamicEffect("reward_show"); if (GetRewardOrigin() == RewardOrigin.H5Icon) { uiMask.touchable = false; } var value = GetRewardValue(); ui.text_num.text = GameHelper.Get101Str(value); ((btn_claim3)ui.btn_collect).title = 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(); //boost_array = GameHelper.GetRewardBoost(2); int[] weight_array = null; Debug.Log(GetRewardIndex()); if (GetRewardOrigin() == RewardOrigin.Passview) { boost_array = ConfigSystem.GetConfig()[GetRewardIndex()].Boost; weight_array = ConfigSystem.GetConfig()[GetRewardIndex()].weight; } else if (GetRewardOrigin() == RewardOrigin.SignIn) { boost_array = ConfigSystem.GetConfig()[GetRewardIndex()].Boost; weight_array = ConfigSystem.GetConfig()[GetRewardIndex()].weight; } else if (GetRewardOrigin() == RewardOrigin.LuckyWheel) { boost_array = ConfigSystem.GetConfig()[GetRewardIndex()].Boost; weight_array = ConfigSystem.GetConfig()[GetRewardIndex()].weight2; } int rate_all = 0; for (int i = 0; i < weight_array.Length; i++) { rate_all += weight_array[i]; } int random_ = UnityEngine.Random.Range(0, rate_all); int int_ = 0; for (int i = 0; i < weight_array.Length; i++) { int_ += weight_array[i]; if (random_ < int_) { rate = boost_array[i]; break; } } ch_num = value; (ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll); (ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() => { rate_idnex++; ui.btn_multi.title = "" + ch_num * boost_array[rate_idnex % 5]; }); ui.btn_multi.title = "" + ch_num * boost_array[4]; list_1 = new List() { (ui.wheel.GetChild("wheel_") as wheel_).item_0, (ui.wheel.GetChild("wheel_") as wheel_).item_1, (ui.wheel.GetChild("wheel_") as wheel_).item_2, (ui.wheel.GetChild("wheel_") as wheel_).item_3, (ui.wheel.GetChild("wheel_") as wheel_).item_4, (ui.wheel.GetChild("wheel_") as wheel_).item_5, (ui.wheel.GetChild("wheel_") as wheel_).item_6, (ui.wheel.GetChild("wheel_") as wheel_).item_7, }; // list_1[2].img_light.visible = true; for (int i = 0; i < list_1.Count; i++) { list_1[i].type.selectedIndex = (i + scroll_number) % 3; list_1[i].text_rate.text = "X" + boost_array[i % boost_array.Length]; } if (SaveData.GetSaveObject().LargeRewardNum < ConfigSystem.GetCommonConf().FreeClaims) { (ui.btn_multi as FGUI.ZM_Common_01.btn_claim4).state.selectedIndex = 1; } } private Tween tween; public void Set101(decimal ch = -1) { if (ch < 0) { ch = GameHelper.Get101(); } // ui.text_num1.text = $"{GameHelper.Get101Str(ch)}"; } 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 int GetRewardIndex(int index = 0) { return GetRewardData(index).index; } private void OnClickClaim() { if (ctrl.rewardInfo.condition == RewardCondition.AD) { GameHelper.ShowInterstitial("interstitial_skipDouble"); } ctrl.GetReward(); CtrlCloseUI(); } private void OnClickDouble() { if (SaveData.GetSaveObject().LargeRewardNum < ConfigSystem.GetCommonConf().FreeClaims) { StartScroll(); ui.btn_collect.touchable = ui.btn_multi.touchable = false; } else { GameHelper.ShowVideoAd("RewardBox", isSuccess => { if (isSuccess) { StartScroll(); ui.btn_collect.touchable = ui.btn_multi.touchable = false; } }); } } private decimal ch_num; private int[] boost_array; List list_1; private int rate_idnex = 3; private int scroll_number; List rate_list = new List(); private int scroll_type = 1; private int rate; private void StartScroll() { ui.btn_multi.SetClick(() => { }); (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = 5.0f; scroll_type = 2; } private void Scroll() { if (scroll_type == 1) { scroll_number++; rate_list.Clear(); for (int i = 0; i < 8; i++) { rate_list.Add(boost_array[(scroll_number + i) % boost_array.Length]); } for (int i = 0; i < list_1.Count; i++) { list_1[i].type.selectedIndex = (i + scroll_number) % 3; list_1[i].text_rate.text = "X" + rate_list[i]; } (ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() => { rate_idnex++; ui.btn_multi.title = GameHelper.Get101Str((decimal)ch_num * boost_array[rate_idnex % boost_array.Length]); }); (ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll); } else { scroll_number++; rate_list.Clear(); for (int i = 0; i < 8; i++) { rate_list.Add(boost_array[(scroll_number + i) % boost_array.Length]); } // bool need_return = false; if (((ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale < 2f) && (list_1[4].text_rate.text == ("X" + rate))) { //开始领取 // float reward = ch_num * rate; // if (GameHelper.GetVipLevel() >= 1) // { // reward *= 2; // } // GameDispatcher.Instance.Dispatch(GameMsg.Ad_success, reward); ctrl.GetReward(rate); CtrlCloseUI(); SaveData.GetSaveObject().LargeRewardNum++; SaveData.SaveDataFunc(); DOVirtual.DelayedCall(1.5f, () => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RewardboxUI_Close); }); return; } for (int i = 0; i < list_1.Count; i++) { list_1[i].type.selectedIndex = (i + scroll_number) % 3; list_1[i].text_rate.text = "X" + rate_list[i]; } // if (need_return) // { // (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = 0; // return; // } (ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() => { rate_idnex++; ui.btn_multi.title = GameHelper.Get101Str((decimal)ch_num * boost_array[rate_idnex % boost_array.Length]); }); (ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll); (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale - 0.3f; } } } }