Core/NetworkPackage/DTCFile/ServerPack/HA3_Achievement/DTCA312_tagMCMagicWeaponData.cs
@@ -1,18 +1,18 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using Snxxz.UI; public class DTCA312_tagMCMagicWeaponData : DtcBasic { TreasureModel m_Model; TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var vNetData = vNetPack as HA312_tagMCMagicWeaponData; model.UpdateTreasureCollectState(vNetData.MagicWeaponID); } } using System.Collections; using System.Collections.Generic; using UnityEngine; using Snxxz.UI; public class DTCA312_tagMCMagicWeaponData : DtcBasic { TreasureModel m_Model; TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var vNetData = vNetPack as HA312_tagMCMagicWeaponData; model.ReceivePackage(vNetData.MagicWeaponID); } } Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA352_tagMCMagicWeaponLVInfo.cs
@@ -14,7 +14,7 @@ { base.Done(vNetPack); var package = vNetPack as HA352_tagMCMagicWeaponLVInfo; ModelCenter.Instance.GetModel<TreasureModel>().UpdateTreasureLevelInfo(package); ModelCenter.Instance.GetModel<TreasureModel>().ReceivePackage(package); ModelCenter.Instance.GetModel<KingTreasureModel>().OnReceivePackage(package); } Core/NetworkPackage/DTCFile/ServerPack/HA6_VIP/DTCA606_tagMCVIPKillNPCLVInfo.cs
@@ -25,7 +25,7 @@ }; if (package.KillLV > beforeLevel && package.KillLV > 1) { model.CheckReguluPop(); model.TryOpenRegulusPopWindow(); } } Fight/PreFightMission.cs
@@ -1315,7 +1315,7 @@ _model.dialogID = 1003; _model.onClose = () => { ModelCenter.Instance.GetModel<TreasureModel>().SetTreasureUnlockShow(TreasureCategory.Human, 101); ModelCenter.Instance.GetModel<TreasureModel>().SetUnlockAnim(TreasureCategory.Human, 101); NewBieCenter.Instance.StartNewBieGuide(35); NewBieCenter.Instance.guideCompletedEvent += FabaoFlyFinished; }; Lua/Gen/SnxxzUITreasureModelWrap.cs
@@ -291,7 +291,7 @@ { gen_to_be_invoked.CheckReguluPop( ); gen_to_be_invoked.TryOpenRegulusPopWindow( ); @@ -319,7 +319,7 @@ { TreasureCategory __type;translator.Get(L, 2, out __type); int gen_ret = gen_to_be_invoked.GetTreasureUnlockShow( __type ); int gen_ret = gen_to_be_invoked.IsRequireUnlockAnim( __type ); LuaAPI.xlua_pushinteger(L, gen_ret); @@ -380,7 +380,7 @@ TreasureCategory __type;translator.Get(L, 2, out __type); int __id = LuaAPI.xlua_tointeger(L, 3); gen_to_be_invoked.SetTreasureUnlockShow( __type, __id ); gen_to_be_invoked.SetUnlockAnim( __type, __id ); @@ -639,7 +639,7 @@ { uint[] _collecteds = (uint[])translator.GetObject(L, 2, typeof(uint[])); gen_to_be_invoked.UpdateTreasureCollectState( _collecteds ); gen_to_be_invoked.ReceivePackage( _collecteds ); @@ -694,7 +694,7 @@ { HA352_tagMCMagicWeaponLVInfo _package = (HA352_tagMCMagicWeaponLVInfo)translator.GetObject(L, 2, typeof(HA352_tagMCMagicWeaponLVInfo)); gen_to_be_invoked.UpdateTreasureLevelInfo( _package ); gen_to_be_invoked.ReceivePackage( _package ); System/MainInterfacePanel/FlyingShoesTask.cs
@@ -187,7 +187,7 @@ var treasureConfig = TreasureConfig.Get(_treasureId); treasureModel.currentCategory = (TreasureCategory)treasureConfig.Category; WindowCenter.Instance.Close<MainInterfaceWin>(); var _unlockTreasure = treasureModel.GetTreasureUnlockShow(treasureModel.currentCategory); var _unlockTreasure = treasureModel.IsRequireUnlockAnim(treasureModel.currentCategory); if (_unlockTreasure != 0) { treasureModel.treasureGotoId = _unlockTreasure; @@ -208,7 +208,7 @@ var treasureConfig = TreasureConfig.Get(_treasureId); treasureModel.currentCategory = (TreasureCategory)treasureConfig.Category; WindowCenter.Instance.Close<MainInterfaceWin>(); var _unlockTreasure = treasureModel.GetTreasureUnlockShow(treasureModel.currentCategory); var _unlockTreasure = treasureModel.IsRequireUnlockAnim(treasureModel.currentCategory); if (_unlockTreasure != 0) { treasureModel.treasureGotoId = _unlockTreasure; System/MainInterfacePanel/HighSettingTip.cs
@@ -307,11 +307,11 @@ return; } WindowCenter.Instance.Close<MainInterfaceWin>(); if (_model.GetTreasureUnlockShow(TreasureCategory.Human) != 0) if (_model.IsRequireUnlockAnim(TreasureCategory.Human) != 0) { _model.currentCategory = TreasureCategory.Human; } else if (_model.GetTreasureUnlockShow(TreasureCategory.Demon) != 0) else if (_model.IsRequireUnlockAnim(TreasureCategory.Demon) != 0) { _model.currentCategory = TreasureCategory.Demon; } System/MainInterfacePanel/TaskModel.cs
@@ -232,8 +232,6 @@ { currentMission = MissionID; currentMissionState = MissionState; if (Event_MainlineTask != null) Event_MainlineTask(MissionID, MissionState); } @@ -328,6 +326,19 @@ _C0801.PosY = (ushort)PosY; GameNetSystem.Instance.SendInfo(_C0801); } } public int GetCurrentMainTaskId() { var taskId = 0; foreach (var id in MainTaskDic.Keys) { if (id > taskId) { taskId = id; } } return taskId; } void DefaultDialogue()//关于打开默认对话界面 @@ -534,6 +545,10 @@ { MainTaskDic.Add(_taskID, allMissionDict[_taskID]); } if (Event_MainlineTask != null) { Event_MainlineTask(_taskID, MissionState); } } } System/NewBieGuidance/FunctionalGuideCenter.cs
@@ -297,7 +297,7 @@ case GuideTriggerType.TreasureDungeon: Treasure treasure2; treasureModel.TryGetTreasure(config.Condition, out treasure2); return treasure2 != null && treasure2.isChallengeDungeonAble; return treasure2 != null && treasure2.state == TreasureState.Collecting; case GuideTriggerType.TreasureCollectSoul: return IsTreasureCollectSoul(config.Condition); case GuideTriggerType.TreasureAwaken: System/NewBieGuidance/NewBieCenter.cs
@@ -312,7 +312,7 @@ case GuideTriggerType.TreasureDungeon: Treasure treasure; treasureModel.TryGetTreasure(config.Condition, out treasure); return treasure != null && treasure.isChallengeDungeonAble; return treasure != null && treasure.state == TreasureState.Collecting; case GuideTriggerType.Treasure: if (!treasureModel.newGotShowing) { System/Treasure/DemonTreasureWin.cs
@@ -130,7 +130,7 @@ model.treasureStateChangeEvent -= TreasureStateChangeEvent; model.demonTreasureDungeonUpdate -= DemonTreasureDungeonUpdate; TreasureBaseWin.allowSelectTreasure -= AllowSelectTreasure; model.SetTreasureUnlockShow(TreasureCategory.Demon, 0); model.SetUnlockAnim(TreasureCategory.Demon, 0); treasureTweening = false; } System/Treasure/TreasureCollectBriefInfoBehaviour.cs
@@ -283,14 +283,6 @@ Treasure treasure; model.TryGetTreasure(displayTreasureId, out treasure); var progress = 0f; try { progress = treasure.progress / (float)config.RequirementTotal; } catch (System.Exception ex) { Debug.Log(ex); } switch (displayState) { @@ -366,7 +358,7 @@ } WindowCenter.Instance.Close<MainInterfaceWin>(); if (model.GetTreasureUnlockShow(TreasureCategory.Human) == displayTreasureId) if (model.IsRequireUnlockAnim(TreasureCategory.Human) == displayTreasureId) { model.treasureGotoId = displayTreasureId; model.currentCategory = TreasureCategory.Human; System/Treasure/TreasureComponent.cs
@@ -275,7 +275,7 @@ if (treasureSkin != null) { treasureSkin.material.SetFloat("_Gray", requireGraySkin ? 1 : 0); if (model.GetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id if (model.IsRequireUnlockAnim(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id && !UI3DTreasureSelectStage.Instance.CloserComplete) { treasureSkin.material.SetFloat("_Gray", 1); @@ -306,7 +306,7 @@ RecycleTreasureLabel(); break; } if (model.GetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id) if (model.IsRequireUnlockAnim(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id) { RecycleCollectingSfx(); RecycleTreasureEffect(); @@ -337,7 +337,7 @@ { _effectId = UNGET_BACKLIGHT_EFFECT; } if (model.GetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory) == treasureId) if (model.IsRequireUnlockAnim(UI3DTreasureSelectStage.Instance.currentCategory) == treasureId) { _effectId = UNGET_BACKLIGHT_EFFECT; } @@ -446,37 +446,37 @@ switch (category) { case TreasureCategory.Human: if (model.IsVersionUnOpenTreasure(treasureId)) { displayStr = "="; } else { Achievement achievement = null; var achievementId = 0; var unlock = false; if (model.TryGetTreasureUnlockAchievement(treasureId, out achievementId)) { if (achievementModel.TryGetAchievement(achievementId, out achievement)) { unlock = true; } } if (unlock && !achievement.completed) { var _achievementConfig = SuccessConfig.Get(achievementId); var _missionId = _achievementConfig.Condition[0]; var _taskConfig = PyTaskConfig.Get(_missionId); if (_taskConfig == null) { return; } if (_achievementConfig.Type == 3) { displayStr = StringUtility.Contact(_taskConfig.lv, "+"); } } } //if (model.IsVersionUnOpenTreasure(treasureId)) //{ // displayStr = "="; //} //else //{ // Achievement achievement = null; // var achievementId = 0; // var unlock = false; // if (model.TryGetTreasureUnlockAchievement(treasureId, out achievementId)) // { // if (achievementModel.TryGetAchievement(achievementId, out achievement)) // { // unlock = true; // } // } // if (unlock && !achievement.completed) // { // var _achievementConfig = SuccessConfig.Get(achievementId); // var _missionId = _achievementConfig.Condition[0]; // var _taskConfig = PyTaskConfig.Get(_missionId); // if (_taskConfig == null) // { // return; // } // if (_achievementConfig.Type == 3) // { // displayStr = StringUtility.Contact(_taskConfig.lv, "+"); // } // } //} break; case TreasureCategory.Demon: var config = TreasureConfig.Get(treasureId); @@ -776,7 +776,7 @@ { yield return WaitingForSecondConst.GetWaitForSeconds(2.2f); UI3DTreasureSelectStage.Instance.UnlockShowing = false; model.SetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory, 0); model.SetUnlockAnim(UI3DTreasureSelectStage.Instance.currentCategory, 0); if (display) { UpdateTreasureState(); System/Treasure/TreasureData.cs
@@ -30,26 +30,6 @@ set { m_State = value; } } int m_Progress = 0; public int progress { get { return m_Progress; } set { m_Progress = value; } } public bool isChallengeDungeonAble { get { if (state != TreasureState.Collecting) { return false; } var config = TreasureConfig.Get(id); return progress >= config.RequirementTotal;// && config.LastSuccID > 0; } } public int skillId { get @@ -94,15 +74,6 @@ } return 0; } public int IndexOfStage(int _stage) { if (treasureStages[0].unlockType == TreasureStageUnlock.None) { return Mathf.Max(_stage - 1, 0); } return _stage; } } System/Treasure/TreasureExhibitionBehaviour.cs
@@ -103,7 +103,7 @@ private void EffectToFaBaoEvent() { var treasureId = 0; if ((treasureId = model.GetTreasureUnlockShow(TreasureCategory.Human)) != 0) if ((treasureId = model.IsRequireUnlockAnim(TreasureCategory.Human)) != 0) { model.treasureCollectingShowId = treasureId; ShowCollectingTreasure(); System/Treasure/TreasureModel.cs
@@ -99,11 +99,11 @@ 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>(); List<int> eightFurnacesAchievements = new List<int>(); List<int> m_CacheGotAchievements = new List<int>(); Dictionary<int, int> treasureStageShowDict = new Dictionary<int, int>(); List<int> treasureUnOpens = new List<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>(); List<int> eightFurnacesAchievements = new List<int>(); List<int> treasureUnOpens = new List<int>();//版本未开放法宝 public Dictionary<int, int> fairyTreasureGetDict { get; private set; } @@ -132,6 +132,7 @@ 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 { @@ -146,50 +147,21 @@ } bool playerLevelRefresh = false; bool needDisplayReguluLevelUp = false; public override void Init() { ParseConfigs(); achievementModel.achievementProgressUpdateEvent += OnAchievementProgressUpdate; achievementModel.achievementCompletedEvent += OnAchievementCompleted; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterOpenEvent += OnWindowOpen; WindowCenter.Instance.windowAfterCloseEvent += OnWindowClose; NewBieCenter.Instance.guideCompletedEvent += GuideComplete; StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish; GlobalTimeEvent.Instance.secondEvent += PerSecond; } public override void UnInit() { achievementModel.achievementProgressUpdateEvent -= OnAchievementProgressUpdate; achievementModel.achievementCompletedEvent -= OnAchievementCompleted; NewBieCenter.Instance.guideCompletedEvent -= GuideComplete; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterOpenEvent -= OnWindowOpen; WindowCenter.Instance.windowAfterCloseEvent -= OnWindowClose; StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish; GlobalTimeEvent.Instance.secondEvent -= PerSecond; } private void PerSecond() { if (serverInited) { if (playerLevelRefresh) { playerLevelRefresh = false; } } } public void OnAfterPlayerDataInitialize() { collectingDemon = 0; collectingHuman = 0; TaskModel.Event_MainlineTask += OnTaskRefresh; } public void OnBeforePlayerDataInitialize() @@ -209,14 +181,50 @@ } } public void OnAfterPlayerDataInitialize() { collectingDemon = 0; collectingHuman = 0; } public void OnPlayerLoginOk() { serverInited = true; UpdateDemonDungeonRedpoints(); RefreshDemonDungeonRedpoints(); } private bool needDisplayReguluLevelUp = false; public void CheckReguluPop() public override void UnInit() { achievementModel.achievementCompletedEvent -= OnAchievementCompleted; NewBieCenter.Instance.guideCompletedEvent -= GuideComplete; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterOpenEvent -= OnWindowOpen; WindowCenter.Instance.windowAfterCloseEvent -= OnWindowClose; StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish; GlobalTimeEvent.Instance.secondEvent -= PerSecond; TaskModel.Event_MainlineTask -= OnTaskRefresh; } private void PerSecond() { if (serverInited) { if (playerLevelRefresh) { playerLevelRefresh = false; } } } private void OnStageLoadFinish() { if (!(StageLoad.Instance.currentStage is DungeonStage)) { exitRecord = 0; } } public void TryOpenRegulusPopWindow() { if (serverInited) { @@ -235,16 +243,7 @@ } } private void OnStageLoadFinish() { if (!(StageLoad.Instance.currentStage is DungeonStage)) { exitRecord = 0; } } Dictionary<TreasureCategory, int> treasureUnlockShowDict = new Dictionary<TreasureCategory, int>(); public int GetTreasureUnlockShow(TreasureCategory _type) public int IsRequireUnlockAnim(TreasureCategory _type) { if (!treasureUnlockShowDict.ContainsKey(_type)) { @@ -258,22 +257,22 @@ public bool TryGetUnlockShowTreasure(out int _id) { _id = 0; if ((_id = GetTreasureUnlockShow(TreasureCategory.Human)) != 0) if ((_id = IsRequireUnlockAnim(TreasureCategory.Human)) != 0) { return true; } else if ((_id = GetTreasureUnlockShow(TreasureCategory.Demon)) != 0) else if ((_id = IsRequireUnlockAnim(TreasureCategory.Demon)) != 0) { return true; } else if ((_id = GetTreasureUnlockShow(TreasureCategory.Fairy)) != 0) else if ((_id = IsRequireUnlockAnim(TreasureCategory.Fairy)) != 0) { return true; } return false; } public void SetTreasureUnlockShow(TreasureCategory _type, int _id) public void SetUnlockAnim(TreasureCategory _type, int _id) { if (treasureUnlockShowDict.ContainsKey(_type)) { @@ -320,6 +319,11 @@ 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); } public List<int> GetAllTreasure() @@ -376,44 +380,49 @@ return 0; } public void UpdateTreasureCollectState(uint[] collecteds) public void ReceivePackage(uint[] collecteds) { for (int i = 0; i < collecteds.Length; i++) { var id = (int)collecteds[i]; Treasure treasure; if (TryGetTreasure(id, out treasure)) if (!treasures.ContainsKey(id)) { var config = TreasureConfig.Get(id); if (treasure.state != TreasureState.Collected) { treasure.state = TreasureState.Collected; if (config.Category == (int)TreasureCategory.Human) { if (GetTreasureUnlockShow(TreasureCategory.Human) == treasure.id) { SetTreasureUnlockShow(TreasureCategory.Human, 0); } } continue; } Treasure treasure = treasures[id]; if (treasure.state == TreasureState.Collected) { continue; } if (serverInited) { newGotTreasureId = id; OpenTreasureNewGot(); } treasure.state = TreasureState.Collected; UpdateDemonDungeonRedpoint(treasure.id); var config = TreasureConfig.Get(id); var category = (TreasureCategory)config.Category; if (treasureCollectingShowId == id) { treasureCollectingShowId = 0; } if (IsRequireUnlockAnim(category) == treasure.id) { SetUnlockAnim(category, 0); } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(id); } } if (serverInited) { newGotTreasureId = id; OpenTreasureNewGot(); } if (category == TreasureCategory.Demon) { RefreshDemonDungeonRedpoint(treasure.id); } if (treasureCollectingShowId == id) { treasureCollectingShowId = 0; } if (treasureStateChangeEvent != null) { treasureStateChangeEvent(id); } } @@ -428,91 +437,54 @@ 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: case TreasureCategory.Demon: if (treasure.state == TreasureState.Locked) { int _unlockAchievement = 0; Achievement _achievement; treasureAchievementDict.TryGetValue(treasure.id, out _unlockAchievement); achievementModel.TryGetAchievement(_unlockAchievement, out _achievement); if (_achievement == null || _achievement.completed) List<int> tasks; if (TryGetTreasureTasks(config.ID, out tasks)) { if (serverInited) var lastTask = tasks[tasks.Count - 1]; var taskId = taskModel.GetCurrentMainTaskId(); var taskState = taskModel.GetQuestState(taskId); if (taskId > lastTask || (taskId == lastTask && taskState == 3)) { SetTreasureUnlockShow((TreasureCategory)config.Category, treasure.id); } treasure.state = TreasureState.Collecting; UpdateDemonDungeonRedpoint(treasure.id); if ((TreasureCategory)config.Category == TreasureCategory.Demon) { collectingDemon = key; } else if ((TreasureCategory)config.Category == TreasureCategory.Human) { satisfyCollect = true; collectingHuman = key; } } } break; default: 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); } } } } private void OnAchievementProgressUpdate(int _achievement) { foreach (var treasure in treasures.Values) { int[] achievements = null; var config = TreasureConfig.Get(treasure.id); achievements = config.Achievements; if (achievements == null) { continue; } if (Array.IndexOf(achievements, _achievement) != -1) { UpdateTreasureCollectProgress(treasure); } } } private void UpdateTreasureCollectProgress(Treasure _treasure) { var config = TreasureConfig.Get(_treasure.id); var oldProgress = _treasure.progress; var tempProgress = 0; Achievement achievement; int[] achievements = config.Achievements; for (int i = 0; i < achievements.Length; i++) { if (achievementModel.TryGetAchievement(achievements[i], out achievement)) { if (achievement.completed) { tempProgress++; } } } if (oldProgress != tempProgress) { _treasure.progress = tempProgress; if (treasureCollectProgressUpdateEvent != null) { treasureCollectProgressUpdateEvent(_treasure.id); } } } @@ -526,20 +498,20 @@ break; case PlayerDataType.FightPoint: case PlayerDataType.FightPower: UpdateDemonDungeonRedpoints(); RefreshDemonDungeonRedpoints(); break; } } private void UpdateDemonDungeonRedpoints() private void RefreshDemonDungeonRedpoints() { foreach (var treasureId in treasureDungeons.Keys) { UpdateDemonDungeonRedpoint(treasureId); RefreshDemonDungeonRedpoint(treasureId); } } private void UpdateDemonDungeonRedpoint(int treasureId) private void RefreshDemonDungeonRedpoint(int treasureId) { TreasureDungeon treasureDungeon; if (TryGetTreasureDungeon(treasureId, out treasureDungeon)) @@ -569,7 +541,7 @@ SnxxzGame.Instance.StartCoroutine(Co_OpenTreasureNewGot()); if (needDisplayReguluLevelUp) { CheckReguluPop(); TryOpenRegulusPopWindow(); } } } @@ -628,14 +600,6 @@ foreach (var treasure in treasures.Values) { var config = TreasureConfig.Get(treasure.id); var achievements = config.Achievements; if (achievements != null) { if (Array.IndexOf(achievements, _achievementId) != -1) { UpdateTreasureCollectProgress(treasure); } } if (treasure.state == TreasureState.Locked) { @@ -649,32 +613,18 @@ Treasure _pretreasure; switch ((TreasureCategory)config.Category) { case TreasureCategory.Human: TryGetTreasure(config.PreTreasure, out _pretreasure); if (_pretreasure == null || _pretreasure.state == TreasureState.Collected) { treasure.state = TreasureState.Collecting; collectingHuman = treasure.id; if (serverInited) { SetTreasureUnlockShow((TreasureCategory)config.Category, config.ID); } } break; case TreasureCategory.Demon: TryGetTreasure(config.PreTreasure, out _pretreasure); if (_pretreasure == null || _pretreasure.state == TreasureState.Collected) { treasure.state = TreasureState.Collecting; UpdateDemonDungeonRedpoint(treasure.id); RefreshDemonDungeonRedpoint(treasure.id); collectingDemon = treasure.id; if (serverInited) { SetTreasureUnlockShow((TreasureCategory)config.Category, config.ID); SetUnlockAnim((TreasureCategory)config.Category, config.ID); } } break; case TreasureCategory.Fairy: break; } @@ -688,7 +638,7 @@ } } public void UpdateTreasureLevelInfo(HA352_tagMCMagicWeaponLVInfo package) public void ReceivePackage(HA352_tagMCMagicWeaponLVInfo package) { for (int i = 0; i < package.Count; i++) { @@ -714,11 +664,55 @@ if (TryGetTreasureDungeon((int)package.InfoList[i].MWID, out treasureDungeon)) { treasureDungeon.currentLevel = package.InfoList[i].FBPassLV; UpdateDemonDungeonRedpoint(treasureDungeon.treasureId); RefreshDemonDungeonRedpoint(treasureDungeon.treasureId); if (demonTreasureDungeonUpdate != null) { demonTreasureDungeonUpdate(treasureDungeon.treasureId); } } } } 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); } } } @@ -754,38 +748,26 @@ treasures[config.ID] = treasure; for (int i = 0; i < config.Achievements.Length; i++) if (config.Category == (int)TreasureCategory.Demon) { var achieveConfig = SuccessConfig.Get(config.Achievements[i]); if (achieveConfig == null) for (int i = 0; i < config.Achievements.Length; i++) { continue; 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 (config.Category == (int)TreasureCategory.Human && (achieveConfig.Type == 3 || achieveConfig.Type == 1)) { treasureAchievementDict.Add(config.ID, config.Achievements[i]); break; } else if (config.Category == (int)TreasureCategory.Demon && (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; switch ((TreasureCategory)config.Category) if (treasure.state == TreasureState.Locked && config.PreTreasure == 0) { case TreasureCategory.Human: collectingHuman = treasure.id; break; case TreasureCategory.Demon: collectingDemon = treasure.id; break; treasure.state = TreasureState.Collecting; collectingDemon = treasure.id; } } @@ -844,6 +826,18 @@ } 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) System/Treasure/TreasureStageUpTriggerWin.cs
@@ -116,61 +116,6 @@ { model.TryGetTreasure(model.selectedTreasure, out m_Treasure); if (m_Treasure.id == 301) { OnFurnacesTreasure(); return; } var _stage = m_Treasure.treasureStages.Find((x) => { return x.stage == m_Treasure.stage; }); if (_stage == null) { CloseImmediately(); return; } var instance = UIUtility.CreateWidget(_stage.unlockType == TreasureStageUnlock.Skill ?"TreasureStageSkillFlyObject": "TreasureStageFuncFlyObject", "TreasureStageFlyObject"); instance.transform.SetParentEx(m_FlyContainer, Vector3.zero, Quaternion.identity, Vector3.one); var _index = _stage.stage; _index = m_Treasure.IndexOfStage(_index); var _config = ScriptableObjectLoader.LoadSoTreasureMeridian(model.selectedTreasure); if (_config != null) { instance.transform.localPosition = _stage.unlockType == TreasureStageUnlock.Skill ? m_SkillPosition : _config[_index].position; } flyObject = instance.GetComponent<FunctionUnlockFlyObject>(); switch (_stage.unlockType) { case TreasureStageUnlock.Skill: flyObject.SetContent(FunctionUnlockType.TreasureSkill, m_Treasure.id); flyObject.SetSpeed(6.0f); break; case TreasureStageUnlock.Func: flyObject.SetContent(FunctionUnlockType.Normal, _stage.func); flyObject.SetSpeed(3.0f); break; } if (screenShotCut != null) { m_AlphaTween.Play(OnAlphaComplete); } else { m_AlphaTween.SetEndState(); flyObject.Begin(OnReach); } } void OnFurnacesTreasure() { var instance = UIUtility.CreateWidget("TreasureUnlockFlyObject_1", "TreasureUnlockFlyObject_1"); instance.transform.SetParentEx(m_FurnacesFlyContainer, Vector3.zero, Quaternion.identity, Vector3.one); flyObject = instance.GetComponent<FunctionUnlockFlyObject>(); @@ -197,51 +142,7 @@ private void OnReach() { if (m_Treasure.id == 301) { NewBieCenter.Instance.StartNewBieGuide(33); CloseImmediately(); return; } var _stage = m_Treasure.treasureStages.Find((x) => { return x.stage == m_Treasure.stage; }); switch (_stage.unlockType) { case TreasureStageUnlock.Func: var funcConfig = FuncOpenLVConfig.Get(_stage.func); if (funcConfig != null) { if ((FuncOpenEnum)funcConfig.FuncId == FuncOpenEnum.Strength) { NewBieCenter.Instance.StartNewBieGuide(10); } else if((FuncOpenEnum)funcConfig.FuncId == FuncOpenEnum.Mounts) { NewBieCenter.Instance.StartNewBieGuide(19); } else if ((FuncOpenEnum)funcConfig.FuncId == FuncOpenEnum.Pet) { NewBieCenter.Instance.StartNewBieGuide(23); } else if ((FuncOpenEnum)funcConfig.FuncId == FuncOpenEnum.Rune) { NewBieCenter.Instance.StartNewBieGuide(27); } } break; case TreasureStageUnlock.Skill: switch (m_Treasure.id) { case 104: break; case 105: NewBieCenter.Instance.StartNewBieGuide(49); break; } break; } NewBieCenter.Instance.StartNewBieGuide(33); CloseImmediately(); } } System/Treasure/UI3DTreasureSelectStage.cs
@@ -356,7 +356,7 @@ model.treasureStateChangeEvent -= TreasureStateChangeEvent; model.treasureStageUpEvent -= TreasureStageUpEvent; model.SetTreasureUnlockShow(currentCategory, 0); model.SetUnlockAnim(currentCategory, 0); if (currentTreasureTitle != null) { @@ -481,9 +481,9 @@ { var _treasure = 0; int _index = -1; if (model.GetTreasureUnlockShow(currentCategory) != 0) if (model.IsRequireUnlockAnim(currentCategory) != 0) { _treasure = model.GetTreasureUnlockShow(currentCategory); _treasure = model.IsRequireUnlockAnim(currentCategory); model.treasureGotoId = _treasure; UnlockShowing = true; } @@ -1082,10 +1082,10 @@ return; } var treasureId = 0; if (model.GetTreasureUnlockShow(currentCategory) != 0) if (model.IsRequireUnlockAnim(currentCategory) != 0) { UnlockShowing = true; treasureId = model.GetTreasureUnlockShow(currentCategory); treasureId = model.IsRequireUnlockAnim(currentCategory); model.treasureGotoId = treasureId; } if (treasureId != 0) System/WorldMap/LocalMapTreasure.cs
@@ -32,7 +32,7 @@ Treasure treasure; if (model.TryGetTreasure(treasureId, out treasure)) { var progress = treasure.progress / (float)config.RequirementTotal; var progress = 0f; m_Progress.value = progress; m_TreasureProgress.text = StringUtility.Contact((progress * 100f).ToString("f0"), "%"); }