Browse Source

feat 任务修改

Jae 2 năm trước cách đây
mục cha
commit
a959735bb6

+ 1 - 1
FGUIProject/assets/Task/BuyBattlePassLevelUI.xml

@@ -25,7 +25,7 @@
     <text id="n9_or80" name="Tip" xy="447,558" size="171,39" fontSize="28" color="#b79f7d" vars="true" text="{startLeve=0}级提升至{endLevel=1}级"/>
     <image id="n17_itts" name="Add" src="uxxstm6" fileName="images/an_jia.png" xy="674,490" group="n21_itts"/>
     <image id="n18_itts" name="Reduce" src="uxxstmz" fileName="images/an_jian.png" xy="329,492" group="n21_itts"/>
-    <component id="n22_itts" name="n22" src="ittstnk" fileName="components/BuyBattlePassLevelBt.xml" xy="402,490" group="n21_itts"/>
+    <component id="n22_itts" name="AddLevelBtn" src="ittstnk" fileName="components/BuyBattlePassLevelBt.xml" xy="402,490" group="n21_itts"/>
     <group id="n21_itts" name="n21" xy="329,490" size="406,62"/>
   </displayList>
 </component>

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs

@@ -111,7 +111,7 @@ namespace GFGGame
 
         private void SetSpecialCfgCache()
         {
-            var battlePassCfgs = BattlePassCfgArray.Instance.GetCfgsByisGood(1);
+            var battlePassCfgs = BattlePassCfgArray.Instance.GetCfgsByidAndisGood(GetSeasonId(), 1);
             var minIndex = 0;
             var selections = new List<Selection<int, int>>();
             foreach (var battlePassCfg in battlePassCfgs)
@@ -133,7 +133,7 @@ namespace GFGGame
         private void InitItemTemp()
         {
             tempItems.Clear();
-            var battlePassCfgs = BattlePassCfgArray.Instance.GetCfgsByisGood(GetSeasonId());
+            var battlePassCfgs = BattlePassCfgArray.Instance.GetCfgsByid(GetSeasonId());
             var items = new Dictionary<int, long>();
             foreach (var itemsInfo in battlePassCfgs.SelectMany(battlePassCfg => battlePassCfg.bonusSpecialArr))
             {

+ 15 - 7
GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Linq;
 using ET;
 using UnityEngine;
 
@@ -8,11 +9,14 @@ namespace GFGGame
     {
         private static Dictionary<int, ItemData> _dataDic = new Dictionary<int, ItemData>();
         private static Dictionary<int, int> _itemExchangeDic = new Dictionary<int, int>();
+
         delegate object MemberGetDelegate(ItemCfg p);
+
         public static void Clear()
         {
             _itemExchangeDic.Clear();
         }
+
         public static void Add(int itemID, long itemNum)
         {
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
@@ -27,8 +31,7 @@ namespace GFGGame
                 itemData = _dataDic[itemID];
                 if (itemCfg.itemType == ConstItemType.CARD)
                 {
-                    return;//每张卡牌只有一张
-
+                    return; //每张卡牌只有一张
                 }
             }
             else
@@ -51,13 +54,14 @@ namespace GFGGame
 
                 if (dataInited
                     && itemCfg.rarity == ConstDressRarity.Rarity_TIANYI
-                    && StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN + functionOpenCfg.index) == 0)
+                    && StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN +
+                                                                   functionOpenCfg.index) == 0)
                 {
-
                     FunctionOpenDataManager.Instance.CheckHasSpecialFunOpen();
                 }
             }
-            if ((itemCfg.itemType == ConstItemType.ITEM || itemCfg.itemType == ConstItemType.GIFT_BAG) && itemData.num > 0)
+            if ((itemCfg.itemType == ConstItemType.ITEM || itemCfg.itemType == ConstItemType.GIFT_BAG) &&
+                itemData.num > 0)
             {
                 BagDataManager.Instance.Add(itemData);
             }
@@ -102,7 +106,8 @@ namespace GFGGame
                     }
                 }
 
-                if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemID))
+                if (itemCfg.itemType == ConstItemType.DRESS_UP &&
+                    !DressUpMenuItemCfg1Array.Instance.CheckIsSceneType(itemID))
                 {
                     DecomposeDataManager.Instance.Remove(itemID);
                 }
@@ -149,6 +154,7 @@ namespace GFGGame
                 }
             }
         }
+
         public static void InitItemExchange(int itemId, int exchangTimes)
         {
             if (_itemExchangeDic.ContainsKey(itemId))
@@ -160,6 +166,7 @@ namespace GFGGame
                 _itemExchangeDic.Add(itemId, exchangTimes);
             }
         }
+
         //获取物品已兑换次数
         public static int GetItemExchangeTimes(int itemId)
         {
@@ -226,6 +233,7 @@ namespace GFGGame
             }
             return 0;
         }
+
         /// <summary>
         /// 获取一个换装部件对应的标签分数
         /// </summary>
@@ -250,10 +258,10 @@ namespace GFGGame
                         score += int.Parse(itemCfg.tagsArr[i][1]);
                     }
                 }
-
             }
             return score;
         }
+
         /// <summary>
         /// 检测一件服装是否包含要求的标签
         /// </summary>

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_BuyBattlePassLevelUI.cs

@@ -12,6 +12,7 @@ namespace UI.Task
         public GTextField m_Tip;
         public GImage m_Add;
         public GImage m_Reduce;
+        public GButton m_AddLevelBtn;
         public const string URL = "ui://5mpsibzzor80tm1";
         public const string PACKAGE_NAME = "Task";
         public const string RES_NAME = "BuyBattlePassLevelUI";
@@ -64,6 +65,7 @@ namespace UI.Task
             m_Tip = (GTextField)comp.GetChild("Tip");
             m_Add = (GImage)comp.GetChild("Add");
             m_Reduce = (GImage)comp.GetChild("Reduce");
+            m_AddLevelBtn = (GButton)comp.GetChild("AddLevelBtn");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -72,6 +74,7 @@ namespace UI.Task
             m_Tip = null;
             m_Add = null;
             m_Reduce = null;
+            m_AddLevelBtn = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 2
GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs

@@ -129,10 +129,11 @@ namespace GFGGame
         }
 
         //购买等级 C2S_BuyBattlePassLevel
-        public static async ETTask BuyBattlePassLevel(int upLevel)
+        public static async ETTask<bool> BuyBattlePassLevel(int upLevel)
         {
-            _ = (S2C_BuyBattlePassLevel)await MessageHelper.SendToServer(new C2S_BuyBattlePassLevel
+            var response = (S2C_BuyBattlePassLevel)await MessageHelper.SendToServer(new C2S_BuyBattlePassLevel
                 { UpLevel = upLevel });
+            return response is { Error: ErrorCode.ERR_Success };
         }
     }
 }

+ 6 - 0
GameClient/Assets/Game/HotUpdate/Utils/ItemUtil.cs

@@ -3,6 +3,7 @@ using FairyGUI;
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Linq;
 using UI.CommonGame;
 using UnityEngine;
 
@@ -165,6 +166,11 @@ namespace GFGGame
             return hasNum >= num;
         }
 
+        public static Boolean CheckItemEnough(int[][] items, int count=1)
+        {
+            return items.All(item => CheckItemEnough(item[0], item[1] * count));
+        }
+
         public static bool CheckMenuType1(int needItemId, int needSuitId, int typeId)
         {
             DressUpMenuItemCfg1 cfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(typeId);

+ 23 - 3
GameClient/Assets/Game/HotUpdate/Views/Task/BuyBattlePassLevelView.cs

@@ -32,6 +32,7 @@ namespace GFGGame
             _ui.m_Rewards.itemRenderer = SpecialRewardRender;
             _ui.m_Add.onClick.Add(OnAddLevel);
             _ui.m_Reduce.onClick.Add(OnReduceLevel);
+            _ui.m_AddLevelBtn.onClick.Add(OnRequestAddLevel);
         }
 
         protected override void OnShown()
@@ -66,17 +67,36 @@ namespace GFGGame
             var battlePassLevel = BattlePassTaskDataManager.Instance.GetBattlePassLevel();
             _ui.m_Tip.SetVar("StartLevel", battlePassLevel.ToString())
                 .SetVar("EndLevel", (battlePassLevel + addLevel).ToString()).FlushVars();
-            GlobalCfgArray.globalCfg.
-            _ui.m_Value.text = (addLevel * BattlePassTaskDataManager.Instance.GetBattlePassLevelPrice()).ToString();
+            var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
+            var count = globalCfgBattlePassLevelConsumeArr[0][1];
+            _ui.m_AddLevelBtn.text = (addLevel * count).ToString();
         }
 
-
         private void OnReduceLevel(EventContext context)
         {
+            if (addLevel == 0)
+            {
+                return;
+            }
+            addLevel -= 1;
+            setLevel();
         }
 
         private void OnAddLevel(EventContext context)
         {
+               
+        }
+
+        private async void OnRequestAddLevel(EventContext context)
+        {
+            //检查是否消耗足够
+            var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
+            if (!ItemUtil.CheckItemEnough(globalCfgBattlePassLevelConsumeArr, addLevel))
+            {
+                PromptController.Instance.ShowFloatTextPrompt("货币不够!");
+                return;
+            }
+            await BattlePassTaskSProxy.BuyBattlePassLevel(addLevel);
         }
     }
 }

BIN
GameClient/Assets/ResIn/UI/Task/Task_fui.bytes