using FGUI.ZM_Common_01; using UnityEngine; using FairyGUI; using Newtonsoft.Json; using System; using System.Collections.Generic; using FGUI.Game_flower; using DG.Tweening; using SGModule.Common.Extensions; namespace TowerClimberChronicles { public class FlowerUI : BaseUI { private FlowerUICtrl ctrl; private FlowerModel model; private FGUI.Game_flower.com_flower ui; public FlowerUI(FlowerUICtrl ctrl) : base(ctrl) { uiName = UIConst.FlowerUI; this.ctrl = ctrl; } protected override void SetUIInfo(UIInfo uiInfo) { uiInfo.packageName = "Game_flower"; uiInfo.assetName = "com_flower"; uiInfo.layerType = UILayerType.Normal; uiInfo.isNeedOpenAnim = false; uiInfo.isNeedCloseAnim = false; uiInfo.isNeedUIMask = false; } #region 生命周期 protected override void OnInit() { //model = ModuleManager.Instance.GetModel(ModelConst.FlowerModel) as FlowerModel; } protected override void OnClose() { } protected override void OnBind() { ui = baseUI as FGUI.Game_flower.com_flower; } 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.RefreshFlowerCleanBtn, RefreshBtnCleanPot); GameDispatcher.Instance.AddListener(GameMsg.FlowelSuccess, GameSuccess); GameDispatcher.Instance.AddListener(GameMsg.FlowerReset, Reset); GameDispatcher.Instance.AddListener(GameMsg.FlowerRemake, Remake); GameDispatcher.Instance.AddListener(GameMsg.Update101, Set101); GameDispatcher.Instance.AddListener(GameMsg.FlowerBuyItem, SetItemBtn); GameDispatcher.Instance.AddListener(GameMsg.FlowerFullTips, ShowFullani); } protected override void RemoveListener() { GameDispatcher.Instance.RemoveListener(GameMsg.RefreshFlowerCleanBtn, RefreshBtnCleanPot); GameDispatcher.Instance.RemoveListener(GameMsg.FlowelSuccess, GameSuccess); GameDispatcher.Instance.RemoveListener(GameMsg.FlowerReset, Reset); GameDispatcher.Instance.RemoveListener(GameMsg.FlowerRemake, Remake); GameDispatcher.Instance.RemoveListener(GameMsg.Update101, Set101); GameDispatcher.Instance.RemoveListener(GameMsg.FlowerBuyItem, SetItemBtn); GameDispatcher.Instance.RemoveListener(GameMsg.FlowerFullTips, ShowFullani); } #endregion private void ShowFullani(object a = null) { ui.t0.Play(); } private void ShowUnlockItem() { if (DataMgr.FlowerLevel.Value >= GameHelper.GetCommonModel().PropLevel[0] - 1 && !DataMgr.FlowerItemUnlock.Value[0]) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FlowerUnlockItemUI_Open, 0); } else if (DataMgr.FlowerLevel.Value >= GameHelper.GetCommonModel().PropLevel[1] - 1 && !DataMgr.FlowerItemUnlock.Value[1]) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FlowerUnlockItemUI_Open, 1); } else if (DataMgr.FlowerLevel.Value >= GameHelper.GetCommonModel().PropLevel[2] - 1 && !DataMgr.FlowerItemUnlock.Value[2]) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FlowerUnlockItemUI_Open, 2); } } private void Reset(object a = null) { start_update = false; remain_time = GameHelper.GetCommonModel().FinishTime; ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute); ui.btn_add0.visible = ui.btn_add1.visible = true; ui.text_level.text = (DataMgr.FlowerLevel.Value + 1).ToString(); ShowUnlockItem(); SetItemBtn(); } private void Remake(object a = null) { DataMgr.FlowerItem1.Value = DataMgr.FlowerItem1.Value + 1; CreatFlower.instance.UseCleanItem(); remain_time += GameHelper.GetCommonModel().ExtraTime; start_update = true; SetItemBtn(); } //初始化页面逻辑 private void InitView() { //Debug.Log(JsonConvert.SerializeObject(ConfigSystem.GetConfig())); CreatFlower.instance.ResetGame(); // ui.btn_tip.SetClick(TipsFunc); // ui.btn_clean.SetClick(CleanFunc); // ui.btn_refresh.SetClick(RefreshFunc); ui.btn_pot.SetClick(() => { ui.group_list.visible = !ui.group_list.visible; }); ui.list_pot.itemRenderer = CleanListRender; RefreshBtnCleanPot(); // GameEnd(); ui.btn_add0.SetClick(() => { GameHelper.ShowVideoAd("flower_add0", (success) => { if (success) { AddSlotFunc(0); ui.btn_add0.visible = false; } }); }); ui.btn_add1.SetClick(() => { GameHelper.ShowVideoAd("flower_add1", (success) => { if (success) { AddSlotFunc(1); ui.btn_add1.visible = false; } }); }); HallManager.Instance.UpdateSecondEvent += Update_event; remain_time = GameHelper.GetCommonModel().FinishTime; ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute); if (Screen.safeArea.y != 0) { ui.group_safe.y += 68; } Set101(); ui.text_level.text = (DataMgr.FlowerLevel.Value + 1).ToString(); SetItemBtn(); ShowUnlockItem(); Stop_time = -3; if (DataMgr.FlowerLevel.Value == 0) { ui.com_guide.visible = true; ui.com_guide.btn_close.SetClick(() => { ui.com_guide.state.selectedIndex = 1; ui.com_guide.btn_close.SetClick(() => { ui.com_guide.visible = false; CreatFlower.instance.DestoryFinger(); }); }); } ui.btn_close.SetClick(() => { // CreatPuzzle.instance.PuzzlenResetFunc(); OnBackToHall(); }); } private void OnBackToHall(object obj = null) { Debug.Log("??????????jjjjkkkkkkkk0"); if (!GameHelper.GetVipPrivilege(Subscription.RemoveInterstitialAd.As()) && 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.FlowerUI_Close); GameDispatcher.Instance.Dispatch(GameMsg.BackMainScene); CtrlCloseUI(); } 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}"; } void Update_event() { Stop_time++; if (Stop_time == 5) { GameDispatcher.Instance.Dispatch(GameMsg.FlowerShowclickAni); } if (!start_update) return; remain_time--; ui.text_time.text = CommonHelper.TimeFormat(remain_time, CountDownType.Minute); if (remain_time <= 0) { if (DataMgr.FlowerLevelState.Value != 0) { start_update = false; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FlowerRemakeUI_Open); } else { float[] ch_array = GameHelper.GetRewardValue(2); var temp = new SuccessData(); temp.IsWin = false; temp.ch_number = ch_array[0]; temp.IsLevelSuccess = true; temp.IsH5Reward = false; temp.boost_array = GameHelper.GetRewardBoost(2); temp.level = DataMgr.FlowerLevel.Value; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FlowerEndUI_Open, temp); } } } private int remain_time; public static bool start_update = false; public static long Stop_time = 0; void GameSuccess(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); // DataMgr.FlowerTimeCoinsUse.Value = false; DataMgr.FlowerLevel.Value = DataMgr.FlowerLevel.Value + 1; DOVirtual.DelayedCall(0.55f, () => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.FlowerEndUI_Open, temp); }); } private void CleanListRender(int index, GObject obj) { item_potFlower item = (item_potFlower)obj; item.type.selectedIndex = clean_pot_list[index][0]; item.text_flower_number.text = "x" + clean_pot_list[index][1]; } void AddSlotFunc(int index) { //Debug.Log("解锁。。。。。。。。。。" + index); CreatFlower.instance.AddSlost(index); } void SetItemBtn(object a = null) { if (DataMgr.FlowerLevel.Value < GameHelper.GetCommonModel().PropLevel[0] - 1) { ui.btn_tip.state.selectedIndex = 2; ui.btn_tip.SetClick(() => { GameHelper.ShowTips("Complete up to Level " + GameHelper.GetCommonModel().PropLevel[0] + " to unlock!"); }); ui.btn_tip.text_unlock.SetVar("num", GameHelper.GetCommonModel().PropLevel[0].ToString()).FlushVars(); } else if (DataMgr.FlowerItem0.Value > 0) { ui.btn_tip.state.selectedIndex = 1; ui.btn_tip.text_number.text = DataMgr.FlowerItem0.Value.ToString(); ui.btn_tip.SetClick(() => { // int childCount = FlowerParent.transform.childCount; // if (childCount <= 0) // { // GameHelper.ShowTips("Cannot Use Now"); // return; // } TipsFunc(); // DataMgr.FlowerItem0.Value = DataMgr.FlowerItem0.Value - 1; SetItemBtn(); }); } else { ui.btn_tip.state.selectedIndex = 0; ui.btn_tip.SetClick(() => { uiCtrlDispatcher.Dispatch(UICtrlMsg.FlowerBuyItemUI_Open, 0); }); } if (DataMgr.FlowerLevel.Value < GameHelper.GetCommonModel().PropLevel[1] - 1) { ui.btn_clean.state.selectedIndex = 2; ui.btn_clean.SetClick(() => { GameHelper.ShowTips("Complete up to Level " + GameHelper.GetCommonModel().PropLevel[1] + " to unlock!"); }); ui.btn_clean.text_unlock.SetVar("num", GameHelper.GetCommonModel().PropLevel[1].ToString()).FlushVars(); } else if (DataMgr.FlowerItem1.Value > 0) { ui.btn_clean.state.selectedIndex = 1; ui.btn_clean.text_number.text = DataMgr.FlowerItem1.Value.ToString(); ui.btn_clean.SetClick(() => { // int childCount = FlowerParent.transform.childCount; // if (childCount <= 0) // { // GameHelper.ShowTips("Cannot Use Now"); // return; // } CleanFunc(); // DataMgr.FlowerItem1.Value = DataMgr.FlowerItem1.Value - 1; SetItemBtn(); }); } else { ui.btn_clean.state.selectedIndex = 0; ui.btn_clean.SetClick(() => { uiCtrlDispatcher.Dispatch(UICtrlMsg.FlowerBuyItemUI_Open, 1); }); } if (DataMgr.FlowerLevel.Value < GameHelper.GetCommonModel().PropLevel[2] - 1) { ui.btn_refresh.state.selectedIndex = 2; ui.btn_refresh.SetClick(() => { GameHelper.ShowTips("Complete up to Level " + GameHelper.GetCommonModel().PropLevel[2] + " to unlock!"); }); ui.btn_refresh.text_unlock.SetVar("num", GameHelper.GetCommonModel().PropLevel[2].ToString()).FlushVars(); } else if (DataMgr.FlowerItem2.Value > 0) { ui.btn_refresh.state.selectedIndex = 1; ui.btn_refresh.text_number.text = DataMgr.FlowerItem2.Value.ToString(); ui.btn_refresh.SetClick(() => { // int childCount = FlowerParent.transform.childCount; // if (childCount <= 0) // { // GameHelper.ShowTips("Cannot Use Now"); // return; // } RefreshFunc(); DataMgr.FlowerItem2.Value = DataMgr.FlowerItem2.Value - 1; SetItemBtn(); }); } else { ui.btn_refresh.state.selectedIndex = 0; ui.btn_refresh.SetClick(() => { uiCtrlDispatcher.Dispatch(UICtrlMsg.FlowerBuyItemUI_Open, 2); }); } } void TipsFunc() { if (!CreatFlower.instance.CanClick) return; CreatFlower.instance.UseTipsItem(); } void CleanFunc() { if (!CreatFlower.instance.CanClick) return; CreatFlower.instance.UseCleanItem(); } void RefreshFunc() { if (!CreatFlower.instance.CanClick) return; CreatFlower.instance.UseRefreshItem(); } List> clean_pot_list; void RefreshBtnCleanPot(object a = null) { ui.btn_pot.title = CreatFlower.instance.clean_item_list.Count.ToString(); clean_pot_list = new List>() { new List(){0,0},new List(){1,0},new List(){2,0}, new List(){3,0},new List(){4,0},new List(){5,0}, new List(){6,0},new List(){7,0},new List(){8,0}, new List(){9,0},new List(){10,0},new List(){11,0}, }; for (int i = 0; i < CreatFlower.instance.clean_item_list.Count; i++) { clean_pot_list[CreatFlower.instance.clean_item_list[i].GetComponent().type][1]++; } clean_pot_list.RemoveAll(subList => subList[1] == 0); ui.list_pot.numItems = clean_pot_list.Count; } } }