| Core/GameEngine/Model/Config/GuideConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/GuideConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CreateRolePostProcess/CreateRoleMovieSkipWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/MainInterfaceWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/MainPositionTween.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainWin/HighSettingFadeInFadeOut.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/NewBieGuidance/FunctionalGuideCenter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/NewBieGuidance/FunctionalGuideTrigger.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/NewBieGuidance/NewBieCenter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utility/EnumHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/GuideConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Wednesday, May 15, 2019 // [ Date ]: Friday, May 17, 2019 //-------------------------------------------------------- using System.Collections.Generic; @@ -17,11 +17,14 @@ public readonly int Type; public readonly int TriggerType; public readonly int Condition; public readonly int SupplementCondition; public readonly int PreGuideId; public readonly int[] Steps; public readonly int CanSkip; public readonly int RemoveWhenOtherGuide; public readonly int CannotCompleteByClick; public readonly int[] UnfoldAreas; public readonly int AutoCompleteTime; public GuideConfig() { @@ -41,20 +44,31 @@ int.TryParse(tables[3],out Condition); int.TryParse(tables[4],out PreGuideId); int.TryParse(tables[4],out SupplementCondition); string[] StepsStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); int.TryParse(tables[5],out PreGuideId); string[] StepsStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); Steps = new int[StepsStringArray.Length]; for (int i=0;i<StepsStringArray.Length;i++) { int.TryParse(StepsStringArray[i],out Steps[i]); } int.TryParse(tables[6],out CanSkip); int.TryParse(tables[7],out CanSkip); int.TryParse(tables[7],out RemoveWhenOtherGuide); int.TryParse(tables[8],out RemoveWhenOtherGuide); int.TryParse(tables[8],out CannotCompleteByClick); int.TryParse(tables[9],out CannotCompleteByClick); string[] UnfoldAreasStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); UnfoldAreas = new int[UnfoldAreasStringArray.Length]; for (int i=0;i<UnfoldAreasStringArray.Length;i++) { int.TryParse(UnfoldAreasStringArray[i],out UnfoldAreas[i]); } int.TryParse(tables[11],out AutoCompleteTime); } catch (Exception ex) { Core/GameEngine/Model/Config/GuideConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: b8fc091fd0fa850459269b011b63ab49 timeCreated: 1557892240 timeCreated: 1558080698 licenseType: Pro MonoImporter: serializedVersion: 2 System/CreateRolePostProcess/CreateRoleMovieSkipWin.cs
@@ -14,7 +14,6 @@ public class CreateRoleMovieSkipWin : Window { [SerializeField] RectTransform m_SkipContainer; [SerializeField] Button m_Skip; #region Built-in @@ -29,8 +28,8 @@ protected override void OnPreOpen() { m_SkipContainer.gameObject.SetActive(false); Clock.AlarmAfter(5, () => { m_SkipContainer.gameObject.SetActive(true); }); m_Skip.gameObject.SetActive(false); Clock.AlarmAfter(5, () => { m_Skip.gameObject.SetActive(true); }); } protected override void OnAfterOpen() System/MainInterfacePanel/MainInterfaceWin.cs
@@ -48,7 +48,6 @@ [SerializeField] MainButtonMisc m_MainButtonMisc; #region private bool TaskSwithBool = true; private float ExpValueFloat = 0; private bool SliderOpen = true; @@ -67,7 +66,7 @@ protected override void BindController() { m_MapSwitchingBehaviour.InitAwake(); m_MainPositionTween.ShowTaskImmedidately(true,true); m_MainPositionTween.ShowTaskImmedidately(true, true); m_MailObj.SetActive(true); ListBossMapId.Clear(); string strBoss = FuncConfigConfig.Get("TaskRetract").Numerical1; @@ -113,6 +112,7 @@ CheckChatTipOpen(); PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting; FunctionUnlockFlyObject.functionUnLockShowBeginEvent += UnFlodFunctionArea; FunctionalGuideCenter.Instance.beginGuideEvent += OnBeginFunctionalGuide; GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea; NewBieCenter.Instance.guideBeginEvent += OnGuideBegin; WindowCenter.Instance.windowAfterOpenEvent += WindowAfterEvent; @@ -208,6 +208,7 @@ PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting; FunctionUnlockFlyObject.functionUnLockShowBeginEvent -= UnFlodFunctionArea; FunctionalGuideCenter.Instance.beginGuideEvent -= OnBeginFunctionalGuide; GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea; NewBieCenter.Instance.guideBeginEvent -= OnGuideBegin; WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterEvent; @@ -429,9 +430,27 @@ private void UnFlodFunctionArea(bool _unflod, int _skillGroup) { if (_unflod) if (NewBieCenter.Instance.IsAreaNeedUnflod(1)) { m_MainPositionTween.ShowTaskImmedidately(true,true); m_MainPositionTween.ShowTaskImmedidately(true, true); } if (NewBieCenter.Instance.IsAreaNeedUnflod(2)) { m_MainPositionTween.SwitchFunctions(new MainPositionTween.SwitchParam() { showDefault = true, immediately = false }); m_HighSettingFadeInFadeOut.SwitchImmedidately(true); } } private void OnBeginFunctionalGuide(int guideId) { if (FunctionalGuideCenter.Instance.IsAreaNeedUnflod(1)) { m_MainPositionTween.ShowTaskImmedidately(true, true); } if (FunctionalGuideCenter.Instance.IsAreaNeedUnflod(2)) { m_MainPositionTween.SwitchFunctions(new MainPositionTween.SwitchParam() { showDefault = true, immediately = false }); m_HighSettingFadeInFadeOut.SwitchImmedidately(true); } System/MainInterfacePanel/MainPositionTween.cs
@@ -51,12 +51,16 @@ void LateUpdate() { if (resetToDefaultTimer > 0f) var alwayShow = NewBieCenter.Instance.IsAreaNeedUnflod(2) || FunctionalGuideCenter.Instance.IsAreaNeedUnflod(2); if (!alwayShow) { resetToDefaultTimer -= Time.deltaTime; if (resetToDefaultTimer <= 0f) if (resetToDefaultTimer > 0f) { SwitchFunctions(new SwitchParam() { showDefault = true, immediately = false }); resetToDefaultTimer -= Time.deltaTime; if (resetToDefaultTimer <= 0f) { SwitchFunctions(new SwitchParam() { showDefault = true, immediately = false }); } } } } System/MainWin/HighSettingFadeInFadeOut.cs
@@ -241,7 +241,8 @@ private void LateUpdate() { if (!NewBieCenter.Instance.inGuiding) var alwayShow = NewBieCenter.Instance.IsAreaNeedUnflod(2) || FunctionalGuideCenter.Instance.IsAreaNeedUnflod(2); if (!alwayShow) { if (state == State.Opened) { System/NewBieGuidance/FunctionalGuideCenter.cs
@@ -6,29 +6,25 @@ using System.Collections; using UnityEngine.UI; using System.Collections.Generic; using System; namespace Snxxz.UI { [XLua.LuaCallCSharp] public class FunctionalGuideCenter : Singleton<FunctionalGuideCenter> public class FunctionalGuideCenter : Singleton<FunctionalGuideCenter> { public event Action<int> beginGuideEvent; public event Action<int> finishGuideEevent; public event Action<int> removeGuideEvent; List<int> underwayGuides = new List<int>(); List<int> allGuides = new List<int>(); Dictionary<int, float> guideStartTimes = new Dictionary<int, float>(); List<int> unfoldAreas = new List<int>(); bool inited = false; TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } TaskModel taskmodel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } LogicUpdate update = new LogicUpdate(); public FunctionalGuideCenter() { TaskModel.tryGetTaskAwardEvent += OnTryGetMainLineTaskReward; @@ -36,24 +32,12 @@ TaskModel.CardLevelChange += OnMainLineLimitStateChange; TaskModel.SideQuestChangeEvent += OnBranchQuestStateChange; treasureModel.treasureStateChangeEvent += OnTreasureStateChange; taskmodel.taskDescriptionRefresh += OnMainLineDescriptionChange; update.Start(OnUpdate); } public void CheckGuides(int[] _guides) { if (!inited) { var allGuideConfigs = GuideConfig.GetValues(); foreach (var config in allGuideConfigs) { if (config.Type == (int)GuideType.Functional) { allGuides.Add(config.ID); } } inited = true; } for (int i = 0; i < _guides.Length; i++) { var guideId = _guides[i]; @@ -93,9 +77,9 @@ public void StartGuide(int _id) { RemoveAllUnderWayGuide(); underwayGuides.Add(_id); guideStartTimes[_id] = Time.time; UpdateUnfoldAreas(); if (beginGuideEvent != null) { beginGuideEvent(_id); @@ -191,6 +175,35 @@ } } private void OnMainLineDescriptionChange(int taskId) { for (int i = underwayGuides.Count - 1; i >= 0; i--) { var guideId = underwayGuides[i]; var config = GuideConfig.Get(guideId); if (config.Condition != taskId) { continue; } switch ((GuideTriggerType)config.TriggerType) { case GuideTriggerType.QuestCanDo: MissionDetailDates datas; if (taskmodel.TryGetTaskData(config.Condition, out datas)) { var descriptionIndex = datas.descIndex; if (descriptionIndex != config.SupplementCondition) { RemoveGuide(guideId); } } break; } } } private void OnBranchQuestStateChange(int _taskId) { for (int i = underwayGuides.Count - 1; i >= 0; i--) @@ -274,7 +287,22 @@ switch ((GuideTriggerType)config.TriggerType) { case GuideTriggerType.QuestCanDo: return mainTaskId == config.Condition && taskmodel.currentMissionState == 1; if (config.SupplementCondition == 0) { return mainTaskId == config.Condition && taskmodel.currentMissionState == 1; } else { MissionDetailDates datas; if (taskmodel.TryGetTaskData(config.Condition, out datas)) { return mainTaskId == config.Condition && datas.descIndex == config.SupplementCondition; } else { return false; } } case GuideTriggerType.QuestCanAward: return mainTaskId == config.Condition && taskmodel.currentMissionState == 2; case GuideTriggerType.QuestLimit: @@ -285,10 +313,10 @@ var taskStatus = taskmodel.GetTaskStatus(config.Condition); return questState == 1 && (taskStatus == TaskModel.TaskStatus.Normal); case GuideTriggerType.Treasure: if (!model.newGotShowing) if (!treasureModel.newGotShowing) { Treasure treasure1; return model.TryGetTreasure(config.Condition, out treasure1) && treasure1.state == TreasureState.Collected; return treasureModel.TryGetTreasure(config.Condition, out treasure1) && treasure1.state == TreasureState.Collected; } else { @@ -318,6 +346,8 @@ if (underwayGuides.Contains(_guideId)) { underwayGuides.Remove(_guideId); guideStartTimes.Remove(_guideId); UpdateUnfoldAreas(); } var send = new CA222_tagCMSetGuideOK(); @@ -336,6 +366,50 @@ return false; } public bool IsAreaNeedUnflod(int area) { return unfoldAreas.Contains(area); } private void UpdateUnfoldAreas() { unfoldAreas.Clear(); foreach (var guid in underwayGuides) { var config = GuideConfig.Get(guid); foreach (var unfoldArea in config.UnfoldAreas) { if (!unfoldAreas.Contains(unfoldArea)) { unfoldAreas.Add(unfoldArea); } } } } private void OnUpdate() { for (var i = underwayGuides.Count - 1; i >= 0; i--) { var guideId = underwayGuides[i]; var config = GuideConfig.Get(guideId); if (config.AutoCompleteTime != 0) { var startTime = guideStartTimes[guideId]; if (startTime + config.AutoCompleteTime > Time.time) { RemoveGuide(guideId); } } } } public struct UnderWayGuide { public int guideId; public float startTime; } } } System/NewBieGuidance/FunctionalGuideTrigger.cs
@@ -19,6 +19,7 @@ TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } } Window m_Parent; Window parent { get { return m_Parent ?? (m_Parent = this.transform.GetComponentInParent<Window>()); } } @@ -68,6 +69,7 @@ FunctionalGuideCenter.Instance.beginGuideEvent += BeginFunctionalGuide; FunctionalGuideCenter.Instance.removeGuideEvent += OnGuideRemove; taskModel.taskDescriptionRefresh += OnMainLineTaskDescriptionIndexUpdate; treasureModel.treasureCollectProgressRefresh += OnTreasureCollectingStateChange; treasureModel.treasureStageUpEvent += OnTreasureStageChange; achievementModel.achievementAwardableEvent += OnAchievementAwardAble; @@ -99,6 +101,7 @@ FunctionalGuideCenter.Instance.beginGuideEvent -= BeginFunctionalGuide; FunctionalGuideCenter.Instance.removeGuideEvent -= OnGuideRemove; taskModel.taskDescriptionRefresh -= OnMainLineTaskDescriptionIndexUpdate; treasureModel.treasureCollectProgressRefresh -= OnTreasureCollectingStateChange; treasureModel.treasureStageUpEvent -= OnTreasureStageChange; achievementModel.achievementAwardableEvent -= OnAchievementAwardAble; @@ -124,6 +127,11 @@ CheckGuide(); } private void OnMainLineTaskDescriptionIndexUpdate(int _taskId) { CheckGuide(); } private void OnMainLineTaskLimitStateChange(int _taskId) { CheckGuide(); System/NewBieGuidance/NewBieCenter.cs
@@ -32,6 +32,7 @@ List<int> allGuides = new List<int>(); public List<int> completeGuidesBuf = new List<int>(); List<int> unfoldAreas = new List<int>(); Dictionary<int, Window> triggerWindows = new Dictionary<int, Window>(); @@ -41,9 +42,7 @@ BetterEquipGetModel betterItemGetModel { get { return ModelCenter.Instance.GetModel<BetterEquipGetModel>(); } } PreciousItemGetModel preciousItemGetModel { get { return ModelCenter.Instance.GetModel<PreciousItemGetModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } RuneModel runeModel { get { return ModelCenter.Instance.GetModel<RuneModel>(); } } RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } } ComposeWinModel composeModel { get { return ModelCenter.Instance.GetModel<ComposeWinModel>(); } } PrayerModel prayerModel { get { return ModelCenter.Instance.GetModel<PrayerModel>(); } } PlayerDeadModel playerDeadModel { get { return ModelCenter.Instance.GetModel<PlayerDeadModel>(); } } @@ -150,6 +149,7 @@ FunctionalGuideCenter.Instance.RemoveAllUnderWayGuide(); currentGuide = _id; UpdateUnfoldAreas(); if (PlayerDatas.Instance.hero != null) { HeroAIRecorder.Record(); @@ -192,8 +192,9 @@ { var guideRecord = currentGuide; currentGuide = 0; WindowCenter.Instance.CloseImmediately("NewBieWin"); UpdateUnfoldAreas(); WindowCenter.Instance.CloseImmediately("NewBieWin"); if (!completeGuidesBuf.Contains(guideRecord)) { completeGuidesBuf.Add(guideRecord); @@ -229,6 +230,7 @@ { var guideRecord = currentGuide; currentGuide = 0; UpdateUnfoldAreas(); completeGuidesBuf.Add(guideRecord); var send = new CA222_tagCMSetGuideOK(); @@ -467,6 +469,23 @@ } } public bool IsAreaNeedUnflod(int area) { return unfoldAreas.Contains(area); } private void UpdateUnfoldAreas() { unfoldAreas.Clear(); if (currentGuide != 0) { var config = GuideConfig.Get(currentGuide); if (config != null) { unfoldAreas.AddRange(config.UnfoldAreas); } } } } } Utility/EnumHelper.cs
@@ -1144,11 +1144,10 @@ TrialExchange = 22,//宗门试炼兑换材料 QuestCanAccept = 100,//任务可接 QuestCanDo = 101,//任务可进行 QuestCanDo = 101,//任务进行中 QuestCanAward = 102,//任务可领奖 QuestLimit = 103,//任务被限制 QuestContinue = 104,//任务可继续 QuestLimit = 106,//任务被限制 QuestContinue = 110,//任务可继续 BranchQuestCando = 201,//支线任务可做 BranchQuestCanAward = 202,//支线任务可领奖