OSDN Git Service

ShipInfoから出撃中の艦隊番号を取れるようにする
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 9 Dec 2019 12:13:15 +0000 (21:13 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 9 Dec 2019 12:13:15 +0000 (21:13 +0900)
KancolleSniffer/MainForm.cs
KancolleSniffer/Model/ShipInfo.cs
KancolleSniffer/Sniffer.cs

index 8dd1d51..8505b2c 100644 (file)
@@ -673,15 +673,14 @@ namespace KancolleSniffer
 \r
         private void SetCurrentFleet()\r
         {\r
-            var states = Sniffer.Fleets.Select(fleet => fleet.State).ToArray();\r
-            var inSortie = states.Any(state => state >= FleetState.Sortie);\r
-            if (_inSortie || !inSortie)\r
+            var inSortie = Sniffer.InSortie;\r
+            if (_inSortie || inSortie == -1)\r
             {\r
-                _inSortie = inSortie;\r
+                _inSortie = inSortie == -1;\r
                 return;\r
             }\r
             _inSortie = true;\r
-            if (states[0] == FleetState.Sortie && states[1] == FleetState.Sortie)\r
+            if (inSortie == 10)\r
             {\r
                 _combinedFleet = true;\r
                 _currentFleet = 0;\r
@@ -689,7 +688,7 @@ namespace KancolleSniffer
             else\r
             {\r
                 _combinedFleet = false;\r
-                _currentFleet = Array.FindIndex(states, state => state >= FleetState.Sortie);\r
+                _currentFleet = inSortie;\r
             }\r
         }\r
 \r
index ad35f19..54e33e5 100644 (file)
@@ -12,6 +12,7 @@
 // See the License for the specific language governing permissions and\r
 // limitations under the License.\r
 \r
+using System;\r
 using System.Collections.Generic;\r
 using System.Linq;\r
 using KancolleSniffer.Util;\r
@@ -383,6 +384,18 @@ namespace KancolleSniffer.Model
 \r
         public IReadOnlyList<Fleet> Fleets => _fleets;\r
 \r
+        public int InSortie\r
+        {\r
+            get\r
+            {\r
+                var sorties = _fleets.Select(f => f.State >= FleetState.Sortie).ToArray();\r
+                if (sorties[0] && sorties[1])\r
+                    return 10;\r
+                var idx = Array.FindIndex(sorties, s => s);\r
+                return idx;\r
+            }\r
+        }\r
+\r
         public ShipStatus GetShip(int id) => _shipInventory[id];\r
 \r
         public void SetItemHolder()\r
index c7b6555..7679e43 100644 (file)
@@ -634,6 +634,8 @@ namespace KancolleSniffer
 \r
         public IReadOnlyList<Fleet> Fleets => _shipInfo.Fleets;\r
 \r
+        public int InSortie => _shipInfo.InSortie;\r
+\r
         public ShipInfo.ShipStatusPair[] BattleResultStatusDiff => _shipInfo.BattleResultDiff;\r
 \r
         public bool IsBattleResultError => _shipInfo.IsBattleResultError || _battleInfo.DisplayedResultRank.IsError;\r