From 9c639d711300f6c7dbd7175bfad207f7ab30feef Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期四, 30 八月 2018 16:36:13 +0800
Subject: [PATCH] 2960 对活动线路进行排序

---
 System/WorldMap/MapModel.cs |   38 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/System/WorldMap/MapModel.cs b/System/WorldMap/MapModel.cs
index 5118ce7..0a11480 100644
--- a/System/WorldMap/MapModel.cs
+++ b/System/WorldMap/MapModel.cs
@@ -37,6 +37,7 @@
         List<int> sortedMapEventPoints = new List<int>();
         List<int> sortedHangUpPoints = new List<int>();
         List<int> sortedMaps = new List<int>();
+        List<MapLine> sortedMapLines = new List<MapLine>();
 
         int m_NewUnLockedMap = 0;
         public int newUnLockedMap {
@@ -185,13 +186,35 @@
 
         public List<MapLine> GetMapLines(int _mapId)
         {
+            sortedMapLines.Clear();
             if (mapLines.ContainsKey(_mapId))
             {
-                return mapLines[_mapId];
+                sortedMapLines.AddRange(mapLines[_mapId]);
+                CheckActivityLine();
+                sortedMapLines.Sort(SortMaplines);
+                return sortedMapLines;
             }
             else
             {
                 return null;
+            }
+        }
+
+        void CheckActivityLine()
+        {
+            var activityLine = 0;
+            fairyGrabBossModel.TryGetFairyGrabBossLine(out activityLine);
+            if (activityLine != 0 && !fairyGrabBossModel.InActivityTime
+                && PlayerDatas.Instance.baseData.FBID != activityLine)
+            {
+                var index = sortedMapLines.FindIndex((x) =>
+                {
+                    return activityLine + 1 == x.lineIndex;
+                });
+                if (index != -1)
+                {
+                    sortedMapLines.RemoveAt(index);
+                }
             }
         }
 
@@ -627,7 +650,18 @@
 
         }
 
-
+        int SortMaplines(MapLine x, MapLine y)
+        {
+            var activityline = 0;
+            fairyGrabBossModel.TryGetFairyGrabBossLine(out activityline);
+            bool _isActivityLinex = activityline != 0 && x.lineIndex == activityline + 1;
+            bool _isActivityLiney = activityline != 0 && y.lineIndex == activityline + 1;
+            if (_isActivityLinex != _isActivityLiney)
+            {
+                return -_isActivityLinex.CompareTo(_isActivityLiney);
+            }
+            return x.lineIndex.CompareTo(y.lineIndex);
+        }
     }
 
     public struct WorldMapArea

--
Gitblit v1.8.0