OSDN Git Service

拡張した編成記録枠にすぐに記録するとエラーになるのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / ExMapInfo.cs
index 806f9b2..590f8c2 100644 (file)
@@ -35,7 +35,8 @@ namespace KancolleSniffer
                 {25, new ClearStatus {Map = 25, Cleared = false, Rate = 100}},\r
                 {35, new ClearStatus {Map = 35, Cleared = false, Rate = 150}},\r
                 {45, new ClearStatus {Map = 45, Cleared = false, Rate = 180}},\r
-                {55, new ClearStatus {Map = 55, Cleared = false, Rate = 200}}\r
+                {55, new ClearStatus {Map = 55, Cleared = false, Rate = 200}},\r
+                {65, new ClearStatus {Map = 65, Cleared = false, Rate = 250}}\r
             };\r
 \r
         private DateTime _lastReset;\r
@@ -46,14 +47,14 @@ namespace KancolleSniffer
 \r
         public void InspectMapInfo(dynamic json)\r
         {\r
-            foreach (var entry in json)\r
+            foreach (var entry in json.api_map_info() ? json.api_map_info : json)\r
             {\r
                 var map = (int)entry.api_id;\r
                 if (map % 10 <= 4)\r
                     continue;\r
                 ClearStatus stat;\r
                 if (!_clearStatus.TryGetValue(map, out stat))\r
-                    _clearStatus.Add(map, stat = new ClearStatus { Map = map});\r
+                    continue;\r
                 var prev = stat.Cleared;\r
                 stat.Cleared = (int)entry.api_cleared == 1;\r
                 if (prev != stat.Cleared)\r
@@ -73,7 +74,7 @@ namespace KancolleSniffer
                 return;\r
             ClearStatus stat;\r
             if (!_clearStatus.TryGetValue(_currentMap, out stat))\r
-                _clearStatus.Add(_currentMap, stat = new ClearStatus{Map = _currentMap});\r
+                _clearStatus.Add(_currentMap, stat = new ClearStatus {Map = _currentMap});\r
             stat.Cleared = true;\r
             stat.Rate = (int)json.api_get_eo_rate;\r
             NeedSave = true;\r
@@ -90,7 +91,7 @@ namespace KancolleSniffer
                 return;\r
             ClearStatus stat;\r
             if (!_clearStatus.TryGetValue(_currentMap, out stat))\r
-                _clearStatus.Add(_currentMap, stat = new ClearStatus{Map = _currentMap});\r
+                _clearStatus.Add(_currentMap, stat = new ClearStatus {Map = _currentMap});\r
             stat.Cleared = true;\r
             stat.Rate = rate;\r
             NeedSave = true;\r
@@ -119,7 +120,7 @@ namespace KancolleSniffer
             NeedSave = false;\r
             status.ExMapState = new ExMapState\r
             {\r
-                ClearStatusList = _clearStatus.Values.ToArray(),\r
+                ClearStatusList = _clearStatus.Values.ToList(),\r
                 LastReset = _lastReset\r
             };\r
         }\r
@@ -130,12 +131,16 @@ namespace KancolleSniffer
                 return;\r
             _lastReset = status.ExMapState.LastReset;\r
             foreach (var s in status.ExMapState.ClearStatusList)\r
+            {\r
+                if (s.Map == 65)\r
+                    s.Rate = 250;\r
                 _clearStatus[s.Map] = s;\r
+            }\r
         }\r
 \r
         public class ExMapState\r
         {\r
-            public ClearStatus[] ClearStatusList { get; set; }\r
+            public List<ClearStatus> ClearStatusList { get; set; }\r
             public DateTime LastReset { get; set; }\r
         }\r
     }\r