Core/GameEngine/Model/Config/TreasureConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Wednesday, February 20, 2019 // [ Date ]: Wednesday, March 27, 2019 //-------------------------------------------------------- using System.Collections.Generic; @@ -21,19 +21,14 @@ public readonly string NameIcon; public readonly string TreasureNameIcon; public readonly string Model; public readonly string SourceDescription; public readonly string Story; public readonly string IndexTitle; public readonly string StoryName; public readonly int RequirementTotal; public readonly int[] Achievements; public readonly int MapId; public readonly int LineId; public readonly int ChallengeLevel; public readonly int EffectID; public readonly string[] Verse; public readonly int ShowNetGotEffect; public readonly int PreferredStage; public readonly int UIScale; public TreasureConfig() @@ -62,38 +57,23 @@ Model = tables[7]; SourceDescription = tables[8]; Story = tables[8]; Story = tables[9]; IndexTitle = tables[9]; IndexTitle = tables[10]; StoryName = tables[10]; StoryName = tables[11]; int.TryParse(tables[11],out MapId); int.TryParse(tables[12],out RequirementTotal); int.TryParse(tables[12],out LineId); string[] AchievementsStringArray = tables[13].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); Achievements = new int[AchievementsStringArray.Length]; for (int i=0;i<AchievementsStringArray.Length;i++) { int.TryParse(AchievementsStringArray[i],out Achievements[i]); } int.TryParse(tables[13],out ChallengeLevel); int.TryParse(tables[14],out MapId); int.TryParse(tables[14],out EffectID); int.TryParse(tables[15],out LineId); Verse = tables[15].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); int.TryParse(tables[16],out ChallengeLevel); int.TryParse(tables[17],out EffectID); Verse = tables[18].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); int.TryParse(tables[19],out ShowNetGotEffect); int.TryParse(tables[20],out PreferredStage); int.TryParse(tables[21],out UIScale); int.TryParse(tables[16],out UIScale); } catch (Exception ex) { Core/GameEngine/Model/Config/TreasureConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 0c81d30c7f415f64d93047863b1dc1e1 timeCreated: 1550121610 timeCreated: 1553652922 licenseType: Pro MonoImporter: serializedVersion: 2 Core/GameEngine/Model/Config/TreasureUpConfig.cs
@@ -1,18 +1,18 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Thursday, February 14, 2019 //-------------------------------------------------------- using System.Collections.Generic; using System.IO; using System.Threading; using System; using UnityEngine; [XLua.LuaCallCSharp] public partial class TreasureUpConfig { //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Wednesday, March 27, 2019 //-------------------------------------------------------- using System.Collections.Generic; using System.IO; using System.Threading; using System; using UnityEngine; [XLua.LuaCallCSharp] public partial class TreasureUpConfig { public readonly int ID; public readonly int MWID; public readonly int LV; @@ -20,22 +20,19 @@ public readonly string AddAttr; public readonly int[] UnLockSkill; public readonly int UnLockFuncID; public readonly int ActiveMWID; public readonly string ItemAward; public readonly int SoulID; public readonly int PowerEx; public readonly string DescriptionMainWin; public TreasureUpConfig() { } public TreasureUpConfig(string input) { try { var tables = input.Split('\t'); public readonly string DescriptionMainWin; public TreasureUpConfig() { } public TreasureUpConfig(string input) { try { var tables = input.Split('\t'); int.TryParse(tables[0],out ID); int.TryParse(tables[1],out MWID); @@ -55,183 +52,177 @@ int.TryParse(tables[6],out UnLockFuncID); int.TryParse(tables[7],out ActiveMWID); int.TryParse(tables[7],out PowerEx); ItemAward = tables[8]; int.TryParse(tables[9],out SoulID); int.TryParse(tables[10],out PowerEx); DescriptionMainWin = tables[11]; } catch (Exception ex) { DebugEx.Log(ex); } } static Dictionary<string, TreasureUpConfig> configs = new Dictionary<string, TreasureUpConfig>(); public static TreasureUpConfig Get(string id) { if (!inited) { Debug.Log("TreasureUpConfig 还未完成初始化。"); return null; } if (configs.ContainsKey(id)) { return configs[id]; } TreasureUpConfig config = null; if (rawDatas.ContainsKey(id)) { config = configs[id] = new TreasureUpConfig(rawDatas[id]); rawDatas.Remove(id); } return config; } public static TreasureUpConfig Get(int id) { return Get(id.ToString()); } public static List<string> GetKeys() { var keys = new List<string>(); keys.AddRange(configs.Keys); keys.AddRange(rawDatas.Keys); return keys; } public static List<TreasureUpConfig> GetValues() { var values = new List<TreasureUpConfig>(); values.AddRange(configs.Values); var keys = new List<string>(rawDatas.Keys); foreach (var key in keys) { values.Add(Get(key)); } return values; } public static bool Has(string id) { return configs.ContainsKey(id) || rawDatas.ContainsKey(id); } public static bool Has(int id) { return Has(id.ToString()); } public static bool inited { get; private set; } protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>(); public static void Init(bool sync=false) { inited = false; var path = string.Empty; if (AssetSource.refdataFromEditor) { path = ResourcesPath.CONFIG_FODLER +"/TreasureUp.txt"; } else { path = AssetVersionUtility.GetAssetFilePath("config/TreasureUp.txt"); } var tempConfig = new TreasureUpConfig(); var preParse = tempConfig is IConfigPostProcess; if (sync) { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new TreasureUpConfig(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; } else { ThreadPool.QueueUserWorkItem((object _object) => { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new TreasureUpConfig(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; }); } } } DescriptionMainWin = tables[8]; } catch (Exception ex) { DebugEx.Log(ex); } } static Dictionary<string, TreasureUpConfig> configs = new Dictionary<string, TreasureUpConfig>(); public static TreasureUpConfig Get(string id) { if (!inited) { Debug.Log("TreasureUpConfig 还未完成初始化。"); return null; } if (configs.ContainsKey(id)) { return configs[id]; } TreasureUpConfig config = null; if (rawDatas.ContainsKey(id)) { config = configs[id] = new TreasureUpConfig(rawDatas[id]); rawDatas.Remove(id); } return config; } public static TreasureUpConfig Get(int id) { return Get(id.ToString()); } public static List<string> GetKeys() { var keys = new List<string>(); keys.AddRange(configs.Keys); keys.AddRange(rawDatas.Keys); return keys; } public static List<TreasureUpConfig> GetValues() { var values = new List<TreasureUpConfig>(); values.AddRange(configs.Values); var keys = new List<string>(rawDatas.Keys); foreach (var key in keys) { values.Add(Get(key)); } return values; } public static bool Has(string id) { return configs.ContainsKey(id) || rawDatas.ContainsKey(id); } public static bool Has(int id) { return Has(id.ToString()); } public static bool inited { get; private set; } protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>(); public static void Init(bool sync=false) { inited = false; var path = string.Empty; if (AssetSource.refdataFromEditor) { path = ResourcesPath.CONFIG_FODLER +"/TreasureUp.txt"; } else { path = AssetVersionUtility.GetAssetFilePath("config/TreasureUp.txt"); } var tempConfig = new TreasureUpConfig(); var preParse = tempConfig is IConfigPostProcess; if (sync) { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new TreasureUpConfig(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; } else { ThreadPool.QueueUserWorkItem((object _object) => { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new TreasureUpConfig(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; }); } } } Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 6ba7e531e0e0ec34a858510c2f5b560a timeCreated: 1550121533 timeCreated: 1553665069 licenseType: Pro MonoImporter: serializedVersion: 2 Core/NetworkPackage/DTCFile/ServerPack/HA3_Achievement/DTCA312_tagMCMagicWeaponData.cs
@@ -12,7 +12,5 @@ { base.Done(vNetPack); var vNetData = vNetPack as HA312_tagMCMagicWeaponData; model.ReceivePackage(vNetData.MagicWeaponID); } } Core/NetworkPackage/ServerPack/HA3_Function/HA352_tagMCMagicWeaponLVInfo.cs
@@ -19,7 +19,6 @@ TransBytes (out InfoList[i].MWID, vBytes, NetDataType.DWORD); TransBytes (out InfoList[i].LV, vBytes, NetDataType.BYTE); TransBytes (out InfoList[i].Exp, vBytes, NetDataType.DWORD); TransBytes (out InfoList[i].State, vBytes, NetDataType.BYTE); TransBytes (out InfoList[i].FBPassLV, vBytes, NetDataType.BYTE); TransBytes (out InfoList[i].IsWear, vBytes, NetDataType.BYTE); } @@ -29,7 +28,6 @@ public uint MWID; public byte LV; public uint Exp; public byte State; //是否点击法宝认主 public byte FBPassLV; //副本关卡 public byte IsWear; //是否佩戴(仅适用王者法宝) } Lua/Gen/SnxxzUITreasureModelWrap.cs
File was deleted Lua/Gen/SnxxzUITreasureModelWrap.cs.meta
File was deleted Lua/Gen/TreasureConfigWrap.cs
File was deleted Lua/Gen/TreasureConfigWrap.cs.meta
File was deleted Lua/Gen/TreasureUpConfigWrap.cs
File was deleted Lua/Gen/TreasureUpConfigWrap.cs.meta
File was deleted Lua/Gen/XLuaGenAutoRegister.cs
@@ -607,9 +607,6 @@ translator.DelayWrapLoader(typeof(TeamTargetConfig), TeamTargetConfigWrap.__Register); translator.DelayWrapLoader(typeof(TreasureConfig), TreasureConfigWrap.__Register); translator.DelayWrapLoader(typeof(TreasureDungeonConfig), TreasureDungeonConfigWrap.__Register); @@ -623,9 +620,6 @@ translator.DelayWrapLoader(typeof(TreasureSkillConfig), TreasureSkillConfigWrap.__Register); translator.DelayWrapLoader(typeof(TreasureUpConfig), TreasureUpConfigWrap.__Register); translator.DelayWrapLoader(typeof(TrialExchangeConfig), TrialExchangeConfigWrap.__Register); @@ -1390,9 +1384,6 @@ translator.DelayWrapLoader(typeof(PwdKeyboard), PwdKeyboardWrap.__Register); translator.DelayWrapLoader(typeof(Snxxz.UI.TreasureModel), SnxxzUITreasureModelWrap.__Register); translator.DelayWrapLoader(typeof(Snxxz.UI.TreasureSoulModel), SnxxzUITreasureSoulModelWrap.__Register); System/MainInterfacePanel/FeatureNoticeWin.cs
File was deleted System/MainInterfacePanel/FeatureNoticeWin.cs.meta
File was deleted System/MainInterfacePanel/TaskModel.cs
@@ -328,7 +328,7 @@ } } public int GetCurrentMainTaskId() public int GetLatestMainTaskId() { var taskId = 0; foreach (var id in MainTaskDic.Keys) System/RoleParticulars/ViewFuncCell.cs
@@ -195,15 +195,15 @@ targetValue = viewPlayerData.rolePlusData.Rune; break; case FuncPowerType.Human: selfValue += treasureModel.GetActiveTreasureCategory(TreasureCategory.Human); selfValue += treasureModel.GetCollectedTreasureCount(TreasureCategory.Human); targetValue = viewPlayerData.rolePlusData.GetTreasureCount((int)TreasureCategory.Human); break; case FuncPowerType.Demon: selfValue += treasureModel.GetActiveTreasureCategory(TreasureCategory.Demon); selfValue += treasureModel.GetCollectedTreasureCount(TreasureCategory.Demon); targetValue = viewPlayerData.rolePlusData.GetTreasureCount((int)TreasureCategory.Demon); break; case FuncPowerType.Fairy: selfValue += treasureModel.GetActiveTreasureCategory(TreasureCategory.Fairy); selfValue += treasureModel.GetCollectedTreasureCount(TreasureCategory.Fairy); targetValue = viewPlayerData.rolePlusData.GetTreasureCount((int)TreasureCategory.Fairy); break; } System/Treasure/DemonTreasureWin.cs
@@ -433,7 +433,7 @@ private void TreasureStateChangeEvent(int id) { if (!model.serverInited) if (!model.isServerReady) { return; } @@ -456,7 +456,7 @@ private void DemonTreasureDungeonUpdate(int id) { if (!model.serverInited) if (!model.isServerReady) { return; } System/Treasure/FairyTreasureCollectPanelPattern5.cs
@@ -128,7 +128,7 @@ private void TreasureStageUpEvent(int _id) { if (_id == treasureId && model.serverInited) if (_id == treasureId && model.isServerReady) { TreasureActiveEffect(); } @@ -145,9 +145,9 @@ private void DisplayProgress() { m_ContainerAchievement.gameObject.SetActive(treasure.state == TreasureState.Collected && treasure.stage <= 0); m_ContainerAchievement.gameObject.SetActive(treasure.state == TreasureState.Collected && treasure.level <= 1); var _processingIndex = -1; if (treasure.state == TreasureState.Collected && treasure.stage <= 0) if (treasure.state == TreasureState.Collected && treasure.level <= 1) { var _list = model.GetFurnacesAchievements(); for (int i = 0; i < m_FurnacesAchievements.Length; i++) @@ -182,7 +182,7 @@ private void DisplayFurnacesHole() { m_ContainerHoles.gameObject.SetActive(treasure.state == TreasureState.Collected); if (treasure.state == TreasureState.Collected && treasure.stage == 0) if (treasure.state == TreasureState.Collected && treasure.level == 1) { var _list = model.GetFurnacesAchievements(); for (int i = 0; i < m_FurnacesIcons.Length; i++) @@ -214,7 +214,7 @@ m_FurnacesIcons[i].gameObject.SetActive(achievement != null && achievement.completed); } } if (treasure.state == TreasureState.Collected && treasure.stage >= 1) if (treasure.state == TreasureState.Collected && treasure.level >= 2) { for (int i = 0; i < m_FurnacesIcons.Length; i++) { @@ -267,51 +267,20 @@ GetCurrentAchievement(); if (treasure.state != TreasureState.Collected) { //int unlocktreasureId = 0; //var list = model.GetTreasureCategory(TreasureCategory.Human); //for (int i = 0; i < list.Count; i++) //{ // Treasure _treasure; // if(model.TryGetTreasure(list[i], out _treasure)) // { // var index = _treasure.treasureStages.FindIndex((x) => // { // return x.unlockType == TreasureStageUnlock.Treasure && x.treasure == treasure.id; // }); // if (index != -1) // { // unlocktreasureId = list[i]; // break; // } // } //} //var unlockTreasureConfig = TreasureConfig.Get(unlocktreasureId); var config = TreasureConfig.Get(treasure.id); var requireCondition = 0; if (config != null) { var successConfig = SuccessConfig.Get(config.Achievements.Length > 0 ? config.Achievements[0] : 0); if (successConfig != null) { requireCondition = successConfig.NeedCnt; } } m_AchievementGetBtn.gameObject.SetActive(false); m_ActiveBtn.gameObject.SetActive(false); m_GotoGet.gameObject.SetActive(false); m_ContainerLocked.gameObject.SetActive(true); m_LockedDescription.text = Language.Get("BlastFurnaceGet", requireCondition); m_LockedDescription.text = Language.Get("BlastFurnaceGet", config.ChallengeLevel); m_ContainerAchievement.gameObject.SetActive(false); } else if (currentAchievement == null || treasure.stage >= 1) else if (currentAchievement == null || treasure.level >= 2) { m_AchievementGetBtn.gameObject.SetActive(false); m_GotoGet.gameObject.SetActive(false); m_ContainerLocked.gameObject.SetActive(false); m_ActiveBtn.gameObject.SetActive(currentAchievement == null && treasure.stage == 0); m_ActiveBtn.gameObject.SetActive(currentAchievement == null && treasure.level == 1); } else { @@ -323,7 +292,7 @@ m_GotoGet.gameObject.SetActive(!_isReach); } m_GotoStove.gameObject.SetActive(treasure.stage >= 1); m_GotoStove.gameObject.SetActive(treasure.level >= 2); } private void OnAchievementGet() @@ -337,7 +306,7 @@ private void DisplayFunc() { m_FuncTitle.text = treasure.state == TreasureState.Collected && treasure.stage >= 1 ? Language.Get("FairyTreasureOpenFunc") : Language.Get("FairyTreasureUnOpenFunc"); m_FuncTitle.text = treasure.state == TreasureState.Collected && treasure.level >= 2 ? Language.Get("FairyTreasureOpenFunc") : Language.Get("FairyTreasureUnOpenFunc"); var funcStage = treasure.treasureStages.Find((x) => { return x.unlockType == TreasureStageUnlock.Func; @@ -351,8 +320,8 @@ private void DisplayFurnace() { m_ContainerFurnace.gameObject.SetActive(treasure.state == TreasureState.Collected && treasure.stage >= 1); if (treasure.state == TreasureState.Collected && treasure.stage >= 1) m_ContainerFurnace.gameObject.SetActive(treasure.state == TreasureState.Collected && treasure.level >= 2); if (treasure.state == TreasureState.Collected && treasure.level >= 2) { var stoveLevel = blastFurnaceModel.StoveLV; m_FurnaceLv.text = Language.Get("BlastFurnace101", stoveLevel); System/Treasure/HumanTreasureWin.cs
@@ -23,10 +23,13 @@ [SerializeField] Text m_SkillName; [SerializeField] Text m_SkillType; [SerializeField] Text m_SkillDescription; [SerializeField] Transform m_ContainerUnlock; [SerializeField] Transform m_ContainerCollect; [SerializeField] Button m_Challenge; [SerializeField] Transform m_ContainerCondition; [SerializeField] Text m_Condition; [SerializeField] Button m_Goto; [SerializeField] Slider m_TaskSlider; [SerializeField] Text m_TaskCount; [SerializeField] Transform m_ContainerCollected; [SerializeField] Transform m_ContainerUnknown; bool animationStep = false; @@ -35,10 +38,7 @@ get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } } protected override void BindController() { @@ -47,6 +47,7 @@ protected override void AddListeners() { m_Challenge.AddListener(Challenge); m_Goto.AddListener(GotoTask); } protected override void OnPreOpen() @@ -80,7 +81,7 @@ void Display() { DisplayBase(); DisplayCondition(); DisplayProgress(); } void DisplayBase() @@ -101,58 +102,35 @@ } } void DisplayCondition() void DisplayProgress() { Treasure treasure; if (!model.TryGetTreasure(model.selectedTreasure, out treasure)) if (model.TryGetTreasure(model.selectedTreasure, out treasure)) { return; } m_ContainerCollect.gameObject.SetActive(treasure.state != TreasureState.Collected); m_ContainerCollected.gameObject.SetActive(treasure.state == TreasureState.Collected); m_ContainerUnknown.gameObject.SetActive(treasure.state == TreasureState.Locked); var state = treasure.state; Achievement achievement = null; int achievementId = 0; bool unlockAchievement = false; if (model.TryGetTreasureUnlockAchievement(treasure.id, out achievementId)) { if (achievementModel.TryGetAchievement(achievementId, out achievement)) if (treasure.state == TreasureState.Collecting) { unlockAchievement = true; } } m_Challenge.gameObject.SetActive(!unlockAchievement || achievement.completed); m_ContainerCondition.gameObject.SetActive(unlockAchievement && !achievement.completed); var satisfyChallenge = model.SatisfyChallenge(model.selectedTreasure); if (state == TreasureState.Collected) { m_Challenge.gameObject.SetActive(false); m_ContainerCondition.gameObject.SetActive(false); } m_Goto.gameObject.SetActive(!satisfyChallenge); m_Challenge.gameObject.SetActive(satisfyChallenge); if (model.IsVersionUnOpenTreasure(treasure.id)) { m_Condition.text = Language.Get("TreasureNoOpen"); return; } m_TaskCount.gameObject.SetActive(false); var progress = 1f; if (unlockAchievement && !achievement.completed) { var config = SuccessConfig.Get(achievementId); var _missionId = config.Condition[0]; var _taskConfig = PyTaskConfig.Get(_missionId); if (_taskConfig == null) { return; } switch (config.Type) { case 1: m_Condition.text = Language.Get("TreasureChallengeLv", config.Condition[0]); break; case 3: m_Condition.text = Language.Get("TreasureGetRequire", _taskConfig.lv); break; List<int> tasks = null; if (model.TryGetTreasureTasks(model.selectedTreasure, out tasks)) { var count = model.GetCompleteTaskCount(model.selectedTreasure); progress = Mathf.Clamp01((float)count / tasks.Count); m_TaskCount.gameObject.SetActive(true); m_TaskCount.text = StringUtility.Contact(count, "/", tasks.Count); } m_TaskSlider.value = progress; } } } @@ -160,7 +138,8 @@ void DisplayAnimation() { animationStep = true; m_ContainerUnlock.gameObject.SetActive(false); m_ContainerCollect.gameObject.SetActive(false); m_ContainerCollected.gameObject.SetActive(false); m_PositionTween.Play(); UI3DTreasureSelectStage.Instance.Tween(OnTreasureTweenComplete); } @@ -168,7 +147,7 @@ private void OnTreasureTweenComplete() { animationStep = false; m_ContainerUnlock.gameObject.SetActive(true); DisplayProgress(); } private void TreasureSelectedEvent(int obj) @@ -190,6 +169,15 @@ } } private void GotoTask() { WindowJumpMgr.Instance.ClearJumpData(); WindowCenter.Instance.Close<TreasureBaseWin>(); WindowCenter.Instance.Open<MainInterfaceWin>(); var taskId = taskModel.GetLatestMainTaskId(); taskModel.TaskMove(taskId); } private bool AllowSelectTreasure(int treasureId) { if (NewBieCenter.Instance.inGuiding || animationStep) System/Treasure/TreasureAchievement.cs
File was deleted System/Treasure/TreasureAchievement.cs.meta
File was deleted System/Treasure/TreasureCollectBriefInfoBehaviour.cs
@@ -300,26 +300,26 @@ break; case DisplayState.AwakenUnderway: DisplayProgress(true, progress); DisplayTreasureUpStage(treasure.GetStageId(treasure.stage + 1)); //DisplayTreasureUpStage(treasure.GetStageId(treasure.level + 1)); break; case DisplayState.WaitUnLock: Achievement achievement = null; var achievementId = 0; if (model.TryGetTreasureUnlockAchievement(displayTreasureId, out achievementId)) { if (achievementModel.TryGetAchievement(achievementId, out achievement)) { var achievementConfig = SuccessConfig.Get(achievementId); var missionId = achievementConfig.Condition[0]; var taskConfig = PyTaskConfig.Get(missionId); m_Description.text = Language.Get("FabaoState_Text_5", taskConfig.lv); } } else { m_Description.text = Language.Get("FabaoState_Text_5"); } //Achievement achievement = null; //var achievementId = 0; //if (model.TryGetTreasureUnlockAchievement(displayTreasureId, out achievementId)) //{ // if (achievementModel.TryGetAchievement(achievementId, out achievement)) // { // var achievementConfig = SuccessConfig.Get(achievementId); // var missionId = achievementConfig.Condition[0]; // var taskConfig = PyTaskConfig.Get(missionId); // // m_Description.text = Language.Get("FabaoState_Text_5", taskConfig.lv); // } //} //else //{ // m_Description.text = Language.Get("FabaoState_Text_5"); //} DisplayProgress(false, progress); break; case DisplayState.PotentialUpAble: @@ -341,22 +341,6 @@ private void ViewTreasure() { if (displayState == DisplayState.Challenge) { Treasure treasure; if (model.TryGetTreasure(displayTreasureId, out treasure)) { if (!treasure.alreadyClickChallenge) { var sendInfo = new CA516_tagCMMagicWeaponState(); sendInfo.MWID = (uint)displayTreasureId; GameNetSystem.Instance.SendInfo(sendInfo); } treasure.alreadyClickChallenge = true; } } WindowCenter.Instance.Close<MainInterfaceWin>(); if (model.IsRequireUnlockAnim(TreasureCategory.Human) == displayTreasureId) { System/Treasure/TreasureCyclicScroll.cs
File was deleted System/Treasure/TreasureCyclicScroll.cs.meta
File was deleted System/Treasure/TreasureData.cs
@@ -17,11 +17,9 @@ { public int id { get; private set; } public int stage { get; private set; } public int level { get; private set; } public int exp { get; private set; } public bool alreadyClickChallenge { get; set; } TreasureState m_State = TreasureState.Locked; public TreasureState state @@ -45,213 +43,22 @@ public List<TreasureStage> treasureStages = new List<TreasureStage>(); public Treasure(int _id) public Treasure(int id) { this.id = _id; this.id = id; } public void RefreshLevel(int stage, int exp, bool alreadyClickChallenge) public void RefreshLevel(int level, int exp) { this.stage = stage; this.level = level; this.exp = exp; this.alreadyClickChallenge = alreadyClickChallenge; } public void AddTreasureStage(TreasureUpConfig config) public void ParseStage(TreasureUpConfig config) { var _stage = new TreasureStage(config); treasureStages.Add(_stage); } public int GetStageId(int _stageIndex) { foreach (var item in treasureStages) { if (item.stage == _stageIndex) { return item.id; } } return 0; } } public class AchievementGroup { AchievementModel model { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } public int group { get; private set; } List<int> achievements = new List<int>(); public AchievementGroup(int _category) { group = _category; } public void AddAchievement(int _achievement) { if (!achievements.Contains(_achievement)) { achievements.Add(_achievement); } } public void Sort() { achievements.Sort(AchievementCompare); } public bool Contain(int _achievementId) { return achievements.Contains(_achievementId); } public bool IsAwardable() { var doingAchievement = GetDoingAchievement(); if (doingAchievement > 0) { Achievement achievement; if (model.TryGetAchievement(doingAchievement, out achievement) && !achievement.completed) { return Achievement.IsReach(doingAchievement, achievement.progress); } } return false; } public bool IsCompleted() { var achievementId = GetDoingAchievement(); Achievement doingAchievement; if (model.TryGetAchievement(achievementId, out doingAchievement) && doingAchievement.completed) { return true; } for (int i = 0; i < achievements.Count; i++) { var id = achievements[i]; Achievement achievement; if (model.TryGetAchievement(id, out achievement) && !achievement.completed) { return false; } } return true; } public int GetDoingAchievement() { var achievementId = 0; for (int i = 0; i < achievements.Count; i++) { var id = achievements[i]; Achievement achievement; if (model.TryGetAchievement(id, out achievement) && !achievement.completed) { return id; } achievementId = id; } return achievementId; } public int GetLastAchievement() { if (achievements.Count == 0) { return 0; } else { var achievementId = GetDoingAchievement(); Achievement doingAchievement; if (model.TryGetAchievement(achievementId, out doingAchievement) && doingAchievement.completed) { return achievementId; } return achievements[achievements.Count - 1]; } } private int AchievementCompare(int _lhs, int _rhs) { var configA = SuccessConfig.Get(_lhs); var configB = SuccessConfig.Get(_rhs); return configA.ReOrder.CompareTo(configB.ReOrder); } public static int Compare(AchievementGroup _lhs, AchievementGroup _rhs) { var awardableA = _lhs.IsAwardable(); var awardableB = _rhs.IsAwardable(); if (awardableA != awardableB) { return awardableA ? -1 : 1; } else { var completedA = _lhs.IsCompleted(); var completedB = _rhs.IsCompleted(); if (completedA != completedB) { return completedA.CompareTo(completedB); } else if (completedA && completedB) { return _lhs.group < _rhs.group ? -1 : 1; } else { var idA = _lhs.GetDoingAchievement(); var idB = _rhs.GetDoingAchievement(); var configA = SuccessConfig.Get(idA); var configB = SuccessConfig.Get(idB); if (configA == null) { return 1; } else if (configB == null) { return -1; } else if (configA == null && configB == null) { return 0; } else { return configA.ReOrder < configB.ReOrder ? -1 : 1; } } } } } public struct PotentialBook { public int itemId; public int needCount; public int successRate; public int levelUpId; public PotentialBook(int _itemId, int _needCount, int _successRate, int _levelUpId) { this.itemId = _itemId; this.needCount = _needCount; this.successRate = _successRate; this.levelUpId = _levelUpId; } } public struct VIPKillNPCTreasure @@ -301,29 +108,6 @@ { unlockType = TreasureStageUnlock.Property; propertyDict = ConfigParse.GetDic<int, int>(_config.AddAttr); } else if (_config.ActiveMWID != 0) { unlockType = TreasureStageUnlock.Treasure; treasure = _config.ActiveMWID; } else if (_config.SoulID != 0) { unlockType = TreasureStageUnlock.TreasureSoul; treasureSoul = _config.SoulID; } else if (!string.IsNullOrEmpty(_config.ItemAward)) { unlockType = TreasureStageUnlock.Item; var itemArray = LitJson.JsonMapper.ToObject<int[]>(_config.ItemAward); if (itemArray != null && itemArray.Length > 0) { item = new Item() { id = itemArray[0], count = itemArray.Length > 1 ? itemArray[1] : 1, }; } } exp = _config.NeedExp; @@ -498,9 +282,6 @@ Property, Skill, Func, Item, Treasure, TreasureSoul, } } System/Treasure/TreasureModel.cs
@@ -13,7 +13,7 @@ { [XLua.LuaCallCSharp] public class TreasureModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk public class TreasureModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk { public const int TREASURE_DATAMAPID = 41110; public const int TREASURE_MAPID = 41110; @@ -37,15 +37,16 @@ public event Action<TreasureCategory> collectingTreasureChangeEvent; public event Action<int> treasureStateChangeEvent; public event Action vipKillNPCTreasureEvent; public event Action<int> treasureLevelProgressUpdateEvent; public event Action<int> treasureStageUpEvent; public event Action<int> demonTreasureDungeonUpdate; public event Action demonDungeonChallengeNext; int m_SelectedTreasure = 0; public int selectedTreasure { public int selectedTreasure { get { return m_SelectedTreasure; } set { set { if (m_SelectedTreasure != value) { m_SelectedTreasure = value; @@ -60,15 +61,18 @@ public bool treasureStageUpShow { get; set; } TreasureCategory m_CurrentCategory = TreasureCategory.Human; public TreasureCategory currentCategory { public TreasureCategory currentCategory { get { return m_CurrentCategory; } set { m_CurrentCategory = value; } } int m_CollectingHuman = 0; public int collectingHuman { public int collectingHuman { get { return m_CollectingHuman; } set { set { if (m_CollectingHuman != value) { m_CollectingHuman = value; @@ -81,9 +85,11 @@ } int m_CollectingDemon = 0; public int collectingDemon { public int collectingDemon { get { return m_CollectingDemon; } set { set { if (m_CollectingDemon != value) { m_CollectingDemon = value; @@ -98,7 +104,6 @@ Dictionary<int, Treasure> treasures = new Dictionary<int, Treasure>(); Dictionary<TreasureCategory, List<int>> treasureCategory = new Dictionary<TreasureCategory, List<int>>(); Dictionary<int, int> treasureMapDict = new Dictionary<int, int>(); Dictionary<int, int> treasureAchievementDict = new Dictionary<int, int>(); Dictionary<int, TreasureDungeon> treasureDungeons = new Dictionary<int, TreasureDungeon>(); Dictionary<int, List<int>> treasureTasks = new Dictionary<int, List<int>>(); Dictionary<TreasureCategory, int> treasureUnlockShowDict = new Dictionary<TreasureCategory, int>(); @@ -107,17 +112,20 @@ public Dictionary<int, int> fairyTreasureGetDict { get; private set; } public bool serverInited { get; private set; } public int newGotTreasureId { public bool isServerReady { get; private set; } public int newGotTreasureId { get { return LocalSave.GetInt(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_NewGotTreasureId")); } set { LocalSave.SetInt(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_NewGotTreasureId"), value); } } public bool newGotShowing { public bool newGotShowing { get { return newGotTreasureId > 0; } } public int treasureCollectingShowId { public int treasureCollectingShowId { get { return LocalSave.GetInt(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_TreasureCollectingShowId")); } set { LocalSave.SetInt(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_TreasureCollectingShowId"), value); } } @@ -131,13 +139,14 @@ public int exitRecord { get; set; } public int entranceOpenCondition { get; private set; } AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } } VIPKillNPCTreasure m_VIPKillNPCTreasure; public VIPKillNPCTreasure vipKillNPCTreasure { public VIPKillNPCTreasure vipKillNPCTreasure { get { return m_VIPKillNPCTreasure; } set { set { m_VIPKillNPCTreasure = value; if (vipKillNPCTreasureEvent != null) { @@ -154,7 +163,6 @@ { ParseConfigs(); achievementModel.achievementCompletedEvent += OnAchievementCompleted; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterOpenEvent += OnWindowOpen; WindowCenter.Instance.windowAfterCloseEvent += OnWindowClose; @@ -166,14 +174,14 @@ public void OnBeforePlayerDataInitialize() { serverInited = false; isServerReady = false; playerLevelRefresh = false; needDisplayReguluLevelUp = false; treasureUnlockShowDict.Clear(); foreach (var treasure in treasures.Values) { treasure.state = TreasureState.Locked; treasure.RefreshLevel(0, 0, false); treasure.RefreshLevel(0, 0); } foreach (var treasureDungeon in treasureDungeons.Values) { @@ -189,13 +197,12 @@ public void OnPlayerLoginOk() { serverInited = true; isServerReady = true; RefreshDemonDungeonRedpoints(); } public override void UnInit() { achievementModel.achievementCompletedEvent -= OnAchievementCompleted; NewBieCenter.Instance.guideCompletedEvent -= GuideComplete; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterOpenEvent -= OnWindowOpen; @@ -207,11 +214,12 @@ private void PerSecond() { if (serverInited) if (isServerReady) { if (playerLevelRefresh) { playerLevelRefresh = false; RefreshTreasureCollectState(); } } } @@ -224,9 +232,99 @@ } } private void ParseConfigs() { var treasureConfigs = TreasureConfig.GetValues(); foreach (var config in treasureConfigs) { var category = (TreasureCategory)config.Category; List<int> categoryTreasures = null; if (!treasureCategory.ContainsKey(category)) { treasureCategory[category] = categoryTreasures = new List<int>(); } else { categoryTreasures = treasureCategory[category]; } categoryTreasures.Add(config.ID); Treasure treasure = new Treasure(config.ID); treasures[config.ID] = treasure; if (!treasureMapDict.ContainsKey(config.ID)) { treasureMapDict.Add(config.ID, config.MapId); } if (config.ID == 301) { List<int> list = null; SuccessConfig.TryGetTreasureExpAchievements(config.ID, out list); if (list != null) { eightFurnacesAchievements.AddRange(list); } } } var treasureUpConfigs = TreasureUpConfig.GetValues(); foreach (var config in treasureUpConfigs) { Treasure treasure; if (TryGetTreasure(config.MWID, out treasure)) { treasure.ParseStage(config); } } var funcConfig = FuncConfigConfig.Get("GuideMission"); guideTreasures = new List<int>(); guideTreasures.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical2)); funcConfig = FuncConfigConfig.Get("TreasureGetVipLv"); fairyTreasureGetDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("TreasureSkip"); treasureBackLvLimit = int.Parse(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("TreasureNoOpen"); treasureUnOpens.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1)); funcConfig = FuncConfigConfig.Get("OpenFabao"); entranceOpenCondition = int.Parse(funcConfig.Numerical1); var treasureDungeonConfigs = TreasureDungeonConfig.GetValues(); foreach (var config in treasureDungeonConfigs) { TreasureDungeon treasureDungeon; if (!treasureDungeons.TryGetValue(config.MWID, out treasureDungeon)) { var treasureConfig = TreasureConfig.Get(config.MWID); var challengeRedpoint = new Redpoint(CATEGORY_REDPOINTIDS[treasureConfig.Category - 1], TREASURE_REDPOINTBASE + redpointIndex++); treasureDungeon = new TreasureDungeon(config.MWID, challengeRedpoint); treasureDungeons.Add(config.MWID, treasureDungeon); } treasureDungeon.ParseDungeonInfo(config); } var taskConfigs = TaskListConfig.GetValues(); foreach (var config in taskConfigs) { List<int> tasks = null; if (!treasureTasks.TryGetValue(config.FabaoID, out tasks)) { tasks = new List<int>(); treasureTasks.Add(config.FabaoID, tasks); } tasks.Add(config.TaskID); } } public void TryOpenRegulusPopWindow() { if (serverInited) if (isServerReady) { if (WindowCenter.Instance.IsOpen<MainInterfaceWin>() && !WindowCenter.Instance.ExistAnyFullScreenOrMaskWin()) { @@ -316,11 +414,6 @@ return false; } public bool TryGetTreasureUnlockAchievement(int _treasureId, out int achievement) { return treasureAchievementDict.TryGetValue(_treasureId, out achievement); } public bool TryGetTreasureTasks(int id, out List<int> tasks) { return treasureTasks.TryGetValue(id, out tasks); @@ -343,24 +436,47 @@ } } public int GetActiveTreasureCategory(TreasureCategory _category) public int GetCollectedTreasureCount(TreasureCategory _category) { var list = GetTreasureCategory(_category); if (list == null) { return 0; } var treasureIds = GetTreasureCategory(_category); var count = 0; for (int i = 0; i < list.Count; i++) foreach (var id in treasureIds) { Treasure treasure; if (TryGetTreasure(list[i], out treasure) && treasure.state == TreasureState.Collected) if (treasures[id].state == TreasureState.Collected) { count++; } } return count; } public int GetCompleteTaskCount(int id) { var count = 0; List<int> tasks = null; if (TryGetTreasureTasks(id, out tasks)) { var taskId = taskModel.GetLatestMainTaskId(); var taskState = taskModel.GetQuestState(taskId); var lastTask = tasks[tasks.Count - 1]; if (taskId > lastTask) { count = tasks.Count; } else { var index = tasks.IndexOf(taskId); if (index == -1) { count = 0; } else { count = taskState == 3 ? (index + 1) : index; } } count = Mathf.Min(count, tasks.Count); } return count; } @@ -380,113 +496,9 @@ return 0; } public void ReceivePackage(uint[] collecteds) public List<int> GetFurnacesAchievements() { for (int i = 0; i < collecteds.Length; i++) { var id = (int)collecteds[i]; if (!treasures.ContainsKey(id)) { continue; } Treasure treasure = treasures[id]; if (treasure.state == TreasureState.Collected) { continue; } treasure.state = TreasureState.Collected; var config = TreasureConfig.Get(id); var category = (TreasureCategory)config.Category; if (IsRequireUnlockAnim(category) == treasure.id) { SetUnlockAnim(category, 0); } if (serverInited) { newGotTreasureId = id; OpenTreasureNewGot(); } if (category == TreasureCategory.Demon) { RefreshDemonDungeonRedpoint(treasure.id); } if (treasureCollectingShowId == id) { treasureCollectingShowId = 0; } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(id); } } foreach (var key in treasures.Keys) { var treasure = treasures[key]; if (treasure.state != TreasureState.Locked) { continue; } var config = TreasureConfig.Get(key); if (config.PreTreasure == 0 || treasures[config.PreTreasure].state == TreasureState.Collected) { var satisfyCollect = false; switch ((TreasureCategory)config.Category) { case TreasureCategory.Human: { List<int> tasks; if (TryGetTreasureTasks(config.ID, out tasks)) { var lastTask = tasks[tasks.Count - 1]; var taskId = taskModel.GetCurrentMainTaskId(); var taskState = taskModel.GetQuestState(taskId); if (taskId > lastTask || (taskId == lastTask && taskState == 3)) { satisfyCollect = true; collectingHuman = key; } } } break; case TreasureCategory.Demon: { int _unlockAchievementId = 0; Achievement _achievement; treasureAchievementDict.TryGetValue(treasure.id, out _unlockAchievementId); achievementModel.TryGetAchievement(_unlockAchievementId, out _achievement); if (_achievement == null || _achievement.completed) { satisfyCollect = true; RefreshDemonDungeonRedpoint(treasure.id); collectingDemon = key; } } break; } if (satisfyCollect) { if (serverInited) { SetUnlockAnim((TreasureCategory)config.Category, treasure.id); } treasure.state = TreasureState.Collecting; } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(key); } } } return eightFurnacesAchievements; } private void PlayerDataRefreshInfoEvent(PlayerDataType refreshType) @@ -500,6 +512,77 @@ case PlayerDataType.FightPower: RefreshDemonDungeonRedpoints(); break; } } private void RefreshTreasureCollectState() { RefreshTreasureCollectState(TreasureCategory.Human); RefreshTreasureCollectState(TreasureCategory.Demon); } private void RefreshTreasureCollectState(TreasureCategory category) { var treasureIds = GetTreasureCategory(category); foreach (var id in treasureIds) { var treasure = treasures[id]; if (treasure.state != TreasureState.Locked) { continue; } var config = TreasureConfig.Get(id); if (config.PreTreasure == 0 || treasures[config.PreTreasure].state != TreasureState.Collected) { continue; } var satisfyCollect = false; switch (category) { case TreasureCategory.Human: { List<int> tasks; if (TryGetTreasureTasks(id, out tasks)) { var firstTask = tasks[0]; var taskId = taskModel.GetLatestMainTaskId(); var taskState = taskModel.GetQuestState(taskId); if (taskId >= firstTask) { satisfyCollect = true; collectingHuman = id; } } } break; case TreasureCategory.Demon: { if (PlayerDatas.Instance.baseData.LV >= config.ChallengeLevel) { satisfyCollect = true; collectingDemon = id; } } break; } if (satisfyCollect) { if (isServerReady) { SetUnlockAnim((TreasureCategory)config.Category, id); } treasure.state = TreasureState.Collecting; if (category == TreasureCategory.Demon) { RefreshDemonDungeonRedpoint(id); } } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(id); } } } @@ -534,6 +617,7 @@ } } #region 法宝新获得表现 private void OnWindowOpen(Window _window) { if (_window is MainInterfaceWin) @@ -562,20 +646,20 @@ } } public void TryOpenNewGotTreasureWin() { SnxxzGame.Instance.StartCoroutine(Co_OpenTreasureNewGot()); } IEnumerator Co_OpenTreasureNewGot() { yield return null; OpenTreasureNewGot(); } public void CheckOpenTreasureNewGot() { SnxxzGame.Instance.StartCoroutine(Co_OpenTreasureNewGot()); } private void OpenTreasureNewGot() { if (!(StageLoad.Instance.currentStage is DungeonStage) || !serverInited) if (!(StageLoad.Instance.currentStage is DungeonStage) || !isServerReady) { return; } @@ -594,76 +678,59 @@ } WindowCenter.Instance.Open<TreasureNewGotWin>(); } private void OnAchievementCompleted(int _achievementId) { foreach (var treasure in treasures.Values) { var config = TreasureConfig.Get(treasure.id); if (treasure.state == TreasureState.Locked) { Achievement achievement = null; int _lockAchievement = 0; if (TryGetTreasureUnlockAchievement(treasure.id, out _lockAchievement)) { if (achievementModel.TryGetAchievement(_lockAchievement, out achievement) && achievement.completed) { Treasure _pretreasure; switch ((TreasureCategory)config.Category) { case TreasureCategory.Demon: TryGetTreasure(config.PreTreasure, out _pretreasure); if (_pretreasure == null || _pretreasure.state == TreasureState.Collected) { treasure.state = TreasureState.Collecting; RefreshDemonDungeonRedpoint(treasure.id); collectingDemon = treasure.id; if (serverInited) { SetUnlockAnim((TreasureCategory)config.Category, config.ID); } } break; } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(treasure.id); } } } } } } #endregion public void ReceivePackage(HA352_tagMCMagicWeaponLVInfo package) { for (int i = 0; i < package.Count; i++) { var data = package.InfoList[i]; Treasure treasure; if (TryGetTreasure((int)package.InfoList[i].MWID, out treasure)) if (TryGetTreasure((int)data.MWID, out treasure)) { bool _up = false; if (treasure.stage < package.InfoList[i].LV) bool levelUp = false; if (treasure.level < data.LV) { _up = true; levelUp = true; } treasure.RefreshLevel(package.InfoList[i].LV, (int)package.InfoList[i].Exp, package.InfoList[i].State == 1); if (treasureLevelProgressUpdateEvent != null) { treasureLevelProgressUpdateEvent(treasure.id); } if (serverInited && _up && treasureStageUpEvent != null) treasure.RefreshLevel(data.LV, (int)data.Exp); if (isServerReady && levelUp && treasureStageUpEvent != null) { treasureStageUpEvent(treasure.id); } } TreasureDungeon treasureDungeon; if (TryGetTreasureDungeon((int)package.InfoList[i].MWID, out treasureDungeon)) if (treasure.level > 0 && treasure.state != TreasureState.Collected) { treasureDungeon.currentLevel = package.InfoList[i].FBPassLV; treasure.state = TreasureState.Collected; var config = TreasureConfig.Get(treasure.id); if (IsRequireUnlockAnim((TreasureCategory)config.Category) == treasure.id) { SetUnlockAnim((TreasureCategory)config.Category, 0); } if (isServerReady) { newGotTreasureId = treasure.id; OpenTreasureNewGot(); } if (treasureCollectingShowId == treasure.id) { treasureCollectingShowId = 0; } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(treasure.id); } } TreasureDungeon treasureDungeon; if (TryGetTreasureDungeon((int)data.MWID, out treasureDungeon)) { treasureDungeon.currentLevel = data.FBPassLV; RefreshDemonDungeonRedpoint(treasureDungeon.treasureId); if (demonTreasureDungeonUpdate != null) { @@ -671,173 +738,18 @@ } } } RefreshTreasureCollectState(); } private void OnTaskRefresh(int MissionID, int MissionState) { var taskId = taskModel.GetCurrentMainTaskId(); var taskState = taskModel.GetQuestState(taskId); foreach (var id in treasures.Keys) { var treasure = treasures[id]; if (treasure.state != TreasureState.Locked) { continue; } var config = TreasureConfig.Get(id); if (config.PreTreasure != 0) { Treasure preTreasure = treasures[config.PreTreasure]; if (preTreasure.state != TreasureState.Collected) { continue; } } List<int> tasks = null; if (TryGetTreasureTasks(id, out tasks)) { var lastTask = tasks[tasks.Count - 1]; if (taskId > lastTask || (taskId == lastTask && taskState == 3)) { if (serverInited) { SetUnlockAnim((TreasureCategory)config.Category, config.ID); } treasure.state = TreasureState.Collecting; collectingHuman = treasure.id; } } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(treasure.id); } } } public List<int> GetFurnacesAchievements() { return eightFurnacesAchievements; RefreshTreasureCollectState(TreasureCategory.Human); } public bool IsVersionUnOpenTreasure(int _id) { return treasureUnOpens.Contains(_id); } private void ParseConfigs() { var treasureConfigs = TreasureConfig.GetValues(); foreach (var config in treasureConfigs) { var category = (TreasureCategory)config.Category; List<int> categoryTreasures = null; if (!treasureCategory.ContainsKey(category)) { treasureCategory[category] = categoryTreasures = new List<int>(); } else { categoryTreasures = treasureCategory[category]; } categoryTreasures.Add(config.ID); Treasure treasure = new Treasure(config.ID); treasures[config.ID] = treasure; if (config.Category == (int)TreasureCategory.Demon) { for (int i = 0; i < config.Achievements.Length; i++) { var achieveConfig = SuccessConfig.Get(config.Achievements[i]); if (achieveConfig == null) { continue; } if (achieveConfig.Type == 3 || achieveConfig.Type == 1) { treasureAchievementDict.Add(config.ID, config.Achievements[i]); break; } } if (treasure.state == TreasureState.Locked && config.PreTreasure == 0) { treasure.state = TreasureState.Collecting; collectingDemon = treasure.id; } } if (!treasureMapDict.ContainsKey(config.ID)) { treasureMapDict.Add(config.ID, config.MapId); } if (config.ID == 301) { List<int> list = null; SuccessConfig.TryGetTreasureExpAchievements(config.ID, out list); if (list != null) { eightFurnacesAchievements.AddRange(list); } } } var treasureUpConfigs = TreasureUpConfig.GetValues(); foreach (var config in treasureUpConfigs) { Treasure treasure; if (TryGetTreasure(config.MWID, out treasure)) { treasure.AddTreasureStage(config); } } var funcConfig = FuncConfigConfig.Get("GuideMission"); guideTreasures = new List<int>(); guideTreasures.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical2)); funcConfig = FuncConfigConfig.Get("TreasureGetVipLv"); fairyTreasureGetDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("TreasureSkip"); treasureBackLvLimit = int.Parse(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("TreasureNoOpen"); treasureUnOpens.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1)); funcConfig = FuncConfigConfig.Get("OpenFabao"); entranceOpenCondition = int.Parse(funcConfig.Numerical1); var treasureDungeonConfigs = TreasureDungeonConfig.GetValues(); foreach (var config in treasureDungeonConfigs) { TreasureDungeon treasureDungeon; if (!treasureDungeons.TryGetValue(config.MWID, out treasureDungeon)) { var treasureConfig = TreasureConfig.Get(config.MWID); var challengeRedpoint = new Redpoint(CATEGORY_REDPOINTIDS[treasureConfig.Category - 1], TREASURE_REDPOINTBASE + redpointIndex++); treasureDungeon = new TreasureDungeon(config.MWID, challengeRedpoint); treasureDungeons.Add(config.MWID, treasureDungeon); } treasureDungeon.ParseDungeonInfo(config); } var taskConfigs = TaskListConfig.GetValues(); foreach (var config in taskConfigs) { List<int> tasks = null; if (!treasureTasks.TryGetValue(config.FabaoID, out tasks)) { tasks = new List<int>(); treasureTasks.Add(config.FabaoID, tasks); } tasks.Add(config.TaskID); } } public int GetMapIdByTreasure(int _treasureId) @@ -864,7 +776,7 @@ for (int i = 0; i < treasure.treasureStages.Count; i++) { var _stage = treasure.treasureStages[i]; if (_real && treasure.stage < _stage.stage) if (_real && treasure.level < _stage.stage) { break; } @@ -895,6 +807,38 @@ return 0; } public bool SatisfyChallenge(int id) { if (treasures.ContainsKey(id)) { var treasure = treasures[id]; var config = TreasureConfig.Get(id); switch ((TreasureCategory)config.Category) { case TreasureCategory.Human: { if (treasure.state != TreasureState.Collecting) { return false; } List<int> tasks = null; if (TryGetTreasureTasks(id, out tasks)) { var lastTask = tasks[tasks.Count - 1]; var taskId = taskModel.GetLatestMainTaskId(); var taskState = taskModel.GetQuestState(taskId); if (taskId > lastTask || (taskId == lastTask && taskState == 3)) { return true; } } } break; } } return false; } public bool SatisfyEntranceOpen() { var list = GetTreasureCategory(TreasureCategory.Human); System/Treasure/TreasureNewGotBehaviour.cs
@@ -61,26 +61,6 @@ m_FuncName.text = funcConfig.Remark; } break; case TreasureStageUnlock.Treasure: m_ContaienrTreasure.gameObject.SetActive(true); var treasureConfig = TreasureConfig.Get(treasureStage.treasure); if (treasureConfig != null) { m_TreasureIcon.SetSprite(treasureConfig.Icon); m_Func.text = Language.Get("TreasureUnlockNewTreasure"); m_FuncName.text = treasureConfig.Name; } break; case TreasureStageUnlock.TreasureSoul: m_ContaienrTreasure.gameObject.SetActive(true); var treasureSoulConfig = TreasurePrivilegeConfig.Get(treasureStage.treasureSoul); if (treasureSoulConfig != null) { m_TreasureIcon.SetSprite(treasureSoulConfig.Icon); m_Func.text = Language.Get("TreasureUnlockNewTreasureSoul"); m_FuncName.text = treasureSoulConfig.Name; } break; } } } System/Treasure/TreasureNewGotWin.cs
@@ -154,7 +154,7 @@ model.TryGetTreasure(model.newGotTreasureId, out treasure); treasureStage = treasure.treasureStages.Find((x) => { return x.stage == treasure.stage; return x.stage == treasure.level; }); showStep = ShowStep.None; } @@ -348,9 +348,7 @@ { index++; if (treasure.treasureStages[k].unlockType == TreasureStageUnlock.Func || treasure.treasureStages[k].unlockType == TreasureStageUnlock.Skill || treasure.treasureStages[k].unlockType == TreasureStageUnlock.Treasure || treasure.treasureStages[k].unlockType == TreasureStageUnlock.TreasureSoul) treasure.treasureStages[k].unlockType == TreasureStageUnlock.Skill) { _stage = treasure.treasureStages[k]; displayStageCount++; System/Treasure/TreasureProperty.cs
@@ -66,9 +66,9 @@ return; } var config = TreasureConfig.Get(treasure.id); if (treasure.stage < treasure.treasureStages.Count) if (treasure.level < treasure.treasureStages.Count) { m_TreasureStage = treasure.treasureStages[treasure.stage]; m_TreasureStage = treasure.treasureStages[treasure.level]; } m_PropertyDict.Clear(); if (config.Category == (int)TreasureCategory.Human) @@ -76,7 +76,7 @@ for (int i = 0; i < treasure.treasureStages.Count; i++) { TreasureStage _treasureStage = treasure.treasureStages[i]; if (treasure.stage >= _treasureStage.stage if (treasure.level >= _treasureStage.stage && _treasureStage.unlockType == TreasureStageUnlock.Property) { foreach (var _key in _treasureStage.propertyDict.Keys) System/Treasure/TreasureStageTipWin.cs
File was deleted System/Treasure/TreasureStageTipWin.cs.meta
File was deleted System/Treasure/UI3DTreasureSelectStage.cs
@@ -642,10 +642,10 @@ return; } Treasure treasure; if (model.TryGetTreasure(102, out treasure) && treasure.state == TreasureState.Locked) { return; } //if (model.TryGetTreasure(102, out treasure) && treasure.state == TreasureState.Locked) //{ // return; //} switch (currentCategory) { case TreasureCategory.King: System/Vip/VipRechargeWin.cs
@@ -101,7 +101,7 @@ if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); ModelCenter.Instance.GetModel<TreasureModel>().CheckOpenTreasureNewGot(); ModelCenter.Instance.GetModel<TreasureModel>().TryOpenNewGotTreasureWin(); } } #endregion UI/Common/FuncOpen.cs
@@ -105,7 +105,7 @@ Treasure treasure = null; var _stage = config.LimitMagicWeapon % 100; ModelCenter.Instance.GetModel<TreasureModel>().TryGetTreasure(config.LimitMagicWeapon / 100, out treasure); if (treasure == null || treasure.state != TreasureState.Collected || treasure.stage < _stage) if (treasure == null || treasure.state != TreasureState.Collected || treasure.level < _stage) { errorCode = 2; return false;