zhaoyang 3 vuotta sitten
vanhempi
commit
ef337768fc

+ 2 - 2
FGUIProject/assets/CommonGame/components/Button14.xml

@@ -9,12 +9,12 @@
     </image>
     <loader id="n1_10not" name="icon" xy="50,10" size="60,60" group="n3_10not" url="ui://eg2y0ldpg3nf9q"/>
     <text id="n2_10not" name="txtIcon" xy="60,15" size="40,49" group="n3_10not" fontSize="36" color="#fdfaed" strokeColor="#ac904e" strokeSize="2" text="¥"/>
-    <group id="n3_10not" name="n3" xy="50,10" size="60,60" group="n8_10not"/>
+    <group id="n3_10not" name="n3" xy="50,10" size="60,60" group="n8_10not" advanced="true"/>
     <text id="n4_10not" name="txtOriginalPrice" xy="123,15" pivot="0.5,0" size="26,49" group="n6_10not" fontSize="36" color="#fdfaed" align="center" strokeColor="#ac904e" text="4"/>
     <image id="n5_10not" name="n5" src="dmsi1h" fileName="images/sc_xtxtxt.png" xy="120,38" pivot="0.5,0" size="33,10" group="n6_10not">
       <relation target="n4_10not" sidePair="width-width"/>
     </image>
-    <group id="n6_10not" name="n6" xy="120,15" size="33,49" group="n8_10not"/>
+    <group id="n6_10not" name="n6" xy="120,15" size="33,49" group="n8_10not" advanced="true"/>
     <text id="n7_10not" name="txtPrice" xy="163,15" size="26,49" group="n8_10not" fontSize="36" color="#fdfaed" align="center" strokeColor="#ac904e" text="5"/>
     <group id="n8_10not" name="n8" xy="50,10" size="139,60" advanced="true" layout="hz" colGap="10" excludeInvisibles="true">
       <gearDisplay controller="c1" pages="0"/>

+ 4 - 2
FGUIProject/assets/RechargeStore/RechargeStoreUI.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,1920">
-  <controller name="c1" pages="0,,1,,2," selected="2"/>
+  <controller name="c1" pages="0,,1,,2," selected="1"/>
   <displayList>
     <image id="n2_d4iw" name="n2" src="10nota3" fileName="bgimg/scsc_bjbj.jpg" pkg="eg2y0ldp" xy="0,-240">
       <relation target="" sidePair="center-center,middle-middle"/>
@@ -10,7 +10,9 @@
     <image id="n15_10not" name="n15" src="dmsi1d" fileName="images/sc_kuangjia_1.png" xy="0,305" size="1080,1615">
       <relation target="" sidePair="height-height,top-top"/>
     </image>
-    <image id="n16_10not" name="n16" src="10not1r" fileName="images/sc_kuangjia_3.png" xy="0,1613"/>
+    <image id="n16_10not" name="n16" src="10not1r" fileName="images/sc_kuangjia_3.png" xy="0,1613">
+      <relation target="" sidePair="left-left,bottom-bottom"/>
+    </image>
     <component id="n17_10not" name="comTab" src="10not1s" fileName="components/Component1.xml" xy="96,290"/>
     <list id="n10_d4iw" name="list" xy="0,368" size="1080,1160" layout="flow_hz" overflow="scroll" scrollBarFlags="64" colGap="22" defaultItem="ui://vlgobc15d4iwr" align="center" scrollItemToViewOnClick="false">
       <gearDisplay controller="c1" pages="0"/>

+ 1 - 1
FGUIProject/assets/RechargeStore/components/StoreListItem.xml

@@ -8,6 +8,6 @@
       <relation target="" sidePair="center-center,middle-middle"/>
     </text>
     <component id="n14_d4iw" name="btnBuy" src="d4iw59" fileName="components/Button5.xml" pkg="eg2y0ldp" xy="19,433"/>
-    <text id="n18_dmsi" name="txtDesc" xy="8,380" pivot="0.5,0" size="286,49" fontSize="36" color="#bb674e" text="首充赠送+60钻石"/>
+    <text id="n18_dmsi" name="txtDesc" xy="6,380" pivot="0.5,0" size="290,49" font="ui://eg2y0ldpk1kha2" fontSize="36" color="#bb674e" letterSpacing="-2" text="首充赠送+6000钻石"/>
   </displayList>
 </component>

+ 119 - 5
GameClient/Assets/Game/HotUpdate/Data/RechargeDataManager.cs

@@ -1,7 +1,23 @@
+using System;
 using System.Collections.Generic;
+using System.Linq;
+using ET;
 
 namespace GFGGame
 {
+    public class RechargeStoreType
+    {
+        public static int RECHARGE = 0;
+        public static int GIFT = 1;
+        public static int EXCHANGE = 2;
+
+    }
+    public class LockType
+    {
+        public static int NONE = 0;
+        public static int STORY_LV = 1;
+        public static int ROLE_LV = 2;
+    }
     public class RechargeDataManager : SingletonBase<RechargeDataManager>
     {
         private Dictionary<int, int> _rechargeDic = new Dictionary<int, int>();
@@ -47,16 +63,114 @@ namespace GFGGame
             }
         }
 
+        /// <summary>
+        /// 根据充值id获取购买次数
+        /// </summary>
+        /// <param name="rechargeId"></param>
+        /// <returns></returns>
+        public int GetRechargeBuyNumById(int rechargeId)
+        {
+            return !_rechargeDic.ContainsKey(rechargeId) ? 0 : _giftDic[rechargeId];
+        }
+        /// <summary>
+        /// 根据礼包id获取购买次数
+        /// </summary>
+        /// <param name="giftId"></param>
+        /// <returns></returns>
+        public int GetGiftBuyNumById(int giftId)
+        {
+            return !_giftDic.ContainsKey(giftId) ? 0 : _giftDic[giftId];
+        }
+        /// <summary>
+        /// 根据充值id获取购买次数
+        /// </summary>
+        /// <param name="exchangeId"></param>
+        /// <returns></returns>
+        public int GetExchangeBuyNumById(int exchangeId)
+        {
+            return !_exchangeDic.ContainsKey(exchangeId) ? 0 : _giftDic[exchangeId];
+        }
+
 
-        public List<GiftBagCfg> GetGiftBagDatas()
+        public List<GiftBagCfg> GetGiftBagCfgs()
         {
-            GiftBagCfg[] giftBagCfgs = GiftBagCfgArray.Instance.dataArray;
-            List<GiftBagCfg> giftBagDatas = new List<GiftBagCfg>();
-            for (int i = 0; i < giftBagCfgs.Length; i++)
+            List<GiftBagCfg> giftBagCfgs = new List<GiftBagCfg>();
+
+            List<GiftBagCfg> noneGiftBagCfgs = GetNoneGiftCfg();
+            giftBagCfgs = giftBagCfgs.Concat(noneGiftBagCfgs).ToList<GiftBagCfg>();
+
+            GiftBagCfg StoryLvGiftCfg = GetStoryLvGiftCfg();
+            if (StoryLvGiftCfg != null) giftBagCfgs.Add(StoryLvGiftCfg);
+            GiftBagCfg RoleLvGiftCfg = GetRoleLvGiftCfg();
+            if (RoleLvGiftCfg != null) giftBagCfgs.Add(RoleLvGiftCfg);
+            SortGiftBagCfgs(giftBagCfgs);
+            return giftBagCfgs;
+        }
+
+        private List<GiftBagCfg> SortGiftBagCfgs(List<GiftBagCfg> giftBagCfgs)
+        {
+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) =>
             {
+                // if (GetGiftBuyNumById(a.id) < a.maxBuyNum && GetGiftBuyNumById(b.id) < b.maxBuyNum)
+                // {
+                //     return -1;
+                // }
+                // else if (GetGiftBuyNumById(a.id) < a.maxBuyNum && GetGiftBuyNumById(b.id) < b.maxBuyNum)
+                int buyTypeA = a.maxBuyNum - GetGiftBuyNumById(a.id) > 0 ? 1 : a.maxBuyNum - GetGiftBuyNumById(a.id) == 0 ? 0 : -1;
+                int buyTypeB = b.maxBuyNum - GetGiftBuyNumById(b.id) > 0 ? 1 : b.maxBuyNum - GetGiftBuyNumById(b.id) == 0 ? 0 : -1;
+                return buyTypeA.CompareTo(buyTypeB);
+
+            });
+            return giftBagCfgs;
+        }
+        private List<GiftBagCfg> GetNoneGiftCfg()
+        {
+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.NONE);
 
+            for (int i = giftBagCfgs.Count - 1; i >= 0; i--)
+            {
+                if (giftBagCfgs[i].startTime != "" && TimeUtil.IsBeforeCurTime(giftBagCfgs[i].startTime) || giftBagCfgs[i].endTime != "" && TimeUtil.IsLaterCurTime(giftBagCfgs[i].endTime))
+                {
+                    giftBagCfgs.RemoveAt(i);
+                }
+            }
+            return giftBagCfgs;
+        }
+        private GiftBagCfg GetStoryLvGiftCfg()
+        {
+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.STORY_LV);
+            if (giftBagCfgs.Count == 0) return null;
+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) =>
+            {
+                if (a.storyLevelId.CompareTo(b.storyLevelId) != 0)
+                {
+                    return a.storyLevelId.CompareTo(b.storyLevelId);
+                }
+                return -1;
+            });
+            for (int i = 0; i < giftBagCfgs.Count; i++)
+            {
+                if (InstanceZonesDataManager.CheckLevelPass(giftBagCfgs[i].storyLevelId) && (GetGiftBuyNumById(giftBagCfgs[i].id) < giftBagCfgs[i].maxBuyNum)) return giftBagCfgs[i];
+            }
+            return giftBagCfgs[0];
+        }
+        private GiftBagCfg GetRoleLvGiftCfg()
+        {
+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.ROLE_LV);
+            if (giftBagCfgs.Count == 0) return null;
+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) =>
+            {
+                if (a.lv.CompareTo(b.lv) != 0)
+                {
+                    return a.lv.CompareTo(b.lv);
+                }
+                return -1;
+            });
+            for (int i = 0; i < giftBagCfgs.Count; i++)
+            {
+                if ((GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl) >= giftBagCfgs[i].lv) && (GetGiftBuyNumById(giftBagCfgs[i].id) < giftBagCfgs[i].maxBuyNum)) return giftBagCfgs[i];
             }
-            return giftBagDatas;
+            return giftBagCfgs[0];
         }
     }
 }

+ 16 - 4
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/RechargeStoreView.cs

@@ -57,10 +57,22 @@ namespace GFGGame
         private void OnComTabChange()
         {
             _ui.m_c1.selectedIndex = _ui.m_comTab.m_c1.selectedIndex;
+
         }
         private void OnTabChange()
         {
-
+            if (_ui.m_c1.selectedIndex == RechargeStoreType.RECHARGE)
+            {
+                _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
+            }
+            else if (_ui.m_c1.selectedIndex == RechargeStoreType.GIFT)
+            {
+                _ui.m_listGift.numItems = RechargeDataManager.Instance.GetGiftBagCfgs().Count;
+            }
+            else if (_ui.m_c1.selectedIndex == RechargeStoreType.EXCHANGE)
+            {
+                _ui.m_listExchange.numItems = ShopExchangeCfgArray.Instance.dataArray.Length;
+            }
         }
         private void ListItemRenderer(int index, GObject obj)
         {
@@ -76,9 +88,9 @@ namespace GFGGame
             }
             item.m_btnBuy.data = index;
             item.m_txtName.text = string.Format("{0}{1}", itemData.itemNum, itemData.name);
-            item.m_txtDesc.text = string.Format("首赠送+{0}{1}", itemData.itemNum, itemData.name);
-            item.m_imgDouble.visible = false;
-            item.m_txtDesc.visible = false;
+            item.m_txtDesc.text = string.Format("首赠送+{0}{1}", itemData.itemNum, itemData.name);
+            item.m_imgDouble.visible = RechargeDataManager.Instance.GetRechargeBuyNumById(itemData.id) <= itemData.doubleTimes;
+            item.m_txtDesc.visible = RechargeDataManager.Instance.GetRechargeBuyNumById(itemData.id) <= itemData.doubleTimes; ;
             item.m_icon.url = "ui://RechargeStore/sc_zizhuan_" + itemData.id;
 
             UI_StoreListItem.ProxyEnd();

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


BIN
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes


BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_fui.bytes