少年修仙传客户端代码仓库
client_Wu Xijin
2019-05-17 579b7e96c08230593e750946c8f8c9a8f6fee77a
3335 任务相关需求提交
10个文件已修改
243 ■■■■ 已修改文件
Core/GameEngine/Model/Config/GuideConfig.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/GuideConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRolePostProcess/CreateRoleMovieSkipWin.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainPositionTween.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/HighSettingFadeInFadeOut.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/FunctionalGuideCenter.cs 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/FunctionalGuideTrigger.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/NewBieCenter.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | 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,//支线任务可领奖