From f728da2a51d563bd02cd97df4d153917ac76a8a6 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期六, 11 十月 2025 14:19:47 +0800
Subject: [PATCH] 218 子 【付费内容】首充 / 【付费内容】首充-客户端 修改红点初始化时机
---
Main/System/FirstCharge/FirstChargeManager.cs | 43 ++++++++++++++++++++++---------------------
1 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/Main/System/FirstCharge/FirstChargeManager.cs b/Main/System/FirstCharge/FirstChargeManager.cs
index 8c5cb99..353ddd8 100644
--- a/Main/System/FirstCharge/FirstChargeManager.cs
+++ b/Main/System/FirstCharge/FirstChargeManager.cs
@@ -30,7 +30,8 @@
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
-
+ InitClickTabDict();
+ InitRedPoint();
}
public override void Release()
@@ -110,15 +111,15 @@
{
firstChargeInfoDict.Clear();
}
+
public void OnPlayerLoginOk()
{
- InitClickTabDict();
- InitRedPoint();
- if (FuncOpen.Instance.IsFuncOpen(FuncID)&& TryGetUnBuyFirstId(out int firstId))
+ if (FuncOpen.Instance.IsFuncOpen(FuncID) && TryGetUnBuyFirstId(out int firstId))
{
PopupWindowsProcessor.Instance.Add("FirstChargeWin");
}
}
+
public bool TryGetFirstChargeDataByFirstId(int firstId, out FirstChargeData firstChargeData)
{
return firstChargeInfoDict.TryGetValue(firstId, out firstChargeData);
@@ -254,7 +255,7 @@
UpdateRedPoint();
OnUpdateFirstChargeInfo?.Invoke();
}
-
+
/// <summary>
/// 妫�鏌ユ槸鍚︽墍鏈夐鍏呭鍔遍兘宸查鍙栵紝濡傛灉鏄紝鍒欏皢褰撳墠鏈嶅姟鍣ㄦ椂闂翠繚瀛樺埌鏈湴
/// </summary>
@@ -355,7 +356,7 @@
}
}
}
-
+
// 妫�鏌ユ槸鍚︽墍鏈夐鍏呭鍔遍兘宸茬粡棰嗗彇
public bool IsAllFirstChargeRewardsClaimed()
{
@@ -363,17 +364,17 @@
var firstChargeIds = FirstChargeConfig.GetKeys();
if (firstChargeIds == null || firstChargeIds.Count == 0)
return false;
-
+
foreach (var firstId in firstChargeIds)
{
// 灏濊瘯鑾峰彇棣栧厖鏁版嵁
if (!TryGetFirstChargeDataByFirstId(firstId, out var firstChargeData))
return false;
-
+
// 妫�鏌ユ槸鍚﹁喘涔�
if (!firstChargeData.IsBuy())
return false;
-
+
// 妫�鏌ユ槸鍚︽墍鏈夊鍔遍兘宸查鍙�
if (!firstChargeData.IsAllHave())
return false;
@@ -383,32 +384,32 @@
// 妫�鏌ユ槸鍚﹀凡缁忚繃浜嗙浜屽ぉ0鐐�
return true;
}
-
+
// 妫�鏌ユ槸鍚﹀凡缁忚繃浜嗘墍鏈夊鍔遍鍙栧畬姣曞悗鐨勭浜屽ぉ0鐐�
public bool IsNextDayAfterAllClaimed()
{
// 鐢熸垚涓�涓敮涓�鐨勯敭鏉ヨ幏鍙栨椂闂�
string key = $"FirstCharge_AllRewardsClaimed_Time_{PlayerDatas.Instance.baseData.PlayerID}";
-
+
// 妫�鏌ユ槸鍚﹀瓨鍦ㄨ褰曠殑鏃堕棿鎴�
if (!LocalSave.HasKey(key))
return false;
-
+
// 鑾峰彇璁板綍鐨勬椂闂存埑
string timeString = LocalSave.GetString(key);
if (string.IsNullOrEmpty(timeString))
return false;
-
+
// 瑙f瀽鏃堕棿鎴�
if (!long.TryParse(timeString, out long ticks))
return false;
-
+
// 灏嗘椂闂存埑杞崲涓篋ateTime
DateTime allRewardsClaimedTime = new DateTime(ticks);
-
+
// 璁$畻绗簩澶�0鐐圭殑鏃堕棿
DateTime nextDayStart = allRewardsClaimedTime.Date.AddDays(1);
-
+
// 鍒ゆ柇褰撳墠鏈嶅姟鍣ㄦ椂闂存槸鍚﹀凡缁忚繃浜嗙浜屽ぉ0鐐�
DateTime serverNow = TimeUtility.ServerNow;
return serverNow >= nextDayStart;
@@ -458,8 +459,8 @@
}
return true;
}
-
- // ... existing code ...
+
+ // ... existing code ...
/// <summary>
/// 鑾峰彇褰撳墠鏃堕棿鏄喘涔拌繖妗e厖鍊肩ぜ鍖呯殑绗嚑澶�
/// 璐拱鐨勫綋澶╃畻浣滅涓�澶╋紝绗簩澶�0鐐瑰悗绠楃浜屽ぉ锛屼互姝ょ被鎺�
@@ -469,15 +470,15 @@
{
DateTime serverNow = TimeUtility.ServerNow;
DateTime chargeTime = TimeUtility.GetTime(ChargeTime);
-
+
DateTime chargeDate = chargeTime.Date;
DateTime serverDate = serverNow.Date;
-
+
// 璁$畻浠庡厖鍊兼棩鏈熷埌褰撳墠鏃ユ湡鐨勫畬鏁村ぉ鏁�
// 璐拱鐨勫綋澶╃畻绗竴澶╋紝绗簩澶�0鐐瑰悗绠楃浜屽ぉ
TimeSpan timeSpan = serverDate - chargeDate;
int days = (int)timeSpan.TotalDays + 1; // +1 鍥犱负褰撳ぉ绠楃涓�澶�
-
+
int maxDay = FirstChargeManager.Instance.maxDay;
return Mathf.Min(maxDay, Mathf.Max(1, days));
--
Gitblit v1.8.0