From c70f5a26bebf874828342ef69987848cbc352719 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 17 三月 2026 14:33:58 +0800
Subject: [PATCH] 533 开服冲榜-客户端 新增3个榜单
---
Main/System/OSActivity/OSHeroTrainBaseWin.cs.meta | 11
Main/System/OSActivity/OSRankGiftBaseWin.cs.meta | 11
Main/System/OSActivity/OSRankHeroTrainGiftWin.cs.meta | 11
Main/System/GeneralConfig/DayRemind.cs | 8
Main/System/OSActivity/OSActivityBaseWin.cs | 43 ++
Main/System/OSActivity/OSMinggeBaseWin.cs.meta | 11
Main/System/OSActivity/OSRankBeautyMMWin.cs.meta | 11
Main/System/Redpoint/MainRedDot.cs | 3
Main/System/OSActivity/OSRankBeautyMMAwardCell.cs.meta | 11
Main/System/OSActivity/OSRankBeautyMMGiftCell.cs | 11
Main/System/OSActivity/OSRankHeroTrainAwardWin.cs.meta | 11
Main/System/OSActivity/OSRankMinggeAwardCell.cs | 10
Main/System/OSActivity/OSActivityBaseWin.cs.meta | 11
Main/System/OSActivity/OSRankTipWin.cs | 98 ++++
Main/System/OSActivity/OSRankGiftBaseWin.cs | 48 ++
Main/System/OSActivity/OSRankBaseWin.cs.meta | 11
Main/System/OSActivity/OSRankBeautyMMGiftWin.cs | 19
Main/System/OSActivity/OSRankMinggeAwardCell.cs.meta | 11
Main/System/OSActivity/OSRankMinggeAwardWin.cs | 16
Main/System/OSActivity/OSRankAwardBaseCell.cs.meta | 11
Main/System/Store/StoreModel.cs | 3
Main/System/OSActivity/OSRankBeautyMMWin.cs | 8
Main/System/OSActivity/OSRankHeroTrainAwardCell.cs | 10
Main/System/OSActivity/OSMinggeBaseWin.cs | 14
Main/System/OSActivity/OSRankHeroTrainGiftWin.cs | 16
Main/System/BillboardRank/RankModel.cs | 11
Main/Utility/EnumHelper.cs | 3
Main/System/OSActivity/OSRankMinggeAwardWin.cs.meta | 11
Main/System/OSActivity/OSActivityManager.cs | 116 +++++
Main/System/OSActivity/OSRankMinggeGiftWin.cs | 16
Main/System/OSActivity/OSRankAwardBaseWin.cs.meta | 11
Main/System/OSActivity/OSHeroTrainBaseWin.cs | 14
Main/System/OSActivity/OSRankHeroTrainWin.cs | 20 +
Main/System/OSActivity/OSRankBaseWin.cs | 42 ++
Main/System/OSActivity/OSBeautyMMBaseWin.cs.meta | 11
Main/System/OSActivity/OSRankMinggeWin.cs | 20 +
Main/System/OSActivity/OSRankHeroTrainAwardCell.cs.meta | 11
Main/System/OSActivity/OSRankMinggeWin.cs.meta | 11
Main/System/OSActivity/OSRankGiftBaseCell.cs.meta | 11
Main/System/OSActivity/OSRankTipWin.cs.meta | 11
Main/System/OSActivity/OSRankBeautyMMAwardWin.cs | 18
Main/System/OSActivity/OSRankBeautyMMAwardWin.cs.meta | 11
Main/System/Main/HomeWin.cs | 19
Main/System/OSActivity/OSRankBeautyMMGiftWin.cs.meta | 11
Main/System/OSActivity/OSRankMinggeGiftCell.cs | 8
Main/System/OSActivity/OSRankHeroTrainWin.cs.meta | 11
Main/System/OSActivity/OSRankMinggeGiftCell.cs.meta | 11
Main/System/OSActivity/OSRankAwardBaseWin.cs | 56 ++
Main/System/OSActivity/OSBeautyMMBaseWin.cs | 15
Main/System/OSActivity/OSRankBeautyMMAwardCell.cs | 12
Main/System/OSActivity/OSRankMinggeGiftWin.cs.meta | 11
Main/System/OSActivity/OSRankHeroTrainGiftCell.cs.meta | 11
Main/System/OSActivity/OSRankHeroTrainAwardWin.cs | 16
Main/System/OSActivity/OSRankHeroTrainGiftCell.cs | 8
Main/System/OSActivity/OSRankAwardBaseCell.cs | 63 +++
Main/System/OSActivity/OSRankBeautyMMGiftCell.cs.meta | 11
Main/System/OSActivity/OSRankGiftBaseCell.cs | 138 ++++++
57 files changed, 1,175 insertions(+), 2 deletions(-)
diff --git a/Main/System/BillboardRank/RankModel.cs b/Main/System/BillboardRank/RankModel.cs
index ddd3517..982119a 100644
--- a/Main/System/BillboardRank/RankModel.cs
+++ b/Main/System/BillboardRank/RankModel.cs
@@ -356,6 +356,11 @@
return Language.Get("Arena15", config.ChapterID, config.LevelNum);
case 4:
return cmpValue.ToString();
+ case 7:
+ case 9:
+ return Language.Get("OSActivity19", cmpValue.ToString());
+ case 8:
+ return Language.Get("L1113", cmpValue.ToString());
}
return string.Empty;
}
@@ -370,6 +375,12 @@
return Language.Get("RankTypeName_1");
case 4:
return Language.Get("OSActivity5");
+ case 7:
+ return Language.Get("OSActivity16");
+ case 8:
+ return Language.Get("OSActivity15");
+ case 9:
+ return Language.Get("OSActivity17");
}
return string.Empty;
}
diff --git a/Main/System/GeneralConfig/DayRemind.cs b/Main/System/GeneralConfig/DayRemind.cs
index 66fd828..043afa4 100644
--- a/Main/System/GeneralConfig/DayRemind.cs
+++ b/Main/System/GeneralConfig/DayRemind.cs
@@ -37,6 +37,11 @@
public const string OSMainLevel = "OSMainLevel"; // 寮�鏈嶄富绾垮叧鍗℃椿鍔ㄦ彁绀虹孩鐐�
public const string OSGalaChange = "OSGalaChange"; // 寮�鏈嶅簡鍏稿厬鎹㈡彁绀虹孩鐐�
+ public const string OSHeroTrain = "OSHeroTrain";
+ public const string OSBeautyMM = "OSBeautyMM";
+ public const string OSMingge = "OSMingge";
+
+
public Dictionary<string, int[]> dayRemindDic = new Dictionary<string, int[]>();
public bool GetDayRemind(string _remindKey)
@@ -79,6 +84,9 @@
SetDayRemind(DJQTip);
SetDayRemind(OSMainLevel);
SetDayRemind(OSGalaChange);
+ SetDayRemind(OSHeroTrain);
+ SetDayRemind(OSBeautyMM);
+ SetDayRemind(OSMingge);
}
public void SetDayRemind(string _key)
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 5fcfc17..e8fcdae 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -67,7 +67,10 @@
[SerializeField] Button osMainLevelBtn;
[SerializeField] Button osHeroCallBtn;
[SerializeField] Button osGalaBtn;
+ [SerializeField] Button osHeroTrainBtn;
+ [SerializeField] Button osBeautyMMBtn;
[SerializeField] TimingGiftCell timingGiftCell;
+ [SerializeField] Button osMinggeBtn;
[SerializeField] TimeRushCell timeRushCell;
[SerializeField] HeroDebutCell heroDebutCell;
@@ -212,7 +215,18 @@
{
UIManager.Instance.OpenWindow<OSGalaBaseWin>();
});
-
+ osBeautyMMBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSBeautyMMBaseWin>();
+ });
+ osHeroTrainBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSHeroTrainBaseWin>();
+ });
+ osMinggeBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSMinggeBaseWin>();
+ });
DailySpecialsBtns.AddListener(() =>
{
UIManager.Instance.OpenWindow<DailySpecialsBaseWin>();
@@ -874,6 +888,9 @@
{
osMainLevelBtn.SetActive(OSActivityManager.Instance.IsOpened(3));
osHeroCallBtn.SetActive(OSActivityManager.Instance.IsOpened(4));
+ osHeroTrainBtn.SetActive(OSActivityManager.Instance.IsOpened(7));
+ osBeautyMMBtn.SetActive(OSActivityManager.Instance.IsOpened(8));
+ osMinggeBtn.SetActive(OSActivityManager.Instance.IsOpened(9));
osGalaBtn.SetActive(OSActivityManager.Instance.IsOpenedOSGala());
}
diff --git a/Main/System/OSActivity/OSActivityBaseWin.cs b/Main/System/OSActivity/OSActivityBaseWin.cs
new file mode 100644
index 0000000..0a841be
--- /dev/null
+++ b/Main/System/OSActivity/OSActivityBaseWin.cs
@@ -0,0 +1,43 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public abstract class OSActivityBaseWin : FunctionsBaseWin
+{
+ [SerializeField] protected Button closBtn;
+
+ protected override void InitComponent()
+ {
+ base.InitComponent();
+ if (closBtn != null)
+ {
+ closBtn.AddListener(CloseWindow);
+ }
+ }
+
+ // 鐢卞瓙绫诲疄鐜帮細褰撳墠娲诲姩鐨� RankType
+ protected abstract int GetRankType();
+
+ // 鐢卞瓙绫诲疄鐜帮細瀹炰緥鍖栧搴旂殑涓変釜瀛愮獥鍙�
+ protected abstract UIBase GetRankWin();
+ protected abstract UIBase GetAwardWin();
+ protected abstract UIBase GetGiftWin();
+
+ protected override void OpenSubUIByTabIndex()
+ {
+ switch (functionOrder)
+ {
+ case 0:
+ RankModel.Instance.ResetQueryParam();
+ RankModel.Instance.QueryRankByPage(GetRankType(), watchID: (int)PlayerDatas.Instance.baseData.PlayerID);
+ currentSubUI = GetRankWin();
+ break;
+ case 1:
+ currentSubUI = GetAwardWin();
+ break;
+ case 2:
+ // 濡傛灉鍚庣画鏈夋椿鍔ㄦ病鏈夌ぜ鍖呴〉绛撅紝鍙渶鍦ㄥ瓙绫婚噷杩斿洖 null 鎴栦笉璋冪敤鍗冲彲
+ currentSubUI = GetGiftWin();
+ break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSActivityBaseWin.cs.meta b/Main/System/OSActivity/OSActivityBaseWin.cs.meta
new file mode 100644
index 0000000..55cf809
--- /dev/null
+++ b/Main/System/OSActivity/OSActivityBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 39e79ce497558694689712020f566c86
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSActivityManager.cs b/Main/System/OSActivity/OSActivityManager.cs
index ea5464a..c2ca0a3 100644
--- a/Main/System/OSActivity/OSActivityManager.cs
+++ b/Main/System/OSActivity/OSActivityManager.cs
@@ -10,14 +10,23 @@
Dictionary<int, int[]> rankOpenDays = new Dictionary<int, int[]>(); //鎺掕姒滅被鍨嬶細銆愬紑濮嬪紑鏈嶅ぉ, 缁撴潫寮�鏈嶅ぉ銆�
public Dictionary<int, int[][]> mainLevelRankAwards = new Dictionary<int, int[][]>(); //涓荤嚎鍏冲崱鍚嶆锛氬鍔�
public Dictionary<int, int[][]> heroCallRankAwards = new Dictionary<int, int[][]>(); //姝﹀皢鎷涘嫙鍚嶆锛氬鍔�
+ public Dictionary<int, int[][]> beautyMMRankAwards = new Dictionary<int, int[][]>(); //绾㈤鍐叉鍚嶆锛氬鍔�
+ public Dictionary<int, int[][]> heroTrainRankAwards = new Dictionary<int, int[][]>(); //姝﹀皢鍐叉鍚嶆锛氬鍔�
+ public Dictionary<int, int[][]> minggeRankAwards = new Dictionary<int, int[][]>(); //鍛芥牸鍐叉锛氬鍔�
public List<int> osHeroCallGiftSortList = new List<int>(); //寮�鏈嶆嫑鍕熺ぜ鍖� 鍏呭�糏D + 100000000
+ public List<int> osBeautyMMGiftSortList = new List<int>(); //绾㈤鍐叉绀煎寘 鍏呭�糏D + 100000000
+ public List<int> osHeroTrainGiftSortList = new List<int>(); //姝﹀皢鍐叉绀煎寘 鍏呭�糏D + 100000000
+ public List<int> osMinggeGiftSortList = new List<int>(); //鍛芥牸鍐叉绀煎寘 鍏呭�糏D + 100000000
//寮�鏈嶆瀵瑰簲鐨勫姛鑳絀D
Dictionary<int, int> rankTypeToFuncID = new Dictionary<int, int>()
{
{3, 45},
{4, 46},
+ {7, 59},
+ {8, 60},
+ {9, 61},
};
@@ -51,6 +60,11 @@
rankOpenDays = ConfigParse.ParseIntArrayDict(config.Numerical1);
mainLevelRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical2);
heroCallRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical3);
+ beautyMMRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical4);
+
+ config = FuncConfigConfig.Get("OSABillboardTrain");
+ heroTrainRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical3);
+ minggeRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical5);
var list = StoreModel.Instance.storeTypeDict[(int)StoreFunc.OSHeroCall];
var _list = RechargeManager.Instance.GetCTGIDListByType(18);
@@ -63,6 +77,45 @@
for (int i = 0; i < _list.Count; i++)
{
osHeroCallGiftSortList.Add(_list[i] + 100000000);
+ }
+
+ list = StoreModel.Instance.storeTypeDict[(int)StoreFunc.OSBeautyMM];
+ _list = RechargeManager.Instance.GetCTGIDListByType(22);
+
+ for (int i = 0; i < list.Count; i++)
+ {
+ var item = list[i];
+ osBeautyMMGiftSortList.Add(item.shopId);
+ }
+ for (int i = 0; i < _list.Count; i++)
+ {
+ osBeautyMMGiftSortList.Add(_list[i] + 100000000);
+ }
+
+ list = StoreModel.Instance.storeTypeDict[(int)StoreFunc.OSHeroTrain];
+ _list = RechargeManager.Instance.GetCTGIDListByType(23);
+
+ for (int i = 0; i < list.Count; i++)
+ {
+ var item = list[i];
+ osHeroTrainGiftSortList.Add(item.shopId);
+ }
+ for (int i = 0; i < _list.Count; i++)
+ {
+ osHeroTrainGiftSortList.Add(_list[i] + 100000000);
+ }
+
+ list = StoreModel.Instance.storeTypeDict[(int)StoreFunc.OSMingge];
+ _list = RechargeManager.Instance.GetCTGIDListByType(24);
+
+ for (int i = 0; i < list.Count; i++)
+ {
+ var item = list[i];
+ osMinggeGiftSortList.Add(item.shopId);
+ }
+ for (int i = 0; i < _list.Count; i++)
+ {
+ osMinggeGiftSortList.Add(_list[i] + 100000000);
}
ParseOSGalaConfig();
@@ -159,6 +212,9 @@
public void RefreshGiftSortList()
{
osHeroCallGiftSortList.Sort(CmpGift);
+ osBeautyMMGiftSortList.Sort(CmpGift);
+ osHeroTrainGiftSortList.Sort(CmpGift);
+ osMinggeGiftSortList.Sort(CmpGift);
}
void RefreshStore()
@@ -169,14 +225,23 @@
Redpoint osMainLevelRedpoint = new Redpoint(MainRedDot.RedPoint_OSMainLevel);
Redpoint osHeroCallRedpoint = new Redpoint(MainRedDot.RedPoint_OSHeroCard);
+ Redpoint osHeroTrainRedpoint = new Redpoint(MainRedDot.RedPoint_OSHeroTrain);
+ Redpoint osBeautyMMRedpoint = new Redpoint(MainRedDot.RedPoint_OSBeautyMM);
+ Redpoint osMinggeRedpoint = new Redpoint(MainRedDot.RedPoint_OSMingge);
public void UpdateRedpoint()
{
osMainLevelRedpoint.state = !DayRemind.Instance.GetDayRemind(DayRemind.OSMainLevel) ? RedPointState.Simple : RedPointState.None;
osGalaRedpoint2.state = !DayRemind.Instance.GetDayRemind(DayRemind.OSGalaChange) ? RedPointState.Simple : RedPointState.None;
-
+ osHeroTrainRedpoint.state = !DayRemind.Instance.GetDayRemind(DayRemind.OSMainLevel) ? RedPointState.Simple : RedPointState.None;
+ osBeautyMMRedpoint.state = !DayRemind.Instance.GetDayRemind(DayRemind.OSMainLevel) ? RedPointState.Simple : RedPointState.None;
+ osMinggeRedpoint.state = !DayRemind.Instance.GetDayRemind(DayRemind.OSMainLevel) ? RedPointState.Simple : RedPointState.None;
+
osHeroCallRedpoint.state = RedPointState.None;
osGalaRedpoint3.state = RedPointState.None;
+ osHeroTrainRedpoint.state = RedPointState.None;
+ osBeautyMMRedpoint.state = RedPointState.None;
+ osMinggeRedpoint.state = RedPointState.None;
if (StoreModel.Instance.freeShopDict.Count == 0) return;
@@ -211,6 +276,52 @@
}
}
}
+
+ if (StoreModel.Instance.freeShopDict.ContainsKey((int)StoreFunc.OSHeroTrain) && IsOpened(7, false))
+ {
+ var shopList = StoreModel.Instance.freeShopDict[(int)StoreFunc.OSHeroTrain];
+ for (int i = 0; i < shopList.Count; i++)
+ {
+ var shopID = shopList[i];
+ var config = StoreConfig.Get(shopID);
+ if (StoreModel.Instance.GetShopLimitBuyCount(shopID) < config.LimitCnt)
+ {
+ osHeroTrainRedpoint.state = RedPointState.Simple;
+ break;
+ }
+ }
+ }
+
+ if (StoreModel.Instance.freeShopDict.ContainsKey((int)StoreFunc.OSBeautyMM) && IsOpened(8, false))
+ {
+ var shopList = StoreModel.Instance.freeShopDict[(int)StoreFunc.OSBeautyMM];
+ for (int i = 0; i < shopList.Count; i++)
+ {
+ var shopID = shopList[i];
+ var config = StoreConfig.Get(shopID);
+ if (StoreModel.Instance.GetShopLimitBuyCount(shopID) < config.LimitCnt)
+ {
+ osBeautyMMRedpoint.state = RedPointState.Simple;
+ break;
+ }
+ }
+ }
+
+
+ if (StoreModel.Instance.freeShopDict.ContainsKey((int)StoreFunc.OSMingge) && IsOpened(9, false))
+ {
+ var shopList = StoreModel.Instance.freeShopDict[(int)StoreFunc.OSMingge];
+ for (int i = 0; i < shopList.Count; i++)
+ {
+ var shopID = shopList[i];
+ var config = StoreConfig.Get(shopID);
+ if (StoreModel.Instance.GetShopLimitBuyCount(shopID) < config.LimitCnt)
+ {
+ osMinggeRedpoint.state = RedPointState.Simple;
+ break;
+ }
+ }
+ }
}
private void FuncStateChange(int funcId)
@@ -219,6 +330,9 @@
{
case FuncOpenEnum.OSMainLevl:
case FuncOpenEnum.OSHeroCall:
+ case FuncOpenEnum.OSHeroTrain:
+ case FuncOpenEnum.OSBeautyMM:
+ case FuncOpenEnum.OSMingge:
UpdateRedpoint();
break;
}
diff --git a/Main/System/OSActivity/OSBeautyMMBaseWin.cs b/Main/System/OSActivity/OSBeautyMMBaseWin.cs
new file mode 100644
index 0000000..37f7d25
--- /dev/null
+++ b/Main/System/OSActivity/OSBeautyMMBaseWin.cs
@@ -0,0 +1,15 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+
+// 寮�鏈嶆椿鍔�-绾㈤鍐插埡娲诲姩
+public class OSBeautyMMBaseWin : OSActivityBaseWin
+{
+ // 绾㈤鍐叉瀵瑰簲鐨� RankType 涓� 8
+ protected override int GetRankType() => 8;
+
+ protected override UIBase GetRankWin() => UIManager.Instance.OpenWindow<OSRankBeautyMMWin>(8);
+
+ protected override UIBase GetAwardWin() => UIManager.Instance.OpenWindow<OSRankBeautyMMAwardWin>();
+
+ protected override UIBase GetGiftWin() => UIManager.Instance.OpenWindow<OSRankBeautyMMGiftWin>();
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSBeautyMMBaseWin.cs.meta b/Main/System/OSActivity/OSBeautyMMBaseWin.cs.meta
new file mode 100644
index 0000000..f8dcf9a
--- /dev/null
+++ b/Main/System/OSActivity/OSBeautyMMBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5a76a8ddc6f4ac048970693981c9e681
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSHeroTrainBaseWin.cs b/Main/System/OSActivity/OSHeroTrainBaseWin.cs
new file mode 100644
index 0000000..bbdc038
--- /dev/null
+++ b/Main/System/OSActivity/OSHeroTrainBaseWin.cs
@@ -0,0 +1,14 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+// 寮�鏈嶆椿鍔�-姝﹀皢鍐叉涓荤晫闈�
+public class OSHeroTrainBaseWin : OSActivityBaseWin
+{
+ protected override int GetRankType() => 7;
+
+ protected override UIBase GetRankWin() => UIManager.Instance.OpenWindow<OSRankHeroTrainWin>(7);
+
+ protected override UIBase GetAwardWin() => UIManager.Instance.OpenWindow<OSRankHeroTrainAwardWin>();
+
+ protected override UIBase GetGiftWin() => UIManager.Instance.OpenWindow<OSRankHeroTrainGiftWin>();
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSHeroTrainBaseWin.cs.meta b/Main/System/OSActivity/OSHeroTrainBaseWin.cs.meta
new file mode 100644
index 0000000..e7da08f
--- /dev/null
+++ b/Main/System/OSActivity/OSHeroTrainBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 62c2161f6d4221e48aa134a1916f92e4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSMinggeBaseWin.cs b/Main/System/OSActivity/OSMinggeBaseWin.cs
new file mode 100644
index 0000000..519fa70
--- /dev/null
+++ b/Main/System/OSActivity/OSMinggeBaseWin.cs
@@ -0,0 +1,14 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+// 寮�鏈嶆椿鍔�-鍛芥牸鍐叉涓荤晫闈�
+public class OSMinggeBaseWin : OSActivityBaseWin
+{
+ protected override int GetRankType() => 9;
+
+ protected override UIBase GetRankWin() => UIManager.Instance.OpenWindow<OSRankMinggeWin>(9);
+
+ protected override UIBase GetAwardWin() => UIManager.Instance.OpenWindow<OSRankMinggeAwardWin>();
+
+ protected override UIBase GetGiftWin() => UIManager.Instance.OpenWindow<OSRankMinggeGiftWin>();
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSMinggeBaseWin.cs.meta b/Main/System/OSActivity/OSMinggeBaseWin.cs.meta
new file mode 100644
index 0000000..a402f63
--- /dev/null
+++ b/Main/System/OSActivity/OSMinggeBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d9768976d78a97e41b67c00ea082085c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankAwardBaseCell.cs b/Main/System/OSActivity/OSRankAwardBaseCell.cs
new file mode 100644
index 0000000..11b4272
--- /dev/null
+++ b/Main/System/OSActivity/OSRankAwardBaseCell.cs
@@ -0,0 +1,63 @@
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+public abstract class OSRankAwardBaseCell : CellView
+{
+ [SerializeField] protected Text rankText;
+ [SerializeField] protected Image rankImg;
+ [SerializeField] protected ItemCell[] itemCells;
+
+ // 鐢卞瓙绫绘彁渚涘綋鍓嶇晫闈㈠搴旂殑濂栧姳瀛楀吀鏁版嵁
+ protected abstract Dictionary<int, int[][]> GetRankAwards();
+
+ public void Display(int index)
+ {
+ var rankAwards = GetRankAwards();
+ var rank = index + 1;
+
+ if (index < 3)
+ {
+ rankImg.SetActive(true);
+ rankText.SetActive(false);
+ rankImg.SetSprite($"Rank{index + 1}");
+ }
+ else
+ {
+ rankImg.SetActive(false);
+ rankText.SetActive(true);
+ var keys = rankAwards.Keys.ToList();
+ keys.Sort();
+ var startRank = keys[index - 1] + 1;
+ var endRank = keys[index];
+ rank = endRank;
+
+ if (startRank == endRank)
+ {
+ rankText.text = startRank.ToString();
+ }
+ else
+ {
+ rankText.text = startRank + "-" + endRank;
+ }
+ }
+
+ var award = rankAwards[rank];
+ for (int i = 0; i < itemCells.Length; i++)
+ {
+ var itemCell = itemCells[i];
+ if (i < award.Length)
+ {
+ itemCell.SetActive(true);
+ int itemID = award[i][0];
+ itemCell.Init(new ItemCellModel(itemID, true, award[i][1]));
+ itemCell.button.SetListener(() => ItemTipUtility.Show(itemID));
+ }
+ else
+ {
+ itemCell.SetActive(false);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankAwardBaseCell.cs.meta b/Main/System/OSActivity/OSRankAwardBaseCell.cs.meta
new file mode 100644
index 0000000..b6e93e1
--- /dev/null
+++ b/Main/System/OSActivity/OSRankAwardBaseCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5c40df973d5ace349ade9c111bb96722
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankAwardBaseWin.cs b/Main/System/OSActivity/OSRankAwardBaseWin.cs
new file mode 100644
index 0000000..d535189
--- /dev/null
+++ b/Main/System/OSActivity/OSRankAwardBaseWin.cs
@@ -0,0 +1,56 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public abstract class OSRankAwardBaseWin : UIBase
+{
+ [SerializeField] protected ScrollerController scrollerController;
+ [SerializeField] protected Text myRankText;
+ [SerializeField] protected Text myRankValueText;
+
+ protected override void OnPreOpen()
+ {
+ scrollerController.OnRefreshCell += OnRefreshCell;
+ CreateScroller();
+ DisplayMyRank(GetRankType());
+ }
+
+ protected override void OnPreClose()
+ {
+ scrollerController.OnRefreshCell -= OnRefreshCell;
+ }
+
+ // 鐢卞瓙绫诲疄鐜帮細褰撳墠鐣岄潰鐨勬帓鍚嶇被鍨� (渚嬪 4 鏄嫑鍕熸, 8 鏄孩棰滄)
+ protected abstract int GetRankType();
+ // 鐢卞瓙绫诲疄鐜帮細褰撳墠鐣岄潰鐨勫鍔� Keys 闆嗗悎
+ protected abstract ICollection<int> GetAwardKeys();
+ // 鐢卞瓙绫诲疄鐜帮細缁戝畾瀵瑰簲鐨� Cell
+ protected abstract void OnRefreshCell(ScrollerDataType type, CellView cell);
+
+ protected void CreateScroller()
+ {
+ var keys = GetAwardKeys();
+ scrollerController.Refresh();
+ int count = keys == null ? 0 : keys.Count;
+ for (int i = 0; i < count; i++)
+ {
+ scrollerController.AddCell(ScrollerDataType.Header, i);
+ }
+ scrollerController.Restart();
+ }
+
+ public void DisplayMyRank(int rankType)
+ {
+ RankData rankData = RankModel.Instance.GetMyRank(rankType);
+ if (rankData == null)
+ {
+ myRankText.text = Language.Get("L1045");
+ myRankValueText.text = "";
+ return;
+ }
+
+ int rank = rankData.rank;
+ myRankValueText.text = RankModel.Instance.GetCmpValueStr(rankType, rankData.cmpValue);
+ myRankText.text = Language.Get("L1126") + Language.Get("L1096") + rank.ToString();
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankAwardBaseWin.cs.meta b/Main/System/OSActivity/OSRankAwardBaseWin.cs.meta
new file mode 100644
index 0000000..567e6e0
--- /dev/null
+++ b/Main/System/OSActivity/OSRankAwardBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 01d872416a4fa8b45a660c56ed4c759f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankBaseWin.cs b/Main/System/OSActivity/OSRankBaseWin.cs
new file mode 100644
index 0000000..9637112
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBaseWin.cs
@@ -0,0 +1,42 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public abstract class OSRankBaseWin : PlayerRankWin
+{
+ [SerializeField] protected Text timeText;
+ [SerializeField] protected Text overTimeText;
+
+ protected override void OnPreOpen()
+ {
+ base.OnPreOpen();
+ GlobalTimeEvent.Instance.secondEvent += OnSecond;
+ ShowTime();
+ }
+
+ protected void ShowTime()
+ {
+ var seconds = OSActivityManager.Instance.GetEndTime(rankType);
+ if (seconds > 0)
+ {
+ timeText.SetActive(true);
+ overTimeText.SetActive(false);
+ timeText.text = TimeUtility.SecondsToShortDHMS(seconds);
+ }
+ else
+ {
+ timeText.SetActive(false);
+ overTimeText.SetActive(true);
+ }
+ }
+
+ protected override void OnPreClose()
+ {
+ base.OnPreClose();
+ GlobalTimeEvent.Instance.secondEvent -= OnSecond;
+ }
+
+ protected void OnSecond()
+ {
+ ShowTime();
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankBaseWin.cs.meta b/Main/System/OSActivity/OSRankBaseWin.cs.meta
new file mode 100644
index 0000000..120d38e
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3c869a53bb8b01141823913926a5b2b9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankBeautyMMAwardCell.cs b/Main/System/OSActivity/OSRankBeautyMMAwardCell.cs
new file mode 100644
index 0000000..0f03e2f
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMAwardCell.cs
@@ -0,0 +1,12 @@
+锘縰sing System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class OSRankBeautyMMAwardCell : OSRankAwardBaseCell
+{
+ // 杩斿洖绾㈤鍐叉涓撳睘鐨勫鍔卞瓧鍏革紝渚涘熀绫绘覆鏌�
+ protected override Dictionary<int, int[][]> GetRankAwards()
+ {
+ return OSActivityManager.Instance.beautyMMRankAwards;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankBeautyMMAwardCell.cs.meta b/Main/System/OSActivity/OSRankBeautyMMAwardCell.cs.meta
new file mode 100644
index 0000000..4a3cecd
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMAwardCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 647885ec6817f1342867bca550f5f5dc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankBeautyMMAwardWin.cs b/Main/System/OSActivity/OSRankBeautyMMAwardWin.cs
new file mode 100644
index 0000000..b86009a
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMAwardWin.cs
@@ -0,0 +1,18 @@
+锘縰sing System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+// 寮�鏈嶆椿鍔�-绾㈤鍐叉鎺掕濂栧姳
+public class OSRankBeautyMMAwardWin : OSRankAwardBaseWin
+{
+ protected override int GetRankType() => 8; // 8瀵瑰簲绾㈤鍐叉
+
+ // 鎻愪緵绾㈤姒滅殑濂栧姳瀛楀吀 Key
+ protected override ICollection<int> GetAwardKeys() => OSActivityManager.Instance.beautyMMRankAwards.Keys;
+
+ protected override void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<OSRankBeautyMMAwardCell>();
+ _cell.Display(cell.index);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankBeautyMMAwardWin.cs.meta b/Main/System/OSActivity/OSRankBeautyMMAwardWin.cs.meta
new file mode 100644
index 0000000..87ea82f
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMAwardWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e232ad2734808eb408390dd9059e49c9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankBeautyMMGiftCell.cs b/Main/System/OSActivity/OSRankBeautyMMGiftCell.cs
new file mode 100644
index 0000000..07cdc8c
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMGiftCell.cs
@@ -0,0 +1,11 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+
+public class OSRankBeautyMMGiftCell : OSRankGiftBaseCell
+{
+ // 浠� Manager 鑾峰彇褰撳墠 Index 瀵瑰簲鐨勭孩棰滅ぜ鍖� ID
+ protected override int GetGiftId(int index) => OSActivityManager.Instance.osBeautyMMGiftSortList[index];
+
+ // 渚涘熀绫婚獙璇佹椿鍔ㄦ槸鍚﹁繃鏈熸椂浣跨敤锛岀孩棰滃啿姒滃搴旂殑 RankType 涓� 8
+ protected override int GetActivityFuncId() => 8;
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankBeautyMMGiftCell.cs.meta b/Main/System/OSActivity/OSRankBeautyMMGiftCell.cs.meta
new file mode 100644
index 0000000..f2b80e6
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMGiftCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f90bbd7114f1139429d631eed6cab562
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankBeautyMMGiftWin.cs b/Main/System/OSActivity/OSRankBeautyMMGiftWin.cs
new file mode 100644
index 0000000..b5adebb
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMGiftWin.cs
@@ -0,0 +1,19 @@
+锘縰sing System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+// 寮�鏈嶆椿鍔�-绾㈤鍐插埡绀煎寘
+public class OSRankBeautyMMGiftWin : OSRankGiftBaseWin
+{
+ // 璋冪敤 Manager 鍒锋柊绀煎寘鎺掑簭
+ protected override void RefreshManagerSortList() => OSActivityManager.Instance.RefreshGiftSortList();
+
+ // 鎻愪緵绾㈤鍐插埡涓撶敤鐨勭ぜ鍖呭垪琛�
+ protected override IList<int> GetGiftSortList() => OSActivityManager.Instance.osBeautyMMGiftSortList;
+
+ protected override void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as OSRankBeautyMMGiftCell;
+ _cell.Display(cell.index);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankBeautyMMGiftWin.cs.meta b/Main/System/OSActivity/OSRankBeautyMMGiftWin.cs.meta
new file mode 100644
index 0000000..c9331f5
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMGiftWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d22a6513bbd196d41bffe0cfce5efd6c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankBeautyMMWin.cs b/Main/System/OSActivity/OSRankBeautyMMWin.cs
new file mode 100644
index 0000000..d05c521
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMWin.cs
@@ -0,0 +1,8 @@
+锘縰sing UnityEngine;
+using UnityEngine.UI;
+
+// 寮�鏈嶆椿鍔�-绾㈤鍐插埡鎺掕姒�
+public class OSRankBeautyMMWin : OSRankBaseWin
+{
+
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankBeautyMMWin.cs.meta b/Main/System/OSActivity/OSRankBeautyMMWin.cs.meta
new file mode 100644
index 0000000..7d0ab85
--- /dev/null
+++ b/Main/System/OSActivity/OSRankBeautyMMWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 482be961781f5cc44959db7fa28e59cf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankGiftBaseCell.cs b/Main/System/OSActivity/OSRankGiftBaseCell.cs
new file mode 100644
index 0000000..ac6fe6f
--- /dev/null
+++ b/Main/System/OSActivity/OSRankGiftBaseCell.cs
@@ -0,0 +1,138 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public abstract class OSRankGiftBaseCell : CellView
+{
+ [SerializeField] protected Text nameText;
+ [SerializeField] protected ItemCell[] itemCells;
+ [SerializeField] protected Button buyBtn;
+ [SerializeField] protected Text moneyText;
+ [SerializeField] protected Image moneyIcon;
+ [SerializeField] protected Transform saleOutRect;
+ [SerializeField] protected Image redImg;
+ [SerializeField] protected Text buyLimitText;
+ [SerializeField] protected Image maskImg;
+
+ // 鐢卞瓙绫诲疄鐜帮細鑾峰彇绀煎寘ID
+ protected abstract int GetGiftId(int index);
+ // 鐢卞瓙绫诲疄鐜帮細鑾峰彇楠岃瘉娲诲姩鏄惁缁撴潫鎵�闇�鐨勬椿鍔‵uncID
+ protected abstract int GetActivityFuncId();
+
+ public void Display(int index)
+ {
+ var id = GetGiftId(index);
+ if (id > 100000000)
+ {
+ // 鍏呭�肩ぜ鍖�
+ id -= 100000000;
+ var ctgConfig = CTGConfig.Get(id);
+ nameText.text = ctgConfig.Title;
+ for (int i = 0; i < itemCells.Length; i++)
+ {
+ var itemCell = itemCells[i];
+ if (i < ctgConfig.GainItemList.Length)
+ {
+ itemCell.SetActive(true);
+ int itemID = ctgConfig.GainItemList[i][0];
+ itemCell.Init(new ItemCellModel(itemID, true, ctgConfig.GainItemList[i][1]));
+ itemCell.button.SetListener(() => ItemTipUtility.Show(itemID));
+ }
+ else
+ {
+ itemCell.SetActive(false);
+ }
+ }
+
+ RechargeManager.Instance.TryGetRechargeCount(id, out var rechargeCount);
+ var limitCnt = ctgConfig.DailyBuyCount;
+ if (rechargeCount.todayCount < limitCnt)
+ {
+ saleOutRect.SetActive(false);
+ maskImg.SetActive(false);
+ buyBtn.SetActive(true);
+ buyBtn.SetListener(() =>
+ {
+ if (!OSActivityManager.Instance.IsOpened(GetActivityFuncId(), false))
+ {
+ SysNotifyMgr.Instance.ShowTip("ActivityOver");
+ return;
+ }
+ RechargeManager.Instance.CTG(id);
+ });
+
+ RechargeManager.Instance.TryGetOrderInfo(id, out var orderInfo);
+
+ moneyText.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderInfo.PayRMBNumOnSale));
+ moneyIcon.SetActive(false);
+ }
+ else
+ {
+ saleOutRect.SetActive(true);
+ maskImg.SetActive(true);
+ buyBtn.SetActive(false);
+ }
+ buyLimitText.text = Language.Get("storename6", limitCnt - rechargeCount.todayCount, limitCnt);
+ redImg.SetActive(false);
+ }
+ else
+ {
+ // 鍟嗗簵鐗╁搧
+ var storeConfig = StoreConfig.Get(id);
+ nameText.text = storeConfig.Name;
+ var awards = StoreModel.Instance.GetShopItemlistEx(storeConfig);
+ for (int i = 0; i < itemCells.Length; i++)
+ {
+ var itemCell = itemCells[i];
+ if (i < awards.Count)
+ {
+ itemCell.SetActive(true);
+ int itemID = awards[i][0];
+ itemCell.Init(new ItemCellModel(itemID, true, awards[i][1]));
+ itemCell.button.SetListener(() => ItemTipUtility.Show(itemID));
+ }
+ else
+ {
+ itemCell.SetActive(false);
+ }
+ }
+
+ var state = StoreModel.Instance.GetShopIDState(id);
+ if (state == 1)
+ {
+ saleOutRect.SetActive(true);
+ maskImg.SetActive(true);
+ buyBtn.SetActive(false);
+ redImg.SetActive(false);
+ }
+ else
+ {
+ saleOutRect.SetActive(false);
+ maskImg.SetActive(false);
+ buyBtn.SetActive(true);
+ buyBtn.SetListener(() =>
+ {
+ if (!OSActivityManager.Instance.IsOpened(GetActivityFuncId(), false))
+ {
+ SysNotifyMgr.Instance.ShowTip("ActivityOver");
+ return;
+ }
+
+ StoreModel.Instance.SendBuyShopItemWithPopCheck(storeConfig, 1);
+ });
+ moneyText.text = storeConfig.MoneyNum == 0 ? Language.Get("L1127") : storeConfig.MoneyNum.ToString();
+ moneyIcon.SetActive(storeConfig.MoneyNum != 0);
+ if (storeConfig.MoneyType <= 0)
+ {
+ moneyIcon.SetItemSprite(storeConfig.CostItemID);
+ }
+ else
+ {
+ moneyIcon.SetIconWithMoneyType(storeConfig.MoneyType);
+ }
+ redImg.SetActive(storeConfig.MoneyNum == 0);
+ }
+ var buyCnt = StoreModel.Instance.GetShopLimitBuyCount(id);
+ buyLimitText.text = Language.Get("storename6", storeConfig.LimitCnt - buyCnt, storeConfig.LimitCnt);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankGiftBaseCell.cs.meta b/Main/System/OSActivity/OSRankGiftBaseCell.cs.meta
new file mode 100644
index 0000000..163e33d
--- /dev/null
+++ b/Main/System/OSActivity/OSRankGiftBaseCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8fbb7021663b5294594aac0a985165da
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankGiftBaseWin.cs b/Main/System/OSActivity/OSRankGiftBaseWin.cs
new file mode 100644
index 0000000..657ea67
--- /dev/null
+++ b/Main/System/OSActivity/OSRankGiftBaseWin.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public abstract class OSRankGiftBaseWin : UIBase
+{
+ [SerializeField] protected ScrollerController scrollerController;
+
+ protected override void OnPreOpen()
+ {
+ scrollerController.OnRefreshCell += OnRefreshCell;
+ StoreModel.Instance.RefreshBuyShopLimitEvent += RefreshStore;
+ RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
+ RefreshManagerSortList();
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ scrollerController.OnRefreshCell -= OnRefreshCell;
+ StoreModel.Instance.RefreshBuyShopLimitEvent -= RefreshStore;
+ RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent;
+ }
+
+ protected abstract void RefreshManagerSortList();
+ protected abstract IList<int> GetGiftSortList();
+ protected abstract void OnRefreshCell(ScrollerDataType type, CellView cell);
+
+ protected void Display()
+ {
+ scrollerController.Refresh();
+ var list = GetGiftSortList();
+ for (int i = 0; i < list.Count; i++)
+ {
+ scrollerController.AddCell(ScrollerDataType.Header, i);
+ }
+ scrollerController.Restart();
+ }
+
+ protected void RefreshStore()
+ {
+ scrollerController.m_Scorller.RefreshActiveCellViews();
+ }
+
+ protected void OnRechargeCountEvent(int id)
+ {
+ scrollerController.m_Scorller.RefreshActiveCellViews();
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankGiftBaseWin.cs.meta b/Main/System/OSActivity/OSRankGiftBaseWin.cs.meta
new file mode 100644
index 0000000..7e1d7f3
--- /dev/null
+++ b/Main/System/OSActivity/OSRankGiftBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 86879ba6d3ff65a41b612365b69eae6e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroTrainAwardCell.cs b/Main/System/OSActivity/OSRankHeroTrainAwardCell.cs
new file mode 100644
index 0000000..a8f5d7d
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainAwardCell.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class OSRankHeroTrainAwardCell : OSRankAwardBaseCell
+{
+ protected override Dictionary<int, int[][]> GetRankAwards()
+ {
+ return OSActivityManager.Instance.heroTrainRankAwards;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankHeroTrainAwardCell.cs.meta b/Main/System/OSActivity/OSRankHeroTrainAwardCell.cs.meta
new file mode 100644
index 0000000..65b4d5b
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainAwardCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5cc407297dbf0a049bc7572140a7fc37
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroTrainAwardWin.cs b/Main/System/OSActivity/OSRankHeroTrainAwardWin.cs
new file mode 100644
index 0000000..a04f696
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainAwardWin.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+// 寮�鏈嶆椿鍔�-姝﹀皢鍐叉 鎺掕濂栧姳
+public class OSRankHeroTrainAwardWin : OSRankAwardBaseWin
+{
+ protected override int GetRankType() => 7;
+
+ protected override ICollection<int> GetAwardKeys() => OSActivityManager.Instance.heroTrainRankAwards.Keys;
+
+ protected override void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<OSRankHeroTrainAwardCell>();
+ _cell.Display(cell.index);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankHeroTrainAwardWin.cs.meta b/Main/System/OSActivity/OSRankHeroTrainAwardWin.cs.meta
new file mode 100644
index 0000000..ccf7ac2
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainAwardWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5d0f7383e172ba1479bd29fa004f952f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroTrainGiftCell.cs b/Main/System/OSActivity/OSRankHeroTrainGiftCell.cs
new file mode 100644
index 0000000..cb5f6cb
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainGiftCell.cs
@@ -0,0 +1,8 @@
+using UnityEngine;
+
+public class OSRankHeroTrainGiftCell : OSRankGiftBaseCell
+{
+ protected override int GetGiftId(int index) => OSActivityManager.Instance.osHeroTrainGiftSortList[index];
+
+ protected override int GetActivityFuncId() => 7;
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankHeroTrainGiftCell.cs.meta b/Main/System/OSActivity/OSRankHeroTrainGiftCell.cs.meta
new file mode 100644
index 0000000..97e4bc9
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainGiftCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 38e95d017835dd648afc115072b85c31
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroTrainGiftWin.cs b/Main/System/OSActivity/OSRankHeroTrainGiftWin.cs
new file mode 100644
index 0000000..527e51c
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainGiftWin.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+// 寮�鏈嶆椿鍔�-姝﹀皢鍐叉 绀煎寘鐣岄潰
+public class OSRankHeroTrainGiftWin : OSRankGiftBaseWin
+{
+ protected override void RefreshManagerSortList() => OSActivityManager.Instance.RefreshGiftSortList();
+
+ protected override IList<int> GetGiftSortList() => OSActivityManager.Instance.osHeroTrainGiftSortList;
+
+ protected override void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as OSRankHeroTrainGiftCell;
+ _cell.Display(cell.index);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankHeroTrainGiftWin.cs.meta b/Main/System/OSActivity/OSRankHeroTrainGiftWin.cs.meta
new file mode 100644
index 0000000..370e1be
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainGiftWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 21d442383c4ea6846bca35096f7d38b5
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroTrainWin.cs b/Main/System/OSActivity/OSRankHeroTrainWin.cs
new file mode 100644
index 0000000..893330f
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainWin.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+
+// 寮�鏈嶆椿鍔�-姝﹀皢鍐叉 鎺掕姒滅晫闈�
+public class OSRankHeroTrainWin : OSRankBaseWin
+{
+ [SerializeField] ButtonEx rule;
+ [SerializeField] TextEx title;
+
+ protected override void InitComponent()
+ {
+ base.InitComponent();
+ rule.AddListener(() =>
+ {
+ OSRankTipWin.infoTextKey = "OSActivityHeroTrainRankTip";
+ OSRankTipWin.isDownShow = true;
+ OSRankTipWin.worldPos = title.transform.position;
+ UIManager.Instance.OpenWindow<OSRankTipWin>();
+ });
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankHeroTrainWin.cs.meta b/Main/System/OSActivity/OSRankHeroTrainWin.cs.meta
new file mode 100644
index 0000000..c041cdb
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroTrainWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f45bd7a3a06d7984db7e8be475988387
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMinggeAwardCell.cs b/Main/System/OSActivity/OSRankMinggeAwardCell.cs
new file mode 100644
index 0000000..cd45eee
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeAwardCell.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class OSRankMinggeAwardCell : OSRankAwardBaseCell
+{
+ protected override Dictionary<int, int[][]> GetRankAwards()
+ {
+ return OSActivityManager.Instance.minggeRankAwards;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankMinggeAwardCell.cs.meta b/Main/System/OSActivity/OSRankMinggeAwardCell.cs.meta
new file mode 100644
index 0000000..2ac590f
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeAwardCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 71ff4f534dbed074f8cb364e370af500
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMinggeAwardWin.cs b/Main/System/OSActivity/OSRankMinggeAwardWin.cs
new file mode 100644
index 0000000..fe00b67
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeAwardWin.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+// 寮�鏈嶆椿鍔�-鍛芥牸鍐叉 鎺掕濂栧姳
+public class OSRankMinggeAwardWin : OSRankAwardBaseWin
+{
+ protected override int GetRankType() => 9;
+
+ protected override ICollection<int> GetAwardKeys() => OSActivityManager.Instance.minggeRankAwards.Keys;
+
+ protected override void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<OSRankMinggeAwardCell>();
+ _cell.Display(cell.index);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankMinggeAwardWin.cs.meta b/Main/System/OSActivity/OSRankMinggeAwardWin.cs.meta
new file mode 100644
index 0000000..9035783
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeAwardWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a231c309850cec941ae052a5b63759aa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMinggeGiftCell.cs b/Main/System/OSActivity/OSRankMinggeGiftCell.cs
new file mode 100644
index 0000000..2793205
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeGiftCell.cs
@@ -0,0 +1,8 @@
+using UnityEngine;
+
+public class OSRankMinggeGiftCell : OSRankGiftBaseCell
+{
+ protected override int GetGiftId(int index) => OSActivityManager.Instance.osMinggeGiftSortList[index];
+
+ protected override int GetActivityFuncId() => 9;
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankMinggeGiftCell.cs.meta b/Main/System/OSActivity/OSRankMinggeGiftCell.cs.meta
new file mode 100644
index 0000000..a0d8a05
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeGiftCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b76c8d10a8833af4283ec5019d7eb1a8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMinggeGiftWin.cs b/Main/System/OSActivity/OSRankMinggeGiftWin.cs
new file mode 100644
index 0000000..9ca5c2b
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeGiftWin.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+// 寮�鏈嶆椿鍔�-鍛芥牸鍐叉 绀煎寘鐣岄潰
+public class OSRankMinggeGiftWin : OSRankGiftBaseWin
+{
+ protected override void RefreshManagerSortList() => OSActivityManager.Instance.RefreshGiftSortList();
+
+ protected override IList<int> GetGiftSortList() => OSActivityManager.Instance.osMinggeGiftSortList;
+
+ protected override void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as OSRankMinggeGiftCell;
+ _cell.Display(cell.index);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankMinggeGiftWin.cs.meta b/Main/System/OSActivity/OSRankMinggeGiftWin.cs.meta
new file mode 100644
index 0000000..ae54344
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeGiftWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fef31dcb5d0ae29429d43002f1fc9127
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMinggeWin.cs b/Main/System/OSActivity/OSRankMinggeWin.cs
new file mode 100644
index 0000000..fa89578
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeWin.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+
+// 寮�鏈嶆椿鍔�-鍛芥牸鍐叉 鎺掕姒滅晫闈�
+public class OSRankMinggeWin : OSRankBaseWin
+{
+ [SerializeField] ButtonEx rule;
+ [SerializeField] TextEx title;
+
+ protected override void InitComponent()
+ {
+ base.InitComponent();
+ rule.AddListener(() =>
+ {
+ OSRankTipWin.infoTextKey = "OSActivityMinggeRankTip";
+ OSRankTipWin.isDownShow = true;
+ OSRankTipWin.worldPos = title.transform.position;
+ UIManager.Instance.OpenWindow<OSRankTipWin>();
+ });
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankMinggeWin.cs.meta b/Main/System/OSActivity/OSRankMinggeWin.cs.meta
new file mode 100644
index 0000000..37e17ea
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMinggeWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aff3625b0c94913478e9bfffcedf3e86
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankTipWin.cs b/Main/System/OSActivity/OSRankTipWin.cs
new file mode 100644
index 0000000..f801f92
--- /dev/null
+++ b/Main/System/OSActivity/OSRankTipWin.cs
@@ -0,0 +1,98 @@
+using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using UnityEngine;
+
+public class OSRankTipWin : UIBase
+{
+
+ [SerializeField] RectTransform rectTransform;
+ [SerializeField] RectTransform arrowImage;
+ [SerializeField] RectTransform arrowUpImage;
+ [SerializeField] RichText txtInfo;
+
+ public static Vector3 worldPos; //涓栫晫鍧愭爣绯讳綅缃�
+ public static bool isDownShow = false; // 鏄惁鍚戜笅鏄剧ず
+ public static string infoTextKey;
+ public const int rowCountMax = 4;
+ protected override void OnPreOpen()
+ {
+
+ rectTransform.position = new Vector3(100, 100, 100); //鍒濆鍖栨椂锛屽睆骞曡寖鍥村
+ arrowImage.SetActive(!isDownShow);
+ arrowUpImage.SetActive(isDownShow);
+ txtInfo.text = Language.Get(infoTextKey);
+ }
+
+ protected override void OnPreClose()
+ {
+ isDownShow = false;
+ }
+
+ protected override void OnOpen()
+ {
+ UpdatePos().Forget();
+ }
+
+ async UniTask UpdatePos()
+ {
+ await UniTask.DelayFrame(3);
+ // 闄愬埗鍦ㄥ睆骞曡寖鍥村唴
+ Vector3[] corners = new Vector3[4];
+ rectTransform.GetWorldCorners(corners);
+
+ float minY = corners[0].y;
+ float maxY = corners[0].y;
+
+ for (int i = 1; i < corners.Length; i++)
+ {
+ if (corners[i].y < minY) minY = corners[i].y;
+ if (corners[i].y > maxY) maxY = corners[i].y;
+ }
+
+
+ float screenHeight = maxY - minY;
+ Vector2 adjustedPos = new Vector2(worldPos.x, worldPos.y + (!isDownShow ? screenHeight * 0.5f : -screenHeight * 0.5f));
+
+ Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(adjustedPos);
+ var rectWidth = rectTransform.rect.width * Screen.width / canvasScaler.referenceResolution.x;
+ screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectWidth * 0.5f, Screen.width - rectWidth * 0.5f);
+ screenAdjustedPos.y = Mathf.Clamp(screenAdjustedPos.y, rectTransform.rect.height * 0.5f, Screen.height - rectTransform.rect.height * 0.5f - 15);
+
+ adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos);
+ rectTransform.position = adjustedPos;
+
+ if (!isDownShow)
+ {
+ rectTransform.localPosition = new Vector3(rectTransform.localPosition.x, rectTransform.localPosition.y + 15, rectTransform.localPosition.z);
+ }
+ else
+ {
+ rectTransform.localPosition = new Vector3(rectTransform.localPosition.x, rectTransform.localPosition.y - 15, rectTransform.localPosition.z);
+ }
+
+ rectTransform.GetWorldCorners(corners);
+ float minX = corners[0].x;
+ float maxX = corners[0].x;
+
+ for (int i = 1; i < corners.Length; i++)
+ {
+ if (corners[i].x < minX) minX = corners[i].x;
+ if (corners[i].x > maxX) maxX = corners[i].x;
+ }
+
+ //鏄剧ずarrowImage 鐨剎杞翠笂鐨勪綅缃紝鍜寃orldPos鍚屾锛屼絾涓嶈秴杩噈inX 鍜� maxX鑼冨洿
+ if (!isDownShow)
+ {
+ Vector3 arrowImagePosition = arrowImage.position;
+ arrowImagePosition.x = Mathf.Clamp(worldPos.x, minX, maxX);
+ arrowImage.position = arrowImagePosition;
+ }
+ else
+ {
+ Vector3 arrowUpImagePosition = arrowUpImage.position;
+ arrowUpImagePosition.x = Mathf.Clamp(worldPos.x, minX, maxX);
+ arrowUpImage.position = arrowUpImagePosition;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Main/System/OSActivity/OSRankTipWin.cs.meta b/Main/System/OSActivity/OSRankTipWin.cs.meta
new file mode 100644
index 0000000..a1041b1
--- /dev/null
+++ b/Main/System/OSActivity/OSRankTipWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d1b835694fcab6a4d886be2ee0b640d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
index 9f17683..645f78e 100644
--- a/Main/System/Redpoint/MainRedDot.cs
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -152,6 +152,9 @@
public const int TimeRushRepoint = 478; //杞洖娈�
public const int HeroDebutRepoint = 479; //姝﹀皢鐧诲満
public const int Qunying = 480; //缇よ嫳姒�
+ public const int RedPoint_OSHeroTrain = 481;
+ public const int RedPoint_OSBeautyMM = 482;
+ public const int RedPoint_OSMingge = 483;
public void Register()
{
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index 027a8b5..e782e62 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -597,6 +597,9 @@
DailySpecialsFree = 8, //8: 姣忔棩鐗规儬-姣忔棩鐗规儬鍏嶈垂
DailyGiftFree = 9, //9: 姣忔棩鐗规儬-姣忔棩绀煎寘鍏嶈垂
WeeklyGiftFree = 10, //10: 姣忔棩鐗规儬-姣忓懆绀煎寘鍏嶈垂
+ OSBeautyMM = 17, //17: 绾㈤鍐叉绀煎寘
+ OSHeroTrain = 18, //18: 姝﹀皢鍐叉绀煎寘
+ OSMingge = 19, //19: 鍛芥牸鍐叉绀煎寘
}
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index d8b1303..28ba0f9 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -855,6 +855,9 @@
TimeRush = 58, //闄愭椂鍐插埡
Qunying = 62, //缇よ嫳姒�
HeroDebut = 63,//姝﹀皢鐧诲満
+ OSHeroTrain = 64, //寮�鏈嶆灏嗗煿鍏绘娲诲姩
+ OSBeautyMM = 65, //寮�鏈嶇孩棰滄娲诲姩
+ OSMingge = 66, //寮�鏈嶅懡鏍煎煿鍏绘娲诲姩
}
--
Gitblit v1.8.0