From f4a702e212d1853735f8dae399da69d23bfa510e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 18:16:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/System/OSActivity/OSRankGiftBaseCell.cs |  176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 176 insertions(+), 0 deletions(-)

diff --git a/Main/System/OSActivity/OSRankGiftBaseCell.cs b/Main/System/OSActivity/OSRankGiftBaseCell.cs
new file mode 100644
index 0000000..ddfd7e5
--- /dev/null
+++ b/Main/System/OSActivity/OSRankGiftBaseCell.cs
@@ -0,0 +1,176 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public abstract class OSRankGiftBaseCell : CellView
+{
+    [SerializeField] protected ImageEx vipImage;
+    [SerializeField] protected TextEx vipText;
+    [SerializeField] protected OutlineEx vipTextOutline;
+    [SerializeField] protected ImageEx rateImage;
+    [SerializeField] protected TextEx rateText;
+    [SerializeField] protected Text nameText;
+    [SerializeField] protected ItemCell[] itemCells;
+    [SerializeField] protected Button buyBtn;
+    [SerializeField] protected Text moneyText;
+    [SerializeField] protected Image moneyIcon;
+    [SerializeField] protected Transform saleOutRect;
+    [SerializeField] protected Image redImg;
+    [SerializeField] protected Text buyLimitText;
+    [SerializeField] protected Image maskImg;
+
+    // 鐢卞瓙绫诲疄鐜帮細鑾峰彇绀煎寘ID
+    protected abstract int GetGiftId(int index);
+    // 鐢卞瓙绫诲疄鐜帮細鑾峰彇楠岃瘉娲诲姩鏄惁缁撴潫鎵�闇�鐨勬椿鍔‵uncID
+    protected abstract int GetActivityFuncId();
+
+    public void Display(int index)
+    {
+        var id = GetGiftId(index);
+        if (id > 100000000)
+        {
+            // 鍏呭�肩ぜ鍖�
+            id -= 100000000;
+            var ctgConfig = CTGConfig.Get(id);
+            nameText.text = ctgConfig.Title;
+
+            vipImage.SetActive(ctgConfig.VipLevel > 0);
+            if (ctgConfig.VipLevel > 0)
+            {
+                vipImage.SetSprite($"VipLevel{ctgConfig.VipLevel}");
+                vipText.text = Language.Get($"VipLevelInfo{ctgConfig.VipLevel}");
+                vipText.color = InvestModel.Instance.GetTextColor(ctgConfig.VipLevel);
+                vipTextOutline.OutlineColor = InvestModel.Instance.GetOutlineColor(ctgConfig.VipLevel);
+            }
+
+            rateImage.SetActive(true);
+            rateText.text = Language.Get("DailySpecials07", ctgConfig.Percentage);
+            for (int i = 0; i < itemCells.Length; i++)
+            {
+                var itemCell = itemCells[i];
+                if (i < ctgConfig.GainItemList.Length)
+                {
+                    itemCell.SetActive(true);
+                    int itemID = ctgConfig.GainItemList[i][0];
+                    itemCell.Init(new ItemCellModel(itemID, true, ctgConfig.GainItemList[i][1]));
+                    itemCell.button.SetListener(() => ItemTipUtility.Show(itemID));
+                }
+                else
+                {
+                    itemCell.SetActive(false);
+                }
+            }
+
+            RechargeManager.Instance.TryGetRechargeCount(id, out var rechargeCount);
+            var limitCnt = ctgConfig.DailyBuyCount;
+            if (rechargeCount.todayCount < limitCnt)
+            {
+                saleOutRect.SetActive(false);
+                maskImg.SetActive(false);
+                buyBtn.SetActive(true);
+                buyBtn.SetListener(() =>
+                {
+                    if (!OSActivityManager.Instance.IsOpened(GetActivityFuncId(), false))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("ActivityOver");
+                        return;
+                    }
+
+                    if (ctgConfig.VipLevel > 0 && !FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("MinggeAuto8");
+                        return;
+                    }
+                    if (ctgConfig.VipLevel == 1 && !InvestModel.Instance.IsInvested(InvestModel.monthCardType))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("MinggeAuto5");
+                        UIManager.Instance.OpenWindow<PrivilegeCardWin>();
+                        return;
+                    }
+                    if (ctgConfig.VipLevel == 2 && !InvestModel.Instance.IsInvested(InvestModel.foreverCardType))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("MinggeAuto7");
+                        UIManager.Instance.OpenWindow<PrivilegeCardWin>();
+                        return;
+                    }
+
+                    RechargeManager.Instance.CTG(id);
+                });
+
+                RechargeManager.Instance.TryGetOrderInfo(id, out var orderInfo);
+
+                moneyText.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderInfo.PayRMBNumOnSale));
+                moneyIcon.SetActive(false);
+            }
+            else
+            {
+                saleOutRect.SetActive(true);
+                maskImg.SetActive(true);
+                buyBtn.SetActive(false);
+            }
+            buyLimitText.text = Language.Get("storename6", limitCnt - rechargeCount.todayCount, limitCnt);
+            redImg.SetActive(false);
+        }
+        else
+        {
+            rateImage.SetActive(false);
+            vipImage.SetActive(false);
+            // 鍟嗗簵鐗╁搧
+            var storeConfig = StoreConfig.Get(id);
+            nameText.text = storeConfig.Name;
+            var awards = StoreModel.Instance.GetShopItemlistEx(storeConfig);
+            for (int i = 0; i < itemCells.Length; i++)
+            {
+                var itemCell = itemCells[i];
+                if (i < awards.Count)
+                {
+                    itemCell.SetActive(true);
+                    int itemID = awards[i][0];
+                    itemCell.Init(new ItemCellModel(itemID, true, awards[i][1]));
+                    itemCell.button.SetListener(() => ItemTipUtility.Show(itemID));
+                }
+                else
+                {
+                    itemCell.SetActive(false);
+                }
+            }
+
+            var state = StoreModel.Instance.GetShopIDState(id);
+            if (state == 1)
+            {
+                saleOutRect.SetActive(true);
+                maskImg.SetActive(true);
+                buyBtn.SetActive(false);
+                redImg.SetActive(false);
+            }
+            else
+            {
+                saleOutRect.SetActive(false);
+                maskImg.SetActive(false);
+                buyBtn.SetActive(true);
+                buyBtn.SetListener(() =>
+                {
+                    if (!OSActivityManager.Instance.IsOpened(GetActivityFuncId(), false))
+                    {
+                        SysNotifyMgr.Instance.ShowTip("ActivityOver");
+                        return;
+                    }
+
+                    StoreModel.Instance.SendBuyShopItemWithPopCheck(storeConfig, 1);
+                });
+                moneyText.text = storeConfig.MoneyNum == 0 ? Language.Get("L1127") : storeConfig.MoneyNum.ToString();
+                moneyIcon.SetActive(storeConfig.MoneyNum != 0);
+                if (storeConfig.MoneyType <= 0)
+                {
+                    moneyIcon.SetItemSprite(storeConfig.CostItemID);
+                }
+                else
+                {
+                    moneyIcon.SetIconWithMoneyType(storeConfig.MoneyType);
+                }
+                redImg.SetActive(storeConfig.MoneyNum == 0);
+            }
+            var buyCnt = StoreModel.Instance.GetShopLimitBuyCount(id);
+            buyLimitText.text = Language.Get("storename6", storeConfig.LimitCnt - buyCnt, storeConfig.LimitCnt);
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0