Browse Source

转盘补充提交

zhangyuqian 11 months ago
parent
commit
c3b454c798

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -266,5 +266,7 @@ namespace GFGGame
         public const string REQ_CURRENT_RANK = "REQ_CURRENT_RANK";
         //爬塔状态改变
         public const string FieldWork_StateCHANGE = "FieldWork_StateCHANGE";
+        //转盘数据改变
+        public const string TurnTable_DateCHANGE = "TurnTable_DateCHANGE";
     }
 }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Data/ActivityDataManager.cs

@@ -416,6 +416,7 @@ namespace GFGGame
             return false;
         }
         /***************************转盘活动*******************************/
+        public bool CHECK_TIPS_OPEN = false;
         public int TurnTableActivityType = 102; 
         public int TurnTableTimes = 300;
         public int TipsDropId = 0;

+ 1 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/ActivitySProxy.cs

@@ -522,7 +522,7 @@ namespace GFGGame
                         ActivityDataManager.Instance.TurnRewardStateDic.Add(response.RewardIds[i], response.RewardStatus[i]);
                     }
                     BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.RewardList));
-                    EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
+                    EventAgent.DispatchEvent(ConstMessage.TurnTable_DateCHANGE);
                     return true;
                 }
             }

+ 32 - 0
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableTipsCR.cs

@@ -0,0 +1,32 @@
+using System;
+
+namespace GFGGame
+{
+
+    public class TurnTipsController : SingletonBase<TurnTipsController> 
+    { 
+        private static TurnTableTipsView _buyTipsView;
+
+        public static void Show(int itemId, long count, Action onSuccess = null, bool showCheck = false)
+        {
+            if (_buyTipsView == null)
+            {
+                _buyTipsView = new TurnTableTipsView();
+            }
+            _buyTipsView.SetParams(itemId, count, onSuccess, showCheck);
+            _buyTipsView.Show();
+        }
+
+        public static void hide()
+        {
+            if (_buyTipsView != null)
+            {
+                _buyTipsView.Hide();
+            }
+        }
+        public static void Dispose()
+        {
+            _buyTipsView = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableTipsCR.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0ad0b51e1c4464a47827acfe4697b991
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 97 - 0
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableTipsView.cs

@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using UI.CommonGame;
+
+namespace GFGGame
+{
+    public class TurnTableTipsView : BaseWindow
+    {
+        private UI_BuyTipsUI _ui;
+
+        private int _itemId;
+        private int _costId;
+        private long _count;
+        private int _costCount;
+        private bool _result = false;
+        private Action _onSuccess;
+        private bool _showCheck = false;
+
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            BuyTipsController.Dispose();
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            _ui = UI_BuyTipsUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_btnSure.target.onClick.Add(OnClickBtnSure);
+            _ui.m_btnCancel.target.onClick.Add(OnClickBtnCancel);
+            _ui.m_btnCancel.target.onClick.Add(OnClickBtnCancel);
+            _ui.m_btnCheck.onClick.Add(OnBtnCheckClick);
+        }
+
+        public void SetParams(int itemId, long count, Action onSuccess = null, bool showCheck = false)
+        {
+            _itemId = itemId;
+            _count = count;
+
+            _onSuccess = onSuccess;
+            _showCheck = showCheck;
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            UpdateView();
+        }
+
+        private void UpdateView()
+        {
+            ItemExchangeCfgArray.Instance.GetMoneyIdAndNum(_itemId, ItemDataManager.GetItemExchangeTimes(_itemId), (int)_count, out _costId, out _costCount, out int buyNum);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
+            _ui.m_txtNeed.text = string.Format("还需要购买{0}个", _count);
+            _ui.m_loaNeed.url = ResPathUtil.GetIconPath(itemCfg.res, "png");
+            ItemCfg costCfg = ItemCfgArray.Instance.GetCfg(_costId);
+            _ui.m_txtCost.text = string.Format("是否花费{0}{1}购买?", _costCount, costCfg.name);
+
+            if (_showCheck)
+                _ui.m_checkType.selectedIndex = 1;
+            else
+                _ui.m_checkType.selectedIndex = 0;
+        }
+
+        private async void OnClickBtnSure()
+        {
+
+            _result = await ItemExchangeSProxy.ItemExchange(_itemId, _count);
+            if (_result)
+            {
+                BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(_itemId, _count), _onSuccess);
+            }
+
+            this.Hide();
+        }
+
+        private void OnClickBtnCancel()
+        {
+            this.Hide();
+        }
+
+        private void OnBtnCheckClick()
+        {
+            ActivityDataManager.Instance.CHECK_TIPS_OPEN = _ui.m_btnCheck.selected;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableTipsView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 78a8f16f58e813342b509f5e9a17db04
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 93 - 36
GameClient/Assets/Game/HotUpdate/Views/TurnTable/TurnTableView.cs

@@ -16,6 +16,7 @@ namespace GFGGame
         private UI_TurnTableUI _ui;
         private ValueBarController _valueBarController;
         private int activityID;
+        private int propID;
         private int WaitTime;
         private float duratio;
         //这里固定旋转
@@ -114,12 +115,12 @@ namespace GFGGame
             }
             normalEndValue.Clear();
             activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityDataManager.Instance.TurnTableActivityType);
-            int propID = TurntableLuckyBoxCfgArray.Instance.GetCfgByActivityId(activityID).CostID;
+            propID = TurntableLuckyBoxCfgArray.Instance.GetCfgByActivityId(activityID).CostID;
             int dropId = TurntableLuckyBoxCfgArray.Instance.GetCfgByActivityId(activityID).DropId;
             rewardItemList = DropOutCfgArray.Instance.GetCfgsByid(dropId);
             rewardList = TurntableRewardCfgArray.Instance.GetCfgsByActivityId(activityID);
             _valueBarController.OnShown();
-            _valueBarController.UpdateList(new List<int>() { propID, ConstItemID.DIAMOND_PURPLE});
+            _valueBarController.UpdateList(new List<int>() { propID, ConstItemID.DIAMOND_RED, ConstItemID.DIAMOND_PURPLE});
             UpdateView();
             UpdateRewardItem();
             UpdateReward();
@@ -141,14 +142,14 @@ namespace GFGGame
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateView);
-            EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateReward);
+            EventAgent.AddEventListener(ConstMessage.TurnTable_DateCHANGE, UpdateReward);
             EventAgent.AddEventListener(ConstMessage.REWARDVIEW_CLOTHER, ShowReward);
         }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.SHOP_BUY, UpdateView);
-            EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateReward);
+            EventAgent.RemoveEventListener(ConstMessage.TurnTable_DateCHANGE, UpdateReward);
             EventAgent.RemoveEventListener(ConstMessage.REWARDVIEW_CLOTHER, ShowReward);
         }
         private void ShowReward()
@@ -241,7 +242,7 @@ namespace GFGGame
         //更新下面次数的物品
         private void UpdateReward()
         {
-            if(ActivityDataManager.Instance.TurnSpecialRewardList.Count > 0)
+            if(ActivityDataManager.Instance.TurnSpecialRewardList != null &&  ActivityDataManager.Instance.TurnSpecialRewardList.Count > 0)
             {
                 _ui.m_specialEffect.visible = true;
             }
@@ -335,49 +336,105 @@ namespace GFGGame
         }
         private async void OnClickBtnStartOne()
         {
-            bool result = await ActivitySProxy.ReqTurnTableWish(1);
-            if (result)
-            {
-                wishType = 0;
-                _ui.m_btnStartOne.touchable = false;
-                _ui.m_btnStartThree.touchable = false;
-                await TurnStart(0);
-                await Task.Delay(WaitTime);
-                BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnRewardList));
-                ActivityDataManager.Instance.TurnRewardList.Clear();
-                UpdateReward();
-                _ui.m_btnStartOne.touchable = true;
-                _ui.m_btnStartThree.touchable = true;
+            ItemData item;
+            if (BagDataManager.Instance.GetBagData().TryGetValue(propID, out item))
+            {
+                if (item.num >= 1)
+                {
+                    bool result = await ActivitySProxy.ReqTurnTableWish(1);
+                    if (result)
+                    {
+                        wishType = 0;
+                        _ui.m_btnStartOne.touchable = false;
+                        _ui.m_btnStartThree.touchable = false;
+                        await TurnStart(0);
+                        await Task.Delay(WaitTime);
+                        BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnRewardList));
+                        ActivityDataManager.Instance.TurnRewardList.Clear();
+                        UpdateReward();
+                        _ui.m_btnStartOne.touchable = true;
+                        _ui.m_btnStartThree.touchable = true;
+                    }
+                    else
+                    {
+                        //Debug.LogError("许愿失败");
+                    }
+                }
+                else
+                {
+                    if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
+                        TurnTipsController.Show(propID, 1, null, true);
+                    else
+                    {
+                        OnBuyItem(propID, 1);
+                    }
+                }
             }
             else
             {
-                //Debug.LogError("许愿失败");
+                if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
+                    TurnTipsController.Show(propID, 1, null, true);
+                else
+                {
+                    OnBuyItem(propID, 1);
+                }
             }
         }
         private async void OnClickBtnStartThree()
         {
-            bool result = await ActivitySProxy.ReqTurnTableWish(2);
-            if (result)
-            {
-                _ui.m_btnStartOne.touchable = false;
-                _ui.m_btnStartThree.touchable = false;
-                await TurnStart(0);
-                await Task.Delay(WaitTime);
-                await TurnStart(1);
-                await Task.Delay(WaitTime);
-                await TurnStart(2);
-                await Task.Delay(WaitTime);
-                BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnRewardList));
-                ActivityDataManager.Instance.TurnRewardList.Clear();
-                _ui.m_btnStartOne.touchable = true;
-                _ui.m_btnStartThree.touchable = true;
-                UpdateReward();
+            ItemData item;
+            if (BagDataManager.Instance.GetBagData().TryGetValue(propID, out item))
+            {
+                if(item.num >= 3)
+                {
+                    bool result = await ActivitySProxy.ReqTurnTableWish(2);
+                    if (result)
+                    {
+                        _ui.m_btnStartOne.touchable = false;
+                        _ui.m_btnStartThree.touchable = false;
+                        await TurnStart(0);
+                        await Task.Delay(WaitTime);
+                        await TurnStart(1);
+                        await Task.Delay(WaitTime);
+                        await TurnStart(2);
+                        await Task.Delay(WaitTime);
+                        BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(ActivityDataManager.Instance.TurnRewardList));
+                        ActivityDataManager.Instance.TurnRewardList.Clear();
+                        _ui.m_btnStartOne.touchable = true;
+                        _ui.m_btnStartThree.touchable = true;
+                        UpdateReward();
+                    }
+                    else
+                    {
+                        //Debug.LogError("许愿失败");
+                    }
+                }
+                else
+                {
+                    if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
+                        TurnTipsController.Show(propID, 3,null, true);
+                    else
+                    {
+                        OnBuyItem(propID, 3);
+                    }
+                }
             }
             else
             {
-                //Debug.LogError("许愿失败");
+                if (ActivityDataManager.Instance.CHECK_TIPS_OPEN == false)
+                    TurnTipsController.Show(propID, 3, null, true);
+                else
+                {
+                    OnBuyItem(propID, 3);
+                }
             }
         }
+        private async void OnBuyItem(int itemId, long count)
+        {
+            var _result = await ItemExchangeSProxy.ItemExchange(itemId, count);
+            if (_result)
+                BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(itemId, count));
+        }
         private void OnClickBtnShop()
         {
             ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });

BIN
GameClient/Assets/ResIn/UI/ActivityGetYuanXiao/ActivityGetYuanXiao_fui.bytes


BIN
GameClient/Assets/ResIn/UI/TurnTable/TurnTable_fui.bytes