From fd3dabf9fef6ee6576383439afb99dde09fa1903 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 10 十一月 2025 20:36:15 +0800
Subject: [PATCH] 218 子 【付费内容】首充 / 【付费内容】首充-客户端 首充入口开启的条件改:开启首充入口任务已完成,本地有死亡记录,购买过一档以上首冲,满足其一就会开启入口
---
Main/System/FirstCharge/FirstChargeManager.cs | 76 +++++++++++++++++++++++++++++++++----
1 files changed, 67 insertions(+), 9 deletions(-)
diff --git a/Main/System/FirstCharge/FirstChargeManager.cs b/Main/System/FirstCharge/FirstChargeManager.cs
index de873c6..bc6f145 100644
--- a/Main/System/FirstCharge/FirstChargeManager.cs
+++ b/Main/System/FirstCharge/FirstChargeManager.cs
@@ -4,7 +4,8 @@
public class FirstChargeManager : GameSystemManager<FirstChargeManager>
{
- public const int FuncID = 21;
+ public int taskID;
+ public int nextTaskID;
public int mainItemId { get { return GetMainItemId(); } }
public int heroItemID;
public int maxGiftCount
@@ -27,7 +28,7 @@
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
- FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ TaskManager.Instance.OnTaskUpdate += OnTaskUpdate;
InitClickTabDict();
InitRedPoint();
}
@@ -37,21 +38,28 @@
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent;
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent;
- FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ TaskManager.Instance.OnTaskUpdate -= OnTaskUpdate;
}
- private void OnFuncStateChangeEvent(int obj)
+
+ public event Action OnFirstChargeTaskUpdateEvent;
+ int beforeMainID;
+ private void OnTaskUpdate()
{
- if (FuncID == obj)
+ int currentTaskID = TaskManager.Instance.mainTask.TaskID;
+
+ if (beforeMainID == taskID && currentTaskID == nextTaskID)
{
- string key = $"FirstCharge_FirstTime_{FuncID}_{PlayerDatas.Instance.baseData.PlayerID}";
+ string key = $"FirstCharge_FirstTime_{taskID}_{PlayerDatas.Instance.baseData.PlayerID}";
if (!LocalSave.HasKey(key))
{
- // 绗竴娆″紑鍚姛鑳�
+ // 绗竴娆″畬鎴愪换鍔�
LocalSave.SetBool(key, true);
PopupWindowsProcessor.Instance.Add("FirstChargeWin");
+ OnFirstChargeTaskUpdateEvent?.Invoke();
}
}
+ beforeMainID = currentTaskID;
}
public void InitClickTabDict()
@@ -108,11 +116,15 @@
public void OnBeforePlayerDataInitializeEvent()
{
firstChargeInfoDict.Clear();
+
+ FuncConfigConfig config = FuncConfigConfig.Get("FirstCharge");
+ taskID = int.Parse(config.Numerical1);
+ nextTaskID = int.Parse(config.Numerical2);
}
public void OnPlayerLoginOk()
{
- if (FuncOpen.Instance.IsFuncOpen(FuncID) && TryGetUnBuyFirstId(out int firstId))
+ if (IsFuncOpen() && TryGetUnBuyFirstId(out int firstId))
{
PopupWindowsProcessor.Instance.Add("FirstChargeWin");
}
@@ -130,7 +142,7 @@
return;
if (battleName == "TianziBillboradBattleField")
return;
- if (!FuncOpen.Instance.IsFuncOpen(FuncID))
+ if (!IsFuncOpen())
return;
if (!TryGetUnBuyFirstId(out int firstId))
return;
@@ -140,6 +152,52 @@
}
}
+ public string loaclKey = "FirstCharge_Fail_";
+
+ public bool GetLocalFail()
+ {
+ return LocalSave.GetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId));
+ }
+
+ public void SetLocalFail()
+ {
+ LocalSave.SetBool(StringUtility.Contact(loaclKey + PlayerDatas.Instance.PlayerId), true);
+ }
+
+ public bool IsFuncOpen()
+ {
+ if (IsBuyOne())
+ return true;
+ if (TaskConfig.HasKey(taskID) &&
+ TaskManager.Instance.mainTask != null &&
+ TaskConfig.HasKey(TaskManager.Instance.mainTask.TaskID) &&
+ TaskManager.Instance.GetNeedFinishTaskCount(taskID) <= 0)
+ return true;
+ bool isLocalFail = GetLocalFail();
+ return isLocalFail;
+ }
+
+ // 鏈変竴妗h璐拱灏辫繑鍥瀟rue
+ public bool IsBuyOne()
+ {
+ var firstChargeList = FirstChargeConfig.GetKeys();
+ if (firstChargeList != null)
+ {
+ firstChargeList.Sort();
+ foreach (int item in firstChargeList)
+ {
+ if (TryGetFirstChargeDataByFirstId(item, out FirstChargeData data))
+ {
+ if (data.IsUnlock() && data.IsBuy())
+ {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
public bool TryGetUnBuyFirstId(out int firstId)
{
firstId = 0;
--
Gitblit v1.8.0