From bddf4df7cbb292011a974b705d6f6d94c0ac6cc1 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 09 十二月 2025 11:44:17 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/OSActivity/OSRankHeroCallAwardCell.cs.meta | 11
Main/System/GeneralConfig/DayRemind.cs | 2
Main/System/OSActivity/OSRankMainLeveAwardWin.cs | 82 ++
Main/System/OSActivity/OSRankMainLeveAwardWin.cs.meta | 11
Main/System/Redpoint/MainRedDot.cs | 4
Main/Component/UI/Common/FuncOpen.cs | 187 +++++-
Main/System/OSActivity/OSRankHeroCallAwardWin.cs.meta | 11
Main/System/OSActivity/OSRankHeroCallGiftWin.cs | 63 ++
Main/System/Store/StoreModel.cs | 17
Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs.meta | 11
Main/System/FunctionPreview/FunctionPreviewCell.cs.meta | 11
Main/System/OSActivity/OSActivityManager.cs.meta | 11
Main/System/BillboardRank/RankModel.cs | 35 +
Main/System/FunctionPreview/FunctionPreviewCell.cs | 53 +
Main/Utility/EnumHelper.cs | 4
Main/System/OSActivity/OSActivityManager.cs | 190 ++++++
Main/System/OSActivity/OSRankMainLeveAwardCell.cs.meta | 11
Main/System/BillboardRank/PlayerRankCell.cs | 17
Main/System/FunctionPreview.meta | 8
Main/System/OSActivity/OSRankHeroCallGiftWin.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity.meta | 8
Main/Core/NetworkPackage/ServerPack/HAB_Activity.meta | 8
Main/System/OSActivity/OSHeroCallBaseWin.cs | 46 +
Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs | 11
Main/System/HeroUI/HeroListWin.cs | 3
Main/System/OSActivity/OSRankMainLeveAwardCell.cs | 58 ++
Main/System/OSActivity/OSMainLevelBaseWin.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs | 2
Main/System/OSActivity/OSRankHeroCallGiftCell.cs | 120 ++++
Main/System/FunctionPreview/FunctionPreviewWin.cs | 48 +
Main/System/HeroUI/HeroCardCell.cs | 4
Main/System/MainLevel/MainBossEnterWin.cs | 3
Main/System/OSActivity/OSHeroCallBaseWin.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs | 19
Main/System/OSActivity/OSRankWin.cs | 61 ++
Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs.meta | 11
Main/System/FunctionPreview/FunctionPreviewWin.cs.meta | 11
Main/System/BillboardRank/PlayerTop3Cell.cs | 8
Main/System/FirstCharge/FirstChargeWin.cs | 4
Main/System/Hero/HeroManager.cs | 5
Main/System/Main/HomeWin.cs | 41 +
Main/System/BillboardRank/PlayerRankWin.cs | 25
Main/Main.cs | 1
Main/Config/Configs/FuncOpenLVConfig.cs | 9
Main/Config/Configs/StoreConfig.cs | 5
Main/System/OSActivity/OSMainLevelBaseWin.cs | 53 +
Main/System/OSActivity/OSRankHeroCallAwardCell.cs | 58 ++
Main/System/OSActivity/OSRankHeroCallAwardWin.cs | 83 ++
Main/System/HeroUI/HeroUIManager.Reborn.cs | 69 ++
Main/System/Main/RightFuncInHome.cs | 9
Main/System/OSActivity/OSRankHeroCallGiftCell.cs.meta | 11
Main/System/OSActivity.meta | 8
Main/System/OSActivity/OSRankWin.cs.meta | 11
Main/System/HeroUI/HeroUIManager.cs | 37 +
54 files changed, 1,514 insertions(+), 108 deletions(-)
diff --git a/Main/Component/UI/Common/FuncOpen.cs b/Main/Component/UI/Common/FuncOpen.cs
index 52491df..1a575b9 100644
--- a/Main/Component/UI/Common/FuncOpen.cs
+++ b/Main/Component/UI/Common/FuncOpen.cs
@@ -1,8 +1,8 @@
锘縰sing System;
-using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LitJson;
+using System.Linq;
public class FuncOpen
{
@@ -92,7 +92,7 @@
{
for (int i = 0; i < vNetData.FuncCount; i++)
{
-
+
var funcState = vNetData.FuncStateList[i];
bool bPerFuncIsOpen = false;
@@ -109,6 +109,10 @@
funcOpenState[funcState.FuncID] = funcState.State == 1;
bAfterFuncIsOpen = funcOpenState[funcState.FuncID];
}
+
+ awardStateDict[funcState.FuncID] = funcState.AwardState == 1;
+ UpdatePreviewRedpoint();
+
if (OnFuncStateChangeEvent != null)
{
OnFuncStateChangeEvent(funcState.FuncID);
@@ -118,7 +122,7 @@
private bool IsFuncOpen(int key, out int errorCode)
{
-
+
errorCode = 0;
var config = FuncOpenLVConfig.Get(key);
if (config == null)
@@ -129,7 +133,7 @@
if (config.OpenDay > 0)
{
if (config.OpenDay > TimeUtility.OpenDay + 1)
- {
+ {
errorCode = 2;
return false;
}
@@ -218,53 +222,11 @@
SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID)));
break;
case 5:
- SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_ManLevel", config.ManLevel/10000, config.ManLevel/100%100, config.ManLevel%100));
+ SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_ManLevel", config.ManLevel / 10000, config.ManLevel / 100 % 100, config.ManLevel % 100));
break;
}
}
}
- }
-
-
- public string GetErrorTip(int key)
- {
- if (!FuncOpenLVConfig.HasKey(key))
- return string.Empty;
- FuncOpenLVConfig config = FuncOpenLVConfig.Get(key);
- if (!IsFuncOpen(key, out int errorCode))
- {
- switch (errorCode)
- {
- case 1:
- return Language.Get("FuncLimit_Level", config.LimitLV);
- case 2:
- //寮�鏈嶅灏戝ぉ 涓�鑸槸缁勫悎
- if (config.LimitLV != 0)
- {
- return Language.Get("FuncLimit_OpenDay_LV", config.LimitLV, TimeUtility.OpenDay + 1, config.OpenDay);
-
- }
- else if (config.LimitMissionID != 0)
- {
- return Language.Get("FuncLimit_OpenDay_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID), TimeUtility.OpenDay + 1, config.OpenDay);
- }
- else if (config.LimiRealmLV != 0)
- {
- return Language.Get("FuncLimit_OpenDay_Realm", RealmConfig.Get(config.LimiRealmLV).Name, TimeUtility.OpenDay + 1, config.OpenDay);
- }
- else
- {
- return Language.Get("FuncLimit_OpenDay", config.OpenDay);
- }
- case 3:
- return Language.Get("FuncLimit_Realm", RealmConfig.Get(config.LimiRealmLV).Name);
- case 4:
- return Language.Get("FuncLimit_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID));
- case 5:
- return Language.Get("FuncLimit_ManLevel", config.ManLevel/10000, config.ManLevel/100%100, config.ManLevel%100);
- }
- }
- return string.Empty;
}
public int GetLimitLv(int key)
@@ -300,6 +262,137 @@
}
return true;
}
+
+ #region 鍔熻兘棰勫憡
+ Dictionary<int, bool> awardStateDict = new Dictionary<int, bool>();
+
+ Dictionary<int, int> funcIndexDict = new Dictionary<int, int>();
+ public Dictionary<int, int> GetFuncIndexDict()
+ {
+ if (funcIndexDict.IsNullOrEmpty())
+ {
+ foreach (var funcId in FuncOpenLVConfig.GetKeys())
+ {
+ FuncOpenLVConfig config = FuncOpenLVConfig.Get(funcId);
+ if (config.PreviewIndex > 0)
+ {
+ funcIndexDict[config.FuncId] = config.PreviewIndex;
+ }
+ }
+ }
+ return funcIndexDict;
+ }
+
+ public List<int> GetSortShowList()
+ {
+ List<int> sortShowList = new List<int>();
+ Dictionary<int, int> indexDict = GetFuncIndexDict();
+ // 鎸夌姸鎬佷紭鍏堢骇鎺掑簭锛氱姸鎬�1锛堝彲棰嗗彇锛�> 鐘舵��0锛堟湭瑙i攣锛�> 鐘舵��2锛堝凡棰嗗彇锛�
+ // 姣忕鐘舵�佸唴鎸� PreviewIndex 鍗囧簭锛岀浉鍚屽垯鎸� FuncId 鍗囧簭
+ sortShowList = indexDict
+ .Select(kv => new { FuncId = kv.Key, PreviewIndex = kv.Value, State = GetState(kv.Key) })
+ .OrderBy(x => x.State == 1 ? 0 : (x.State == 0 ? 1 : 2)) // 鏄犲皠浼樺厛绾э細1鈫�0, 0鈫�1, 2鈫�2
+ .ThenBy(x => x.PreviewIndex)
+ .ThenBy(x => x.FuncId)
+ .Select(x => x.FuncId)
+ .ToList();
+ return sortShowList;
+ }
+
+
+
+ //绗竴涓彲棰嗗彇鐨勭墿鍝佹墍鍦ㄨ绱㈠紩
+ public bool TryGetJumpIndex(out int index)
+ {
+ index = 0;
+ List<int> list = GetSortShowList();
+ if (list.IsNullOrEmpty())
+ return false;
+ for (int i = 0; i < list.Count; i++)
+ {
+ if (GetState(list[i]) == 1)
+ {
+ index = i;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private bool IsAwardHave(int funcId)
+ {
+ return !awardStateDict.TryGetValue(funcId, out bool state) ? false : state;
+ }
+
+ // 0-鏈В閿� 1-鍙鍙� 2-宸查鍙�
+ public int GetState(int funcId)
+ {
+ if (IsAwardHave(funcId))
+ return 2;
+ return IsFuncOpen(funcId) ? 1 : 0;
+ }
+
+
+
+ public string GetErrorStr(int funcId)
+ {
+ if (!FuncOpenLVConfig.HasKey(funcId))
+ return string.Empty;
+ FuncOpenLVConfig config = FuncOpenLVConfig.Get(funcId);
+ List<string> conditionStrs = new List<string>();
+ if (config.LimitLV > 0)
+ {
+ conditionStrs.Add(Language.Get("FunctionPreviewErr01", config.LimitLV));
+ }
+
+ if (config.LimiRealmLV > 0)
+ {
+ conditionStrs.Add(Language.Get("FunctionPreviewErr02", RealmConfig.Get(config.LimiRealmLV).Name));
+ }
+
+ if (config.LimitMissionID > 0)
+ {
+ conditionStrs.Add(Language.Get("FunctionPreviewErr03", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID)));
+ }
+
+ if (config.OpenDay > 0)
+ {
+ conditionStrs.Add(Language.Get("FunctionPreviewErr04", config.OpenDay));
+ }
+
+ if (config.ManLevel > 0)
+ {
+ conditionStrs.Add(Language.Get("FunctionPreviewErr05", config.ManLevel / 10000, config.ManLevel / 100 % 100, config.ManLevel % 100));
+ }
+
+ if (conditionStrs.Count == 0)
+ {
+ return string.Empty;
+ }
+ string connector = Language.Get("FunctionPreview01"); // "涓�"
+ string unlockStr = Language.Get("FunctionPreview02"); // "瑙i攣"
+ string result = string.Join(connector, conditionStrs) + unlockStr;
+ return result;
+ }
+
+ public void SendGetAward(int funcId)
+ {
+ var pack = new CA504_tagCMPlayerGetReward();
+ pack.RewardType = 17;
+ pack.DataEx = (uint)funcId;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ Redpoint redpoint = new Redpoint(MainRedDot.RightFuncRedpoint, MainRedDot.FunctionPreviewRepoint);
+
+ public void UpdatePreviewRedpoint()
+ {
+ redpoint.state = RedPointState.None;
+ if (!TryGetJumpIndex(out int index))
+ return;
+ redpoint.state = RedPointState.Simple;
+ }
+ #endregion
}
public interface ICheckFuncOpen
diff --git a/Main/Config/Configs/FuncOpenLVConfig.cs b/Main/Config/Configs/FuncOpenLVConfig.cs
index 6c1ca9b..8e930b5 100644
--- a/Main/Config/Configs/FuncOpenLVConfig.cs
+++ b/Main/Config/Configs/FuncOpenLVConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: Thursday, November 27, 2025
+// [ Date ]: 2025骞�12鏈�8鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -25,7 +25,8 @@
public string Name;
public string Desc;
public string Icon;
- public Dictionary<int, int[][]> Award;
+ public int PreviewIndex;
+ public int[][] AwardList;
public override int LoadKey(string _key)
{
@@ -55,7 +56,9 @@
Icon = tables[8];
- Award = ConfigParse.ParseIntArray2Dict(tables[9].Replace("(", "[").Replace(")", "]"));
+ int.TryParse(tables[9],out PreviewIndex);
+
+ AwardList = JsonMapper.ToObject<int[][]>(tables[10].Replace("(", "[").Replace(")", "]"));
}
catch (Exception exception)
{
diff --git a/Main/Config/Configs/StoreConfig.cs b/Main/Config/Configs/StoreConfig.cs
index 26eb7c6..5f4f915 100644
--- a/Main/Config/Configs/StoreConfig.cs
+++ b/Main/Config/Configs/StoreConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�10鏈�28鏃�
+// [ Date ]: 2025骞�12鏈�8鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -29,6 +29,7 @@
public int MoneyOriginal;
public int UnlockType;
public int UnlockValue;
+ public string Name;
public override int LoadKey(string _key)
{
@@ -65,6 +66,8 @@
int.TryParse(tables[11],out UnlockType);
int.TryParse(tables[12],out UnlockValue);
+
+ Name = tables[13];
}
catch (Exception exception)
{
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
index 6b5f439..19f1016 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -7,7 +7,7 @@
public static event Action beforePlayerDataInitializeEvent; //閲嶇櫥鍒囨崲璐﹀彿 鎴栬�� 鐭殏鐨勬柇绾块噸杩� 閮戒細瑙﹀彂
public static event Action beforePlayerDataInitializeEventOnRelogin; //閲嶇櫥鍒囨崲璐﹀彿瑙﹀彂
- public static event Action beforePlayerDataInitializeEventOnReconnect; //鏂嚎閲嶈繛瑙﹀彂
+ public static event Action beforePlayerDataInitializeEventOnReconnect; //鍚岃处鍙锋柇绾块噸杩炶Е鍙�
public static event Action afterPlayerDataInitializeEvent;
public static event Action switchAccountEvent;
public static bool isAfterPlayerDataInitialize = false; //鍙尯鍒嗘柇绾块噸杩炶繕鏄畬鍏ㄩ噸鐧�; 鍒囧埌鐧诲綍鍦烘櫙浼氶噸缃负false锛屾晠鍙垽鏂柇绾块噸杩�
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity.meta
new file mode 100644
index 0000000..3249a71
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6941d0f549d09534083b125a3f958bf6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs
new file mode 100644
index 0000000..6715c77
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs
@@ -0,0 +1,11 @@
+using UnityEngine;
+using System.Collections;
+
+// AB 05 寮�鏈嶅簡鍏镐俊鎭� #tagSCOSACelebrationInfo
+
+public class DTCAB05_tagSCOSACelebrationInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HAB05_tagSCOSACelebrationInfo vNetData = vNetPack as HAB05_tagSCOSACelebrationInfo;
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs.meta
new file mode 100644
index 0000000..7250985
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAB_Activity/DTCAB05_tagSCOSACelebrationInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dde0a532fce9aff41bd468e6a0b87511
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HAB_Activity.meta b/Main/Core/NetworkPackage/ServerPack/HAB_Activity.meta
new file mode 100644
index 0000000..a22ac7b
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAB_Activity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 87a175e0ef9386646a517dc77118c1ca
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs b/Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs
new file mode 100644
index 0000000..629eea4
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+using System.Collections;
+
+// AB 05 寮�鏈嶅簡鍏镐俊鎭� #tagSCOSACelebrationInfo
+
+public class HAB05_tagSCOSACelebrationInfo : GameNetPackBasic {
+ public uint PointTotal; // 绱搴嗗吀绉垎
+ public uint PointAward; // 绉垎闃舵濂栧姳璁板綍锛屾寜闃舵绉垎鎺掑簭鍚庣储寮曚簩杩涘埗瀛樺偍鏄惁宸查鍙�
+
+ public HAB05_tagSCOSACelebrationInfo () {
+ _cmd = (ushort)0xAB05;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out PointTotal, vBytes, NetDataType.DWORD);
+ TransBytes (out PointAward, vBytes, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs.meta
new file mode 100644
index 0000000..a1b87c8
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAB_Activity/HAB05_tagSCOSACelebrationInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4b88c80b8a2f30e429deefeacba13d72
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Main.cs b/Main/Main.cs
index c01f11b..c8845f3 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -93,6 +93,7 @@
managers.Add(FuncNPCManager.Instance);
managers.Add(GuildBossManager.Instance);
managers.Add(LineupRecommendManager.Instance);
+ managers.Add(OSActivityManager.Instance);
foreach (var manager in managers)
{
diff --git a/Main/System/BillboardRank/PlayerRankCell.cs b/Main/System/BillboardRank/PlayerRankCell.cs
index e9bc30d..7748a7e 100644
--- a/Main/System/BillboardRank/PlayerRankCell.cs
+++ b/Main/System/BillboardRank/PlayerRankCell.cs
@@ -8,16 +8,15 @@
//鐜╁閫氱敤鎺掑悕
public class PlayerRankCell : MonoBehaviour
{
- [SerializeField] AvatarCell avatarCell;
+ [SerializeField] AvatarCell avatarCell; // 澶村儚涓偣鍑绘煡璇㈢帺瀹惰鎯�
[SerializeField] Text rankText;
[SerializeField] Text rankValueText; //鎺掑悕姣旇緝鍐呭
[SerializeField] Text nameText;
[SerializeField] OfficialTitleCell officialTitleCell;
- [SerializeField] Button queryPlayerBtn; //鍚庣画娣诲姞鐐瑰嚮鏌ョ湅鐜╁璇︽儏
// rank 涓�0 浠h〃鐜╁鑷繁
- public void Display(int rankType, int rank, string valueFormat)
+ public void Display(int rankType, int rank)
{
RankData rankData = null;
if (rank != 0)
@@ -34,7 +33,7 @@
PlayerDatas.Instance.baseData.face,
PlayerDatas.Instance.baseData.facePic));
rankText.text = Language.Get("L1045");
- rankValueText.text = "1-1";//Language.Get("L1125");
+ rankValueText.text = "";//Language.Get("L1125");
nameText.text = PlayerDatas.Instance.baseData.PlayerName;
officialTitleCell.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
return;
@@ -46,7 +45,7 @@
officialTitleCell.SetActive(false);
avatarCell.SetActive(false);
nameText.text = Language.Get("L1124");
- rankValueText.text = "1-1";//Language.Get("L1125");
+ rankValueText.text = "";//Language.Get("L1125");
}
else
{
@@ -55,17 +54,11 @@
avatarCell.SetActive(true);
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)rankData.id, (int)rankData.value3, (int)rankData.value4));
nameText.text = rankData.name1;
- rankValueText.text = RankModel.Instance.GetStoryInfo(rankData.cmpValue); ;
+ rankValueText.text = RankModel.Instance.GetCmpValueStr(rankType, rankData.cmpValue); ;
}
rankText.text = rank.ToString();
- if (queryPlayerBtn != null)
- {
- queryPlayerBtn.AddListener(() =>
- {
- });
- }
}
}
diff --git a/Main/System/BillboardRank/PlayerRankWin.cs b/Main/System/BillboardRank/PlayerRankWin.cs
index c58478c..a4628ca 100644
--- a/Main/System/BillboardRank/PlayerRankWin.cs
+++ b/Main/System/BillboardRank/PlayerRankWin.cs
@@ -9,7 +9,7 @@
using UnityEngine.UI;
-//閫氱敤鐜╁涓汉鎺掕姒�
+//閫氱敤鐜╁涓汉鎺掕姒�; cell鏁伴噺鏄浐瀹氱殑 闈炲姩鎬佸彉鍖�
public class PlayerRankWin : UIBase
{
[SerializeField] List<PlayerTop3Cell> playerTop3Cells;
@@ -18,26 +18,23 @@
[SerializeField] PlayerRankCell myRankCell;
[SerializeField] Button btnClose;
-
- [HideInInspector] public int rankType;
- [HideInInspector] public string valueFormat = "{0}";
+ //鏁版嵁鍚庣画浠巑anager涓褰曡幏鍙�
[HideInInspector] public int groupValue1 = 0; //涓�鑸敤浜庤法鏈�
[HideInInspector] public int groupValue2 = 0; //涓�鑸敤浜庤法鏈�
+ protected int rankType; //浠巉unctionOrder鑾峰彇
protected override void InitComponent()
{
- btnClose.AddListener(()=>
- {
- CloseWindow();
- });
+ btnClose?.AddListener(CloseWindow);
}
- protected override void NextFrameAfterOpen()
+
+ protected override void OnPreOpen()
{
+ rankType = functionOrder;
RankModel.Instance.onRankRefresh += OnRankRefresh;
scrollerController.OnRefreshCell += OnRefreshCell;
Refresh();
-
}
protected override void OnPreClose()
@@ -53,7 +50,7 @@
public override void Refresh()
{
- cmpStrText.text = Language.Get("RankTypeName_1");
+ cmpStrText.text = RankModel.Instance.GetCmpTabStr(rankType);
ShowTop3();
CreateScroller();
ShowMyRank();
@@ -73,7 +70,7 @@
void OnRefreshCell(ScrollerDataType type, CellView cell)
{
var _cell = cell.GetComponent<PlayerRankCell>();
- _cell.Display(rankType, cell.index + 1, valueFormat);
+ _cell.Display(rankType, cell.index + 1);
RankModel.Instance.ListenRankPage(rankType, cell.index, groupValue1, groupValue2);
}
@@ -82,13 +79,13 @@
{
for (int i = 0; i < playerTop3Cells.Count; i++)
{
- playerTop3Cells[i].Display(functionOrder, i + 1);
+ playerTop3Cells[i].Display(rankType, i + 1);
}
}
void ShowMyRank()
{
- myRankCell.Display(rankType, 0, valueFormat);
+ myRankCell.Display(rankType, 0);
}
diff --git a/Main/System/BillboardRank/PlayerTop3Cell.cs b/Main/System/BillboardRank/PlayerTop3Cell.cs
index 610fe84..d67b702 100644
--- a/Main/System/BillboardRank/PlayerTop3Cell.cs
+++ b/Main/System/BillboardRank/PlayerTop3Cell.cs
@@ -8,26 +8,24 @@
//鐜╁閫氱敤鐨勫墠3鎺掑悕
public class PlayerTop3Cell : MonoBehaviour
{
- //[SerializeField] Model 鏄剧ずNPC 姝﹀皢妯″瀷
[SerializeField] Text rankValueText; //鎺掑悕姣旇緝鍐呭
[SerializeField] Text nameText;
[SerializeField] OfficialTitleCell officialTitleCell;
- [SerializeField] Button queryPlayerBtn; //鍚庣画娣诲姞鐐瑰嚮鏌ョ湅鐜╁璇︽儏
[SerializeField] HorseController model;
- public void Display(int rankType, int rank, string valueFormat = "{0}")
+ public void Display(int rankType, int rank)
{
var rankData = RankModel.Instance.GetRankDataByRank(rankType, rank);
if (rankData == null)
{
- rankValueText.text = "1-1";//Language.Get("L1125");
+ rankValueText.text = "";//Language.Get("L1125");
nameText.text = Language.Get("L1124");
officialTitleCell.SetActive(false);
return;
}
officialTitleCell.SetActive(true);
//rankValueText.text = string.Format(valueFormat, UIHelper.ReplaceLargeNum(rankData.cmpValue2 + rankData.cmpValue * Constants.ExpPointValue));
- rankValueText.text = RankModel.Instance.GetStoryInfo(rankData.cmpValue);
+ rankValueText.text = RankModel.Instance.GetCmpValueStr(rankType, rankData.cmpValue);
nameText.text = rankData.name1;
officialTitleCell.InitUI((int)rankData.value1, (int)rankData.value2);
model.Create(HorseManager.Instance.GetOtherPlayerHorseSkinID((int)rankData.value6), (int)rankData.value5, 1);
diff --git a/Main/System/BillboardRank/RankModel.cs b/Main/System/BillboardRank/RankModel.cs
index 318e713..5e8df5e 100644
--- a/Main/System/BillboardRank/RankModel.cs
+++ b/Main/System/BillboardRank/RankModel.cs
@@ -333,13 +333,36 @@
}
#endregion
- public string GetStoryInfo(uint cmpValue)
+ //鑾峰彇鎺掑悕姣旇緝鍊煎瓧绗︿覆
+ public string GetCmpValueStr(int rankType, uint cmpValue)
{
- int value = (int)cmpValue;
- if (!MainLevelConfig.HasKey(value))
- return string.Empty;
- MainLevelConfig config = MainLevelConfig.Get(value);
- return Language.Get("Arena15", config.ChapterID, config.LevelNum);
+ switch (rankType)
+ {
+ case 0:
+ case 3:
+ int value = (int)cmpValue;
+ if (!MainLevelConfig.HasKey(value))
+ return string.Empty;
+ MainLevelConfig config = MainLevelConfig.Get(value);
+ return Language.Get("Arena15", config.ChapterID, config.LevelNum);
+ case 4:
+ return cmpValue.ToString();
+ }
+ return string.Empty;
+ }
+
+ //鑾峰彇鎺掑悕鏍囩
+ public string GetCmpTabStr(int rankType)
+ {
+ switch (rankType)
+ {
+ case 0:
+ case 3:
+ return Language.Get("RankTypeName_1");
+ case 4:
+ return Language.Get("OSActivity5");
+ }
+ return string.Empty;
}
}
diff --git a/Main/System/FirstCharge/FirstChargeWin.cs b/Main/System/FirstCharge/FirstChargeWin.cs
index a5daae2..6f2c5fa 100644
--- a/Main/System/FirstCharge/FirstChargeWin.cs
+++ b/Main/System/FirstCharge/FirstChargeWin.cs
@@ -256,7 +256,7 @@
OrderInfoConfig orderInfoConfig;
if (model.TryGetOrderInfoConfigByFirstID(firstID, out orderInfoConfig))
{
- txtTabTitles[i].text = Language.Get("PayMoneyNum", orderInfoConfig.PayRMBNum);
+ txtTabTitles[i].text = Language.Get("PayMoneyNum", orderInfoConfig.PayRMBNumOnSale);
}
}
}
@@ -279,7 +279,7 @@
bool isBuy = firstChargeData.IsBuy();
btnBuy.SetActive(!isBuy);
btnHave.SetActive(isBuy);
- txtBuy.text = Language.Get("PayMoneyNum", orderInfo.PayRMBNum);
+ txtBuy.text = Language.Get("PayMoneyNum", orderInfo.PayRMBNumOnSale);
//棰嗗彇
int day = firstChargeData.GetNowBuyDay();
//0: 宸查鍙� 1: 涓嶅彲棰嗗彇 2: 鍙鍙�
diff --git a/Main/System/FunctionPreview.meta b/Main/System/FunctionPreview.meta
new file mode 100644
index 0000000..ef4d8f5
--- /dev/null
+++ b/Main/System/FunctionPreview.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e7acf37249ff26f4f85a11d0e3e8f65a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FunctionPreview/FunctionPreviewCell.cs b/Main/System/FunctionPreview/FunctionPreviewCell.cs
new file mode 100644
index 0000000..d1a053a
--- /dev/null
+++ b/Main/System/FunctionPreview/FunctionPreviewCell.cs
@@ -0,0 +1,53 @@
+using UnityEngine;
+
+public class FunctionPreviewCell : MonoBehaviour
+{
+ [SerializeField] ImageEx imgIcon;
+ [SerializeField] TextEx txtName;
+ [SerializeField] TextEx txtDesc;
+ [SerializeField] ItemCell itemCell;
+ [SerializeField] Transform transItemCellMask;
+ [SerializeField] ImageEx imgRed;
+ [SerializeField] Transform transOpenInfo;
+ [SerializeField] RichText txtOpenInfo;
+ [SerializeField] Transform transMask;
+ public void Display(int index, CellView cell)
+ {
+ int funcId = cell.info.Value.infoInt1;
+ if (!FuncOpenLVConfig.HasKey(funcId))
+ return;
+
+ FuncOpenLVConfig config = FuncOpenLVConfig.Get(funcId);
+ // 0-鏈В閿� 1-鍙鍙� 2-宸查鍙�
+ int state = FuncOpen.Instance.GetState(funcId);
+ imgRed.SetActive(state == 1);
+ transOpenInfo.SetActive(state == 0);
+ transMask.SetActive(state != 1);
+ transItemCellMask.SetActive(state == 2);
+
+ imgIcon.SetSprite(config.Icon);
+ imgIcon.SetNativeSize();
+ txtName.text = config.Name;
+ txtDesc.text = config.Desc;
+
+ int[][] awardList = config.AwardList;
+ itemCell.SetActive(!awardList.IsNullOrEmpty() && state != 0);
+ if (!awardList.IsNullOrEmpty())
+ {
+ itemCell.Init(new ItemCellModel(awardList[0][0], true, awardList[0][1]));
+ itemCell.button.SetListener(() =>
+ {
+ if (state == 1)
+ {
+ FuncOpen.Instance.SendGetAward(funcId);
+ }
+ else
+ {
+ ItemTipUtility.Show(awardList[0][0]);
+ }
+ });
+ }
+
+ txtOpenInfo.text = FuncOpen.Instance.GetErrorStr(funcId);
+ }
+}
diff --git a/Main/System/FunctionPreview/FunctionPreviewCell.cs.meta b/Main/System/FunctionPreview/FunctionPreviewCell.cs.meta
new file mode 100644
index 0000000..8e196cc
--- /dev/null
+++ b/Main/System/FunctionPreview/FunctionPreviewCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 807ec470632e30e4fbebaad0c81ba631
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FunctionPreview/FunctionPreviewWin.cs b/Main/System/FunctionPreview/FunctionPreviewWin.cs
new file mode 100644
index 0000000..604b203
--- /dev/null
+++ b/Main/System/FunctionPreview/FunctionPreviewWin.cs
@@ -0,0 +1,48 @@
+using UnityEngine;
+
+public class FunctionPreviewWin : UIBase
+{
+ [SerializeField] ScrollerController scroller;
+
+ protected override void OnPreOpen()
+ {
+ scroller.lockType = EnhanceLockType.KeepVertical;
+ scroller.OnRefreshCell += OnRefreshCell;
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ CreateScoller();
+ }
+
+ protected override void OnPreClose()
+ {
+ scroller.OnRefreshCell -= OnRefreshCell;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ }
+
+ private void OnFuncStateChangeEvent(int obj)
+ {
+ CreateScoller();
+ }
+
+ private void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<FunctionPreviewCell>();
+ _cell?.Display(cell.index, cell);
+ }
+
+ private void CreateScoller()
+ {
+ scroller.Refresh();
+ var list = FuncOpen.Instance.GetSortShowList();
+ if (!list.IsNullOrEmpty())
+ {
+ for (int i = 0; i < list.Count; i++)
+ {
+ CellInfo info = new CellInfo();
+ info.infoInt1 = list[i];
+ scroller.AddCell(ScrollerDataType.Header, i, info);
+ }
+ }
+ scroller.Restart();
+ }
+}
+
diff --git a/Main/System/FunctionPreview/FunctionPreviewWin.cs.meta b/Main/System/FunctionPreview/FunctionPreviewWin.cs.meta
new file mode 100644
index 0000000..5524bea
--- /dev/null
+++ b/Main/System/FunctionPreview/FunctionPreviewWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e7c6142d362c8194c9cbe93b1d76f904
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/GeneralConfig/DayRemind.cs b/Main/System/GeneralConfig/DayRemind.cs
index 107b885..a1debbd 100644
--- a/Main/System/GeneralConfig/DayRemind.cs
+++ b/Main/System/GeneralConfig/DayRemind.cs
@@ -33,6 +33,7 @@
}
public const string DJQTip = "DJQTip"; // 浠i噾鍒告彁绀�
+ public const string OSMainLevel = "OSMainLevel"; // 寮�鏈嶄富绾垮叧鍗℃椿鍔ㄦ彁绀�
public Dictionary<string, int[]> dayRemindDic = new Dictionary<string, int[]>();
@@ -74,6 +75,7 @@
private void GetPlayerDayRemind()
{
SetDayRemind(DJQTip);
+ SetDayRemind(OSMainLevel);
}
public void SetDayRemind(string _key)
diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs
index 63dd298..394e012 100644
--- a/Main/System/Hero/HeroManager.cs
+++ b/Main/System/Hero/HeroManager.cs
@@ -83,6 +83,11 @@
return heroInfoDict.Values.ToList();
}
+ public List<string> GetHeroGuidList()
+ {
+ return heroInfoDict.Keys.ToList();
+ }
+
/// 鍙傛暟锛� 鑱屼笟锛屽浗瀹讹紝浼ゅ绫诲瀷锛�6澶ф垬鏂楀睘鎬э紝鐗规畩灞炴��
public List<string> GetHeroGuidList(List<int> selectList = null)
{
diff --git a/Main/System/HeroUI/HeroCardCell.cs b/Main/System/HeroUI/HeroCardCell.cs
index cd524b9..f273f7e 100644
--- a/Main/System/HeroUI/HeroCardCell.cs
+++ b/Main/System/HeroUI/HeroCardCell.cs
@@ -14,6 +14,7 @@
[SerializeField] RedpointBehaviour redpoint;
[SerializeField] Image newImage; //鏂版爣璇嗗拰绾㈢偣浜掓枼
[SerializeField] Image trainStateImg;
+ [SerializeField] Image starRedImg;
[SerializeField] Text nameText;
[SerializeField] Image awakeImg;
[SerializeField] Text awakeLVText;
@@ -62,6 +63,9 @@
{
trainStateImg.SetActive(false);
}
+
+ starRedImg.SetActive(funcState == 2);
+
nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel);
awakeImg.SetActive(hero.awakeLevel > 0);
awakeLVText.text = hero.awakeLevel.ToString();
diff --git a/Main/System/HeroUI/HeroListWin.cs b/Main/System/HeroUI/HeroListWin.cs
index b010d65..1c8360d 100644
--- a/Main/System/HeroUI/HeroListWin.cs
+++ b/Main/System/HeroUI/HeroListWin.cs
@@ -160,6 +160,7 @@
HeroUIManager.Instance.SortHeroList();
RefreshEmptyTip();
CreateScroller();
+ heroListScroller.JumpIndex(0);
}
//涓婇樀鍔犳垚
@@ -227,6 +228,8 @@
}
}
heroListScroller.Restart();
+ heroListScroller.lockType = EnhanceLockType.KeepVertical;
+
}
int GetAttrActiveHeroCount()
diff --git a/Main/System/HeroUI/HeroUIManager.Reborn.cs b/Main/System/HeroUI/HeroUIManager.Reborn.cs
index 44f1843..2156bf8 100644
--- a/Main/System/HeroUI/HeroUIManager.Reborn.cs
+++ b/Main/System/HeroUI/HeroUIManager.Reborn.cs
@@ -100,9 +100,76 @@
}
+ //閬f暎鑾峰彇绗﹀悎鏉′欢鐨勬灏嗗垪琛�
+ /// 鍙傛暟锛� 鑱屼笟锛屽浗瀹讹紝浼ゅ绫诲瀷锛�6澶ф垬鏂楀睘鎬э紝鐗规畩灞炴��
+ public List<string> GetHeroGuidListDelectFunc(List<int> selectList = null)
+ {
+ var _list = HeroManager.Instance.GetHeroList();
+ if (selectList.IsNullOrEmpty())
+ return HeroManager.Instance.GetHeroGuidList();
+
+ int job = selectList[0];
+ int country = selectList[1];
+ int hurtType = selectList[2];
+ int fightAttrType = selectList[3];
+ int specialAttrType = selectList[4];
+
+ List<string> retGuidList = new List<string>();
+ foreach (var heroInfo in _list)
+ {
+
+ if (heroInfo.isAttrActive)
+ continue;
+
+ if (heroInfo.heroStar < heroInfo.GetCurMaxStar())
+ {
+ continue;
+ }
+
+ //0浠h〃鍏ㄩ儴, 鍚岀骇鍒槸鍙閫夛紝涓嶅悓绾у埆涓轰笖鐨勫叧绯�
+ bool isMatch = true;
+ if (job != 0)
+ {
+ isMatch = isMatch && (job & (1 << heroInfo.heroConfig.Class)) > 0;
+ }
+ if (country != 0)
+ {
+ isMatch = isMatch && (country & (1 << heroInfo.heroConfig.Country)) > 0;
+ }
+ if (hurtType != 0)
+ {
+ isMatch = isMatch && (hurtType & (1 << heroInfo.heroConfig.HurtType)) > 0;
+ }
+ if (fightAttrType != 0)
+ {
+ isMatch = isMatch && (fightAttrType & (1 << heroInfo.heroConfig.Specialty)) > 0;
+ }
+ if (specialAttrType != 0)
+ {
+ bool isMatch2 = false;
+ for (int i = 0; i < heroInfo.heroConfig.Specialty2.Length; i++)
+ {
+ isMatch2 = (specialAttrType & (1 << heroInfo.heroConfig.Specialty2[i])) > 0;
+ if (isMatch2)
+ break;
+ }
+ isMatch = isMatch && isMatch2;
+ }
+ if (isMatch)
+ {
+ retGuidList.Add(heroInfo.itemHero.guid);
+ }
+
+ }
+ return retGuidList;
+ }
+
+
+
+
public void SortHeroDeleteList()
{
- heroDeleteSortList = HeroManager.Instance.GetHeroGuidList(selectHeroDeleteList);
+ heroDeleteSortList = GetHeroGuidListDelectFunc(selectHeroDeleteList);
heroDeleteSortList.Sort(CmpDeleteHero);
}
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index 84e6627..e8f86b2 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -467,12 +467,19 @@
// 涓荤嚎涓婇樀姝﹀皢鎵嶉渶瑕佹彁閱� 瑙夐啋锛炲崌鏄燂紴绐佺牬锛炲崌绾�
public int GetFuncState(HeroInfo hero)
{
+ if (!hero.isAttrActive)
+ return 0;
+
+ var heroCnt = PackManager.Instance.GetItemCountByID(PackType.Hero, hero.heroId);
if (!hero.IsInTeamByTeamType(TeamType.Story))
{
+ if (hero.heroStar < hero.GetCurMaxStar() && heroCnt > 1)
+ {
+ return 2;
+ }
return 0;
}
- var heroCnt = PackManager.Instance.GetItemCountByID(PackType.Hero, hero.heroId);
var itemPack = PackManager.Instance.GetSinglePack(PackType.Item);
//5鏄熷悗鎵嶈兘瑙夐啋
if (hero.heroStar < starLevelCanAwake)
@@ -493,7 +500,10 @@
}
}
- if (heroCnt > 1) return 2;
+ if (hero.heroStar < hero.GetCurMaxStar() && heroCnt > 1)
+ {
+ return 2;
+ }
var maxBreakLV = HeroBreakConfig.GetMaxBreakLv(hero.heroId);
if (hero.breakLevel < maxBreakLV)
@@ -526,6 +536,8 @@
List<Redpoint> heroOnTeamRedpointList = new List<Redpoint>(); //涓婇樀鐨勬灏嗙孩鐐�
List<Redpoint> heroBookRedpointList = new List<Redpoint>(); //鍥鹃壌鎵�鏈夋灏嗙孩鐐�
+ //鐢熸晥鏈笂闃电殑 鍙悶鍣殑鍏辩敤涓�涓孩鐐�
+ Redpoint heroEatRedPoint = new Redpoint(MainRedDot.HeroCardRedpoint, MainRedDot.HeroCardRedpoint * 10 + 8);
//鏂版爣璇嗙殑绾㈢偣 鎵�鏈夋灏嗙粺涓�涓�
Redpoint newMarkRedPoint = new Redpoint(MainRedDot.HeroCardRedpoint, MainRedDot.HeroCardRedpoint * 10 + 9);
void InitHeroOnTeamRedpointList()
@@ -566,6 +578,27 @@
}
newMarkRedPoint.state = newHeroIDList.Count > 0 ? RedPointState.New : RedPointState.None;
+
+ heroEatRedPoint.state = RedPointState.None;
+ var _list = HeroManager.Instance.GetHeroList();
+ foreach (var hero in _list)
+ {
+ if (!hero.isAttrActive)
+ {
+ continue;
+ }
+ if (hero.heroStar >= hero.GetCurMaxStar())
+ {
+ continue;
+ }
+
+ if (HeroManager.Instance.GetHeroCountByID(hero.heroId) > 1)
+ {
+ heroEatRedPoint.state = RedPointState.Simple;
+ break;
+ }
+ }
+
}
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index bdd24a0..599bafc 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -61,6 +61,8 @@
[SerializeField] RightFuncInHome rightFuncInHome;
[SerializeField] Button FirstChargeBtn;
+ [SerializeField] Button osMainLevelBtn;
+ [SerializeField] Button osHeroCallBtn;
//鍧愰獞
[SerializeField] Image horseBGImg;
@@ -187,6 +189,15 @@
UpdateSendButton();
inputFastChat.text = string.Empty;
});
+
+ osMainLevelBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSMainLevelBaseWin>();
+ });
+ osHeroCallBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSHeroCallBaseWin>();
+ });
}
@@ -234,8 +245,10 @@
HorseManager.Instance.OnHorseUpdateEvent += DisplayHorse;
ChatManager.Instance.OnChatTabChangeEvent += OnChatTabChangeEvent;
GuildManager.Instance.EnterOrQuitGuildEvent += EnterOrQuitGuildEvent;
+ TimeMgr.Instance.OnDayEvent += OnDayEvent;
Display();
DisplayFirstChargeBtn();
+ DisplayOSActivity();
// var battleWin = UIManager.Instance.OpenWindow<BattleWin>();
// battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
@@ -264,6 +277,7 @@
HorseManager.Instance.OnHorseUpdateEvent -= DisplayHorse;
ChatManager.Instance.OnChatTabChangeEvent -= OnChatTabChangeEvent;
GuildManager.Instance.EnterOrQuitGuildEvent -= EnterOrQuitGuildEvent;
+ TimeMgr.Instance.OnDayEvent -= OnDayEvent;
// 鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
UIManager.Instance.CloseWindow<BattleWin>();
@@ -277,6 +291,7 @@
txtFastChatSend.text = isCanSend ? Language.Get("Chat11") : Language.Get("Chat14", remainingSeconds);
txtFastChatSend.colorType = isCanSend ? TextColType.NavyBrown : TextColType.LightWhite;
}
+
private void EnterOrQuitGuildEvent(bool obj)
@@ -319,11 +334,10 @@
async UniTask DelayPlayMusic()
{
- await UniTask.Delay(2000);
+ await UniTask.Delay(1200);
if (!SoundPlayer.Instance.IsPlayBackGroundMuisic())
SoundPlayer.Instance.PlayBackGroundMusic(38);
}
-
private void OnClickEnterBoss()
@@ -597,6 +611,10 @@
}
}
+
+
+
+
private void OnFirstChargeTaskUpdateEvent()
{
DisplayFirstChargeBtn();
@@ -611,6 +629,10 @@
else if (funcId == (int)FuncOpenEnum.Horse)
{
DisplayHorse();
+ }
+ else if (funcId == (int)FuncOpenEnum.OSMainLevl || funcId == (int)FuncOpenEnum.OSHeroCall)
+ {
+ DisplayOSActivity();
}
}
@@ -654,4 +676,17 @@
UIManager.Instance.OpenWindow<HorseWin>();
}
}
-}
\ No newline at end of file
+
+ void DisplayOSActivity()
+ {
+ osMainLevelBtn.SetActive(OSActivityManager.Instance.IsOpened(3));
+ osHeroCallBtn.SetActive(OSActivityManager.Instance.IsOpened(4));
+ }
+
+ void OnDayEvent()
+ {
+ DisplayOSActivity();
+ }
+}
+
+
diff --git a/Main/System/Main/RightFuncInHome.cs b/Main/System/Main/RightFuncInHome.cs
index 93f0490..d8f3617 100644
--- a/Main/System/Main/RightFuncInHome.cs
+++ b/Main/System/Main/RightFuncInHome.cs
@@ -17,6 +17,7 @@
[SerializeField] Button battlePassBtn;
[SerializeField] Button llmjBtn; //鍘嗙粌绉樼瑘
[SerializeField] Button signBtn;
+ [SerializeField] Button previewBtn;
static string listenWindowName = ""; //鐩戝惉鍏抽棴鏃跺啀鏄剧ず
@@ -79,6 +80,13 @@
ListenWindow("SignWin");
UIManager.Instance.OpenWindow<SignWin>();
});
+
+ previewBtn.AddListener(() =>
+ {
+ //鐢ㄤ簬鐩戝惉鐣岄潰锛屾墦寮�鏃剁缉杩涘彸杈瑰姛鑳芥爮锛屽叧闂椂鏄剧ず
+ ListenWindow("FunctionPreviewWin");
+ UIManager.Instance.OpenWindow<FunctionPreviewWin>();
+ });
}
void ShowBtns()
@@ -89,6 +97,7 @@
llmjBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.LLMJ));
signBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.DaySign));
monthCardBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard));
+ previewBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FunctionPreview));
}
diff --git a/Main/System/MainLevel/MainBossEnterWin.cs b/Main/System/MainLevel/MainBossEnterWin.cs
index c86b5d5..c65170b 100644
--- a/Main/System/MainLevel/MainBossEnterWin.cs
+++ b/Main/System/MainLevel/MainBossEnterWin.cs
@@ -34,8 +34,7 @@
{
RankModel.Instance.ResetQueryParam();
RankModel.Instance.QueryRankByPage(0, watchID: (int)PlayerDatas.Instance.baseData.PlayerID);
- var win = UIManager.Instance.OpenWindow<PlayerRankWin>();
- win.rankType = 0;
+ UIManager.Instance.OpenWindow<PlayerRankWin>(0);
});
diff --git a/Main/System/OSActivity.meta b/Main/System/OSActivity.meta
new file mode 100644
index 0000000..8a7b5ba
--- /dev/null
+++ b/Main/System/OSActivity.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c825c294184518b419d9d9fc80996f01
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSActivityManager.cs b/Main/System/OSActivity/OSActivityManager.cs
new file mode 100644
index 0000000..3c24867
--- /dev/null
+++ b/Main/System/OSActivity/OSActivityManager.cs
@@ -0,0 +1,190 @@
+
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+public class OSActivityManager : GameSystemManager<OSActivityManager>
+{
+ 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 List<int> osHeroCallGiftSortList = new List<int>(); //寮�鏈嶆嫑鍕熺ぜ鍖� 鍏呭�糏D + 100000000
+
+ Dictionary<int, int> rankTypeToFuncID = new Dictionary<int, int>()
+ {
+ {3, 45},
+ {4, 46},
+ };
+
+ public override void Init()
+ {
+
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitialize;
+ StoreModel.Instance.RefreshBuyShopLimitEvent += RefreshStore;
+ FuncOpen.Instance.OnFuncStateChangeEvent += FuncStateChange;
+
+ ParseConfig();
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerDataInitialize;
+ StoreModel.Instance.RefreshBuyShopLimitEvent -= RefreshStore;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= FuncStateChange;
+ }
+
+ void BeforePlayerDataInitialize()
+ {
+ }
+
+ void ParseConfig()
+ {
+ var config = FuncConfigConfig.Get("OSABillboard");
+ rankOpenDays = ConfigParse.ParseIntArrayDict(config.Numerical1);
+ mainLevelRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical2);
+ heroCallRankAwards = ConfigParse.ParseIntArray2Dict(config.Numerical3);
+
+ var list = StoreModel.Instance.storeTypeDict[(int)StoreFunc.OSHeroCall];
+ var _list = RechargeManager.Instance.GetCTGIDListByType(18);
+
+ for (int i = 0; i < list.Count; i++)
+ {
+ var item = list[i];
+ osHeroCallGiftSortList.Add(item.shopId);
+ }
+ for (int i = 0; i < _list.Count; i++)
+ {
+ osHeroCallGiftSortList.Add(_list[i] + 100000000);
+ }
+
+ }
+
+ // 寮�鏈嶆帓琛屾椿鍔ㄦ槸鍚﹀紑鍚�
+ public bool IsOpened(int rankType)
+ {
+ if (!rankTypeToFuncID.ContainsKey(rankType))
+ {
+ return false;
+ }
+
+ if (!FuncOpen.Instance.IsFuncOpen(rankTypeToFuncID[rankType]))
+ {
+ return false;
+ }
+
+ //鍔熻兘寮�鍚噷鏈夊紑濮嬪ぉ浠ュ紑鍚负鍑嗭紝娲诲姩缁撴潫鍚庡欢杩熶竴澶╁叧闂睍绀�
+ if (!rankOpenDays.ContainsKey(rankType))
+ {
+ return false;
+ }
+
+ var openDays = rankOpenDays[rankType];
+ if (TimeUtility.OpenDay > openDays[1])
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ public int GetEndTime(int rankType)
+ {
+ if (!rankOpenDays.ContainsKey(rankType))
+ {
+ return 0;
+ }
+ var openDays = rankOpenDays[rankType];
+
+ return TimeUtility.GetRemindTimeByOpenDay(openDays[1]);
+ }
+
+ int CmpGift(int a, int b)
+ {
+ bool isSaleOutA = false;
+ bool isSaleOutB = false;
+
+ if (a < 100000000)
+ {
+ //鍟嗗簵
+ isSaleOutA = StoreModel.Instance.GetShopIDState(a) == 1;
+ }
+ else
+ {
+ RechargeManager.Instance.TryGetRechargeCount(a % 100000000, out RechargeCount countData);
+ if (countData.totalCount >= CTGConfig.Get(a % 100000000).DailyBuyCount)
+ {
+ isSaleOutA = true;
+ }
+ }
+ if (b < 100000000)
+ {
+ isSaleOutB = StoreModel.Instance.GetShopIDState(b) == 1;
+ }
+ else
+ {
+ RechargeManager.Instance.TryGetRechargeCount(b % 100000000, out RechargeCount countData);
+ if (countData.totalCount >= CTGConfig.Get(b % 100000000).DailyBuyCount)
+ {
+ isSaleOutB = true;
+ }
+ }
+ if (isSaleOutA != isSaleOutB)
+ {
+ return isSaleOutA ? 1 : -1;
+ }
+
+ return a.CompareTo(b);
+ }
+
+ public void RefreshGiftSortList()
+ {
+ osHeroCallGiftSortList.Sort(CmpGift);
+ }
+
+ void RefreshStore()
+ {
+ UpdateRedpoint();
+ }
+
+
+ Redpoint osMainLevelRedpoint = new Redpoint(MainRedDot.RedPoint_OSMainLevel);
+ Redpoint osHeroCallRedpoint = new Redpoint(MainRedDot.RedPoint_OSHeroCard);
+
+ public void UpdateRedpoint()
+ {
+ osMainLevelRedpoint.state = !DayRemind.Instance.GetDayRemind(DayRemind.OSMainLevel) ? RedPointState.Simple : RedPointState.None;
+ osHeroCallRedpoint.state = RedPointState.None;
+
+ if (StoreModel.Instance.freeShopDict.Count == 0) return;
+
+ if (StoreModel.Instance.freeShopDict.ContainsKey((int)StoreFunc.OSHeroCall))
+ {
+ var shopList = StoreModel.Instance.freeShopDict[(int)StoreFunc.OSHeroCall];
+
+ for (int i = 0; i < shopList.Count; i++)
+ {
+ var shopID = shopList[i];
+ var config = StoreConfig.Get(shopID);
+ if (StoreModel.Instance.GetShopLimitBuyCount(shopID) < config.LimitCnt)
+ {
+ osHeroCallRedpoint.state = RedPointState.Simple;
+ break;
+ }
+ }
+ }
+ }
+
+ private void FuncStateChange(int funcId)
+ {
+ switch ((FuncOpenEnum)funcId)
+ {
+ case FuncOpenEnum.OSMainLevl:
+ case FuncOpenEnum.OSHeroCall:
+ UpdateRedpoint();
+ break;
+ }
+ }
+}
diff --git a/Main/System/OSActivity/OSActivityManager.cs.meta b/Main/System/OSActivity/OSActivityManager.cs.meta
new file mode 100644
index 0000000..8a4d24f
--- /dev/null
+++ b/Main/System/OSActivity/OSActivityManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c7dec13c51efdd541a8b7cfedcdc9d09
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSHeroCallBaseWin.cs b/Main/System/OSActivity/OSHeroCallBaseWin.cs
new file mode 100644
index 0000000..516b9ff
--- /dev/null
+++ b/Main/System/OSActivity/OSHeroCallBaseWin.cs
@@ -0,0 +1,46 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Tuesday, July 24, 2018
+//--------------------------------------------------------
+
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+////寮�鏈嶆椿鍔�-姝﹀皢鎷涘嫙娲诲姩
+public class OSHeroCallBaseWin : FunctionsBaseWin
+{
+ [SerializeField] Button closBtn;
+
+ protected override void InitComponent()
+ {
+ base.InitComponent();
+ closBtn.AddListener(CloseWindow);
+ }
+
+
+ protected override void OpenSubUIByTabIndex()
+ {
+ switch (functionOrder)
+ {
+ case 0:
+ RankModel.Instance.ResetQueryParam();
+ RankModel.Instance.QueryRankByPage(4, watchID: (int)PlayerDatas.Instance.baseData.PlayerID);
+ currentSubUI = UIManager.Instance.OpenWindow<OSRankWin>(4);
+ break;
+ case 1:
+ currentSubUI = UIManager.Instance.OpenWindow<OSRankHeroCallAwardWin>();
+ break;
+ case 2:
+ currentSubUI = UIManager.Instance.OpenWindow<OSRankHeroCallGiftWin>();
+ break;
+ }
+ }
+
+}
+
+
+
+
diff --git a/Main/System/OSActivity/OSHeroCallBaseWin.cs.meta b/Main/System/OSActivity/OSHeroCallBaseWin.cs.meta
new file mode 100644
index 0000000..d81f8ef
--- /dev/null
+++ b/Main/System/OSActivity/OSHeroCallBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 625a00313ed577e44b0fc884be1e90f2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSMainLevelBaseWin.cs b/Main/System/OSActivity/OSMainLevelBaseWin.cs
new file mode 100644
index 0000000..fb630d4
--- /dev/null
+++ b/Main/System/OSActivity/OSMainLevelBaseWin.cs
@@ -0,0 +1,53 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Tuesday, July 24, 2018
+//--------------------------------------------------------
+
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+////寮�鏈嶆椿鍔�-涓荤嚎鍏冲崱娲诲姩
+public class OSMainLevelBaseWin : FunctionsBaseWin
+{
+ [SerializeField] Button closBtn;
+
+ protected override void InitComponent()
+ {
+ base.InitComponent();
+ closBtn.AddListener(CloseWindow);
+ }
+
+ protected override void OnPreOpen()
+ {
+ base.OnPreOpen();
+ if (!DayRemind.Instance.GetDayRemind(DayRemind.OSMainLevel))
+ {
+ DayRemind.Instance.SetDayRemind(DayRemind.OSMainLevel, true);
+ OSActivityManager.Instance.UpdateRedpoint();
+ }
+ }
+
+ protected override void OpenSubUIByTabIndex()
+ {
+ switch (functionOrder)
+ {
+ case 0:
+ RankModel.Instance.ResetQueryParam();
+ RankModel.Instance.QueryRankByPage(3, watchID: (int)PlayerDatas.Instance.baseData.PlayerID);
+ currentSubUI = UIManager.Instance.OpenWindow<OSRankWin>(3);
+ break;
+ case 1:
+ currentSubUI = UIManager.Instance.OpenWindow<OSRankMainLeveAwardWin>();
+ break;
+ }
+ }
+
+
+}
+
+
+
+
diff --git a/Main/System/OSActivity/OSMainLevelBaseWin.cs.meta b/Main/System/OSActivity/OSMainLevelBaseWin.cs.meta
new file mode 100644
index 0000000..7797c91
--- /dev/null
+++ b/Main/System/OSActivity/OSMainLevelBaseWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2e7af1c80e7f0cb4e803121c8107b934
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroCallAwardCell.cs b/Main/System/OSActivity/OSRankHeroCallAwardCell.cs
new file mode 100644
index 0000000..bef253b
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallAwardCell.cs
@@ -0,0 +1,58 @@
+锘縰sing System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class OSRankHeroCallAwardCell : CellView
+{
+ [SerializeField] Text rankText;
+ [SerializeField] Image rankImg;
+ [SerializeField] ItemCell[] itemCells;
+
+ public void Display(int index)
+ {
+ var rank = index + 1;
+ if (index < 3)
+ {
+ rankImg.SetActive(true);
+ rankText.SetActive(false);
+ rankImg.SetSprite(StringUtility.Contact("Rank", index + 1));
+ }
+ else
+ {
+ rankImg.SetActive(false);
+ rankText.SetActive(true);
+ var keys = OSActivityManager.Instance.heroCallRankAwards.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 = OSActivityManager.Instance.heroCallRankAwards[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);
+ }
+ }
+ }
+
+}
diff --git a/Main/System/OSActivity/OSRankHeroCallAwardCell.cs.meta b/Main/System/OSActivity/OSRankHeroCallAwardCell.cs.meta
new file mode 100644
index 0000000..691a197
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallAwardCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3efefc256362c9e4a9538ad84e522737
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroCallAwardWin.cs b/Main/System/OSActivity/OSRankHeroCallAwardWin.cs
new file mode 100644
index 0000000..911aa93
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallAwardWin.cs
@@ -0,0 +1,83 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Tuesday, July 24, 2018
+//--------------------------------------------------------
+
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+////寮�鏈嶆椿鍔�-姝﹀皢鎷涘嫙鎺掕姒滃鍔�
+public class OSRankHeroCallAwardWin : UIBase
+{
+ [SerializeField] ScrollerController scrollerController;
+ [SerializeField] Text myRankText;
+ [SerializeField] Text myRankValueText;
+
+
+ protected override void OnPreOpen()
+ {
+ scrollerController.OnRefreshCell += OnRefreshCell;
+ CreateScroller();
+ DisplayMyRank(4);
+ }
+
+ protected override void OnPreClose()
+ {
+ scrollerController.OnRefreshCell -= OnRefreshCell;
+ }
+
+
+
+
+ void CreateScroller()
+ {
+ var keys = OSActivityManager.Instance.heroCallRankAwards.Keys;
+
+ scrollerController.Refresh();
+ for (int i = 0; i < keys.Count; i++)
+ {
+ scrollerController.AddCell(ScrollerDataType.Header, i);
+ }
+ scrollerController.Restart();
+ }
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<OSRankHeroCallAwardCell>();
+ _cell.Display(cell.index);
+ }
+
+ public void DisplayMyRank(int rankType)
+ {
+ RankData rankData = null;
+ rankData = RankModel.Instance.GetMyRank(rankType);
+ if (rankData == null)
+ {
+ myRankText.text = Language.Get("L1045");
+ myRankValueText.text = "";//Language.Get("L1125");
+ return;
+ }
+ int rank = rankData.rank;
+
+ if (rankData == null)
+ {
+ myRankValueText.text = "";//Language.Get("L1125");
+ }
+ else
+ {
+ myRankValueText.text = RankModel.Instance.GetCmpValueStr(rankType, rankData.cmpValue); ;
+ }
+
+ myRankText.text = Language.Get("L1126") + Language.Get("L1096") + rank.ToString();
+
+ }
+
+
+}
+
+
+
+
diff --git a/Main/System/OSActivity/OSRankHeroCallAwardWin.cs.meta b/Main/System/OSActivity/OSRankHeroCallAwardWin.cs.meta
new file mode 100644
index 0000000..f64d305
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallAwardWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4c95333a39a8daa4da8ab42140cda281
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroCallGiftCell.cs b/Main/System/OSActivity/OSRankHeroCallGiftCell.cs
new file mode 100644
index 0000000..6d66404
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallGiftCell.cs
@@ -0,0 +1,120 @@
+锘縰sing System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class OSRankHeroCallGiftCell : CellView
+{
+ [SerializeField] Text nameText;
+ [SerializeField] ItemCell[] itemCells;
+ [SerializeField] Button buyBtn;
+ [SerializeField] Text moneyText;
+ [SerializeField] Image moneyIcon;
+ [SerializeField] Transform saleOutRect;
+ [SerializeField] Image redImg;
+ [SerializeField] Text buyLimitText;
+ [SerializeField] Image maskImg;
+
+ public void Display(int index)
+ {
+ var id = OSActivityManager.Instance.osHeroCallGiftSortList[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(() =>
+ {
+ RechargeManager.Instance.CTG(id);
+ });
+
+ RechargeManager.Instance.TryGetOrderInfo(id, out var orderInfo);
+
+ moneyText.text = Language.Get("PayMoneyNum", 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(() =>
+ {
+ StoreModel.Instance.SendBuyShopItemWithPopCheck(storeConfig, 1);
+ });
+ moneyText.text = storeConfig.MoneyNum == 0 ? Language.Get("L1127") : storeConfig.MoneyNum.ToString();
+ moneyIcon.SetActive(storeConfig.MoneyNum != 0);
+ 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);
+
+ }
+
+ }
+
+}
diff --git a/Main/System/OSActivity/OSRankHeroCallGiftCell.cs.meta b/Main/System/OSActivity/OSRankHeroCallGiftCell.cs.meta
new file mode 100644
index 0000000..88f7b73
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallGiftCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 002c4b8249e5e3c419d7146aaaa716b9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankHeroCallGiftWin.cs b/Main/System/OSActivity/OSRankHeroCallGiftWin.cs
new file mode 100644
index 0000000..e2deacd
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallGiftWin.cs
@@ -0,0 +1,63 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Tuesday, July 24, 2018
+//--------------------------------------------------------
+
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+//寮�鏈嶆椿鍔�-姝﹀皢鎷涘嫙绀煎寘
+public class OSRankHeroCallGiftWin : UIBase
+{
+ [SerializeField] ScrollerController scrollerController;
+
+ protected override void OnPreOpen()
+ {
+ scrollerController.OnRefreshCell += OnRefreshCell;
+ StoreModel.Instance.RefreshBuyShopLimitEvent += RefreshStore;
+ RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
+ OSActivityManager.Instance.RefreshGiftSortList();
+ Display();
+ }
+
+ protected override void OnPreClose()
+ {
+ scrollerController.OnRefreshCell -= OnRefreshCell;
+ StoreModel.Instance.RefreshBuyShopLimitEvent -= RefreshStore;
+ RechargeManager.Instance.rechargeCountEvent -= OnRechargeCountEvent;
+ }
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as OSRankHeroCallGiftCell;
+ _cell.Display(cell.index);
+ }
+
+ void Display()
+ {
+ scrollerController.Refresh();
+ for (int i = 0; i < OSActivityManager.Instance.osHeroCallGiftSortList.Count; i++)
+ {
+ scrollerController.AddCell(ScrollerDataType.Header, i);
+ }
+ scrollerController.Restart();
+
+ }
+
+ void RefreshStore()
+ {
+ scrollerController.m_Scorller.RefreshActiveCellViews();
+ }
+
+ void OnRechargeCountEvent(int id)
+ {
+ scrollerController.m_Scorller.RefreshActiveCellViews();
+ }
+}
+
+
+
+
diff --git a/Main/System/OSActivity/OSRankHeroCallGiftWin.cs.meta b/Main/System/OSActivity/OSRankHeroCallGiftWin.cs.meta
new file mode 100644
index 0000000..4754706
--- /dev/null
+++ b/Main/System/OSActivity/OSRankHeroCallGiftWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a2f6ca07e3517cf4aac0abab1ce8a454
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMainLeveAwardCell.cs b/Main/System/OSActivity/OSRankMainLeveAwardCell.cs
new file mode 100644
index 0000000..f367c7f
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMainLeveAwardCell.cs
@@ -0,0 +1,58 @@
+锘縰sing System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class OSRankMainLeveAwardCell : CellView
+{
+ [SerializeField] Text rankText;
+ [SerializeField] Image rankImg;
+ [SerializeField] ItemCell[] itemCells;
+
+ public void Display(int index)
+ {
+ var rank = index + 1;
+ if (index < 3)
+ {
+ rankImg.SetActive(true);
+ rankText.SetActive(false);
+ rankImg.SetSprite(StringUtility.Contact("Rank", index + 1));
+ }
+ else
+ {
+ rankImg.SetActive(false);
+ rankText.SetActive(true);
+ var keys = OSActivityManager.Instance.mainLevelRankAwards.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 = OSActivityManager.Instance.mainLevelRankAwards[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);
+ }
+ }
+ }
+
+}
diff --git a/Main/System/OSActivity/OSRankMainLeveAwardCell.cs.meta b/Main/System/OSActivity/OSRankMainLeveAwardCell.cs.meta
new file mode 100644
index 0000000..3ddceb6
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMainLeveAwardCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c7c89cdc2160945468c6bc1420bbf405
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankMainLeveAwardWin.cs b/Main/System/OSActivity/OSRankMainLeveAwardWin.cs
new file mode 100644
index 0000000..4e083fc
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMainLeveAwardWin.cs
@@ -0,0 +1,82 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Tuesday, July 24, 2018
+//--------------------------------------------------------
+
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+//寮�鏈嶆椿鍔�-涓荤嚎鍏冲崱鎺掕濂栧姳
+public class OSRankMainLeveAwardWin : UIBase
+{
+ [SerializeField] ScrollerController scrollerController;
+ [SerializeField] Text myRankText;
+ [SerializeField] Text myRankValueText;
+
+
+ protected override void OnPreOpen()
+ {
+ scrollerController.OnRefreshCell += OnRefreshCell;
+ CreateScroller();
+ DisplayMyRank(3);
+ }
+
+ protected override void OnPreClose()
+ {
+ scrollerController.OnRefreshCell -= OnRefreshCell;
+ }
+
+
+
+
+ void CreateScroller()
+ {
+ var keys = OSActivityManager.Instance.mainLevelRankAwards.Keys;
+
+ scrollerController.Refresh();
+ for (int i = 0; i < keys.Count; i++)
+ {
+ scrollerController.AddCell(ScrollerDataType.Header, i);
+ }
+ scrollerController.Restart();
+ }
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell.GetComponent<OSRankMainLeveAwardCell>();
+ _cell.Display(cell.index);
+ }
+
+ public void DisplayMyRank(int rankType)
+ {
+ RankData rankData = null;
+ rankData = RankModel.Instance.GetMyRank(rankType);
+ if (rankData == null)
+ {
+ myRankText.text = Language.Get("L1045");
+ myRankValueText.text = "";//Language.Get("L1125");
+ return;
+ }
+ int rank = rankData.rank;
+
+ if (rankData == null)
+ {
+ myRankValueText.text = "";//Language.Get("L1125");
+ }
+ else
+ {
+ myRankValueText.text = RankModel.Instance.GetCmpValueStr(rankType, rankData.cmpValue); ;
+ }
+
+ myRankText.text = Language.Get("L1126") + Language.Get("L1096") + rank.ToString();
+
+ }
+
+}
+
+
+
+
diff --git a/Main/System/OSActivity/OSRankMainLeveAwardWin.cs.meta b/Main/System/OSActivity/OSRankMainLeveAwardWin.cs.meta
new file mode 100644
index 0000000..db10689
--- /dev/null
+++ b/Main/System/OSActivity/OSRankMainLeveAwardWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 70dab80b73c888a4f9342841075f2c98
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/OSActivity/OSRankWin.cs b/Main/System/OSActivity/OSRankWin.cs
new file mode 100644
index 0000000..273e303
--- /dev/null
+++ b/Main/System/OSActivity/OSRankWin.cs
@@ -0,0 +1,61 @@
+锘�//--------------------------------------------------------
+// [Author]: 鐜╀釜娓告垙
+// [ Date ]: Tuesday, July 24, 2018
+//--------------------------------------------------------
+
+
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+//寮�鏈嶆椿鍔�-鎺掕姒� 3 - 寮�鏈嶅叧鍗℃ 锛� 4 - 寮�鏈嶆嫑鍕熸
+public class OSRankWin : PlayerRankWin
+{
+
+ [SerializeField] Text timeText;
+ [SerializeField] Text overTimeText;
+
+
+
+
+ protected override void OnPreOpen()
+ {
+ base.OnPreOpen();
+ GlobalTimeEvent.Instance.secondEvent += OnSecond;
+ ShowTime();
+
+ }
+
+ 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;
+ }
+
+ void OnSecond()
+ {
+ ShowTime();
+ }
+
+}
+
+
+
+
diff --git a/Main/System/OSActivity/OSRankWin.cs.meta b/Main/System/OSActivity/OSRankWin.cs.meta
new file mode 100644
index 0000000..2e0b234
--- /dev/null
+++ b/Main/System/OSActivity/OSRankWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0a29b5ea6f0229e45afdfecebbab816e
+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 13ef6ee..b3d9398 100644
--- a/Main/System/Redpoint/MainRedDot.cs
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -70,7 +70,8 @@
//鑷姩鎴樻枟
public const int RedPoint_AutoBattleKey = 110;
Redpoint autoBattleRedpoint = new Redpoint(RedPoint_AutoBattleKey);
-
+ public const int RedPoint_OSMainLevel = 111;
+ public const int RedPoint_OSHeroCard = 112;
public const int RedPoint_Download = 116;
//姝﹀皢鍗�
@@ -131,6 +132,7 @@
public const int TianziBillboradRepoint = 471; //澶╁瓙鐨勮�冮獙
public const int PhantasmPavilionRepoint = 472; //骞诲闃�
public const int LineupRecommendRepoint = 473; //闃靛鎺ㄨ崘
+ public const int FunctionPreviewRepoint = 474; //鍔熻兘棰勫憡
public void Register()
{
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index d0b8220..35e8337 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -22,7 +22,7 @@
public class StoreModel : GameSystemManager<StoreModel>
{
- public Dictionary<int, List<StoreData>> storeTypeDict { get; private set; } //鎵�鏈夋樉绀哄晢鍝�
+ public Dictionary<int, List<StoreData>> storeTypeDict { get; private set; } //鎵�鏈夋樉绀哄晢鍝� 鍟嗗簵绫诲瀷锛氬晢鍝佸垪琛�
public Dictionary<int, int> shopRefreshCntDict = new Dictionary<int, int>(); //鍒锋柊娆℃暟
private Dictionary<int, int> shopItemlimitDict = new Dictionary<int, int>(); //宸茶喘涔版鏁�
public event Action RefreshBuyShopLimitEvent;
@@ -38,7 +38,7 @@
public int heroSoulRefreshMoney;
public int heroSoulRefreshFreeCount;
- Dictionary<int, List<int>> freeShopDict = new Dictionary<int, List<int>>();
+ public Dictionary<int, List<int>> freeShopDict = new Dictionary<int, List<int>>(); //鍏嶈垂鍟嗗搧 鍟嗗簵绫诲瀷锛氬晢鍝佸垪琛�
public Dictionary<int, int> shopMoneyTypeDict = new Dictionary<int, int>();
public override void Init()
@@ -320,7 +320,7 @@
if (storeConfig.ItemID != 0)
{
- ShopItemInfo shopItem = new ShopItemInfo(storeConfig.ID, storeConfig.ItemCnt);
+ ShopItemInfo shopItem = new ShopItemInfo(storeConfig.ItemID, storeConfig.ItemCnt);
shopItemlist.Add(shopItem);
}
var extraItem = storeConfig.ItemListEx;
@@ -343,7 +343,7 @@
List<int[]> shopItemlist = new List<int[]>();
if (storeConfig.ItemID != 0)
{
- shopItemlist.Add(new int[] { storeConfig.ID, storeConfig.ItemCnt});
+ shopItemlist.Add(new int[] { storeConfig.ItemID, storeConfig.ItemCnt});
}
var extraItem = storeConfig.ItemListEx;
for (int i = 0; i < extraItem.Length; i++)
@@ -372,8 +372,10 @@
}
- //浠欑帀璐拱鐗╁搧鐨勪簩娆$‘璁ゆ锛屼竴绾ц揣甯佸彧鏈変粰鐜� 榛樿涓轰粰鐜夊嵆鍙�
+ //璐у竵璐拱鐨勪簩娆$‘璁ゆ鐨勭‘璁よ褰�
Dictionary<int, bool> buyItemCheckDict = new Dictionary<int, bool>(); //璁板綍鍕鹃�変俊鎭�
+
+ //璐拱鍟嗗簵鐗╁搧鐨勪簩娆$‘璁ゆ
//eventType 浜屾纭妗嗙被鍨嬶紝瀵瑰簲鏋氫妇 BuyStoreItemCheckType
public void SendBuyShopItemWithPopCheck(StoreConfig model, int count, int eventType = 0)
{
@@ -390,7 +392,7 @@
return;
}
- ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("CostMoney", model.MoneyNum, model.MoneyType),
+ ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("BuyStoreItem", model.MoneyNum, model.MoneyType, model.Name),
Language.Get("ConfirmCancel102"), (bool isOk, bool isToggle) =>
{
if (isOk)
@@ -567,7 +569,8 @@
Normal = 1, //1锛氬潑甯�
Guild = 2, //2锛氬叕浼�
Hero = 3, //3锛氬皢榄�
-
+ OSHeroCall = 4, //4锛氬紑鏈嶆嫑鍕熺ぜ鍖�
+
}
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index 2843097..2a51539 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -837,7 +837,9 @@
Horse = 37, //鍧愰獞
BattlePass = 40, //鍩洪噾锛堟垬浠わ級
LLMJ = 41, //鍘嗙粌绉樼瑘
-
+ OSMainLevl = 45, //寮�鏈嶅叧鍗℃娲诲姩
+ OSHeroCall = 46, //寮�鏈嶆灏嗗彫鍞ゆ娲诲姩
+ FunctionPreview = 48, //鍔熻兘棰勮
}
--
Gitblit v1.8.0