From 91f6a3eb7961367d942b232ed3ea8810a6bf488a Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 05 十一月 2025 21:32:12 +0800
Subject: [PATCH] 236 子 【福利内容】每周任务
---
Main/Config/PartialConfigs/ZhanlingConfig.cs.meta | 11
Main/Config/Configs/ZhanlingConfig.cs.meta | 11
Main/System/DayMission/DayMissionManager.cs | 6
Main/Config/ConfigManager.cs | 5
Main/System/BattlePass/BattlePassManager.Week.cs.meta | 11
Main/System/DayMission/WeekBattlePassCell.cs | 88 +++++++
Main/System/DayMission/WeekBattlePassCell.cs.meta | 11
Main/System/DayMission/DayMissionBaseWin.cs | 3
Main/System/DayMission/WeekBattlePassWin.cs | 116 +++++++++
Main/System/BattlePass/BattlePassManager.Week.cs | 31 ++
Main/System/BattlePass/BattlePassManager.cs.meta | 11
Main/System/DayMission/WeekBattlePassWin.cs.meta | 11
Main/System/BattlePass.meta | 8
Main/System/BattlePass/BattlePassManager.cs | 277 +++++++++++++++++++++++
Main/Config/Configs/ZhanlingConfig.cs | 56 ++++
Main/Config/PartialConfigs/ZhanlingConfig.cs | 25 ++
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs | 7
Main/Main.cs | 1
18 files changed, 681 insertions(+), 8 deletions(-)
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index bf3639b..581039f 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -75,7 +75,8 @@
typeof(TreasureSetConfig),
typeof(TreeLVConfig),
typeof(WindowSearchConfig),
- typeof(XBGetItemConfig)
+ typeof(XBGetItemConfig),
+ typeof(ZhanlingConfig)
};
#if UNITY_EDITOR
@@ -301,6 +302,8 @@
ClearConfigDictionary<WindowSearchConfig>();
// 娓呯┖ XBGetItemConfig 瀛楀吀
ClearConfigDictionary<XBGetItemConfig>();
+ // 娓呯┖ ZhanlingConfig 瀛楀吀
+ ClearConfigDictionary<ZhanlingConfig>();
}
#if UNITY_EDITOR
diff --git a/Main/Config/Configs/ZhanlingConfig.cs b/Main/Config/Configs/ZhanlingConfig.cs
new file mode 100644
index 0000000..1be0f26
--- /dev/null
+++ b/Main/Config/Configs/ZhanlingConfig.cs
@@ -0,0 +1,56 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: Tuesday, November 4, 2025
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class ZhanlingConfig : ConfigBase<int, ZhanlingConfig>
+{
+ static ZhanlingConfig()
+ {
+ // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+ visit = true;
+ }
+
+ public int ZhanlingId;
+ public int ZhanlingType;
+ public int NeedValue;
+ public int RewardIndex;
+ public int[][] FreeRewardItemList;
+ public int[][] ZLRewardItemList;
+ public int[][] ZLRewardItemListH;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ZhanlingId);
+
+ int.TryParse(tables[1],out ZhanlingType);
+
+ int.TryParse(tables[2],out NeedValue);
+
+ int.TryParse(tables[3],out RewardIndex);
+
+ FreeRewardItemList = JsonMapper.ToObject<int[][]>(tables[4].Replace("(", "[").Replace(")", "]"));
+
+ ZLRewardItemList = JsonMapper.ToObject<int[][]>(tables[5].Replace("(", "[").Replace(")", "]"));
+
+ ZLRewardItemListH = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/ZhanlingConfig.cs.meta b/Main/Config/Configs/ZhanlingConfig.cs.meta
new file mode 100644
index 0000000..82d4398
--- /dev/null
+++ b/Main/Config/Configs/ZhanlingConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0a982bd9a3eaef84fa25269ec4301050
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/ZhanlingConfig.cs b/Main/Config/PartialConfigs/ZhanlingConfig.cs
new file mode 100644
index 0000000..f7335b7
--- /dev/null
+++ b/Main/Config/PartialConfigs/ZhanlingConfig.cs
@@ -0,0 +1,25 @@
+using System.Collections.Generic;
+public partial class ZhanlingConfig : ConfigBase<int, ZhanlingConfig>
+{
+ //鎴樹护绫诲瀷: 鎵�闇�鍊� :ZhanlingId
+ static Dictionary<int, Dictionary<int, int>> typeToIDDict = new Dictionary<int, Dictionary<int, int>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ if (!typeToIDDict.ContainsKey(ZhanlingType))
+ {
+ typeToIDDict[ZhanlingType] = new Dictionary<int, int>();
+ }
+ typeToIDDict[ZhanlingType][NeedValue] = ZhanlingId;
+ }
+
+ public static Dictionary<int, int> GetTypeToIDDict(int zhanLingType)
+ {
+ return typeToIDDict[zhanLingType];
+ }
+
+ public static Dictionary<int, Dictionary<int, int>> GetAllTypeToIDListDict()
+ {
+ return typeToIDDict;
+ }
+}
diff --git a/Main/Config/PartialConfigs/ZhanlingConfig.cs.meta b/Main/Config/PartialConfigs/ZhanlingConfig.cs.meta
new file mode 100644
index 0000000..78107e3
--- /dev/null
+++ b/Main/Config/PartialConfigs/ZhanlingConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8aa62178ddc66b2479b841083ee2b290
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs
index a62b0ca..ecb46c1 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs
@@ -1,11 +1,12 @@
-using UnityEngine;
-using System.Collections;
-
+using UnityEngine;
+using System.Collections;
+
// B1 20 鎴樹护淇℃伅 #tagMCZhanlingInfo
public class DTCB120_tagMCZhanlingInfo : DtcBasic {
public override void Done(GameNetPackBasic vNetPack) {
base.Done(vNetPack);
HB120_tagMCZhanlingInfo vNetData = vNetPack as HB120_tagMCZhanlingInfo;
+ BattlePassManager.Instance.UpdateBattlePassInfo(vNetData);
}
}
diff --git a/Main/Main.cs b/Main/Main.cs
index 2568c99..88c6ada 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -82,6 +82,7 @@
managers.Add(BoneFieldManager.Instance);
managers.Add(ArenaManager.Instance);
managers.Add(DayMissionManager.Instance);
+ managers.Add(BattlePassManager.Instance);
foreach (var manager in managers)
{
diff --git a/Main/System/BattlePass.meta b/Main/System/BattlePass.meta
new file mode 100644
index 0000000..6371536
--- /dev/null
+++ b/Main/System/BattlePass.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7f66ce03cd8564847bcbc69378d900d9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BattlePass/BattlePassManager.Week.cs b/Main/System/BattlePass/BattlePassManager.Week.cs
new file mode 100644
index 0000000..d8abbc0
--- /dev/null
+++ b/Main/System/BattlePass/BattlePassManager.Week.cs
@@ -0,0 +1,31 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using System.Linq;
+
+//鍛ㄦ垬浠�
+public partial class BattlePassManager : GameSystemManager<BattlePassManager>
+{
+ public const int WeekBattlePassType = 6;
+
+ Redpoint redpoint = new Redpoint(MainRedDot.RedPoint_DailyKey, MainRedDot.RedPoint_WeekBPFuncKey);
+ void UpdateWeekRedPoint()
+ {
+ redpoint.state = RedPointState.None;
+ //璐拱锛屾椿璺�
+ battlePassDataDict.TryGetValue(WeekBattlePassType, out BattlePassData battlePassData);
+ if (battlePassData == null) return;
+
+
+ if (HasAnyAward(WeekBattlePassType, (int)battlePassData.value1))
+ {
+ redpoint.state = RedPointState.Simple;
+ }
+
+ }
+
+
+
+}
+
diff --git a/Main/System/BattlePass/BattlePassManager.Week.cs.meta b/Main/System/BattlePass/BattlePassManager.Week.cs.meta
new file mode 100644
index 0000000..a264966
--- /dev/null
+++ b/Main/System/BattlePass/BattlePassManager.Week.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ed678a9060fddbf41adb9d9102d62514
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/BattlePass/BattlePassManager.cs b/Main/System/BattlePass/BattlePassManager.cs
new file mode 100644
index 0000000..173a2fd
--- /dev/null
+++ b/Main/System/BattlePass/BattlePassManager.cs
@@ -0,0 +1,277 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using System.Linq;
+
+
+public partial class BattlePassManager : GameSystemManager<BattlePassManager>
+{
+ //鎴樹护绫诲瀷锛氭垬浠ゆ暟鎹�
+ 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;
+ ParseConfig();
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
+ }
+
+ void OnBeforePlayerDataInitialize()
+ {
+ battlePassDataDict.Clear();
+ }
+
+ void ParseConfig()
+ {
+ var config = FuncConfigConfig.Get("Zhanling");
+ buyZhanlingTypeDict = ConfigParse.ParseIntArrayDict(config.Numerical1);
+ }
+
+
+ public void UpdateBattlePassInfo(HB120_tagMCZhanlingInfo netPack)
+ {
+ if (!battlePassDataDict.ContainsKey(netPack.ZhanlingType))
+ {
+ battlePassDataDict[netPack.ZhanlingType] = new BattlePassData();
+ }
+
+ BattlePassData battlePassData = battlePassDataDict[netPack.ZhanlingType];
+ battlePassData.isActivite = netPack.IsActivite;
+ battlePassData.isActiviteH = netPack.IsActiviteH;
+ battlePassData.allFinishTime = netPack.AllFinishTime;
+ battlePassData.value1 = netPack.Value1;
+
+ for (int i = 0; i < netPack.RewardCount; i++)
+ {
+ HB120_tagMCZhanlingInfo.tagMCZhanling reward = netPack.RewardList[i];
+ if (!battlePassData.battlePassCellDict.ContainsKey((int)reward.NeedValue))
+ {
+ battlePassData.battlePassCellDict[(int)reward.NeedValue] = new BattlePassCell();
+ }
+
+ BattlePassCell battlePassCell = battlePassData.battlePassCellDict[(int)reward.NeedValue];
+ battlePassCell.freeRewardState = reward.FreeRewardState;
+ battlePassCell.zlRewardState = reward.ZLRewardState;
+ battlePassCell.zlRewardStateH = reward.ZLRewardStateH;
+ }
+
+ UpdateRedpoint(netPack.ZhanlingType);
+ BattlePassDataUpdateEvent?.Invoke(netPack.ZhanlingType);
+ }
+
+
+ void UpdateRedpoint(int type)
+ {
+ switch (type)
+ {
+ case WeekBattlePassType:
+ {
+ UpdateWeekRedPoint();
+ break;
+ }
+ }
+ }
+
+ //鏄惁鏈変换浣曞鍔卞彲浠ラ鍙�
+ public bool HasAnyAward(int type, int totalValue)
+ {
+ battlePassDataDict.TryGetValue(type, out BattlePassData battlePassData);
+ if (battlePassData == null)
+ return false;
+ if (battlePassData.allFinishTime != 0)
+ return false;
+ var allZhanling = ZhanlingConfig.GetTypeToIDDict(type);
+
+ var keys = allZhanling.Keys.ToList();
+ keys.Sort();
+ foreach (var needValue in keys)
+ {
+ if (totalValue < needValue)
+ {
+ return false;
+ }
+
+ if (battlePassData.battlePassCellDict.ContainsKey(needValue))
+ {
+ if (battlePassData.battlePassCellDict[needValue].freeRewardState == 0)
+ {
+ return true;
+ }
+ else if (battlePassData.isActivite != 0 && battlePassData.battlePassCellDict[needValue].zlRewardState == 0)
+ {
+ return true;
+ }
+ else if (battlePassData.isActiviteH != 0 && battlePassData.battlePassCellDict[needValue].zlRewardStateH == 0)
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// 鏄惁鏈夋煇涓鍔卞彲浠ラ鍙�
+ /// </summary>
+ /// <param name="battlePassData"></param>
+ /// <param name="totalValue"></param>
+ /// <param name="needValue"></param>
+ /// <param name="awardType">0 鍏嶈垂 1 鏅�� 2 楂樼骇</param>
+ /// <returns>0 鏈揪鏍� 1 鍙鍙� 2 宸查鍙�</returns>
+ public int GetBPCellAwardState(BattlePassData battlePassData, int totalValue, int needValue, int awardType)
+ {
+ if (totalValue < needValue)
+ {
+ return 0;
+ }
+
+ if (battlePassData.battlePassCellDict.ContainsKey(needValue))
+ {
+ switch (awardType)
+ {
+ case 0:
+ {
+ return battlePassData.battlePassCellDict[needValue].freeRewardState == 0 ? 1 : 2;
+ }
+ case 1:
+ {
+ if (battlePassData.isActivite != 0)
+ {
+ return battlePassData.battlePassCellDict[needValue].zlRewardState == 0 ? 1 : 2;
+ }
+ break;
+ }
+ case 2:
+ {
+ if (battlePassData.isActiviteH != 0)
+ {
+ return battlePassData.battlePassCellDict[needValue].zlRewardStateH == 0 ? 1 : 2;
+ }
+ break;
+ }
+ }
+ }
+ return 0;
+ }
+
+
+ public int GetCTGIDByType(int type)
+ {
+ if (buyZhanlingTypeDict.ContainsKey(type))
+ {
+ return buyZhanlingTypeDict[type][0];
+ }
+ return 0;
+ }
+
+
+ public BattlePassData GetBattlePassData(int type)
+ {
+ if (battlePassDataDict.ContainsKey(type))
+ {
+ return battlePassDataDict[type];
+ }
+ return null;
+ }
+
+
+ //鍙戝寘 type 0-鍏嶈垂锛�1-鏅�氭垬浠わ紱2-楂樼骇鎴樹护
+ public void SendGetGift(int zhanLingType, int needValue, int type)
+ {
+ var pak = new CA504_tagCMPlayerGetReward();
+ string dataExStr = (needValue * 10 + type).ToString();
+ pak.RewardType = (byte)65;
+ pak.DataEx = (uint)zhanLingType;
+ pak.DataExStrLen = (byte)dataExStr.Length;
+ pak.DataExStr = dataExStr;
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+
+ //涓�娆℃�у叏棰嗗彇
+ public void GetAllAward(BattlePassData battlePassData, int zhanLingType, int totalValue)
+ {
+ //绠�鍗曞垽鏂儗鍖�
+ if (PackManager.Instance.GetEmptyGridCount(PackType.Item) <= 1)
+ {
+ SysNotifyMgr.Instance.ShowTip("GeRen_lhs_202580");
+ return;
+ }
+ var ids = ZhanlingConfig.GetTypeToIDDict(zhanLingType).Values.ToList();
+ ids.Sort();
+ foreach (var id in ids)
+ {
+ var config = ZhanlingConfig.Get(id);
+ if (config.NeedValue > totalValue)
+ {
+ break;
+ }
+
+ for (int i = 0; i < 3; i++)
+ {
+
+ var state = GetBPCellAwardState(battlePassData, totalValue, config.NeedValue, i);
+ if (state == 1)
+ {
+ SendGetGift(zhanLingType, config.NeedValue, i);
+ }
+ }
+
+ }
+
+ }
+
+ public int JumpIndex(BattlePassData battlePassData, int zhanLingType, int totalValue)
+ {
+
+ var ids = ZhanlingConfig.GetTypeToIDDict(zhanLingType).Values.ToList();
+ ids.Sort();
+ int index = -1;
+ foreach (var id in ids)
+ {
+ index++;
+ var config = ZhanlingConfig.Get(id);
+ if (config.NeedValue > totalValue)
+ {
+ return index - 1;
+ }
+
+ for (int i = 0; i < 3; i++)
+ {
+ var state = GetBPCellAwardState(battlePassData, totalValue, config.NeedValue, i);
+ if (state == 1)
+ {
+ return index;
+ }
+ }
+ }
+ return index;
+ }
+}
+
+
+public class BattlePassCell
+{
+ public byte freeRewardState; // 鍏嶈垂鎴樹护濂栧姳鏄惁宸查鍙�
+ public byte zlRewardState; // 鏅�氭垬浠ゅ鍔辨槸鍚﹀凡棰嗗彇
+ public byte zlRewardStateH; // 楂樼骇鎴樹护濂栧姳鏄惁宸查鍙�
+}
+
+
+public class BattlePassData
+{
+ public byte isActivite; // 鏅�氭垬浠ゆ槸鍚﹀凡婵�娲�
+ public byte isActiviteH; // 楂樼骇鎴樹护鏄惁宸叉縺娲�
+ public uint allFinishTime; // 鍏ㄩ儴濂栧姳棰嗗彇瀹屾瘯鐨勬椂闂存埑锛屾湭瀹屾瘯鏃惰鍊间负0锛屽悗绔細鍦�0鐐硅繃澶╂椂妫�鏌ュ彲鍚﹂噸缃紝鍓嶇鑷鍋氬�掕鏃惰〃鐜板嵆鍙�
+ public uint value1; // 鎴樹护瀵瑰簲鐨勮嚜瀹氫箟鍊硷紝鍙�夛紝濡傜櫥褰曟垬浠や唬琛ㄥ紑濮嬭绠楁棩鏈熸椂闂存埑
+
+ public Dictionary<int, BattlePassCell> battlePassCellDict = new Dictionary<int, BattlePassCell>();
+}
\ No newline at end of file
diff --git a/Main/System/BattlePass/BattlePassManager.cs.meta b/Main/System/BattlePass/BattlePassManager.cs.meta
new file mode 100644
index 0000000..a063349
--- /dev/null
+++ b/Main/System/BattlePass/BattlePassManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 973e17d74c0fddf43b8085d369f35feb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/DayMission/DayMissionBaseWin.cs b/Main/System/DayMission/DayMissionBaseWin.cs
index 9e2dff8..c88fd30 100644
--- a/Main/System/DayMission/DayMissionBaseWin.cs
+++ b/Main/System/DayMission/DayMissionBaseWin.cs
@@ -22,11 +22,12 @@
break;
case 1:
//鍛ㄥ鍔�
- // currentSubUI = UIManager.Instance.OpenWindow<HeroCollectionWin>();
+ currentSubUI = UIManager.Instance.OpenWindow<WeekBattlePassWin>();
titleText.text = Language.Get("DayMission3");
break;
case 2:
//涓荤嚎浠诲姟锛堣嫳闆勪箣璺級
+ currentSubUI = UIManager.Instance.OpenWindow<DayMissionWin>();
titleText.text = Language.Get("DayMission4");
break;
default:
diff --git a/Main/System/DayMission/DayMissionManager.cs b/Main/System/DayMission/DayMissionManager.cs
index 001529e..daccfee 100644
--- a/Main/System/DayMission/DayMissionManager.cs
+++ b/Main/System/DayMission/DayMissionManager.cs
@@ -20,7 +20,7 @@
public override void Init()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
- GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+ GlobalTimeEvent.Instance.MS100Event += OnMSEvent;
ParseConfig();
}
@@ -28,7 +28,7 @@
public override void Release()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
- GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
+ GlobalTimeEvent.Instance.MS100Event -= OnMSEvent;
}
void OnBeforePlayerDataInitialize()
@@ -39,7 +39,7 @@
taskProcessDict.Clear();
}
- void OnSecondEvent()
+ void OnMSEvent()
{
if (isRefreshDayMission)
{
diff --git a/Main/System/DayMission/WeekBattlePassCell.cs b/Main/System/DayMission/WeekBattlePassCell.cs
new file mode 100644
index 0000000..bbd2629
--- /dev/null
+++ b/Main/System/DayMission/WeekBattlePassCell.cs
@@ -0,0 +1,88 @@
+锘縰sing System;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+public class WeekBattlePassCell : CellView
+{
+ [SerializeField] ItemCell baseAward;
+ [SerializeField] Transform baseGotRect;
+ [SerializeField] Transform baseCanGetAwardRect;
+ [SerializeField] Transform upProcssBGRect;
+ [SerializeField] Transform upProcessRect;
+ [SerializeField] Transform downProcssBGRect;
+ [SerializeField] Transform downProcessRect;
+ [SerializeField] Text valueText;
+ [SerializeField] Image valueBGImg;
+ [SerializeField] ItemCell[] betterAwards;
+ [SerializeField] Transform[] betterGotRects;
+ [SerializeField] Transform[] betterCanGetAwardRects;
+ [SerializeField] Transform[] betterLockRects;
+
+ [SerializeField] Transform mask;
+
+
+ public void Display(int id, BattlePassData battlePassData)
+ {
+ var config = ZhanlingConfig.Get(id);
+ int freeItemID = config.FreeRewardItemList[0][0];
+ baseAward.Init(new ItemCellModel(freeItemID, false, config.FreeRewardItemList[0][1]));
+ var baseAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, (int)battlePassData.value1, config.NeedValue, 0);
+ baseAward.button.AddListener(() =>
+ {
+ GetAward(battlePassData, baseAwardState, freeItemID);
+ });
+
+
+ baseGotRect.SetActive(baseAwardState == 2);
+ baseCanGetAwardRect.SetActive(baseAwardState == 1);
+ mask.SetActive(baseAwardState == 0);
+
+ var ids = ZhanlingConfig.GetTypeToIDDict(BattlePassManager.WeekBattlePassType).Values.ToList();
+ ids.Sort();
+ upProcssBGRect.SetActive(ids[0] != id);
+ upProcessRect.SetActive(baseAwardState != 0);
+
+ downProcssBGRect.SetActive(ids[ids.Count - 1] != id);
+ var nextConfig = ZhanlingConfig.Get(id + 1);
+ if (nextConfig != null)
+ {
+ downProcessRect.SetActive((int)battlePassData.value1 >= nextConfig.NeedValue);
+ }
+ else
+ {
+ downProcessRect.SetActive(false);
+ }
+
+ valueText.text = config.NeedValue.ToString();
+ valueBGImg.SetOrgSprite(baseAwardState == 0 ? "DayMission_img_99" : "DayMission_img_100", "DayMission");
+
+ var betterAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, (int)battlePassData.value1, config.NeedValue, 1);
+ for (int i = 0; i < betterAwards.Length; i++)
+ {
+ int itemID = config.ZLRewardItemList[i][0];
+ betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1]));
+ betterAwards[i].button.AddListener(() =>
+ {
+ GetAward(battlePassData, betterAwardState, itemID);
+ });
+ betterGotRects[i].SetActive(betterAwardState == 2);
+ betterCanGetAwardRects[i].SetActive(betterAwardState == 1);
+ betterLockRects[i].SetActive(battlePassData.isActivite == 0);
+ }
+ }
+
+ void GetAward(BattlePassData battlePassData, int awardState, int itemID)
+ {
+ if (awardState != 1)
+ {
+ ItemTipUtility.Show(itemID);
+ return;
+ }
+
+ BattlePassManager.Instance.GetAllAward(battlePassData, BattlePassManager.WeekBattlePassType, (int)battlePassData.value1);
+ }
+}
+
+
diff --git a/Main/System/DayMission/WeekBattlePassCell.cs.meta b/Main/System/DayMission/WeekBattlePassCell.cs.meta
new file mode 100644
index 0000000..bcba9f9
--- /dev/null
+++ b/Main/System/DayMission/WeekBattlePassCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 22ee6f5381c87b443a607448c096a1af
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/DayMission/WeekBattlePassWin.cs b/Main/System/DayMission/WeekBattlePassWin.cs
new file mode 100644
index 0000000..cd581f3
--- /dev/null
+++ b/Main/System/DayMission/WeekBattlePassWin.cs
@@ -0,0 +1,116 @@
+锘縰sing System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+//鍛ㄦ垬浠�
+public class WeekBattlePassWin : UIBase
+{
+ [SerializeField] Text totalActivityText;
+ [SerializeField] Text timeText;
+ [SerializeField] ScrollerController scroller;
+ [SerializeField] Transform lockRect;
+ [SerializeField] Button buyBtn;
+ [SerializeField] Text buyText;
+
+ BattlePassData battlePassData;
+
+
+ protected override void InitComponent()
+ {
+ buyBtn.AddListener(() =>
+ {
+ RechargeManager.Instance.CTG(BattlePassManager.Instance.GetCTGIDByType(BattlePassManager.WeekBattlePassType));
+ });
+ }
+ protected override void OnPreOpen()
+ {
+ battlePassData = BattlePassManager.Instance.GetBattlePassData(BattlePassManager.WeekBattlePassType);
+ if (battlePassData == null) return;
+ scroller.OnRefreshCell += OnRefreshCell;
+ GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+ BattlePassManager.Instance.BattlePassDataUpdateEvent += BattlePassDataUpdateEvent;
+ CreateScroller();
+ Display();
+
+
+ }
+
+ protected override void OnPreClose()
+ {
+ scroller.OnRefreshCell -= OnRefreshCell;
+ GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
+ BattlePassManager.Instance.BattlePassDataUpdateEvent -= BattlePassDataUpdateEvent;
+
+ }
+
+ void OnSecondEvent()
+ {
+ //鎸夊紑鏈嶅ぉ 7澶╀竴涓惊鐜�
+ var day = 7 - (TimeUtility.OpenDay % 7) - 1;
+ if (day == 0)
+ {
+ timeText.text = Language.Get("GoldRush29") + TimeUtility.SecondsToShortDHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds);
+ }
+ else
+ {
+ timeText.text = Language.Get("GoldRush29") + day + Language.Get("L1074");
+ }
+ }
+
+ void BattlePassDataUpdateEvent(int type)
+ {
+ if (type == BattlePassManager.WeekBattlePassType)
+ {
+ Display();
+ }
+ }
+
+
+ void Display()
+ {
+ totalActivityText.text = battlePassData.value1.ToString();
+ lockRect.SetActive(battlePassData.isActivite == 0);
+ scroller.m_Scorller.RefreshActiveCellViews();
+
+ if (battlePassData.isActivite == 0)
+ {
+ var ctgID = BattlePassManager.Instance.GetCTGIDByType(BattlePassManager.WeekBattlePassType);
+ RechargeManager.Instance.TryGetOrderInfo(ctgID, out var orderInfoConfig);
+ buyText.text = Language.Get("PayMoneyNum", orderInfoConfig.PayRMBNumOnSale);
+ buyBtn.SetInteractable(true);
+ }
+ else
+ {
+ buyText.text = Language.Get("L1133");
+ buyBtn.SetInteractable(false);
+ }
+ }
+
+
+ void CreateScroller()
+ {
+ scroller.Refresh();
+ var values = ZhanlingConfig.GetTypeToIDDict(BattlePassManager.WeekBattlePassType).Values.ToList();
+ values.Sort();
+ for (int i = 0; i < values.Count; i++)
+ {
+ scroller.AddCell(ScrollerDataType.Header, values[i]);
+ }
+ scroller.Restart();
+
+ scroller.JumpIndex(BattlePassManager.Instance.JumpIndex(battlePassData, BattlePassManager.WeekBattlePassType, (int)battlePassData.value1));
+ }
+
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as WeekBattlePassCell;
+ _cell.Display(cell.index, battlePassData);
+ }
+}
+
+
+
+
+
diff --git a/Main/System/DayMission/WeekBattlePassWin.cs.meta b/Main/System/DayMission/WeekBattlePassWin.cs.meta
new file mode 100644
index 0000000..b13ec9c
--- /dev/null
+++ b/Main/System/DayMission/WeekBattlePassWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e87e9af324b150d4fb0c3f0732593f2b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0