334 lines
12 KiB
C#
334 lines
12 KiB
C#
|
|
using FGUI.ZM_Common_01;
|
|
using UnityEngine;
|
|
using FairyGUI;
|
|
using Newtonsoft.Json;
|
|
using System.Collections.Generic;
|
|
using SGModule.Common.Extensions;
|
|
using DG.Tweening;
|
|
|
|
namespace TowerClimberChronicles
|
|
{
|
|
public class PuzzleUI : BaseUI
|
|
{
|
|
private PuzzleUICtrl ctrl;
|
|
private PuzzleModel model;
|
|
private FGUI.Game_puzzle.com_puzzle ui;
|
|
|
|
public PuzzleUI(PuzzleUICtrl ctrl) : base(ctrl)
|
|
{
|
|
uiName = UIConst.PuzzleUI;
|
|
this.ctrl = ctrl;
|
|
}
|
|
|
|
protected override void SetUIInfo(UIInfo uiInfo)
|
|
{
|
|
uiInfo.packageName = "Game_puzzle";
|
|
uiInfo.assetName = "com_puzzle";
|
|
uiInfo.layerType = UILayerType.Normal;
|
|
uiInfo.isNeedOpenAnim = false;
|
|
uiInfo.isNeedCloseAnim = false;
|
|
uiInfo.isNeedUIMask = false;
|
|
}
|
|
|
|
#region 生命周期
|
|
protected override void OnInit()
|
|
{
|
|
//model = ModuleManager.Instance.GetModel(ModelConst.PuzzleModel) as PuzzleModel;
|
|
}
|
|
|
|
protected override void OnClose()
|
|
{
|
|
HallManager.Instance.UpdateSecondEvent -= UpdateSec;
|
|
}
|
|
|
|
protected override void OnBind()
|
|
{
|
|
ui = baseUI as FGUI.Game_puzzle.com_puzzle;
|
|
}
|
|
|
|
protected override void OnOpenBefore(object args)
|
|
{
|
|
InitView();
|
|
}
|
|
|
|
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.PuzzleSuccess, PuzzleSuccessFunc);
|
|
GameDispatcher.Instance.AddListener(GameMsg.PuzzleTimeStart, TimeStart);
|
|
GameDispatcher.Instance.AddListener(GameMsg.PuzzleBuyItem, SetItemBtn);
|
|
GameDispatcher.Instance.AddListener(GameMsg.PuzzleAddTime, AddTime);
|
|
GameDispatcher.Instance.AddListener(GameMsg.PuzzleReset, PuzzleResetFunc);
|
|
GameDispatcher.Instance.AddListener(GameMsg.Update101, Set101);
|
|
}
|
|
protected override void RemoveListener()
|
|
{
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.PuzzleSuccess, PuzzleSuccessFunc);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.PuzzleTimeStart, TimeStart);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.PuzzleBuyItem, SetItemBtn);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.PuzzleAddTime, AddTime);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.PuzzleReset, PuzzleResetFunc);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.Update101, Set101);
|
|
}
|
|
#endregion
|
|
List<JigsawPuzzle> puzzleList = ConfigSystem.GetConfig<JigsawPuzzle>();
|
|
private void PuzzleResetFunc(object a = null)
|
|
{
|
|
Debug.Log("ui里的reset");
|
|
JigsawPuzzle PuzzleData;
|
|
|
|
if (puzzle_level < puzzleList.Count)
|
|
{
|
|
PuzzleData = puzzleList[puzzle_level];
|
|
}
|
|
else PuzzleData = puzzleList[puzzleList.Count - 1];
|
|
|
|
// CreatPuzzle.instance.CreatPuzzleItem(PuzzleData.Type, PuzzleData.ResourceImage, PuzzleData.Pieces, puzzle_level);
|
|
CreatPuzzle.instance.CreatPuzzleItem(PuzzleData.Type, "2", PuzzleData.Pieces, puzzle_level);
|
|
Debug.Log("chongzhiguanka");
|
|
DataMgr.PuzzleTimeCoinsUse.Value = false;
|
|
is_time_begin = false;
|
|
remain_time = PuzzleData.PlayTime;
|
|
|
|
ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute);
|
|
ui.t0.Play();
|
|
HallManager.Instance.UpdateSecondEvent -= UpdateSec;
|
|
ui.text_level.SetVar("level", (DataMgr.PuzzleLevel.Value + 1).ToString()).FlushVars();
|
|
}
|
|
|
|
private void PuzzleSuccessFunc(object a = null)
|
|
{
|
|
|
|
float[] cash_array = GameHelper.GetRewardValue(0);
|
|
var temp = new SuccessData();
|
|
temp.IsWin = true;
|
|
temp.ch_number = cash_array[0];
|
|
temp.rate = (int)cash_array[1];
|
|
temp.IsLevelSuccess = false;
|
|
temp.IsH5Reward = false;
|
|
temp.boost_array = GameHelper.GetRewardBoost(0);
|
|
temp.level = puzzle_level + 1;
|
|
DataMgr.PuzzleTimeCoinsUse.Value = false;
|
|
puzzle_level += 1;
|
|
DataMgr.PuzzleLevel.Value = DataMgr.PuzzleLevel.Value + 1;
|
|
HallManager.Instance.UpdateSecondEvent -= UpdateSec;
|
|
DOVirtual.DelayedCall(0.55f, () =>
|
|
{
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PuzzleEndUI_Open, temp);
|
|
});
|
|
|
|
// puzzle_level += 1;
|
|
// DataMgr.PuzzleLevel.Value = DataMgr.PuzzleLevel.Value + 1;
|
|
// JigsawPuzzle PuzzleData = puzzleList[puzzle_level];
|
|
// CreatPuzzle.instance.CreatPuzzleItem(PuzzleData.Type, PuzzleData.ResourceImage, PuzzleData.Pieces, puzzle_level);
|
|
// Debug.Log("chongzhiguanka");
|
|
// is_time_begin = false;
|
|
// remain_time = PuzzleData.PlayTime;
|
|
// ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute);
|
|
// HallManager.Instance.UpdateSecondEvent -= UpdateSec;
|
|
}
|
|
void AddTime(object a = null)
|
|
{
|
|
remain_time += 15;
|
|
HallManager.Instance.UpdateSecondEvent += UpdateSec;
|
|
}
|
|
private bool is_time_begin = false;
|
|
void TimeStart(object a = null)
|
|
{
|
|
if (!is_time_begin)
|
|
{
|
|
is_time_begin = true;
|
|
HallManager.Instance.UpdateSecondEvent += UpdateSec;
|
|
}
|
|
}
|
|
void UpdateSec()
|
|
{
|
|
remain_time -= 1;
|
|
if (remain_time <= 0)
|
|
{
|
|
remain_time = 0;
|
|
HallManager.Instance.UpdateSecondEvent -= UpdateSec;
|
|
uiCtrlDispatcher.Dispatch(UICtrlMsg.PuzzleBuyItemUI_Open, 3);
|
|
}
|
|
ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute);
|
|
}
|
|
private int remain_time;
|
|
private int puzzle_level = 0;
|
|
//初始化页面逻辑
|
|
private void InitView()
|
|
{
|
|
puzzle_level = DataMgr.PuzzleLevel.Value;
|
|
DataMgr.PuzzleTimeCoinsUse.Value = true;
|
|
// uiCtrlDispatcher.Dispatch(UICtrlMsg.PuzzleBuyItemUI_Open, 3); //zhushi
|
|
Debug.Log(JsonConvert.SerializeObject(ConfigSystem.GetConfig<JigsawPuzzle>()));
|
|
|
|
JigsawPuzzle PuzzleData;
|
|
if (puzzle_level < puzzleList.Count)
|
|
{
|
|
PuzzleData = puzzleList[puzzle_level];
|
|
}
|
|
else PuzzleData = puzzleList[puzzleList.Count - 1];
|
|
// CreatPuzzle.instance.CreatPuzzleItem(PuzzleData.Type, PuzzleData.ResourceImage, PuzzleData.Pieces, puzzle_level);
|
|
CreatPuzzle.instance.CreatPuzzleItem(PuzzleData.Type,"1", PuzzleData.Pieces, puzzle_level);
|
|
remain_time = PuzzleData.PlayTime;
|
|
ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute);
|
|
ui.t0.Play();
|
|
SetItemBtn();
|
|
UpdataAvatar();
|
|
Set101();
|
|
ui.btn_close.SetClick(() =>
|
|
{
|
|
CreatPuzzle.instance.PuzzlenResetFunc();
|
|
OnBackToHall();
|
|
});
|
|
if (Screen.safeArea.y != 0)
|
|
{
|
|
ui.btn_gold.y += Screen.safeArea.y;
|
|
}
|
|
ui.text_level.SetVar("level", (DataMgr.PuzzleLevel.Value + 1).ToString()).FlushVars();
|
|
}
|
|
private void OnBackToHall(object obj = null)
|
|
{
|
|
|
|
Debug.Log("??????????jjjjkkkkkkkk0");
|
|
if (!GameHelper.GetVipPrivilege(Subscription.RemoveInterstitialAd.As<int>()) && GameHelper.IsGiftSwitch())
|
|
{
|
|
int random_ = UnityEngine.Random.Range(1, 100);
|
|
Debug.Log($"[back hall] SaveData.GetSaveObject().is_get_removead=========={SaveData.GetSaveObject().is_get_removead} ");
|
|
if (!SaveData.GetSaveObject().is_get_removead && random_ < GameHelper.GetCommonModel().HomeInterstitialAd)
|
|
{
|
|
//GameHelper.ShowInterstitial("BackHall");
|
|
uiCtrlDispatcher.Dispatch(UICtrlMsg.AdcomingUI_Open);
|
|
}
|
|
}
|
|
|
|
// 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.PuzzleUI_Close);
|
|
GameDispatcher.Instance.Dispatch(GameMsg.BackMainScene);
|
|
CtrlCloseUI();
|
|
}
|
|
void SetItemBtn(object a = null)
|
|
{
|
|
if (DataMgr.PuzzleItem0.Value > 0)
|
|
{
|
|
ui.btn_item0.state.selectedIndex = 1;
|
|
ui.btn_item0.text_number.text = DataMgr.PuzzleItem0.Value.ToString();
|
|
ui.btn_item0.SetClick(() =>
|
|
{
|
|
int childCount = puzzleParent.transform.childCount;
|
|
if (childCount <= 0)
|
|
{
|
|
GameHelper.ShowTips("Cannot Use Now");
|
|
return;
|
|
}
|
|
UseProp(3);
|
|
DataMgr.PuzzleItem0.Value = DataMgr.PuzzleItem0.Value - 1;
|
|
SetItemBtn();
|
|
});
|
|
}
|
|
else
|
|
{
|
|
ui.btn_item0.state.selectedIndex = 0;
|
|
ui.btn_item0.SetClick(() =>
|
|
{
|
|
uiCtrlDispatcher.Dispatch(UICtrlMsg.PuzzleBuyItemUI_Open, 0);
|
|
});
|
|
}
|
|
if (DataMgr.PuzzleItem1.Value > 0)
|
|
{
|
|
ui.btn_item1.state.selectedIndex = 1;
|
|
ui.btn_item1.text_number.text = DataMgr.PuzzleItem1.Value.ToString();
|
|
ui.btn_item1.SetClick(() =>
|
|
{
|
|
int childCount = puzzleParent.transform.childCount;
|
|
if (childCount <= 0)
|
|
{
|
|
GameHelper.ShowTips("Cannot Use Now");
|
|
return;
|
|
}
|
|
UseProp(1);
|
|
DataMgr.PuzzleItem1.Value = DataMgr.PuzzleItem1.Value - 1;
|
|
SetItemBtn();
|
|
});
|
|
}
|
|
else
|
|
{
|
|
ui.btn_item1.state.selectedIndex = 0;
|
|
ui.btn_item1.SetClick(() =>
|
|
{
|
|
uiCtrlDispatcher.Dispatch(UICtrlMsg.PuzzleBuyItemUI_Open, 1);
|
|
});
|
|
}
|
|
if (DataMgr.PuzzleItem2.Value > 0)
|
|
{
|
|
ui.btn_item2.state.selectedIndex = 1;
|
|
ui.btn_item2.text_number.text = DataMgr.PuzzleItem2.Value.ToString();
|
|
ui.btn_item2.SetClick(() =>
|
|
{
|
|
int childCount = puzzleParent.transform.childCount;
|
|
if (childCount <= 0)
|
|
{
|
|
GameHelper.ShowTips("Cannot Use Now");
|
|
return;
|
|
}
|
|
UseProp(3);
|
|
DataMgr.PuzzleItem2.Value = DataMgr.PuzzleItem2.Value - 1;
|
|
SetItemBtn();
|
|
});
|
|
}
|
|
else
|
|
{
|
|
ui.btn_item2.state.selectedIndex = 0;
|
|
ui.btn_item2.SetClick(() =>
|
|
{
|
|
uiCtrlDispatcher.Dispatch(UICtrlMsg.PuzzleBuyItemUI_Open, 2);
|
|
});
|
|
}
|
|
}
|
|
GameObject puzzleParent = GameObject.Find("puzzle_parent");
|
|
void UseProp(int numbers)
|
|
{
|
|
|
|
CreatPuzzle.instance.FlyLastN(numbers);
|
|
}
|
|
private void UpdataAvatar(object obj = null)
|
|
{
|
|
var headId = DataMgr.PlayerAvatarId.Value;
|
|
Debug.Log("qqqqqqqqqqqqqqqqqqqqqqq" + headId);
|
|
}
|
|
public void Set101(object a = null)
|
|
{
|
|
|
|
int coin = DataMgr.Coin.Value;
|
|
var btnCoin = ui.btn_gold as com_gold;
|
|
btnCoin.text_gold.text = $"{coin:N0}";
|
|
}
|
|
}
|
|
} |