using System; using System.Collections.Generic; using System.Linq; using DG.Tweening; using IgnoreOPS; using FairyGUI; using FGUI.Common_01; using FGUI.GameResult_08; using IgnoreOPS; using Newtonsoft.Json; using Spine.Unity; using UnityEngine; using Random = UnityEngine.Random; namespace ChillConnect { public class GameResultUI : BaseUI { private GameResultUICtrl ctrl; private GameResultModel model; private com_end ui; private bool IsWin; private bool IsLevelSuccess; private bool IsH5Reward; private float AwardNum = 20; private Action closeCallback; private int AwardRate = 10; public GameResultUI(GameResultUICtrl ctrl) : base(ctrl) { uiName = UIConst.GameResultUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "GameResult_08"; uiInfo.assetName = "com_end"; uiInfo.layerType = UILayerType.Popup; uiInfo.isNeedOpenAnim = false; uiInfo.isNeedCloseAnim = false; uiInfo.isNeedUIMask = true; } #region 生命周期 protected override void OnInit() { //model = ModuleManager.Instance.GetModel(ModelConst.GameResultModel) as GameResultModel; } protected override void OnClose() { GameDispatcher.Instance.Dispatch(GameMsg.StopArrowTouch, true); // GameHelper.SetCloseResult(false); closeCallback?.Invoke(); // if (IsLevelSuccess && !GameHelper.is_first_login) // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, true); } // protected override void OnBind() { ui = baseUI as com_end; } private SuccessData successData_; protected override void OnOpenBefore(object args) { GameDispatcher.Instance.Dispatch(GameMsg.StopArrowTouch, false); if (Screen.safeArea.y != 0) {//刘海屏 ui.btn_gold.y += 68; } var anim_paly = FXManager.Instance.SetFx(ui.btn_gold.GetChild("gold_anim") as GGraph, Fx_Type.fx_coin, ref closeCallback); anim_paly.state.SetAnimation(0, "animation", true); ((com_money)ui.top_money).btn_ch.title = GameHelper.getDesByKey("ch_out_1"); if (GameHelper.IsGiftSwitch()) ui.switchgift.selectedIndex = 1; ui.tips_text.text = GameHelper.getDesByKey("ww_condition_lv"); SuccessData SuccessDatas = args as SuccessData; AwardNum = SuccessDatas.cash_number; AwardRate = SuccessDatas.rate; IsWin = SuccessDatas.IsWin; IsLevelSuccess = SuccessDatas.IsLevelSuccess; IsH5Reward = SuccessDatas.IsH5Reward; successData_ = SuccessDatas; if (!GameHelper.IsGiftSwitch()) { successData_.cash_number = (int)successData_.cash_number; successData_.rate = 2; } // if (IsLevelSuccess && !IsH5Reward) // { // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PayloadingUI_Open); // // GameHelper.PlayGameTimeEvent(1, () => // { // GameHelper.RequestGameConfig(); // }); // } // else // { // GameHelper.SetCloseResult(true); // } if (!GameHelper.IsGiftSwitch()) { AwardNum = 20; AwardRate = 2; ui.btn_claim.title = "Claim(" + AwardNum + ")"; } else ui.btn_claim.title = "Claim(" + GameHelper.getChString((decimal)AwardNum) + ")"; if (IsWin) { if (PlayerPrefs.GetFloat("soundVolume", 1.0f) > 0f) { AudioManager.Instance.PlayDynamicEffect(AudioConst.Victoriously); } } if (IsWin) { ui.win_lose.selectedIndex = 1; } else { // ui.win_lose.selectedIndex = 0; ui.win_lose.selectedIndex = 2; ui.lab_lose_des.text = GameHelper.getDesByKey("game_resulte_1"); } ui.btn_restart.SetClick(() => { if (!GameHelper.GetCloseResult()) return; GameHelper.addInterAdnumber(); if (!IsWin) { GameHelper.SetLevelstate(3); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, true); GameDispatcher.Instance.Dispatch(GameMsg.sendLog, false); GameDispatcher.Instance.Dispatch(GameMsg.reset_game, false); } UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Close); }); ((btn_claim)ui.com_arrow_end.btn_watchAd).state.selectedIndex = DataMgr.ArrowResultLevel.Value == 1 ? 1 : 0; ((btn_claim)ui.com_arrow_end.btn_watchAd).title = DataMgr.ArrowResultLevel.Value == 1 ? "Free Revive" : "Revive"; ui.com_arrow_end.btn_watchAd.SetClick(() => { if (DataMgr.ArrowResultLevel.Value == 1) { DataMgr.ArrowResultLevel.Value = 0; GameDispatcher.Instance.Dispatch(GameMsg.reset_game, true); } else if (DataMgr.ArrowResultLevel.Value == 0) { GameHelper.ShowVideoAd("gameResult", success => { if (success) { GameDispatcher.Instance.Dispatch(GameMsg.reset_game, true); } }); } CtrlCloseUI(); }); ui.com_arrow_end.btn_restart.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.GameAgainUI_Open); CtrlCloseUI(); }); ui.com_arrow_end.btn_back.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.GameAgainUI_Open); CtrlCloseUI(); }); ui.btn_mult.GetChild("title").text = "Claim X" + AwardRate; if (SuccessDatas.IsH5Reward) ui.com_ch.visible = false; InitView(); if (IsWin) { if (GameHelper.IsGiftSwitch()) ui.text_award.text = GameHelper.Get102Str((decimal)AwardNum); else ui.text_award.text = ((int)AwardNum).ToString(); var sk = FXManager.Instance.SetFx(ui.bg_parent, Fx_Type.fx_win, ref closeCallback); sk.state.SetAnimation(0, "out", true); var sk1 = FXManager.Instance.SetFx(ui.bg_parent_title, Fx_Type.fx_winstar, ref closeCallback); sk1.state.SetAnimation(0, "animation", false); } else { // var sk1 = FXManager.Instance.SetFx(ui.bg_parent_fail, Fx_Type.fx_fail, ref closeCallback); // sk1.state.SetAnimation(0, "animation", true); if (GameHelper.IsGiftSwitch()) ui.text_award.text = GameHelper.Get102Str(DataMgr.Ticket.Value); else ui.text_award.text = DataMgr.Coin.Value.ToString(); } ui.com_ch.btn_cash.title = GameHelper.getDesByKey("ch_out_1"); if (GameHelper.IsGiftSwitch()) { if (SaveData.GetSaveObject().LargeRewardNum < ConfigSystem.GetConfig().FreeClaims) { (ui.btn_mult as btn_claim3).state.selectedIndex = 1; } else if (ConfigSystem.GetConfig().PiggyBankSwitch == 1) { (ui.btn_mult.GetChild("img_saveingpot") as GImage).visible = true; } } ui.btn_gold.GetChild("text_gold").text = $"{DataMgr.Coin.Value:N0}"; ui.top_money.GetChild("text_gold").text = DataMgr.Ticket.Value.ToString(); ui.btn_mult.SetClick(() => { if (!GameHelper.GetCloseResult()) return; if (GameHelper.IsGiftSwitch()) { if (SaveData.GetSaveObject().LargeRewardNum < ConfigSystem.GetConfig().FreeClaims) { ui.com_ch.btn_cash.SetClick(() => { }); ui.btn_claim.SetClick(() => { }); ui.btn_mult.SetClick(() => { }); StartScroll(); } else { GameHelper.ShowVideoAd("reward_lobby", isSuccess => { if (isSuccess) { ui.com_ch.btn_cash.SetClick(() => { }); ui.btn_claim.SetClick(() => { }); ui.btn_mult.SetClick(() => { }); StartScroll(); } }); } } else { GameHelper.ShowVideoAd("reward_lobby", isSuccess => { if (isSuccess) { ui.com_ch.btn_cash.SetClick(() => { }); ui.btn_claim.SetClick(() => { }); ui.btn_mult.SetClick(() => { }); GetReward(AwardNum * 2); } }); } }); ui.btn_claim.SetClick(() => { if (!GameHelper.GetCloseResult()) return; ui.com_ch.btn_cash.SetClick(() => { }); ui.btn_claim.SetClick(() => { }); ui.btn_mult.SetClick(() => { }); GetReward(AwardNum); DOVirtual.DelayedCall(2f, () => { GameHelper.addInterAdnumber(); }); }); //} } private bool isget; private void GetReward(float awardNum) { if (isget) return; isget = true; var rewardData = new RewardData(); int curr_type = 101; Vector2 end_ = GameHelper.GetUICenterPosition(ui.btn_gold, true); if (GameHelper.IsGiftSwitch()) { curr_type = 102; end_ = GameHelper.GetUICenterPosition(ui.top_money, true); } var rewardSingleData = new RewardSingleData(curr_type, (decimal)awardNum, RewardOrigin.Play) { startPosition = GameHelper.GetUICenterPosition(ui.btn_mult, true), endPosition = new Vector2(end_.x - 110, end_.y - 110), }; rewardData.AddReward(rewardSingleData); rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange; rewardData.AddCompleted(success => { if (success) { // RefreshGold((decimal)awardNum); DOVirtual.DelayedCall(0.7f, () => { if (IsLevelSuccess) { GameDispatcher.Instance.Dispatch(GameMsg.reset_game, false); } CtrlCloseUI(); // if (IsLevelSuccess) UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, true); }); } }); GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData); DOVirtual.DelayedCall(1, () => { DOVirtual.Float(0, (float)DataMgr.Ticket.Value, 1, value => { ui.top_money.GetChild("text_gold").text = ((decimal)value).ToString("0.00"); }); }); } private void RefreshGold(decimal coin = -1) { if (coin < 0) { coin = DataMgr.Coin.Value; } var btnCoin = ui.btn_gold as com_gold; CommonHelper.ShowNumAnim(btnCoin.text_gold, coin); } protected override void OnOpen(object args) { } protected override void OnHide() { } protected override void OnDisplay(object args) { } #endregion #region 消息 protected override void AddListener() { HallManager.Instance.UpdateSecondEvent += timeEvent; } protected override void RemoveListener() { HallManager.Instance.UpdateSecondEvent -= timeEvent; } #endregion private int time_count; void timeEvent() { time_count++; if (time_count > 3) { time_count = 0; ui.com_ch.broad.t0.Play(() => { var name_index = Random.Range(0, ConfigSystem.GetConfig().config_name_list.Count); var money_index = Random.Range(0, ConfigSystem.GetConfig().config_money_list.Count); DateTime oldtime = DateTime.Now.AddSeconds(-Random.Range(1 * 3600, 2 * 3600)); // ui.com_ch.broad.cast_text.text = string.Format("Congratulations, [color=#dfad42]{0}[/color] withdrew [color=#90c04e]{1} [/color]dollars", ConfigSystem.GetConfig().config_name_list[name_index], // ConfigSystem.GetConfig().config_money_list[money_index]); string broad_text = String.Format(GameHelper.getDesByKey("makeup_5"), ConfigSystem.GetConfig().config_name_list[name_index], ConfigSystem.GetConfig().config_money_list[money_index]); ui.com_ch.broad.cast_text.text = broad_text; //, oldtime.Hour + ":" + (oldtime.Minute > 10 ? oldtime.Minute : "0" + oldtime.Minute) ui.com_ch.broad.t1.Play(); }); } } //初始化页面逻辑 private void InitView() { if (Screen.safeArea.y != 0) {//刘海屏 ui.top_group.y += 68; } closeCallback = null; if (!GameHelper.IsGiftSwitch()) return; var name_index = Random.Range(0, ConfigSystem.GetConfig().config_name_list.Count); var money_index = Random.Range(0, ConfigSystem.GetConfig().config_money_list.Count); // ui.com_ch.broad.cast_text.text = string.Format("Congratulations, [color=#dfad42]{0}[/color] withdrew [color=#90c04e]{1} [/color]dollars", ConfigSystem.GetConfig().config_name_list[name_index], // ConfigSystem.GetConfig().config_money_list[money_index]); string broad_text = String.Format(GameHelper.getDesByKey("makeup_5"), ConfigSystem.GetConfig().config_name_list[name_index], ConfigSystem.GetConfig().config_money_list[money_index]); ui.com_ch.broad.cast_text.text = broad_text; if (DataMgr.MakeupTaskHistory.Value.Count == 0) { return; } var makeupTaskData = DataMgr.MakeupTaskHistory.Value.Last(); var vo = ConfigSystem.GetConfig().GetData(makeupTaskData.tableId); ui.com_ch.btn_cash.SetClick(() => { if (!GameHelper.GetCloseResult()) return; ui.btn_claim.SetClick(() => { }); ui.btn_mult.SetClick(() => { }); ui.com_ch.btn_cash.SetClick(() => { }); ui.top_money.GetChild("btn_ch").SetClick(() => { }); if (IsWin) { //ui.btn_claim.FireClick(false, true); GetReward(AwardNum); DOVirtual.DelayedCall(2f, () => { GameHelper.addInterAdnumber(); uiCtrlDispatcher.Dispatch(UICtrlMsg.MakeupConfirmUI_Open, makeupTaskData); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Close); }); } else { GameHelper.addInterAdnumber(); if (!IsWin) GameHelper.SetLevelstate(3); uiCtrlDispatcher.Dispatch(UICtrlMsg.MakeupConfirmUI_Open, makeupTaskData); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Close); GameDispatcher.Instance.Dispatch(GameMsg.reset_game, false); } // ui.btn_claim.enabled = false; // ui.btn_mult.enabled = false; }); ui.top_money.GetChild("btn_ch").SetClick(() => { ui.btn_claim.SetClick(() => { }); ui.btn_mult.SetClick(() => { }); ui.com_ch.btn_cash.SetClick(() => { }); ui.top_money.GetChild("btn_ch").SetClick(() => { }); if (IsWin) { //ui.btn_claim.FireClick(false, true); GetReward(AwardNum); DOVirtual.DelayedCall(2f, () => { GameHelper.addInterAdnumber(); uiCtrlDispatcher.Dispatch(UICtrlMsg.MakeupConfirmUI_Open, makeupTaskData); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Close); }); } else { GameHelper.addInterAdnumber(); if (!IsWin) GameHelper.SetLevelstate(3); uiCtrlDispatcher.Dispatch(UICtrlMsg.MakeupConfirmUI_Open, makeupTaskData); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Close); } }); if ((float)DataMgr.Ticket.Value < vo.item_need) { string str = string.Format(GameHelper.getDesByKey("makeup_2"), vo.item_need); ui.com_ch.ch_text.text = str; if ((float)DataMgr.Ticket.Value > vo.item_need) { ui.com_ch.progress.width = 656; ui.com_ch.progress_text.text = GameHelper.Get102Str(vo.item_need) + "/" + GameHelper.Get102Str(vo.item_need); } else { ui.com_ch.progress.width = 656 * ((float)DataMgr.Ticket.Value / vo.item_need); ui.com_ch.progress_text.text = GameHelper.Get102Str(DataMgr.Ticket.Value) + "/" + GameHelper.Get102Str(vo.item_need); } Debug.Log((float)DataMgr.Ticket.Value); } // else if ((float)DataMgr.MakeupTaskH5Time < vo.task_need) // { // ui.com_ch.ch_text.text = "Cumulataive " + (vo.task_need / 60) + @" minutes in ""Game"" to cash out"; // if ((float)DataMgr.MakeupTaskH5Time > vo.task_need) // { // ui.com_ch.progress.width = 656; // ui.com_ch.progress_text.text = (vo.task_need / 60) + "/" + (vo.task_need / 60); // } // else // { // ui.com_ch.progress.width = 656 * ((float)DataMgr.MakeupTaskH5Time / vo.task_need); // ui.com_ch.progress_text.text = Math.Round(((float)(DataMgr.MakeupTaskH5Time / 60)), 2) + "/" + (vo.task_need / 60); // } // // } else if (makeupTaskData.videoCount < vo.ad_need) { string str = string.Format(GameHelper.getDesByKey("makeup_1"), vo.ad_need); ui.com_ch.ch_text.text = str; if (makeupTaskData.videoCount > vo.ad_need) { ui.com_ch.progress.width = 656; ui.com_ch.progress_text.text = vo.ad_need + "/" + vo.ad_need; } else { ui.com_ch.progress.width = 656 * ((float)makeupTaskData.videoCount / vo.ad_need); ui.com_ch.progress_text.text = makeupTaskData.videoCount + "/" + vo.ad_need; } } else if (GameHelper.GetLevel() <= vo.levels_need) { string str = string.Format(GameHelper.getDesByKey("makeup_3"), vo.levels_need); ui.com_ch.ch_text.text = str; ui.com_ch.progress.width = 656 * (GameHelper.GetLevel() - 1) / vo.levels_need; ui.com_ch.progress_text.text = (GameHelper.GetLevel() - 1) + "/" + vo.levels_need; } else { var vo1 = ConfigSystem.GetConfig().GetData(makeupTaskData.tableId + 1); if (vo1 == null) vo1 = vo; string str1 = string.Format(GameHelper.getDesByKey("makeup_2"), vo1.item_need); ui.com_ch.ch_text.text = str1; if ((float)(DataMgr.Ticket.Value - vo.item_need) < vo1.item_need) { string str = string.Format(GameHelper.getDesByKey("makeup_2"), vo1.item_need); ui.com_ch.ch_text.text = str; ui.com_ch.progress.width = 656f * ((float)(DataMgr.Ticket.Value - vo.item_need) / vo1.item_need); ui.com_ch.progress_text.text = GameHelper.Get102Str((DataMgr.Ticket.Value - vo.item_need)) + "/" + GameHelper.Get102Str(vo1.item_need); // Debug.Log((float)DataMgr.Ticket.Value); } else if (makeupTaskData.videoCount < vo1.ad_need) { string str = string.Format(GameHelper.getDesByKey("makeup_1"), vo1.ad_need); ui.com_ch.ch_text.text = str; if (makeupTaskData.videoCount > vo1.ad_need) { ui.com_ch.progress.width = 656f; ui.com_ch.progress_text.text = vo1.ad_need + "/" + vo1.ad_need; } else { ui.com_ch.progress.width = 656f * ((float)makeupTaskData.videoCount / vo1.ad_need); ui.com_ch.progress_text.text = makeupTaskData.videoCount + "/" + vo1.ad_need; } } else if (GameHelper.GetLevel() <= vo1.levels_need) { string str = string.Format(GameHelper.getDesByKey("makeup_3"), vo1.levels_need); ui.com_ch.ch_text.text = str; ui.com_ch.progress.width = 656f * (GameHelper.GetLevel() - 1) / vo1.levels_need; ui.com_ch.progress_text.text = (GameHelper.GetLevel() - 1) + "/" + vo1.levels_need; } else { string str = string.Format(GameHelper.getDesByKey("makeup_3"), vo1.levels_need); ui.com_ch.ch_text.text = str; ui.com_ch.progress.width = 656f * (GameHelper.GetLevel() - 1) / vo1.levels_need; if (GameHelper.GetLevel() > vo1.levels_need) { ui.com_ch.progress.width = 656f; ui.com_ch.progress_text.text = vo1.levels_need + "/" + vo1.levels_need; } else { ui.com_ch.progress.width = 590f * (GameHelper.GetLevel() - 1) / vo1.levels_need; ui.com_ch.progress_text.text = (GameHelper.GetLevel() - 1) + "/" + vo1.levels_need; } } } if (successData_.boost_array != null && GameHelper.IsGiftSwitch()) { (ui.wheel.GetChild("wheel_") as wheel_).t0.Play(Scroll); (ui.wheel.GetChild("wheel_") as wheel_).t1.Play(() => { rate_idnex++; ui.btn_mult.title = "(" + GameHelper.getChString((decimal)successData_.cash_number * successData_.boost_array[rate_idnex % 5]) + ")"; }); ui.btn_mult.title = "(" + GameHelper.getChString((decimal)successData_.cash_number * successData_.boost_array[rate_idnex]) + ")"; 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" + successData_.boost_array[i % successData_.boost_array.Length]; } } } List list_1; private int rate_idnex = 3; private int scroll_number; List rate_list = new List(); private int scroll_type = 1; private void StartScroll() { (ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale = (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(successData_.boost_array[(scroll_number + i) % successData_.boost_array.Length]); } // Debug.Log(JsonConvert.SerializeObject(rate_list)); 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_mult.title = "(" + GameHelper.getChString((decimal)successData_.cash_number * successData_.boost_array[rate_idnex % successData_.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(successData_.boost_array[(scroll_number + i) % successData_.boost_array.Length]); } // bool need_return = false; if (((ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale < 2.2f) && (list_1[4].text_rate.text == ("X" + successData_.rate))) { //开始领取 float reward = successData_.cash_number * successData_.rate; if (GameHelper.IsGiftSwitch()) GetReward(reward); else GetReward(reward); GameDispatcher.Instance.Dispatch(GameMsg.RefreshMakeupData); SaveData.GetSaveObject().LargeRewardNum++; SaveData.saveDataFunc(); 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]; Debug.Log((ui.wheel.GetChild("wheel_") as wheel_).t0.timeScale); } // 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_mult.title = "(" + GameHelper.getChString((decimal)successData_.cash_number * successData_.boost_array[rate_idnex % successData_.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; } } } }