少年修仙传客户端代码仓库
client_linchunjie
2018-08-28 d967a51a34fe3ac68267b29b6f2ea4cb509d4977
2960 抢Boss活动
3个文件已修改
76 ■■■■■ 已修改文件
System/FairyAu/FairyGrabBossModel.cs 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapLineBehaviour.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapModel.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs
@@ -92,6 +92,8 @@
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
            GAMgr.Instance.OnFightNpcRequest += OnFightNpcUpdate;
            GAMgr.Instance.OnFightNpcRelease += OnFightNpcUpdate;
        }
        public void OnBeforePlayerDataInitialize()
@@ -109,6 +111,8 @@
            StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
            DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState;
            GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
            GAMgr.Instance.OnFightNpcRequest -= OnFightNpcUpdate;
            GAMgr.Instance.OnFightNpcRelease -= OnFightNpcUpdate;
        }
        private void OnRefreshFairyInfo()
@@ -116,9 +120,12 @@
            RecheckGrabBoss();
        }
        private void OnEnterOrExitArea(MapArea.E_Type arg0, bool arg1)
        private void OnEnterOrExitArea(MapArea.E_Type type, bool arg1)
        {
            RecheckGrabBoss();
            if (type == MapArea.E_Type.Boss)
            {
                RecheckGrabBoss();
            }
        }
        private void OnStageLoadFinish()
@@ -126,6 +133,14 @@
            if (!(StageManager.Instance.CurrentStage is DungeonStage))
            {
                fairyGrabBossDict.Clear();
            }
        }
        private void OnFightNpcUpdate(uint npcId)
        {
            if (bosses.Contains((int)npcId))
            {
                RecheckGrabBoss();
            }
        }
@@ -142,9 +157,9 @@
                return;
            }
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var lineId = PlayerDatas.Instance.baseData.FBID;
            if (!GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(mapId)
                || lineId != GeneralConfig.Instance.fairyGrabBossMapLines[mapId])
            var grabBossLine = GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(mapId) ?
                GeneralConfig.Instance.fairyGrabBossMapLines[mapId] : 1;
            if (PlayerDatas.Instance.baseData.FBID != grabBossLine - 1)
            {
                CloseGrabBossHint();
                return;
@@ -326,6 +341,24 @@
            return false;
        }
        /// <summary>
        /// 只给地图界面用,谨慎使用
        /// </summary>
        /// <param name="lineId"></param>
        /// <returns></returns>
        public bool TryGetFairyGrabBossLine(out int lineId)
        {
            lineId = 0;
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapLinesDict = GeneralConfig.Instance.fairyGrabBossMapLines;
            if (mapLinesDict != null && mapLinesDict.ContainsKey(mapId))
            {
                lineId = mapLinesDict[mapId];
                return true;
            }
            return false;
        }
        public class FairyGrabBossInfo
        {
            public int npcId { get; private set; }
System/WorldMap/MapLineBehaviour.cs
@@ -15,6 +15,7 @@
        [SerializeField] Text m_Title;
        MapModel model { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        MapLine line;
@@ -23,7 +24,16 @@
            base.Display(_data);
            line = (MapLine)_data;
            m_Title.text = Language.Get("line", line.lineIndex);
            var grabBossLine = 0;
            if (fairyGrabBossModel.TryGetFairyGrabBossLine(out grabBossLine) && line.lineIndex == grabBossLine)
            {
                m_Title.text = Language.Get("FairyGrabBossLine");
            }
            else
            {
                m_Title.text = Language.Get("line", line.lineIndex);
            }
        }
        public override void Dispose()
System/WorldMap/MapModel.cs
@@ -53,6 +53,7 @@
        int mapUnLockIndex = 0;
        PlayerTaskDatas taskModel { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        public event Action<int> selectLocalMapEventPointEvent;
        public event Action<int> mapLinesUpdateEvent;
@@ -186,7 +187,9 @@
        {
            if (mapLines.ContainsKey(_mapId))
            {
                return mapLines[_mapId];
                List<MapLine> _mapLines = new List<MapLine>(mapLines[_mapId]);
                CheckSpecialLines(_mapLines);
                return _mapLines;
            }
            else
            {
@@ -194,6 +197,22 @@
            }
        }
        void CheckSpecialLines(List<MapLine> list)
        {
            var lineId = 0;
            if (fairyGrabBossModel.TryGetFairyGrabBossLine(out lineId) && !fairyGrabBossModel.InActivityTime)
            {
                var index = list.FindIndex((x) =>
                {
                    return x.lineIndex == lineId;
                });
                if (index != -1)
                {
                    list.RemoveAt(index);
                }
            }
        }
        public void UpdateMapLines(HA006_tagGCPyServerMapState _serverInfo)
        {
            for (int i = 0; i < _serverInfo.MapCount; i++)