From 725b7b2374f43582a2d78b2cae3f8303359651b8 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 10 十一月 2025 14:30:53 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/BattlePass/BattlePassManager.cs | 125 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 118 insertions(+), 7 deletions(-)
diff --git a/Main/System/BattlePass/BattlePassManager.cs b/Main/System/BattlePass/BattlePassManager.cs
index 173a2fd..e8d7b86 100644
--- a/Main/System/BattlePass/BattlePassManager.cs
+++ b/Main/System/BattlePass/BattlePassManager.cs
@@ -3,6 +3,7 @@
using UnityEngine;
using System;
using System.Linq;
+using LitJson;
public partial class BattlePassManager : GameSystemManager<BattlePassManager>
@@ -11,17 +12,25 @@
Dictionary<int, BattlePassData> battlePassDataDict = new Dictionary<int, BattlePassData>();
public event Action<int> BattlePassDataUpdateEvent;
+
Dictionary<int, int[]> buyZhanlingTypeDict = new Dictionary<int, int[]>();
+
public override void Init()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+ PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
+ BlessLVManager.Instance.OnBlessLVUpdateEvent += OnBlessLVUpdateEvent;
ParseConfig();
}
public override void Release()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+ PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
+ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
+ BlessLVManager.Instance.OnBlessLVUpdateEvent -= OnBlessLVUpdateEvent;
}
void OnBeforePlayerDataInitialize()
@@ -33,6 +42,12 @@
{
var config = FuncConfigConfig.Get("Zhanling");
buyZhanlingTypeDict = ConfigParse.ParseIntArrayDict(config.Numerical1);
+ battlePassTypeSortList = JsonMapper.ToObject<int[]>(config.Numerical5);
+
+ foreach (var type in battlePassTypeSortList)
+ {
+ redpointCommonDict[type] = new Redpoint(MainRedDot.RedPoint_FundKey, MainRedDot.RedPoint_FundKey * 100 + type);
+ }
}
@@ -54,10 +69,10 @@
HB120_tagMCZhanlingInfo.tagMCZhanling reward = netPack.RewardList[i];
if (!battlePassData.battlePassCellDict.ContainsKey((int)reward.NeedValue))
{
- battlePassData.battlePassCellDict[(int)reward.NeedValue] = new BattlePassCell();
+ battlePassData.battlePassCellDict[(int)reward.NeedValue] = new BattlePassAwardState();
}
- BattlePassCell battlePassCell = battlePassData.battlePassCellDict[(int)reward.NeedValue];
+ BattlePassAwardState battlePassCell = battlePassData.battlePassCellDict[(int)reward.NeedValue];
battlePassCell.freeRewardState = reward.FreeRewardState;
battlePassCell.zlRewardState = reward.ZLRewardState;
battlePassCell.zlRewardStateH = reward.ZLRewardStateH;
@@ -67,12 +82,51 @@
BattlePassDataUpdateEvent?.Invoke(netPack.ZhanlingType);
}
+ #region 绾㈢偣
- void UpdateRedpoint(int type)
+ void OnBlessLVUpdateEvent()
+ {
+ UpdateCommonBPRedpoint(2);
+ }
+
+ void OnPlayerDataRefresh(PlayerDataType type)
{
switch (type)
{
- case WeekBattlePassType:
+ case PlayerDataType.LV:
+ case PlayerDataType.ExAttr1:
+ {
+ UpdateCommonBPRedpoint(1);
+ UpdateCommonBPRedpoint(3);
+ break;
+ }
+ }
+ }
+
+ void OnPlayerLoginOk()
+ {
+ foreach (var type in battlePassTypeSortList)
+ {
+ UpdateCommonBPRedpoint(type);
+ }
+ }
+
+
+
+ void UpdateRedpoint(int type)
+ {
+ switch ((BattlePassType)type)
+ {
+ case BattlePassType.LV:
+ case BattlePassType.BlessLV:
+ case BattlePassType.MainLine:
+ case BattlePassType.GuBao:
+ case BattlePassType.Arena:
+ {
+ UpdateCommonBPRedpoint(type);
+ break;
+ }
+ case BattlePassType.Week:
{
UpdateWeekRedPoint();
break;
@@ -80,6 +134,9 @@
}
}
+
+
+ #endregion
//鏄惁鏈変换浣曞鍔卞彲浠ラ鍙�
public bool HasAnyAward(int type, int totalValue)
{
@@ -231,7 +288,7 @@
public int JumpIndex(BattlePassData battlePassData, int zhanLingType, int totalValue)
{
-
+
var ids = ZhanlingConfig.GetTypeToIDDict(zhanLingType).Values.ToList();
ids.Sort();
int index = -1;
@@ -255,10 +312,54 @@
}
return index;
}
+
+ //鏄惁鍏ㄩ儴瀹屾垚(濂栧姳鍏ㄩ鍙�)
+ public bool IsAllFinish(int type)
+ {
+ battlePassDataDict.TryGetValue(type, out BattlePassData battlePassData);
+ if (battlePassData == null)
+ return false;
+ if (battlePassData.allFinishTime != 0)
+ return true;
+ return false;
+ }
+
+ public int GetTotalValue(int _type)
+ {
+ battlePassDataDict.TryGetValue(_type, out BattlePassData battlePassData);
+ switch ((BattlePassType)_type)
+ {
+ case BattlePassType.LV:
+ {
+ return PlayerDatas.Instance.baseData.LV;
+ }
+ case BattlePassType.BlessLV:
+ {
+ return BlessLVManager.Instance.m_TreeLV;
+ }
+ case BattlePassType.MainLine:
+ {
+ return PlayerDatas.Instance.baseData.ExAttr1 / 100;
+ }
+ case BattlePassType.GuBao:
+ {
+ return (int)battlePassData.value1;
+ }
+ case BattlePassType.Arena:
+ {
+ return (int)battlePassData.value1;
+ }
+ case BattlePassType.Week:
+ {
+ return (int)battlePassData.value1;
+ }
+ }
+ return 0;
+ }
}
-public class BattlePassCell
+public class BattlePassAwardState
{
public byte freeRewardState; // 鍏嶈垂鎴樹护濂栧姳鏄惁宸查鍙�
public byte zlRewardState; // 鏅�氭垬浠ゅ鍔辨槸鍚﹀凡棰嗗彇
@@ -273,5 +374,15 @@
public uint allFinishTime; // 鍏ㄩ儴濂栧姳棰嗗彇瀹屾瘯鐨勬椂闂存埑锛屾湭瀹屾瘯鏃惰鍊间负0锛屽悗绔細鍦�0鐐硅繃澶╂椂妫�鏌ュ彲鍚﹂噸缃紝鍓嶇鑷鍋氬�掕鏃惰〃鐜板嵆鍙�
public uint value1; // 鎴樹护瀵瑰簲鐨勮嚜瀹氫箟鍊硷紝鍙�夛紝濡傜櫥褰曟垬浠や唬琛ㄥ紑濮嬭绠楁棩鏈熸椂闂存埑
- public Dictionary<int, BattlePassCell> battlePassCellDict = new Dictionary<int, BattlePassCell>();
+ public Dictionary<int, BattlePassAwardState> battlePassCellDict = new Dictionary<int, BattlePassAwardState>();
+}
+
+public enum BattlePassType
+{
+ LV = 1, //绛夌骇
+ BlessLV = 2, //绁濈绛夌骇
+ MainLine = 3, //涓荤嚎鍏冲崱
+ GuBao = 4, //鍙ゅ疂
+ Arena = 5, //婕旀鍦�
+ Week = 6, //鍛ㄦ垬浠�
}
\ No newline at end of file
--
Gitblit v1.8.0