Files
BingoGrassland/Assets/BingoBrain/ModuleUI/SheepPlay/SheepPlayUI.cs
T

2019 lines
77 KiB
C#
Raw Normal View History

2026-04-20 13:49:36 +08:00
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> card_item_list = new List<card_item>();
// private List<Vector2>[] stacked_list = new List<Vector2>();
private List<Vector2> left_extra_list = new List<Vector2>();
private List<Vector2> right_extra_list = new List<Vector2>();
private List<List<Vector2>> map_list = new List<List<Vector2>>();
private List<List<Card_item>> card_item_list = new List<List<Card_item>>();
private List<Card_item> slot_list = new List<Card_item>();
private List<Vector3> refresh_list = new List<Vector3>();
private List<Card_item> out_list = new List<Card_item>();
private List<Card_item> pool_list = new List<Card_item>();
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<Sprite>("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<CommonModel>().loginhallrate / 100f);
InitView();
var loginModel = GameHelper.GetLoginModel();
if (true && !loginModel.new_player)
{
//var isShow = false;
// Debug.Log($"GotoH5 =====isShow:{ConfigSystem.GetConfig<CommonModel>().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<int>();
GameHelper.SetGameday();
}
ui.btn_menu_.SetClick(() =>
{
uiCtrlDispatcher.Dispatch(SkinInfo.MenuUI_Open);
});
// var ske1 = FX.Instance.SetFx<SkeletonAnimation>((ui.btn_look_ad as btn_look_ad).gp, Fx_Type.fx_main_ad, closeCallback);
// ske1.state.SetAnimation(0, "animation", true);
FX.Instance.SetFx<SkeletonAnimation>((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> Paidcoins_list = ConfigSystem.GetConfig<PaidcoinsModel>().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<CommonModel>().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<PassportrewardsModel>().dataList.Count)
{
ui.btn_task.progress.value = 100;
}
else
{
ui.btn_task.progress.value =
((float)GameHelper.GetGameExp() / ConfigSystem.GetConfig<PassportrewardsModel>().dataList[GameHelper.getBattleLv()].Eliminating_quantity) * 100;
}
}
void SetDiffArray(object a = null)
{
// layer_array = ConfigSystem.GetConfig<CommonModel>().tiers;
// type_array = ConfigSystem.GetConfig<CommonModel>().patterntypes;
// all_array = new int[ConfigSystem.GetConfig<CommonModel>().patternnumber.Length];
// for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().patternnumber.Length; i++)
// {
// all_array[i] = ConfigSystem.GetConfig<CommonModel>().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<int>.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<int>.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<string, string> adCallbackInfo = new Dictionary<string, string>();
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<CommonModel>().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<PassportrewardsModel>().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<CommonModel>().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<SkeletonAnimation>((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<CommonModel>().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<SkeletonAnimation>((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<MakeupModel>().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<Card_item> temp_list = new List<Card_item>();
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>());
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<SpriteRenderer>().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<SpriteRenderer>().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<GameBoard> GetGameConfig()
{
var conf_num = PlayerPrefs.GetInt("game_conf_num", 1);
var GameConfig = ConfigSystem.GetConfig<GameConfigModel>();
conf_num = conf_num != GameHelper.conf_num ? conf_num : GameHelper.conf_num;
List<GameBoard> 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<List<Stacked>>(GameConfig[level - 1].stacked) };
var boardConf = new BoardModel
{ dataList = SerializeUtil.ToObject<List<Board>>(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<Vector2> single_ = new List<Vector2>();
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<CommonModel>().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<CommonModel>().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<CommonModel>().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<CommonModel>().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<SpriteRenderer>().color = white_color;
}
else
{
// card_item_list[i][j].sheep_card.todark_notween.Play();
card_item_list[i][j].sheep_card.GetComponent<SpriteRenderer>().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<SpriteRenderer>();
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<SpriteRenderer>();
temp.DOColor(dark_color, 0.25f);
}
}
}
card_item_list[i][j].can_click = can_click;
}
}
List<Card_item> order_list = new List<Card_item>();
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<SpriteRenderer>().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<SpriteRenderer>().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<List<List<Card_item>>>(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<SpriteRenderer>().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<MyData>(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<object>("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];
}