From 27f2bdbe5c911d2b4fbcd1f01ca38129c4e10702 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 09 十二月 2024 21:49:53 +0800
Subject: [PATCH] 10300 仙缘礼包支持多档

---
 System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActModel.cs |    8 ++--
 System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActWin.cs   |   59 +++++++++++++++--------------
 2 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActModel.cs b/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActModel.cs
index 3d79e38..2ec7940 100644
--- a/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActModel.cs
+++ b/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActModel.cs
@@ -29,7 +29,6 @@
 
         public event Action<int> onStateUpdate;
         public Redpoint redPoint = new Redpoint(MainRedDot.FairyAffinityRepoint, MainRedDot.FairyAffinityRepoint * 10 + 4); //鍙兘鎸傚涓埗绾㈢偣
-        public int getGiftCount;//浠欑紭绀煎寘璐拱x娆″彲鑾峰緱绉濂栧姳
 
         private int GiftAwardRecord; //棰嗗彇鐘舵��
 
@@ -51,7 +50,6 @@
             storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
             vipModel.rechargeCountEvent += VipModel_rechargeCountEvent;
             OpenServerActivityCenter.Instance.Register(activityID, this, activityType);
-            getGiftCount = int.Parse(FuncConfigConfig.Get("FairyAffinity").Numerical3);
         }
 
         public void OnBeforePlayerDataInitialize()
@@ -146,8 +144,10 @@
             OperationRechargeGiftAct act;
             OperationTimeHepler.Instance.TryGetOperation(operaType, out act);
 
-            if (act == null) return 0;
-            if (GetBuyTotalCnt() < count) return 0;
+            if (act == null) 
+                return 0;
+            if (GetBuyTotalCnt() < count)
+                return 0;
             if (((int)Math.Pow(2, count) & GiftAwardRecord) == 0)
             {
                 return 1;
diff --git a/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActWin.cs b/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActWin.cs
index 2746b05..0ef21a5 100644
--- a/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActWin.cs
+++ b/System/LoopAct/FairyAffinity/FairyAffinityRechargeGiftActWin.cs
@@ -44,8 +44,13 @@
             model.PlayAnimationSync += OnPlaySyncAnimation;
             if (curValue == 0)
                 return;
+            OperationRechargeGiftAct act;
+            OperationTimeHepler.Instance.TryGetOperation(FairyAffinityRechargeGiftActModel.operaType, out act);
+            if (act == null) return;
+            int awardShowIndex = GetAwardShowIndex();
+            var awardInfo = act.buyCountGifts[awardShowIndex];
             int freeState = model.GetBuyGiftState(0);
-            int cntState = model.GetBuyGiftState(model.getGiftCount);
+            int cntState = model.GetBuyGiftState(awardInfo.NeedBuyCount);
 
             for (int i = 0; i < freeTweenList.Count; i++)
             {
@@ -121,8 +126,13 @@
                 buyCountGiftTweenList[i].Stop();
                 buyCountGiftTweenList[i].SetStartState();
             }
+            OperationRechargeGiftAct act;
+            OperationTimeHepler.Instance.TryGetOperation(FairyAffinityRechargeGiftActModel.operaType, out act);
+            if (act == null) return;
+            int awardShowIndex = GetAwardShowIndex();
+            var awardInfo = act.buyCountGifts[awardShowIndex];
             int freeState = model.GetBuyGiftState(0);
-            int cntState = model.GetBuyGiftState(model.getGiftCount);
+            int cntState = model.GetBuyGiftState(awardInfo.NeedBuyCount);
 
             for (int i = 0; i < freeTweenList.Count; i++)
             {
@@ -189,11 +199,10 @@
         {
             OperationRechargeGiftAct act;
             OperationTimeHepler.Instance.TryGetOperation(FairyAffinityRechargeGiftActModel.operaType, out act);
-            int freeState = model.GetBuyGiftState(0);
-            int cntState = model.GetBuyGiftState(model.getGiftCount);
-
             var awardInfo = act.buyCountGifts[0];
             var awards = awardInfo.AwardItemList;
+            int freeState = model.GetBuyGiftState(0);
+            
 
             for (int i = 0; i < freeItems.Count; i++)
             {
@@ -228,7 +237,9 @@
                 }
             }
 
-            awardInfo = act.buyCountGifts[GetIndex(model.getGiftCount)];
+            int awardShowIndex = GetAwardShowIndex();
+            awardInfo = act.buyCountGifts[awardShowIndex];
+            int cntState = model.GetBuyGiftState(awardInfo.NeedBuyCount);
             awards = awardInfo.AwardItemList;
             for (int i = 0; i < buyCountGiftItems.Count; i++)
             {
@@ -243,7 +254,7 @@
                     {
                         if (cntState == 1)
                         {
-                            model.SendGetAward(model.getGiftCount);
+                            model.SendGetAward(awardInfo.NeedBuyCount);
                         }
                         else
                         {
@@ -263,13 +274,15 @@
                 }
             }
 
-            int totalBuyCnt = model.GetBuyTotalCnt();
-            buyCountGiftSlider.value = totalBuyCnt / (float)model.getGiftCount;
-            buyCountGiftSliderText.text = string.Format("{0}/{1}", totalBuyCnt, model.getGiftCount);
-            buyCountGiftText.text = Language.Get("FairyAffinity11", Mathf.Max(0, model.getGiftCount - totalBuyCnt));
+            int totalBuyCnt = model.GetBuyTotalCnt();
+            int needBuyCount = awardInfo.NeedBuyCount;
+            buyCountGiftSlider.value = totalBuyCnt / (float)needBuyCount;
+            buyCountGiftSliderText.text = string.Format("{0}/{1}", totalBuyCnt,needBuyCount);
+            buyCountGiftText.text = Language.Get("FairyAffinity11", Mathf.Max(0, needBuyCount));
 
             model.IsPlayAnimation = true;
         }
+
 
         private void OnRefreshCell(ScrollerDataType type, CellView cell)
         {
@@ -347,28 +360,13 @@
             return seconds;
         }
 
-        private int GetIndex(int cnt)
-        {
-            OperationRechargeGiftAct act;
-            OperationTimeHepler.Instance.TryGetOperation(FairyAffinityRechargeGiftActModel.operaType, out act);
-            if (act == null) return 0;
-            for (int i = 0; i < act.buyCountGifts.Count; i++)
-            {
-                if (act.buyCountGifts[i].NeedBuyCount == cnt)
-                {
-                    return i;
-                }
-            }
-            return 0;
-        }
-
         private int GetAwardShowIndex()
         {
             OperationRechargeGiftAct act;
             OperationTimeHepler.Instance.TryGetOperation(FairyAffinityRechargeGiftActModel.operaType, out act);
             if (act == null) return 0;
 
-            for (int i = 0; i < act.buyCountGifts.Count; i++)
+            for (int i = 1; i < act.buyCountGifts.Count; i++)
             {
                 if (model.GetBuyGiftState(act.buyCountGifts[i].NeedBuyCount) != 2)
                 {
@@ -390,8 +388,13 @@
                 buyCountGiftTweenList[i].Stop();
                 buyCountGiftTweenList[i].SetStartState();
             }
+            OperationRechargeGiftAct act;
+            OperationTimeHepler.Instance.TryGetOperation(FairyAffinityRechargeGiftActModel.operaType, out act);
+            if (act == null) return ;
+            int awardShowIndex = GetAwardShowIndex();
+            var awardInfo = act.buyCountGifts[awardShowIndex];
             int freeState = model.GetBuyGiftState(0);
-            int cntState = model.GetBuyGiftState(model.getGiftCount);
+            int cntState = model.GetBuyGiftState(awardInfo.NeedBuyCount);
 
             for (int i = 0; i < freeTweenList.Count; i++)
             {

--
Gitblit v1.8.0