Răsfoiți Sursa

卡牌按稀有度升级

zhaoyang 2 ani în urmă
părinte
comite
47c2ad482e

+ 1 - 1
GameClient/Assets/Editor/Excel/CodeBuilder.cs

@@ -104,7 +104,7 @@ namespace GFGEditor
                 ParseDataColumn(annotation, type, name, nameWhole, typeWhole, i);
                 ParseDataColumn(annotation, type, name, nameWhole, typeWhole, i);
             }
             }
 
 
-
+            Debug.Log("configArrayName:" + configArrayName + "   _names:" + _names + "   _types:" + _types);
             //创建sqlite表
             //创建sqlite表
             SQLiteHelper.Instance.CreateTable(configArrayName, _names.ToArray(), _types.ToArray());
             SQLiteHelper.Instance.CreateTable(configArrayName, _names.ToArray(), _types.ToArray());
             AddDataToSql(worksheet, configName, configArrayName);
             AddDataToSql(worksheet, configName, configArrayName);

+ 1 - 1
GameClient/Assets/Editor/Excel/ExcelReader.cs

@@ -107,7 +107,7 @@ namespace GFGEditor
             {
             {
                 string filePath = files[i];
                 string filePath = files[i];
                 string fileName = Path.GetFileNameWithoutExtension(filePath);
                 string fileName = Path.GetFileNameWithoutExtension(filePath);
-                if (!fileName.Contains("~"))
+                if (!fileName.Contains("~") && !fileName.Contains("0000自动生表工具"))
                 {
                 {
                     string newPath = ExcelConfig.excelsCacheFolderPath + fileName + ".xlsx";
                     string newPath = ExcelConfig.excelsCacheFolderPath + fileName + ".xlsx";
                     Stream newStream = new FileStream(newPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                     Stream newStream = new FileStream(newPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);

+ 1 - 1
GameClient/Assets/Editor/Excel/ExcelScanner.cs

@@ -17,7 +17,7 @@ namespace GFGEditor
             //扫描副本
             //扫描副本
             InstanceZonesScanner.StartScan();
             InstanceZonesScanner.StartScan();
             // //写入卡牌最大等级
             // //写入卡牌最大等级
-            // CardScanner.StartScan();
+            CardScanner.StartScan();
 
 
             GiftBagScanner.StartScan();
             GiftBagScanner.StartScan();
             FieldScanner.StartScan();
             FieldScanner.StartScan();

+ 38 - 38
GameClient/Assets/Editor/Excel/Scanner/CardScanner.cs

@@ -15,45 +15,45 @@ namespace GFGEditor
         public static void StartScan()
         public static void StartScan()
         {
         {
             levelCountDIc.Clear();
             levelCountDIc.Clear();
-            // var dataArray = CardLvlCfgArray.Instance.dataArray;
-            // SQLiteHelper.Instance.OpenConnection();
-            // try
-            // {
-            //     foreach (var cfg in dataArray)
-            //     {
-            //         int count = levelCountDIc.ContainsKey(cfg.cardRarity) ? levelCountDIc[cfg.cardRarity] : 0;
-            //         levelCountDIc[cfg.cardRarity] = count + 1;
-            //     }
-            // }
-            // catch (Exception e)
-            // {
-            //     ET.Log.Error(e.ToString());
-            // }
-            // finally
-            // {
-            //     SQLiteHelper.Instance.CloseConnection();
-            // }
-            // SQLiteHelper.Instance.OpenConnection();
-            // try
-            // {
-            //     ICollection<int> keys = levelCountDIc.Keys;
-            //     foreach (int key in keys)
-            //     {
-            //         int count = levelCountDIc[key];
+            var dataArray = CardLvlCfgArray.Instance.dataArray;
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                foreach (var cfg in dataArray)
+                {
+                    int count = levelCountDIc.ContainsKey(cfg.rarity) ? levelCountDIc[cfg.rarity] : 0;
+                    levelCountDIc[cfg.rarity] = count + 1;
+                }
+            }
+            catch (Exception e)
+            {
+                ET.Log.Error(e.ToString());
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                ICollection<int> keys = levelCountDIc.Keys;
+                foreach (int key in keys)
+                {
+                    int count = levelCountDIc[key];
 
 
-            //         var names = new string[] { "maxCardLvl" };
-            //         var values = new string[] { "" + count };
-            //         SQLiteHelper.Instance.UpdateValues(nameof(CardRarityCfgArray), names, values, "cardRarity", key.ToString());
-            //     }
-            // }
-            // catch (Exception e)
-            // {
-            //     ET.Log.Error(e.ToString());
-            // }
-            // finally
-            // {
-            //     SQLiteHelper.Instance.CloseConnection();
-            // }
+                    var names = new string[] { "maxCardLvl" };
+                    var values = new string[] { "" + count };
+                    SQLiteHelper.Instance.UpdateValues(nameof(CardRarityCfgArray), names, values, "cardRarity", key.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                ET.Log.Error(e.ToString());
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
 
 
         }
         }
 
 

+ 9 - 6
GameClient/Assets/Game/HotUpdate/Data/CardDataManager.cs

@@ -135,8 +135,9 @@ namespace GFGGame
         public static bool isFullLv(int cardId, int lv, bool showTips = true)
         public static bool isFullLv(int cardId, int lv, bool showTips = true)
         {
         {
             CardData cardData = _cardDicByType[0][cardId];
             CardData cardData = _cardDicByType[0][cardId];
-            int maxLv = CardLvlCfgArray.Instance.GetCfgsBycardId(cardId).Count;
-            if (lv >= maxLv && cardData.exp >= CardLvlCfgArray.Instance.GetCfgBycardIdAndcardLvl(cardId, maxLv).needExp)
+            int rarity = cardData.itemCfg.rarity;
+            int maxLv = CardRarityCfgArray.Instance.GetCfg(rarity).maxCardLvl;
+            if (lv >= maxLv && cardData.exp >= CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(rarity, maxLv).needExp)
             {
             {
                 if (showTips == true)
                 if (showTips == true)
                 {
                 {
@@ -170,8 +171,10 @@ namespace GFGGame
         {
         {
             showLv = curLv;
             showLv = curLv;
             showExp = curExp + hasExp;
             showExp = curExp + hasExp;
-            int maxLv = CardLvlCfgArray.Instance.GetCfgsBycardId(cardId).Count;
-            CardLvlCfg tCurCfg = CardLvlCfgArray.Instance.GetCfgBycardIdAndcardLvl(cardId, showLv);
+            CardData cardData = _cardDicByType[0][cardId];
+            int rarity = cardData.itemCfg.rarity;
+            int maxLv = CardRarityCfgArray.Instance.GetCfg(rarity).maxCardLvl;
+            CardLvlCfg tCurCfg = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(rarity, showLv);
             while (showExp >= tCurCfg.needExp && showLv <= maxLv)
             while (showExp >= tCurCfg.needExp && showLv <= maxLv)
             {
             {
 
 
@@ -184,7 +187,7 @@ namespace GFGGame
                     break;
                     break;
                 }
                 }
                 showLv++;
                 showLv++;
-                tCurCfg = CardLvlCfgArray.Instance.GetCfgBycardIdAndcardLvl(cardId, showLv);
+                tCurCfg = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(rarity, showLv);
                 // if (showExp < tCurCfg.needExp)
                 // if (showExp < tCurCfg.needExp)
                 // {
                 // {
                 //     showLv = showLv - 1;
                 //     showLv = showLv - 1;
@@ -201,7 +204,7 @@ namespace GFGGame
                 CardData cardData = cardList[i];
                 CardData cardData = cardList[i];
                 bool isRole = _selectRoleList.Count == 0 || _selectRoleList.IndexOf(cardData.itemCfg.subType) >= 0;
                 bool isRole = _selectRoleList.Count == 0 || _selectRoleList.IndexOf(cardData.itemCfg.subType) >= 0;
                 bool isRarity = _selectRarityList.Count == 0 || _selectRarityList.IndexOf(cardData.itemCfg.rarity) >= 0;
                 bool isRarity = _selectRarityList.Count == 0 || _selectRarityList.IndexOf(cardData.itemCfg.rarity) >= 0;
-                int maxLv = CardLvlCfgArray.Instance.GetCfgsBycardId(cardData.id).Count;
+                int maxLv = CardRarityCfgArray.Instance.GetCfg(cardData.itemCfg.rarity).maxCardLvl;
                 bool isFoster = _selectFosterList.Count == 0 ||
                 bool isFoster = _selectFosterList.Count == 0 ||
                 _selectFosterList.IndexOf(ConstCardState.STATE_FULL_LV) >= 0 && cardList[i].lv == maxLv ||
                 _selectFosterList.IndexOf(ConstCardState.STATE_FULL_LV) >= 0 && cardList[i].lv == maxLv ||
                 _selectFosterList.IndexOf(ConstCardState.STATE_LV) >= 0 && cardList[i].lv < maxLv ||
                 _selectFosterList.IndexOf(ConstCardState.STATE_LV) >= 0 && cardList[i].lv < maxLv ||

+ 54 - 8
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -21,7 +21,7 @@ namespace GFGGame
         private UI_ComCostCurrencyWithHas _comStarCousumeGold;
         private UI_ComCostCurrencyWithHas _comStarCousumeGold;
         private CardData _cardData = new CardData();
         private CardData _cardData = new CardData();
         private int _selectTab = 0;
         private int _selectTab = 0;
-
+        private List<LongPressGesture> _listLongPress = new List<LongPressGesture>();
         private GameObject _cardObj;
         private GameObject _cardObj;
         private GoWrapper _wrapper;
         private GoWrapper _wrapper;
 
 
@@ -44,6 +44,12 @@ namespace GFGGame
         private Vector2 comCardImgResInitSize;
         private Vector2 comCardImgResInitSize;
         public override void Dispose()
         public override void Dispose()
         {
         {
+            for (int i = 0; i < _listLongPress.Count; i++)
+            {
+                _listLongPress[i].Dispose();
+            }
+            _listLongPress.Clear();
+
             if (_valueBarController != null)
             if (_valueBarController != null)
             {
             {
                 _valueBarController.Dispose();
                 _valueBarController.Dispose();
@@ -215,11 +221,11 @@ namespace GFGGame
 
 
             _showLv = isPreview == true ? lv : _cardData.lv;
             _showLv = isPreview == true ? lv : _cardData.lv;
             _showExp = isPreview == true ? exp : _cardData.exp;
             _showExp = isPreview == true ? exp : _cardData.exp;
-            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgBycardIdAndcardLvl(_cardData.id, _showLv);
+            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(_cardData.itemCfg.rarity, _showLv);
 
 
             _comFosterBottom.m_barLv.max = cardLvCfg.needExp;
             _comFosterBottom.m_barLv.max = cardLvCfg.needExp;
             _comFosterBottom.m_barLv.value = _showExp;
             _comFosterBottom.m_barLv.value = _showExp;
-            int maxLv = CardLvlCfgArray.Instance.GetCfgsBycardId(cardLvCfg.cardId).Count;
+            int maxLv = CardRarityCfgArray.Instance.GetCfg(_cardData.itemCfg.rarity).maxCardLvl;
             _comFosterBottom.m_txtMaxLv.text = maxLv.ToString();
             _comFosterBottom.m_txtMaxLv.text = maxLv.ToString();
             _comFosterBottom.m_txtCurLv.text = StringUtil.GetColorText(_showLv.ToString(), _showLv < maxLv ? "#D27869" : "#7D6956");
             _comFosterBottom.m_txtCurLv.text = StringUtil.GetColorText(_showLv.ToString(), _showLv < maxLv ? "#D27869" : "#7D6956");
             _comFosterBottom.m_txtMaxExp.text = cardLvCfg.needExp.ToString();
             _comFosterBottom.m_txtMaxExp.text = cardLvCfg.needExp.ToString();
@@ -244,7 +250,7 @@ namespace GFGGame
         private void RenderListLvConsumeItem(int index, GObject obj)
         private void RenderListLvConsumeItem(int index, GObject obj)
         {
         {
             UI_ComConsume listItem = UI_ComConsume.Proxy(obj);
             UI_ComConsume listItem = UI_ComConsume.Proxy(obj);
-            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgBycardIdAndcardLvl(_cardData.id, _cardData.lv);
+            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(_cardData.itemCfg.rarity, _cardData.lv);
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(upgradeCardItemsArr[index]);
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(upgradeCardItemsArr[index]);
             listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
             listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
             listItem.m_txtNum.text = ItemDataManager.GetItemNum(itemCfg.id).ToString();
             listItem.m_txtNum.text = ItemDataManager.GetItemNum(itemCfg.id).ToString();
@@ -261,6 +267,12 @@ namespace GFGGame
             {
             {
                 listItem.m_loaBg.onTouchBegin.Add(OnClickItemConsumsBegin);
                 listItem.m_loaBg.onTouchBegin.Add(OnClickItemConsumsBegin);
                 listItem.m_loaBg.onTouchEnd.Add(OnClickItemLvConsumsEnd);
                 listItem.m_loaBg.onTouchEnd.Add(OnClickItemLvConsumsEnd);
+                // LongPressGesture longPressGesture = new LongPressGesture(listItem.m_loaBg);
+                // longPressGesture.once = true;
+                // LongPressGesture.TRIGGER = 1f;
+                // longPressGesture.onAction.Add(OnClickItemLvConsumsEnd);
+                // // longPressGesture.onEnd.Add(OnLongEnd);
+                // _listLongPress.Add(longPressGesture);
             }
             }
             listItem.m_btnMinus.data = 0;
             listItem.m_btnMinus.data = 0;
             listItem.m_loaBg.data = 1;
             listItem.m_loaBg.data = 1;
@@ -280,6 +292,8 @@ namespace GFGGame
             _consumeSelectIndex = type;
             _consumeSelectIndex = type;
             if (type == 1)
             if (type == 1)
             {
             {
+                if (IsUpLvLimit()) return;
+
                 if (ItemDataManager.GetItemNum(itemId) == 0)
                 if (ItemDataManager.GetItemNum(itemId) == 0)
                 {
                 {
                     // ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData } });
                     // ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData } });
@@ -287,7 +301,7 @@ namespace GFGGame
                     GoodsItemTipsController.ShowItemTips(itemId, sourceDatas);
                     GoodsItemTipsController.ShowItemTips(itemId, sourceDatas);
                 }
                 }
             }
             }
-            //_timer.Start();
+            OnTimedEvent(null);
             Timers.inst.Add(0.3f, 0, OnTimedEvent);
             Timers.inst.Add(0.3f, 0, OnTimedEvent);
         }
         }
         private void OnTimedEvent(object param)
         private void OnTimedEvent(object param)
@@ -308,11 +322,12 @@ namespace GFGGame
                 }
                 }
                 else
                 else
                 {
                 {
-                    if (!CommonUtil.Instance.CheckPointIsOnComponent(_consumeSelectItem, CommonUtil.Instance.GetMouseV2Point()))
+                    if (!CommonUtil.Instance.CheckPointIsOnComponent(_consumeSelectItem, CommonUtil.Instance.GetMouseV2Point()) || IsUpLvLimit())
                     {
                     {
                         Timers.inst.Remove(OnTimedEvent);
                         Timers.inst.Remove(OnTimedEvent);
                         return;
                         return;
                     }
                     }
+
                     this.OnClickBtnPlusLvConsume(_consumeSelectItem);
                     this.OnClickBtnPlusLvConsume(_consumeSelectItem);
                 }
                 }
             }
             }
@@ -328,6 +343,8 @@ namespace GFGGame
             }
             }
             else
             else
             {
             {
+                // if (IsUpLvLimit(false)) return;
+
                 this.OnClickBtnPlusLvConsume(_consumeSelectItem);
                 this.OnClickBtnPlusLvConsume(_consumeSelectItem);
             }
             }
         }
         }
@@ -345,8 +362,9 @@ namespace GFGGame
 
 
                 return false;
                 return false;
             }
             }
-            int maxLv = CardLvlCfgArray.Instance.GetCfgsBycardId(_cardData.id).Count;
-            int needExp = CardLvlCfgArray.Instance.GetCfgBycardIdAndcardLvl(_cardData.id, _showLv).needExp;
+
+            int maxLv = CardRarityCfgArray.Instance.GetCfg(_cardData.itemCfg.rarity).maxCardLvl;
+            int needExp = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(_cardData.itemCfg.rarity, _showLv).needExp;
             if (_showLv == maxLv && _comFosterBottom.m_barLv.value >= needExp)
             if (_showLv == maxLv && _comFosterBottom.m_barLv.value >= needExp)
             {
             {
                 Timers.inst.Remove(OnTimedEvent);
                 Timers.inst.Remove(OnTimedEvent);
@@ -357,6 +375,7 @@ namespace GFGGame
                 }
                 }
                 return false;
                 return false;
             }
             }
+            if (IsUpLvLimit(false)) return false;
             itemsCount[index] = itemsCount[index] + 1;
             itemsCount[index] = itemsCount[index] + 1;
             listItem.m_txtUseCount.text = itemsCount[index].ToString();
             listItem.m_txtUseCount.text = itemsCount[index].ToString();
             this.UpdatePreView();
             this.UpdatePreView();
@@ -411,6 +430,7 @@ namespace GFGGame
         {
         {
             for (int i = 0; i < itemsCount.Count; i++)
             for (int i = 0; i < itemsCount.Count; i++)
             {
             {
+                if (IsUpLvLimit()) break;
                 long itemNum = ItemDataManager.GetItemNum(upgradeCardItemsArr[i]);
                 long itemNum = ItemDataManager.GetItemNum(upgradeCardItemsArr[i]);
                 for (long j = 0; j < itemNum; j++)
                 for (long j = 0; j < itemNum; j++)
                 {
                 {
@@ -473,6 +493,32 @@ namespace GFGGame
                 }
                 }
             }
             }
         }
         }
+
+        private bool IsUpLvLimit(bool showTips = true)
+        {
+            int lvLimit = RoleLevelCfgArray.Instance.GetCfg(RoleDataManager.lvl).cardLeverLimit;
+            if (_showLv >= lvLimit)
+            {
+                if (!showTips) return true;
+
+                int roleLv = RoleDataManager.lvl;
+                for (int i = roleLv + 1; i < RoleLevelCfgArray.Instance.dataArray.Length; i++)
+                {
+                    int limit = RoleLevelCfgArray.Instance.GetCfg(i).cardLeverLimit;
+                    if (_showLv < limit)
+                    {
+                        roleLv = i;
+                        break;
+                    }
+                }
+
+                PromptController.Instance.ShowFloatTextPrompt(string.Format("角色等级达到{0}级", roleLv));
+
+                return true;
+            }
+
+            return false;
+        }
         /***********************************************************升星***************************************************/
         /***********************************************************升星***************************************************/
 
 
 
 

BIN
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes