From da8ba158da20c9251025753e4b0bf172a52c5ade Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 13 五月 2026 17:38:11 +0800
Subject: [PATCH] 638 VIP专属客服
---
Main/System/SuperVIP/SuperVIPWin.cs.meta | 11 +++
Main/System/SuperVIP/SuperVIPWin.cs | 45 +++++++++++++++
Main/System/SuperVIP/SuperVipManager.cs | 35 +++++++++++
Main/System/Main/RightFuncInHome.cs | 15 ++++
Main/Main.cs | 2
Main/System/SuperVIP.meta | 8 ++
Main/System/SuperVIP/SuperVipManager.cs.meta | 11 +++
7 files changed, 125 insertions(+), 2 deletions(-)
diff --git a/Main/Main.cs b/Main/Main.cs
index 7c58da3..f2c56e5 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -122,6 +122,8 @@
managers.Add(FestivalActivityRechargeTotDayManager.Instance);
managers.Add(FestivalActivityCheckInManager.Instance);
managers.Add(FestivalActivityMissionManager.Instance);
+ managers.Add(SuperVipManager.Instance);
+
foreach (var manager in managers)
{
diff --git a/Main/System/Main/RightFuncInHome.cs b/Main/System/Main/RightFuncInHome.cs
index 7b05a29..8a90497 100644
--- a/Main/System/Main/RightFuncInHome.cs
+++ b/Main/System/Main/RightFuncInHome.cs
@@ -19,6 +19,7 @@
[SerializeField] Button signBtn;
[SerializeField] Button previewBtn;
[SerializeField] Button reviewBtn; //濂借瘎
+ [SerializeField] Button superVIPBtn;
static string listenWindowName = ""; //鐩戝惉鍏抽棴鏃跺啀鏄剧ず
@@ -93,8 +94,12 @@
{
UIManager.Instance.OpenWindow<GoodReviewWin>();
});
+ superVIPBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<SuperVIPWin>();
+ });
}
-
+
void OnDestroy()
{
UIManager.Instance.OnCloseWindow -= OnCloseWindow;
@@ -111,8 +116,14 @@
monthCardBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard));
previewBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FunctionPreview));
reviewBtn.SetActive(SmallFuncManager.Instance.IsReviewOpen());
+ DisplaySuperVipBtn();
}
-
+
+ void DisplaySuperVipBtn()
+ {
+ bool isOpen = SuperVipManager.Instance.IsEntryOpen();
+ superVIPBtn.SetActive(isOpen);
+ }
//鏄鹃殣鍔熻兘鏍�
public void ShowFuncCol(bool _isShow)
diff --git a/Main/System/SuperVIP.meta b/Main/System/SuperVIP.meta
new file mode 100644
index 0000000..2855f4d
--- /dev/null
+++ b/Main/System/SuperVIP.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ac4a464f1ab9e5b4b9d48b510bf810f5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/SuperVIP/SuperVIPWin.cs b/Main/System/SuperVIP/SuperVIPWin.cs
new file mode 100644
index 0000000..cf6cf47
--- /dev/null
+++ b/Main/System/SuperVIP/SuperVIPWin.cs
@@ -0,0 +1,45 @@
+using UnityEngine;
+
+public class SuperVIPWin : UIBase
+{
+ [SerializeField] ItemCell[] itemCells;
+ [SerializeField] ButtonEx closeBtn;
+ SuperVipManager manager => SuperVipManager.Instance;
+
+ protected override void InitComponent()
+ {
+ closeBtn.SetListener(CloseWindow);
+
+ }
+
+ protected override void OnPreOpen()
+ {
+ DisplayRewards();
+ }
+
+ protected override void OnPreClose()
+ {
+ }
+
+ void DisplayRewards()
+ {
+ var rewards = manager.customerServiceRewards;
+ if (rewards == null) return;
+
+ for (int i = 0; i < itemCells.Length; i++)
+ {
+ if (i < rewards.Length)
+ {
+ itemCells[i].SetActive(true);
+ int itemID = rewards[i][0];
+ long count = rewards[i][1];
+ itemCells[i].Init(new ItemCellModel(itemID, false, count));
+ itemCells[i].button.SetListener(() => ItemTipUtility.Show(itemID));
+ }
+ else
+ {
+ itemCells[i].SetActive(false);
+ }
+ }
+ }
+}
diff --git a/Main/System/SuperVIP/SuperVIPWin.cs.meta b/Main/System/SuperVIP/SuperVIPWin.cs.meta
new file mode 100644
index 0000000..c46a48f
--- /dev/null
+++ b/Main/System/SuperVIP/SuperVIPWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bd161ea74bfffe74dbefbf3b27562e98
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/SuperVIP/SuperVipManager.cs b/Main/System/SuperVIP/SuperVipManager.cs
new file mode 100644
index 0000000..c44be4e
--- /dev/null
+++ b/Main/System/SuperVIP/SuperVipManager.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using LitJson;
+
+public class SuperVipManager : GameSystemManager<SuperVipManager>
+{
+ /// <summary>娓犻亾闂ㄦ閰嶇疆 {娓犻亾鍚�: 绱厖閲戦/鍏儅</summary>
+ public Dictionary<string, int> channelThresholdDict = new Dictionary<string, int>();
+ /// <summary>瀹㈡湇棰嗗彇濂栧姳鍒楄〃 [[鐗╁搧ID, 涓暟], ...]</summary>
+ public int[][] customerServiceRewards;
+
+ public override void Init()
+ {
+ var config = FuncConfigConfig.Get("SuperVIP");
+ channelThresholdDict = JsonMapper.ToObject<Dictionary<string, int>>(config.Numerical1);
+ customerServiceRewards = JsonMapper.ToObject<int[][]>(config.Numerical2);
+ }
+
+ public override void Release()
+ {
+
+ }
+
+ /// <summary>
+ /// 鍒ゅ畾SuperVIP鍏ュ彛鏄惁寮�鍚�
+ /// 鏉′欢: 褰撳墠娓犻亾鍦ㄩ厤缃〃涓� 涓� 鍘嗗彶绱厖 >= 閰嶇疆闂ㄦ(鍏�) * 100
+ /// </summary>
+ public bool IsEntryOpen()
+ {
+ var appId = VersionConfig.Get().appId;
+ if (!channelThresholdDict.TryGetValue(appId, out var thresholdYuan))
+ return false;
+ return RechargeManager.Instance.realRecharge >= thresholdYuan * 100;
+ }
+}
diff --git a/Main/System/SuperVIP/SuperVipManager.cs.meta b/Main/System/SuperVIP/SuperVipManager.cs.meta
new file mode 100644
index 0000000..da7dde4
--- /dev/null
+++ b/Main/System/SuperVIP/SuperVipManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 92cc6ff4738f597499bc9e243696f16c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0