using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using FairyGUI; using BingoBrain.Core; using BingoBrain; using FGUI.G003_play_animal; using Newtonsoft.Json; using Unity.VisualScripting; using Random = UnityEngine.Random; using DG.Tweening; using Spine.Unity; using System.Linq; using System.IO; using AppsFlyerSDK; using BingoBrain; using BingoBrain.HotFix; using FGUI.Common_animal; using FGUI.ACommon; namespace BingoBrain { public class SheepPlayUI : BaseUI { private SheepPlayUICtrl ctrl; private SheepPlayModel model; private FGUI.G003_play_animal.sheep_play ui; public SheepPlayUI(SheepPlayUICtrl ctrl) : base(ctrl) { uiName = UIConst.SheepPlayUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "G003_play_animal"; uiInfo.assetName = "sheep_play"; uiInfo.layerType = UILayerType.Normal; uiInfo.isNeedOpenAnim = false; uiInfo.isNeedCloseAnim = false; uiInfo.isNeedUIMask = false; } private Action closeCallback; private Action clearSpinepool; private static string jsonFilePath = Path.Combine(Application.persistentDataPath, "card_json.json"); private int width_max = 7; private int height_max = 6; private readonly float card_width = 7.3f; //视觉宽度 private readonly float card_height = 7.3f; //视觉高度 private float real_card_width = 7.3f; private float real_card_height = 7.3f; private float card_width_slot = 6.497f; // 宽度 乘以一个比例,此项目为0.9 public readonly float card_scale = 5.2f; //正常的缩放 public static float card_slot_scale = 4.628f; // 宽度 乘以一个比例,此项目为0.9 private int card_type_max = 15; private int card_layer = 2; private int all_card_numbers = 0; private int slot_max = 7; private int extra_max = 5; private Card_item last_card_item; // private sheep_card refresh_item; //private List card_item_list = new List(); // private List[] stacked_list = new List(); private List left_extra_list = new List(); private List right_extra_list = new List(); private List> map_list = new List>(); private List> card_item_list = new List>(); private List slot_list = new List(); private List refresh_list = new List(); private List out_list = new List(); private List pool_list = new List(); private string jsonstr = null; private float bg_x = -22.8f; private float bg_y = GameObject.Find("card_bg").transform.position.y + 0.5f; private int[] layer_array; private int[] type_array; private int[] all_array; public int ad_numbers = 0; public int ad_times = 0; private bool is_first_login_go_to_h5 = false; #region 生命周期 protected override void OnInit() { } void UpdateEvent() { long t = SaveData.GetSaveobject().failed_pack_time; if (SaveData.GetSaveobject().failed_pack_time > GameHelper.GetNowTime()) { ui.btn_failpack.visible = true; long time_ = t * 1000 - GameHelper.getNowTimeByMillisecond(); DateTime oldDate = new DateTime(1970, 1, 1); oldDate = oldDate.AddMilliseconds(time_); ui.btn_failpack.GetChild("lab_time").text = DateTimeBoardk.Instance.DateTimeToFFFString(oldDate); } else { ui.btn_failpack.visible = false; } } protected override void OnClose() { Hall.Instance.UpdateSecondEvent -= GameHelper.AddGameTime; Hall.Instance.UpdateSecondEvent -= timeEvent; Hall.Instance.UpdateSecondEvent -= GameHelper.SetGameTimes; Hall.Instance.UpdateEvent -= UpdateEvent; closeCallback?.Invoke(); } protected override void OnBind() { ui = baseUI as FGUI.G003_play_animal.sheep_play; //model = ModuleManager.Instance.GetModel(ModelConst.SheepPLayUIModel) as SheepPLayUIModel; } protected override void OnOpenBefore(object args) { GameHelper.PostFunnelLogin("enterHall"); if (args != null) need_show_openui = (bool)args; layer_array = new int[] { 19, }; type_array = new int[] { 14, }; all_array = new int[] { 30, }; // SetDiffArray(); Sprite e = Resources.Load("card/card_sprite/1"); real_card_width = e.bounds.size.x * 5.2f; real_card_height = e.bounds.size.y * 5.2f; ad_times = PlayerPrefs.GetInt("ad_time", 0); ad_numbers = PlayerPrefs.GetInt("ad_number", 1); CreateGoldtimeList(); // PreferencesMgr.Instance.Currency102=99999; // PreferencesMgr.Instance.WatchVideoSum=99999; // ui.btn_head.SetClick(() => // { // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MenuUI_Open); // GameHelper.showGameUI = false; // }); //ui.btn_game_menu.SetClickDownEffect(1.0f); ui.btn_setting.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(SkinInfo.SettingUI_Open); GameHelper.showGameUI = false; // ui.btn_game_menu.hide.Play(); }); ui.gold.GetChild("btn_buygold").SetClick(() => { uiCtrlDispatcher.Dispatch(UICtrlMsg.BuygoldUI_Open); }); setBtnAds(); ui.btn_noads.SetClick(() => { if (!SaveData.GetSaveobject().is_get_packreward && !SaveData.GetSaveobject().is_get_removead) { if (ui.btn_noads.GetChild("img_ad").visible) { PackRewardData param = new PackRewardData(); param.isAutoPop = false; param.isNeedScroll = true; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PackrewardUI_Open, param); } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PackrewardUI_Open); } } else if (SaveData.GetSaveobject().is_get_packreward) { PackRewardData param = new PackRewardData(); param.isAutoPop = false; param.isNeedScroll = true; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PackrewardUI_Open, param); } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PackrewardUI_Open); } GameHelper.showGameUI = false; }); Hall.Instance.UpdateSecondEvent += GameHelper.AddGameTime; Hall.Instance.UpdateSecondEvent += timeEvent; Hall.Instance.UpdateSecondEvent += GameHelper.SetGameTimes; Hall.Instance.UpdateEvent += UpdateEvent; timeEvent(); LoadData(); // is_first_login_go_to_h5 = GameHelper.GetBoolByChance(ConfigSystem.GetConfig().loginhallrate / 100f); InitView(); var loginModel = GameHelper.GetLoginModel(); if (true && !loginModel.new_player) { //var isShow = false; // Debug.Log($"GotoH5 =====isShow:{ConfigSystem.GetConfig().loginhallrate} {is_first_login_go_to_h5}"); if (is_first_login_go_to_h5) { } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, need_show_openui); GameHelper.is_first_login = false; } } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, need_show_openui); GameHelper.is_first_login = false; } if (GameHelper.GetGameday() != DateTime.Now.Day) { PlayerPrefs.SetInt("_time", 0); SaveData.GetSaveobject().time_task_record = new List(); GameHelper.SetGameday(); } ui.btn_menu_.SetClick(() => { uiCtrlDispatcher.Dispatch(SkinInfo.MenuUI_Open); }); // var ske1 = FX.Instance.SetFx((ui.btn_look_ad as btn_look_ad).gp, Fx_Type.fx_main_ad, closeCallback); // ske1.state.SetAnimation(0, "animation", true); FX.Instance.SetFx((ui.btn_look_ad as btn_look_ad).gp, Fx_Type.fx_main_ad, sk => { SkeletonAnimation cardSpine = sk; NAAVsa.PlayAnim(cardSpine, "animation", true); }, closeCallback); } public void setBtnAds() { btn_noads btn_ = (ui.btn_noads as btn_noads); if (!SaveData.GetSaveobject().is_get_removead && !SaveData.GetSaveobject().is_get_packreward) { btn_.t0.Play(-1, 0, null); } else if (SaveData.GetSaveobject().is_get_removead && SaveData.GetSaveobject().is_get_packreward) { btn_.t0.Stop(); btn_.visible = false; } else if (SaveData.GetSaveobject().is_get_packreward) { btn_.t0.Stop(); btn_.t1.Play(); //ui.btn_noads.state.selectedIndex = 0; btn_.img_pack.visible = false; btn_.img_ad.visible = true; } else if (SaveData.GetSaveobject().is_get_removead) { btn_.t0.Stop(); btn_.t1.Play(); btn_.img_pack.visible = true; btn_.img_ad.visible = false; //ui.btn_noads.state.selectedIndex = 1; } } private void OnBackToHall(object a = null) { for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { if (card_item_list[i][j] != null) { GameObject.Destroy(card_item_list[i][j].sheep_card); } } } SaveJson(); // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RainPlayUI_Close); GameDispatcher.Instance.Dispatch(GameMsg.BackMainScene); CtrlCloseUI(); } private int clear_nubers = 0; private bool main_ui_show = true; private List Paidcoins_list = ConfigSystem.GetConfig().dataList; private int btn_look_ad_showtime = 0; private int time_count = 11; private com_broadcast_text1 text_ui; void timeEvent() { int time = SaveData.GetSaveobject()._goldtime[0]; if (time + Paidcoins_list[0].receive_CD < GameHelper.GetNowTime()) { (ui.gold as new_topgold).state.selectedIndex = 2; // ui.gold.red.visible = true; } else (ui.gold as new_topgold).state.selectedIndex = 1; ui.btn_task.red.visible = SaveData.getRed(); if (!GameHelper.IsGiftSwitch()) return; // time_count++; // if (time_count > 11) // { // ui.broadcast.visible = false; // } // if (time_count > 30) // { // time_count = 0; // var name_index = Random.Range(0, exBrPoolModel.config_name_list.Count); // var money_index = Random.Range(0, exBrPoolModel.config_money_list.Count); // ui.broadcast.visible = true; // if (text_ui == null) text_ui = ui.broadcast.GetChild("broad_cast_text") as com_broadcast_text1; // text_ui.cast_text.text = String.Format(text_ui.show_text.text, exBrPoolModel.config_name_list[name_index], // exBrPoolModel.config_money_list[money_index], DateTimeBoardk.Instance.GetCurrDateTime()); // text_ui.t0.Play(() => { ui.broadcast.visible = false; }); // } btn_look_ad_showtime++; if (btn_look_ad_showtime > 15) ui.btn_look_ad.visible = false; if ((!SaveData.GetSaveobject().is_get_packreward || !SaveData.GetSaveobject().is_get_removead) && !SaveData.GetSaveobject().is_autopack_show && (Time.time > (ConfigSystem.GetConfig().Activetimes * 60))) { Window Popup = GRoot.inst.GetChild("Popup") as Window; if (Popup.GetChildren().Length > 0) return; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PackrewardUI_Open); SaveData.GetSaveobject().is_autopack_show = true; SaveData.GetSaveobject().is_autopack_show_day = DateTime.Now.Day; SaveData.saveDataFunc(); } SetSaveingPotBtn(); if (GameHelper.IsGiftSwitch()) UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BroadcastUI_Open); // UICtrlDispatcher.Instance.Dispatch(SkinInfo.BroadcastUI_Open); } void CreateGoldtimeList() { // 获取保存对象 var saveObject = SaveData.GetSaveobject(); // 检查_goldtime是否为null或者长度与Paidcoins_list.Count不相等 if (saveObject._goldtime == null || saveObject._goldtime.Length != Paidcoins_list.Count) { // 重置_goldtime,并创建一个新的数组,长度为Paidcoins_list.Count saveObject._goldtime = new int[Paidcoins_list.Count]; } } void setBtntask() { ui.btn_task.number_text.text = "Lv." + GameHelper.getBattleLv(); if (GameHelper.getBattleLv() >= ConfigSystem.GetConfig().dataList.Count) { ui.btn_task.progress.value = 100; } else { ui.btn_task.progress.value = ((float)GameHelper.GetGameExp() / ConfigSystem.GetConfig().dataList[GameHelper.getBattleLv()].Eliminating_quantity) * 100; } } void SetDiffArray(object a = null) { // layer_array = ConfigSystem.GetConfig().tiers; // type_array = ConfigSystem.GetConfig().patterntypes; // all_array = new int[ConfigSystem.GetConfig().patternnumber.Length]; // for (int i = 0; i < ConfigSystem.GetConfig().patternnumber.Length; i++) // { // all_array[i] = ConfigSystem.GetConfig().patternnumber[i] / 3; // } } private bool need_show_openui = true; protected override void OnOpen(object args) { } protected override void OnHide() { } protected override void OnDisplay(object args) { } #endregion #region 消息 protected override void AddListener() { GameDispatcher.Instance.AddListener(GameMsg.Sheep_item_refresh, SetItemNumber); GameDispatcher.Instance.AddListener(GameMsg.Slot_refresh, SetSlotNumber); GameDispatcher.Instance.AddListener(GameMsg.Remake_state, ReceiveRemakState); GameDispatcher.Instance.AddListener(GameMsg.Gold_refresh, SetTopCurr); AppDispatcher.Instance.AddListener(CsjInfoC.App_Focus_False, SaveJson); GameDispatcher.Instance.AddListener(GameMsg.reset_game, ReSetGame); GameDispatcher.Instance.AddListener(GameMsg.card_click, CardClick); GameDispatcher.Instance.AddListener(GameMsg.RefreshGame, RefreshGame); GameDispatcher.Instance.AddListener(BingoInfo.Update101, SetTopCurr); GameDispatcher.Instance.AddListener(BingoInfo.Update102, SetTopCurr); GameDispatcher.Instance.AddListener(GameMsg.Ad_success, ad_success); PreferencesDispatcher.Instance.AddListener(PreferencesMsg.playerAvatarId, UpdataAvatar); // MainThreadDispatcher.Instance.AddListener(MainThreadMsg.App_Focus_True, backGame); GameDispatcher.Instance.AddListener(GameMsg.backHall, OnBackToHall); GameDispatcher.Instance.AddListener(GameMsg.sendLog, SendLog); // DataDispatcher.Instance.AddListener(PreferencesMsg.currency102, SetTopCurr); // DataDispatcher.Instance.AddListener(PreferencesMsg.currency101, SetTopCurr); GameDispatcher.Instance.AddListener(GameMsg.checkGameState, checkGameState); GameDispatcher.Instance.AddListener(GameMsg.resurgence, Resurgence); GameDispatcher.Instance.AddListener(GameMsg.resurgence_close, ChangeSlotState); GameDispatcher.Instance.AddListener(GameMsg.RefreshSaveingPot, SetSaveingPotBtn); GameDispatcher.Instance.AddListener(GameMsg.ThreeDaysGiftUIClose, checkThreeGift); } protected override void RemoveListener() { GameDispatcher.Instance.RemoveListener(GameMsg.Sheep_item_refresh, SetItemNumber); GameDispatcher.Instance.RemoveListener(GameMsg.Slot_refresh, SetSlotNumber); GameDispatcher.Instance.RemoveListener(GameMsg.Remake_state, ReceiveRemakState); GameDispatcher.Instance.RemoveListener(GameMsg.Gold_refresh, SetTopCurr); // AppDispatcher.Instance.RemoveListener(CsjInfoC.App_Focus_False, SaveJson); GameDispatcher.Instance.RemoveListener(GameMsg.reset_game, ReSetGame); GameDispatcher.Instance.RemoveListener(GameMsg.card_click, CardClick); GameDispatcher.Instance.RemoveListener(GameMsg.RefreshGame, RefreshGame); GameDispatcher.Instance.RemoveListener(GameMsg.Update101, SetTopCurr); GameDispatcher.Instance.RemoveListener(GameMsg.Update102, SetTopCurr); GameDispatcher.Instance.RemoveListener(GameMsg.Ad_success, ad_success); PreferencesDispatcher.Instance.RemoveListener(PreferencesMsg.playerAvatarId, UpdataAvatar); GameDispatcher.Instance.RemoveListener(GameMsg.backHall, OnBackToHall); GameDispatcher.Instance.RemoveListener(GameMsg.sendLog, SendLog); GameDispatcher.Instance.RemoveListener(GameMsg.resurgence, Resurgence); GameDispatcher.Instance.RemoveListener(GameMsg.resurgence_close, ChangeSlotState); GameDispatcher.Instance.RemoveListener(GameMsg.RefreshSaveingPot, SetSaveingPotBtn); GameDispatcher.Instance.RemoveListener(GameMsg.ThreeDaysGiftUIClose, checkThreeGift); } #endregion public static Dictionary adCallbackInfo = new Dictionary(); private void checkThreeGift(object obj = null) { // if (SaveData.GetSaveobject().is_get_ThreeDaysGift) { var isToday = GameHelper.InToday(SaveData.GetSaveobject().last_got_three_gift_time, 0, true); int three_gift_got_index = SaveData.GetSaveobject().three_gift_got_index; if (three_gift_got_index > (int)rewardState.day3) { ui.btn_three_day.visible = false; } else if (!isToday) { ui.btn_three_day.GetChild("red").visible = true; } else { ui.btn_three_day.GetChild("red").visible = false; } // } } //初始化页面逻辑 private void InitView() { #if UNITY_EDITOR ui.btn_clear.visible = true; #endif ui.btn_clear.SetClick(() => { clear_nubers++; if (clear_nubers < 5) return; PlayerPrefs.DeleteAll(); if (File.Exists(jsonFilePath)) File.Delete(jsonFilePath); File.WriteAllText(jsonFilePath, null); card_item_list.Clear(); SaveData.saveobject = new Saveobject(); SaveData.saveDataFunc(); }); // (ui.btn_h5 as btn_web).state.selectedIndex = 1; if (Screen.safeArea.y != 0) {//刘海屏 ui.move_group1.y += Screen.safeArea.y; } // ui.move_group1.TweenMove(new Vector3(ui.group_.x, 17 + Screen.safeArea.y, 0), 0.3f); if (GameHelper.IsGiftSwitch()) { // ui.btn_add.gift.selectedIndex = 1; // ui.btn_money.visible = true; if (PlayerPrefs.GetInt("FirstReward", 0) == 0) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FirstRewardUI_Open); } ui.btn_h5.visible = true; } if (!GameHelper.IsGiftSwitch() && (ConfigSystem.GetConfig().WVswitch == 1)) { ui.btn_h5.visible = true; } ui.fairyBatching = true; int level = GameHelper.GetLevel(); ui.level_text.text = "level " + level; if (jsonstr == null) { SetLeveldiff();// InitPosList();// CreatCard();// } else { // InitPosList(); CreatSaveItem(); } RefreshCardState(true); ui.btn_out.state.selectedIndex = 0; ui.btn_back.state.selectedIndex = 1; ui.btn_refresh.state.selectedIndex = 2; ui.btn_back.SetClick(BackFunc); ui.btn_refresh.SetClick(RefreshFunc); ui.btn_look_ad.SetClick(LookAd); ui.btn_h5.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(SkinInfo.H5UI_Open); }); ui.btn_back.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SheepwindowUI_Open, 1); }); ui.btn_out.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SheepwindowUI_Open, 0); }); ui.btn_refresh.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SheepwindowUI_Open, 2); }); ui.btn_buyslot.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuyslotUI_Open); GameHelper.showGameUI = false; }); ui.btn_task.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NewTaskUI_Open); GameHelper.showGameUI = false; }); SetItemNumber(null); SetSlotNumber(); SetTopCurr(); ui.gold.SetClick(() => { //uiCtrlDispatcher.Dispatch(UICtrlMsg.MainUI_Open); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.BuygoldUI_Open); GameHelper.showGameUI = false; }); if (SaveData.GetSaveobject().is_autopack_show_day != DateTime.Now.Day) { SaveData.GetSaveobject().is_autopack_show = false; } ; setBtntask(); checkGameState(); if (!is_first_login_go_to_h5) { ChangeSlotState();//检测是否死亡 } if (SaveData.GetSaveobject().start_time == 0) SaveData.GetSaveobject().start_time = GameHelper.GetNowTime(); if ((SaveData.GetSaveobject().battle_pass_time + ConfigSystem.GetConfig().dataList[0].Passportrewards_CD * 24 * 3600) < GameHelper.GetNowTime()) { SaveData.GetSaveobject().battle_pass_time = (int)GameHelper.GetNowTime(); GameHelper.ResetGameExp(); SaveData.GetSaveobject().battle_pass_freelist.Clear(); SaveData.GetSaveobject().battle_pass_paylist.Clear(); SaveData.GetSaveobject().is_get_battlepass = false; } UpdataAvatar(); if (GameHelper.IsGiftSwitch()) { if (PlayerPrefs.GetInt("FirstReward", 0) == 0) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FirstRewardUI_Open); } } if (ConfigSystem.GetConfig().PiggyBankSwitch == 0 || !GameHelper.IsGiftSwitch()) { ui.btn_saveingpot.visible = false; } ui.btn_saveingpot.SetClick(() => { uiCtrlDispatcher.Dispatch(UICtrlMsg.SaveingPotUI_Open); }); (ui.btn_saveingpot as btn_saveingpot).text_nowcash.text = SaveingPotHelper.getCashString(SaveData.GetSaveobject().saveingpot_cash); ui.btn_failpack.SetClick(() => { float complte_progress = showResurgence(); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.ResurgenceUI_Open, complte_progress); }); FX.Instance.SetFx((ui.btn_saveingpot as btn_saveingpot).ani_parent, Fx_Type.fx_savepot_icon, sk => { // cardSpine = sk; // NAAVsa.AddCompleteEvent(cardSpine, OnChangeCardFinish); // OnChangeCardFinish(null); NAAVsa.PlayAnim(sk, "animation", true); }, closeCallback); DOVirtual.DelayedCall(1, () => { if (ConfigSystem.GetConfig().PiggyBankSwitch == 1 && GameHelper.IsGiftSwitch()) { if (GameHelper.GetLoginModel().new_player) { uiCtrlDispatcher.Dispatch(UICtrlMsg.SaveingPotUI_Open); } else { if (DateTime.Now.Day != PlayerPrefs.GetInt("pot_day", 0)) { uiCtrlDispatcher.Dispatch(UICtrlMsg.SaveingPotUI_Open); PlayerPrefs.SetInt("pot_day", DateTime.Now.Day); } } } }); // var ske_pot = FX.Instance.SetFx((ui.btn_saveingpot as btn_saveingpot).ani_parent, Fx_Type.fx_savepot_icon, closeCallback); // ske_pot.state.SetAnimation(0, "animation", true); } private void SetSaveingPotBtn(object a = null) { (ui.btn_saveingpot as btn_saveingpot).text_nowcash.text = SaveingPotHelper.getCashString(SaveData.GetSaveobject().saveingpot_cash); } void Resurgence(object state) { OutFunc(true); GameHelper.IsTemporaryEnd = false; } public void checkGameState(object a = null) { if (out_list.Count == 0)//是否通关 { bool all_clear = CheckSuccess(); if (all_clear) { //通关成功 float[] cash_array = GameHelper.GetRewardValue(2); // var temp = new { IsWin = true, cash_number = 0, rate = 2, IsLevelSuccess = true, IsH5Reward = false }; DOVirtual.DelayedCall(0.75f, () => { var temp = new SuccessData(); temp.IsWin = true; temp.cash_number = cash_array[0]; temp.rate = (int)cash_array[1]; temp.IsLevelSuccess = true; temp.IsH5Reward = false; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Open, temp); }); } } } private void UpdataAvatar(object obj = null) { btn_menu head = ui.btn_menu_ as btn_menu; var avatarId = PreferencesMgr.Instance.PlayerAvatarId; EyesHarmony.SetAvatarToLoader(avatarId, head.head_loader as GLoader); } void LookAd() { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RewardboxUI_Open); GameHelper.showGameUI = false; ui.btn_look_ad.visible = false; } void RefreshGame(object obj = null) { GameHelper.is_first_login = false; first_reset = false; ChangeSlotState();//检测是否死亡 } public void SetTopCurr(object a = null) { new_topgold btn_gold = ui.gold as new_topgold; btn_gold.number_text.text = $"{PreferencesMgr.Instance.Currency101:N0}"; new_topmoney btn_money = ui.money as new_topmoney; btn_money.number_text.text = PreferencesMgr.Instance.Currency102.ToString("0.00"); btn_money.btn_cashout.SetClick(() => { var makeupTaskData = PreferencesMgr.Instance.MakeupTaskHistory.Last(); Debug.Log(PreferencesMgr.Instance.MakeupTaskHistory.Count); Debug.Log(makeupTaskData); makeup vo = null; foreach (makeup item in ConfigSystem.GetConfig().dataList) { if (item.id == makeupTaskData.tableId) vo = item; } Debug.Log(vo); // PreferencesMgr.Instance.Currency102=99999; // //makeupTaskData.videoCount = 50; if (vo == null) { return; } var leftCash = (double)Math.Max(vo.item_need - PreferencesMgr.Instance.Currency101, 0); //com_box.text_more.SetVar("left", GameHelper.Get101Str((decimal)leftCash)).FlushVars(); // com_box.pb_num.max = vo.item_need; // com_box.pb_num.value = vo.item_need - leftCash; // pbTxt.text = // $"{GameHelper.Get101Str((decimal)(vo.item_need - leftCash))}/{GameHelper.Get101Str((decimal)com_box.pb_num.max)}"; GameHelper.showGameUI = false; uiCtrlDispatcher.Dispatch(SkinInfo.MakeupConfirmUI_Open, makeupTaskData); }); } void ReceiveRemakState(object state) { if ((bool)state) {//复活 GameHelper.IsTemporaryEnd = false; OutFunc(true); } else {//重置 UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Open, true); Debug.Log("99999999999999999opengame1"); } } void SetItemNumber(object a = null) { int numbers = GameHelper.GetItemNumber(0); if (numbers == 0) { ui.btn_out.number_text.visible = false; ui.btn_out.img_add.visible = true; ui.btn_out.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SheepwindowUI_Open, 0); GameHelper.showGameUI = false; }); } else { ui.btn_out.number_text.text = numbers.ToString(); ui.btn_out.number_text.visible = true; ui.btn_out.img_add.visible = false; ui.btn_out.SetClick(() => { OutFunc(); }); } numbers = GameHelper.GetItemNumber(1); if (numbers == 0) { ui.btn_back.number_text.visible = false; ui.btn_back.img_add.visible = true; ui.btn_back.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SheepwindowUI_Open, 1); GameHelper.showGameUI = false; }); } else { ui.btn_back.number_text.text = numbers.ToString(); ui.btn_back.number_text.visible = true; ui.btn_back.img_add.visible = false; ui.btn_back.SetClick(() => { BackFunc(); }); } numbers = GameHelper.GetItemNumber(2); if (numbers == 0) { ui.btn_refresh.number_text.visible = false; ui.btn_refresh.img_add.visible = true; ui.btn_refresh.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.SheepwindowUI_Open, 2); GameHelper.showGameUI = false; }); } else { ui.btn_refresh.number_text.text = numbers.ToString(); ui.btn_refresh.number_text.visible = true; ui.btn_refresh.img_add.visible = false; ui.btn_refresh.SetClick(() => { RefreshFunc(); }); } } void SetSlotNumber(object a = null) { if (!SaveData.GetSaveobject().have_slot) { slot_max = 7; ui.btn_buyslot.visible = true; } else { slot_max = 8; ui.btn_buyslot.visible = false; } } void SetLeveldiff() { int level = GameHelper.GetLevel(); ui.level_text.text = "level " + level; // if (level > type_array.Length) level = type_array.Length; // card_type_max = type_array[level - 1]; // card_layer = layer_array[level - 1]; // all_card_numbers = all_array[level - 1]; extra_max = 0; } private bool first_reset = true; void ReSetGame(object a = null) { if (first_reset) { first_reset = false; return; } SetLeveldiff(); slot_list.Clear(); out_list.Clear(); last_card_item = null; SaveData.GetSaveobject().all_card_numbers = 0; SaveData.GetSaveobject().card_layer = 2; InitPosList(); CreatCard(); RefreshCardState(true); GameHelper.SetLevelstate(3); GameHelper.IsTemporaryEnd = false; SaveData.GetSaveobject().clear_number = 0; for (int i = 0; i < SaveData.GetSaveobject().usePropsNum.Length; i++) { SaveData.GetSaveobject().usePropsNum[i] = 0; } } void RefreshFunc() { int item_num = GameHelper.GetItemNumber(2); if (item_num <= 0) return; List temp_list = new List(); for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { if (!card_item_list[i][j].in_slot && !card_item_list[i][j].is_out) { temp_list.Add(card_item_list[i][j]); refresh_list.Add(new Vector3(card_item_list[i][j].pos_x, card_item_list[i][j].pos_y, card_item_list[i][j]._layer)); } } } for (int i = 0; i < temp_list.Count; i++) { card_item_list[(int)refresh_list[i].z].Remove(temp_list[i]); } for (int i = 0; i < temp_list.Count; i++) { int index = Random.Range(0, refresh_list.Count); temp_list[i].pos_x = refresh_list[index].x; temp_list[i].pos_y = refresh_list[index].y; temp_list[i]._layer = (int)refresh_list[index].z; card_item_list[(int)refresh_list[index].z].Add(temp_list[i]); refresh_list.RemoveAt(index); // GTweener tweener = temp_list[i].sheep_card.TweenMove(new Vector2(temp_list[i].pos_x, temp_list[i].pos_y), 0.2f); // 位置从当前值渐变到新的坐标 // tweener.SetEase(EaseType.Linear); temp_list[i].sheep_card.transform.DOLocalMove(new Vector3(temp_list[i].pos_x, temp_list[i].pos_y, 300 - temp_list[i]._layer), 0.2f); } for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { int k = i; int l = j; var temp_ = card_item_list[k][l]; // card_item_list[k][l].sheep_card.SetClick(() => // { // cardClick(temp_); // }); } } DOVirtual.DelayedCall(0.5f, () => { RefreshCardState(); }); GameHelper.SetItemNumber(2, item_num - 1); SetItemNumber(); SaveData.GetSaveobject().usePropsNum[2]++; } void OutFunc(bool isfree = false) { if (slot_list.Count > 0) { int item_num = GameHelper.GetItemNumber(0); if (item_num <= 0 && !isfree) return; int out_list_layer = 0; for (int i = 0; i < out_list.Count; i++) { if (out_list_layer < (out_list[i].out_layer + 1)) out_list_layer = out_list[i].out_layer + 1; } for (int i = 0; i < 3; i++) { if (i < slot_list.Count) { out_list.Add(slot_list[i]); slot_list[i].in_slot = false; slot_list[i].can_click = true; slot_list[i].out_layer = out_list_layer; if (slot_list[i] == last_card_item) last_card_item = null; slot_list[i].sheep_card.transform.DOLocalMove(new Vector3((i - 1) * card_width_slot, -23.4f + out_list_layer * 0.5f, 300 - out_list_layer), 0.2f); slot_list[i].pos_x = (i - 1) * card_width_slot; slot_list[i].pos_y = -23.4f + out_list_layer * 0.5f; card_item_list[slot_list[i]._layer].Remove(slot_list[i]); if (out_list_layer >= card_item_list.Count) card_item_list.Add(new List()); card_item_list[out_list_layer].Add(slot_list[i]); slot_list[i]._layer = out_list_layer; slot_list[i].is_out = true; } } for (int i = 0; i < 3; i++) { if (slot_list.Count > 0) slot_list.RemoveAt(0); } for (int k = 0; k < slot_list.Count; k++) { slot_list[k].sheep_card.transform.DOLocalMove(new Vector3(k * (card_width_slot) + bg_x, bg_y, 1), 0.2f); } if (!isfree) GameHelper.SetItemNumber(0, item_num - 1); RefreshCardState(); SetItemNumber(); SaveData.GetSaveobject().usePropsNum[0]++; } } void BackFunc() { if (last_card_item != null) { int item_num = GameHelper.GetItemNumber(1); if (item_num <= 0) return; slot_list.Remove(last_card_item); last_card_item.in_slot = false; last_card_item.can_click = true; ChangeSlotState(); if (!last_card_item.is_out) { last_card_item.sheep_card.transform.DOScale(new Vector3(card_scale, card_scale, 1), 0.2f); } last_card_item.sheep_card.transform.DOLocalMove(new Vector3(last_card_item.pos_x, last_card_item.pos_y, 300 - last_card_item._layer), 0.2f).OnComplete(() => { RefreshCardState(); last_card_item = null; }); for (int k = 0; k < slot_list.Count; k++) { slot_list[k].sheep_card.transform.DOLocalMove(new Vector3(k * (card_width_slot) + bg_x, bg_y, 1), 0.2f); } GameHelper.SetItemNumber(1, item_num - 1); SetItemNumber(); SaveData.GetSaveobject().usePropsNum[1]++; } else { GameHelper.ShowTips("There are no actions that can be undone"); } } void CardClick(object obj = null) { if (GameHelper.IsTemporaryEnd) { return; } string name = (string)obj; Card_item card_self = null; for (int i = 0; i < card_item_list.Count; i++) { if (card_item_list[i].Count == 0) continue; for (int j = 0; j < card_item_list[i].Count; j++) { if (card_item_list[i][j].sheep_card.IsDestroyed() || card_item_list[i][j].sheep_card == null) continue; if (card_item_list[i][j].sheep_card.gameObject.name == name) { card_self = card_item_list[i][j]; break; } } } if (card_self == null) return; is_resurgence = false; if (Audio.Instance.IsOpenEffect) { Debug.Log("???????????yinyueeeeeeeeeeee"); Audio.Instance.PlayDynamicEffect("ui_ButtonDefault"); } if (card_self.can_click && !card_self.in_slot) { int insert_indet = -1; for (int i = 0; i < slot_list.Count; i++) { if (slot_list[i].card_type == card_self.card_type) { insert_indet = i + 1; } } if (insert_indet < 0) insert_indet = slot_list.Count; slot_list.Insert(insert_indet, card_self); card_self.in_slot = true; card_self.can_click = false; card_self.pos_x = card_self.sheep_card.transform.position.x; card_self.pos_y = card_self.sheep_card.transform.position.y; if (card_self.is_out) { out_list.Remove(card_self); //card_self.is_out = false; } // ui.SetChildIndex(card_self.sheep_card, ui.GetChildrenCount()); RefreshCardState(); if (insert_indet < slot_list.Count) { for (int i = insert_indet + 1; i < slot_list.Count; i++) { slot_list[i].sheep_card.transform.DOLocalMove(new Vector3(i * card_width_slot + bg_x, bg_y, 1), 0.2f); } } last_card_item = card_self; ChangeSlotState(); // card_self.sheep_card.transform.DOMoveZ(110, 0); card_self.sheep_card.GetComponent().sortingOrder = 1000; card_self.sheep_card.transform.DOScale(new Vector3(card_scale * 1.2f, card_scale * 1.2f, 1), 0.1f) .OnComplete(() => { card_self.sheep_card.transform.DOScale(new Vector3(card_slot_scale, card_slot_scale, 1), 0.2f); card_self.sheep_card.transform.DOLocalMove(new Vector3(bg_x + insert_indet * card_width_slot, bg_y, 1), 0.2f).OnComplete(() => { card_self.sheep_card.GetComponent().sortingOrder = 0; }); }); // card_self.sheep_card.tobig.Play(() => // { // card_self.sheep_card.tosmall.Play(); // GTweener tweener = card_self.sheep_card.TweenMove(new Vector2((insert_indet) * (card_width - 1) + ui.slot.x + 8, ui.slot.y + 13), 0.2f); // 位置从当前值渐变到新的坐标 // tweener.SetEase(EaseType.Linear); // 设置缓动类型 // if (insert_indet < slot_list.Count) // { // for (int i = insert_indet + 1; i < slot_list.Count; i++) // { // GTweener tweener1 = slot_list[i].sheep_card.TweenMove(new Vector2((i) * (card_width - 1) + ui.slot.x + 8, ui.slot.y + 13), 0.2f); // 位置从当前值渐变到新的坐标 // tweener1.SetEase(EaseType.Linear); // } // } // tweener.OnComplete(() => // { // changeSlotState(); // Debug.Log("111111111111"); // }); // }); } } public List GetGameConfig() { var conf_num = PlayerPrefs.GetInt("game_conf_num", 1); var GameConfig = ConfigSystem.GetConfig(); conf_num = conf_num != GameHelper.conf_num ? conf_num : GameHelper.conf_num; List configData = GameConfig.game_conf[1]; Debug.Log($"GetGameConfig==== {conf_num}, exist== {GameConfig.game_conf.ContainsKey(conf_num)}"); if (GameConfig.game_conf.ContainsKey(conf_num)) { configData = GameConfig.game_conf[conf_num]; } // PlayerPrefs.SetString("game_config_data",configData); return configData; } void InitPosList() { map_list.Clear(); left_extra_list.Clear(); right_extra_list.Clear(); float parent_x = 0 - (3) * card_width; float parent_y = 0 + (2) * card_height + 7; var level = GameHelper.GetLevel(); var GameConfig = GetGameConfig(); if (level > GameConfig.Count) level = GameConfig.Count; var stackedConf = new StackedModel { dataList = SerializeUtil.ToObject>(GameConfig[level - 1].stacked) }; var boardConf = new BoardModel { dataList = SerializeUtil.ToObject>(GameConfig[level - 1].board) }; card_layer = boardConf.dataList.Count; card_type_max = GameConfig[level - 1].item_type; Debug.Log($"boardConf.dataList.Count {boardConf.dataList.Count}"); if (stackedConf.dataList.Count > 0) { var leftData = stackedConf.dataList[0]; for (int i = 0; i < leftData.num; i++) { left_extra_list.Add(new Vector2(parent_x + (leftData.site[0] - 1) * card_width + i * 0.5f, parent_y - (leftData.site[1] - 1) * card_height)); } var rightData = stackedConf.dataList[1]; for (int i = 0; i < rightData.num; i++) { right_extra_list.Add(new Vector2(parent_x + (rightData.site[0] - 1) * card_width - i * 0.5f, parent_y - (rightData.site[1] - 1) * card_height)); } int stacked_count = leftData.num >= rightData.num ? leftData.num : rightData.num; card_layer = card_layer >= stacked_count ? card_layer : stacked_count; } SaveData.GetSaveobject().card_layer = card_layer; var count = 0; for (int k = boardConf.dataList.Count; k > 0; k--) { count++; var oneLayer = boardConf.dataList[k - 1]; var vector2 = oneLayer.vector2; Debug.Log($"vector2: {JsonConvert.SerializeObject(vector2)}"); List single_ = new List(); InitOffset(oneLayer.offset, out var x_offset, out var y_offset); // x_offset=0; // y_offset=0; for (int i = 0; i < vector2.Length; i++) { if (i >= width_max) continue; for (int j = 0; j < vector2[i].Length; j++) { if (j >= height_max) continue; if (vector2[i][j] != 0) { var nums = level == 3 && count == 5 ? -1 : 0; single_.Add(new Vector2(parent_x + i * card_width + x_offset, parent_y - j * card_height + y_offset)); } } } map_list.Add(single_); } int map_count = 0; for (int i = 0; i < map_list.Count; i++) { map_count += map_list[i].Count; } Debug.Log($"map_count: {map_count}, left_extra_list: {left_extra_list.Count}, right_extra_list: {right_extra_list.Count}"); all_card_numbers = (map_count + left_extra_list.Count + right_extra_list.Count) / 3; Debug.Log($"all_card_numbers2:{all_card_numbers}"); SaveData.GetSaveobject().all_card_numbers = all_card_numbers; } void InitOffset(int[] offset, out float x_offset, out float y_offset) { Debug.Log($"offset:{JsonConvert.SerializeObject(offset)}"); x_offset = 0; y_offset = 0; if (offset.Length < 4) return; x_offset = offset[1] != 0 ? offset[1] : -offset[3]; x_offset *= real_card_width / 2 - (real_card_width - card_width) / 2; y_offset = offset[0] != 0 ? offset[0] : -offset[2]; y_offset *= real_card_height / 2 - (real_card_height - card_height) / 2; Debug.Log($"x_offset:{x_offset},y_offset:{y_offset}"); } void CreatCard() { for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { if (card_item_list[i][j].sheep_card != null) { MonoBehaviour.Destroy(card_item_list[i][j].sheep_card); } } } card_item_list = CreatAnimalCard.instance.CreatCardNew(all_card_numbers, card_type_max, card_layer, extra_max, map_list, left_extra_list, right_extra_list); } int GetExtra() { int pos = Random.Range(0, pool_list.Count); if (pool_list[pos].is_extra) { pos = GetExtra(); } return pos; } // int getMaplayer() // { // Debug.Log("iiiiiiiiiiiiiiiiiiii"); // int layer = Random.Range(0, map_list.Count);//确定层数 // if (map_list[layer].Count == 0) // { // for (int i = 0; i < map_list.Count; i++) // { // if (map_list[i].Count != 0) return i; // } // } // return layer; // } int GetMaplayer() { int layer = Random.Range(0, map_list.Count);//确定层数 if (map_list[layer].Count == 0) { layer = GetMaplayer(); } return layer; } private int name_index = 0; public Camera orthoCamera; void ad_success(object a = null) { float cash = (float)a; // reward_data temp = new reward_data() { start = start, end = end, change = cash, type = 111 }; // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.CoinWnd_newUI_Open, temp); // GameHelper.addMoney(cash); // DOVirtual.DelayedCall(1, () => // { // DOVirtual.Float(0, (float)PreferencesMgr.Instance.Currency101, 1, // value => { ui.money.number_text.text = GameHelper.Get101Str((decimal)value); }); // }); // var rewardData = new RewardData(); // var rewardSingleData = new RewardSingleData(102, (decimal)cash, RewardOrigin.Play) // { // startPosition = start, // endPosition = end // }; // rewardData.AddReward(rewardSingleData); // rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange; // rewardData.AddCompleted(success => // { // if (success) // { // // RefreshGold((decimal)awardNum); // // DOVirtual.DelayedCall(0.7f, () => // // { // // CtrlCloseUI(); // // }); // } // }); var startPot = GameHelper.GetUICenterPosition(ui.btn_look_ad); var endPos = GameHelper.GetUICenterPosition(ui.money); var rewardData = new RewardData { displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange }; var rewardSingleData = new Goda(102, (decimal)cash, RewardOrigin.Play) { startPosition = startPot, endPosition = endPos, }; rewardData.AddReward(rewardSingleData); GameDispatcher.Instance.Dispatch(BingoInfo.GetReward, rewardData); // DOVirtual.DelayedCall(1, () => // { // DOVirtual.Float(0, (float)PreferencesMgr.Instance.Currency102, 1, // value => { ui.btn_money.GetChild("text_gold").text = ((decimal)value).ToString("0.00"); }); // }); ui.btn_look_ad.visible = false; ad_numbers++; if (ad_numbers == 3) { ad_times = Convert.ToInt32(GameHelper.GetNowTime()); PlayerPrefs.SetInt("ad_time", ad_times); } if (ad_numbers > 3) { ad_numbers = 1; } PlayerPrefs.SetInt("ad_number", ad_numbers); } private bool is_resurgence = false; void ChangeSlotState(object a = null) { float start_card = 0; int hide_type = -1; bool all_clear = false; for (int i = 0; i < slot_list.Count; i++) { int same_numbers = 0; for (int j = i + 1; j < slot_list.Count; j++) { if (slot_list[j].card_type == slot_list[i].card_type) { same_numbers++; } if (same_numbers >= 2) { hide_type = slot_list[j].card_type; break; } } } if (hide_type >= 0) { if (Audio.Instance.IsOpenEffect) { Audio.Instance.PlayDynamicEffect("dissolve"); } int index = 0; for (int j = 0; j < slot_list.Count; j++) { if (slot_list[j].card_type == hide_type) { if (index == 1) { start_card = ui.slot.x - 50 + j * 124; } slot_list[j].in_slot = false; GameObject temp = slot_list[j].sheep_card; card_item_list[slot_list[j]._layer].Remove(slot_list[j]); //slot_list[j].sheep_card.gameObjectName = name_index.ToString(); DOVirtual.DelayedCall(0.3f, () => { temp.transform.DOScale(new Vector3(card_scale * 1.1f, card_scale * 1.1f, 1), 0.15f).OnComplete(() => { temp.transform.DOScale(new Vector3(1, 1, 1), 0.15f); }); temp.transform.DOLocalRotate(new Vector3(0, 0, 17), 0.15f).OnComplete(() => { temp.transform.DOScale(new Vector3(0, 0, 0), 0.15f).OnComplete(() => { // if (hide_type % 2 == 0) // { // CreatAnimalCard.instance.creatSpine(1, temp.transform.position); // } // else // { // CreatAnimalCard.instance.creatSpine(2, temp.transform.position); // } MonoBehaviour.Destroy(temp); }); }); }); card_item_list[slot_list[j]._layer].Remove(slot_list[j]); index++; } } name_index++; if (last_card_item != null && last_card_item.card_type == hide_type) { last_card_item = null; } slot_list.RemoveAll((Card_item a) => a.card_type == hide_type ); for (int k = 0; k < slot_list.Count; k++) { int l = k; DOVirtual.DelayedCall(0.5f, () => { // GTweener tweener = slot_list[l].sheep_card.TweenMove(new Vector2(l * (card_width - 1) + ui.slot.x + 8, ui.slot.y + 13), 0.2f); // 位置从当前值渐变到新的坐标 // tweener.SetEase(EaseType.Linear); // 设置缓动类型 slot_list[l].sheep_card.transform.DOLocalMove(new Vector3(l * card_width_slot + bg_x, bg_y, 1), 0.2f); }); } GameHelper.AddGameExp(3); SaveData.GetSaveobject().clear_number += 3; setBtntask(); if (GameHelper.IsGiftSwitch() && (Random.Range(0, 100) < ConfigSystem.GetConfig().roomrewardrate) && !ui.btn_look_ad.visible) //if (GameHelper.IsGiftSwitch() && (Random.Range(0, 100) < 100) && !ui.btn_look_ad.visible) { ui.btn_look_ad.visible = true; btn_look_ad_showtime = 0; } all_clear = CheckSuccess(); if (GameHelper.IsGiftSwitch() && !all_clear) { if (hide_type >= 0 && Random.Range(0, 100) < ConfigSystem.GetConfig().Smallrewardsrate) { if (hide_type != 15) {//普通小额钞票 // 转换为FGUI坐标(这里需要根据您的FGUI设置进行调整) // Vector2 fguiPosition = new Vector2(start_card, ui.slot.y + 50); // var start = fguiPosition; // var end = GameHelper.GetUICenterPosition(ui.money.GetChild("number_text")); // float[] cash_array = GameHelper.GetRewardValue(0); // AwardData temp = new AwardData() { start = start, end = end, change = cash_array[0], type = 111 }; // DOVirtual.DelayedCall(0.5f, () => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.CoinWnd_newUI_Open, temp); }); // GameHelper.addMoney(cash_array[0]); // DOVirtual.DelayedCall(1.5f, () => // { // DOVirtual.Float(0, (float)PreferencesMgr.Instance.Currency101, 1f, // value => { (ui.money.GetChild("number_text") as GTextField).text = GameHelper.Get101Str((decimal)value); }); // clearSpinepool?.Invoke(); // }); Vector2 fguiPosition = new Vector2(start_card, ui.slot.y); var start = fguiPosition; float[] cash_array = GameHelper.GetRewardValue(0); var endPos = GameHelper.GetUICenterPosition(ui.money.GetChild("number_text")); var rewardData = new RewardData { displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange }; var rewardSingleData = new Goda(102, (decimal)cash_array[0], RewardOrigin.Play) { startPosition = start, endPosition = endPos, }; rewardData.AddReward(rewardSingleData); // rewardData.AddCompleted(success => // { // if (success) // { // // RefreshGold(awardNum); // } // }); GameDispatcher.Instance.Dispatch(BingoInfo.GetReward, rewardData); } } if (hide_type >= 0) { if (hide_type == 15) { // float[] cash_array = GameHelper.GetRewardValue(1); // var temp = new { IsWin = true, cash_number = 0, rate = 2, IsLevelSuccess = false, IsH5Reward = false }; float[] cash_array = GameHelper.GetRewardValue(1); var temp = new SuccessData(); temp.IsWin = true; temp.cash_number = cash_array[0]; temp.rate = (int)cash_array[1]; temp.IsLevelSuccess = false; temp.IsH5Reward = false; DOVirtual.DelayedCall(0.5f, () => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Open, temp); clearSpinepool?.Invoke(); }); } } } } //Debug.Log("quanbuqingchuleeeeeeeeeeeeee" + all_clear + "----------" + out_list.Count); if (out_list.Count == 0) { if (all_clear) { SendLog(true); GameHelper.SetLevel(GameHelper.GetLevel() + 1); //通关成功 float[] cash_array = GameHelper.GetRewardValue(2); // var temp = new { IsWin = true, cash_number = 0, rate = 2, IsLevelSuccess = true, IsH5Reward = false }; var temp = new SuccessData(); temp.IsWin = true; temp.cash_number = cash_array[0]; temp.rate = (int)cash_array[1]; temp.IsLevelSuccess = true; temp.IsH5Reward = false; DOVirtual.DelayedCall(0.75f, () => { if (UI.Instance.IsExistUI(UIConst.LevelSuccessUI)) LevelSuccessUI.aftershow_success = true; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Open, temp); }); return; } } if (slot_list.Count >= slot_max) { float complte_progress = showResurgence(); GameHelper.IsTemporaryEnd = true; if (GameHelper.GetLevelstate() != 0) { if ((complte_progress > ((float)ConfigSystem.GetConfig().FailedGiftProgress / 100)) && !is_resurgence) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.ResurgenceUI_Open, complte_progress); is_resurgence = true; return; } DOVirtual.DelayedCall(0.75f, () => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RemakeUI_Open); }); // TimerHelper.mEasy.AddTimer(1.0f, () => // { // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.ChoosePropUI_Open); // }); } else { if ((complte_progress > ((float)ConfigSystem.GetConfig().FailedGiftProgress / 100)) && !is_resurgence) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.ResurgenceUI_Open, complte_progress); is_resurgence = true; return; } //通关失败 float[] cash_array = GameHelper.GetRewardValue(2); // var temp = new { IsWin = false, cash_number = 0, IsLevelSuccess = true, IsH5Reward = false }; var temp = new SuccessData(); temp.IsWin = false; temp.cash_number = cash_array[0]; temp.IsLevelSuccess = true; temp.IsH5Reward = false; DOVirtual.DelayedCall(0.75f, () => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LevelSuccessUI_Open, temp); }); } if (Audio.Instance.IsOpenEffect) { Audio.Instance.PlayDynamicEffect("fellshort"); } } } float showResurgence() { int surplus_item = 0; for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { if (card_item_list[i][j].sheep_card.IsDestroyed() || card_item_list[i][j].sheep_card == null) continue; surplus_item++; } } Debug.Log(surplus_item); Debug.Log(SaveData.GetSaveobject().all_card_numbers * 3); // if ((1 - (float)surplus_item / (float)(SaveData.GetSaveobject().all_card_numbers * 3))) // { return 1 - (float)surplus_item / (float)(SaveData.GetSaveobject().all_card_numbers * 3); // } // return 0; } bool CheckSuccess() { bool all_clear = true; for (int i = 0; i < card_item_list.Count; i++) { if (!all_clear) break; for (int j = 0; j < card_item_list[i].Count; j++) { all_clear = false; break; } } return all_clear; } void RefreshCardState(bool is_first = false) { for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { if (card_item_list[i][j].sheep_card.IsDestroyed() || card_item_list[i][j].sheep_card == null) continue; bool can_click = true; if (card_item_list[i][j].in_slot) continue; for (int k = i + 1; k < card_item_list.Count; k++) { bool is_break = false; for (int l = 0; l < card_item_list[k].Count; l++) { if (card_item_list[k][l].in_slot) continue; var card_distance = card_item_list[k][l].is_out && card_item_list[i][j].is_out ? 0.9f : 0.2f; // Debug.Log($"card_distance=========: {card_distance}"); if (Vector2.Distance(new Vector2(card_item_list[k][l].pos_x, card_item_list[k][l].pos_y), new Vector2(card_item_list[i][j].pos_x, card_item_list[i][j].pos_y)) <= (card_width - card_distance)) { is_break = true; can_click = false; break; } } if (is_break) break; } //} if (is_first) { if (can_click) { // card_item_list[i][j].sheep_card.tolight_notween.Play(); card_item_list[i][j].sheep_card.GetComponent().color = white_color; } else { // card_item_list[i][j].sheep_card.todark_notween.Play(); card_item_list[i][j].sheep_card.GetComponent().color = dark_color; } } else { if (card_item_list[i][j].can_click != can_click) { if (can_click) { // card_item_list[i][j].sheep_card.tolight.Play(); SpriteRenderer temp = card_item_list[i][j].sheep_card.GetComponent(); temp.DOColor(white_color, 0.25f); } else { // card_item_list[i][j].sheep_card.todark.Play(); SpriteRenderer temp = card_item_list[i][j].sheep_card.GetComponent(); temp.DOColor(dark_color, 0.25f); } } } card_item_list[i][j].can_click = can_click; } } List order_list = new List(); for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { card_item_list[i][j].sheep_card.GetComponent().sortingOrder = 0; if (card_item_list[i][j].can_click && !card_item_list[i][j].in_slot && !card_item_list[i][j].is_out) { order_list.Add(card_item_list[i][j]); } } } order_list.Sort((x, y) => y.pos_y.CompareTo(x.pos_y)); for (int i = 0; i < order_list.Count; i++) { order_list[i].sheep_card.GetComponent().sortingOrder = i; } } public Color white_color = new Color(1, 1, 1, 1); public Color dark_color = new Color(128f / 255f, 128f / 255f, 128f / 255f, 1f); public void SaveJson(object a = null) { string save = JsonConvert.SerializeObject(card_item_list); Debug.Log("jsveeeeeeeeeeeeeeeeeeeee" + save); //if (File.Exists(jsonFilePath)) File.Delete(jsonFilePath); File.WriteAllText(jsonFilePath, save); File.WriteAllText(jsonFilePath_test, "testtt111111"); SaveData.saveDataFunc(); } private static string jsonFilePath_test = Path.Combine(Application.persistentDataPath, "card_json12.json"); void CreatSaveItem() { card_item_list = JsonConvert.DeserializeObject>>(jsonstr); Debug.Log(jsonstr); jsonstr = null; int slot_list_index = 0; CreatAnimalCard.instance.creatSaveCard(card_item_list); for (int i = 0; i < card_item_list.Count; i++) { for (int j = 0; j < card_item_list[i].Count; j++) { if (card_item_list[i][j].in_slot) { Debug.Log("slottttttttttttttttttttt"); slot_list.Add(card_item_list[i][j]); slot_list_index++; } if (card_item_list[i][j].is_out) { out_list.Add(card_item_list[i][j]); } pool_list.Add(card_item_list[i][j]); } } slot_list.Sort((x, y) => x.card_type.CompareTo(y.card_type)); for (int i = 0; i < slot_list.Count; i++) { slot_list[i].sheep_card.transform.position = new Vector3(i * card_width_slot + bg_x, bg_y, 101); slot_list[i].sheep_card.GetComponent().color = new Color(1, 1, 1, 1); } } private void LoadData() { if (File.Exists(jsonFilePath)) { Debug.Log($"jsonFilePath========= {jsonFilePath}"); jsonstr = File.ReadAllText(jsonFilePath); File.Delete(jsonFilePath); //return JsonUtility.FromJson(json); string jsonstr123 = File.ReadAllText(jsonFilePath_test); Debug.Log("ppppppppppppppppppppppppp" + jsonstr123); } else { Debug.Log("Data file not found!"); // return null; } } private void SendLog(object success) { // SetLeveldiff(); Debug.Log("senddddd"); var test = new PlayLog(); test.level = GameHelper.GetLevel(); test.layer = SaveData.GetSaveobject().card_layer; test.item_type = SaveData.GetSaveobject().this_time_cardtype; test.total_item = SaveData.GetSaveobject().all_card_numbers * 3; test.remove_item = SaveData.GetSaveobject().clear_number; test.pass = (bool)success; test.begin_time = SaveData.GetSaveobject().start_time; test.end_time = GameHelper.GetNowTime(); test.item_costs = SaveData.GetSaveobject().usePropsNum; var temp = new SettleUp(); temp.type = 1; temp.result = JsonConvert.SerializeObject(test); NetworkKit.PostWithHeader("game/settleUp", temp, (isSuccess, obj) => { Debug.Log($"send log= {isSuccess}=========== {GameHelper.GetLoginModel().uid}"); }); SaveData.GetSaveobject().clear_number = 0; SaveData.GetSaveobject().start_time = GameHelper.GetNowTime(); SaveData.saveDataFunc(); } public void GetCoinAnim(decimal gold) { DOVirtual.DelayedCall(1.0f, () => { var startNum = PreferencesMgr.Instance.Currency101 - gold; DOVirtual.Float((float)startNum, (float)GameHelper.GetGoldNumber(), 1f, value => { ui.gold.GetChild("number_text").text = GameHelper.Get101Str((decimal)value); }); }); var start = GameHelper.GetUICenterPosition(ui.point); var end = GameHelper.GetUICenterPosition(ui.gold.GetChild("number_text")); var rewardData = new RewardData(); var rewardSingleData = new Goda(101, gold, RewardOrigin.BuyGold) { startPosition = start, endPosition = end, }; rewardData.AddReward(rewardSingleData); rewardData.displayType = RewardDisplayType.RewardFly; rewardData.AddCompleted((isScu) => { }); GameDispatcher.Instance.Dispatch(BingoInfo.GetReward, rewardData); } } } public class SettleUp { public int type; public string result; } public class Card_item { public int card_type; public float pos_x; public float pos_y; public int _layer; public bool can_click = false; public bool in_slot; // public bool is_hide; public bool is_out; public bool is_gray; public int out_layer; [JsonIgnore] public GameObject sheep_card; public bool is_extra; } public class SuccessData { public bool IsWin; public float cash_number; public bool IsLevelSuccess; public bool IsH5Reward; public int rate; } public class PlayLog { public int level; public int layer; public int item_type; public int total_item; public int remove_item; public bool pass; public long begin_time; public long end_time; public int[] item_costs = new int[3]; }