OSDN Git Service

出撃したときに自動的に出撃した艦隊に表示を切り替える
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 10 Mar 2018 10:26:48 +0000 (19:26 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 11 Mar 2018 14:51:02 +0000 (23:51 +0900)
KancolleSniffer/ConditionTimer.cs
KancolleSniffer/MainForm.cs
KancolleSniffer/ShipInfo.cs
KancolleSniffer/Sniffer.cs

index 6b12551..2a76d2d 100644 (file)
@@ -80,7 +80,7 @@ namespace KancolleSniffer
 \r
         public DateTime GetTimer(int fleet)\r
         {\r
-            if (_shipInfo.InMission(fleet) || _shipInfo.InSortie(fleet))\r
+            if (_shipInfo.InMission[fleet] || _shipInfo.InSortie[fleet])\r
                 return DateTime.MinValue;\r
             var cond = _shipInfo.GetShipStatuses(fleet).Select(s => s.Cond).DefaultIfEmpty(49).Min();\r
             if (cond >= 49)\r
@@ -96,7 +96,7 @@ namespace KancolleSniffer
                 return result;\r
             for (var f = 0; f < result.Length; f++)\r
             {\r
-                if (_shipInfo.InMission(f) || _shipInfo.InSortie(f))\r
+                if (_shipInfo.InMission[f] || _shipInfo.InSortie[f])\r
                     continue;\r
                 var timer = GetTimer(f);\r
                 if (timer == DateTime.MinValue || prev < _lastUpdate)\r
index e13a0ad..69ceb3f 100644 (file)
@@ -49,6 +49,7 @@ namespace KancolleSniffer
         private string _debugLogFile;\r
         private IEnumerator<string> _playLog;\r
         private DateTime _prev, _now;\r
+        private bool _inSortie;\r
 \r
         private readonly ErrorDialog _errorDialog = new ErrorDialog();\r
         private readonly ErrorLog _errorLog;\r
@@ -603,6 +604,7 @@ namespace KancolleSniffer
 \r
         private void UpdateShipInfo()\r
         {\r
+            SetCurrentFleet();\r
             UpdatePanelShipInfo();\r
             NotifyDamagedShip();\r
             UpdateChargeInfo();\r
@@ -611,6 +613,27 @@ namespace KancolleSniffer
                 _listForm.UpdateList();\r
         }\r
 \r
+        private void SetCurrentFleet()\r
+        {\r
+            var inSortie = _sniffer.InSortie;\r
+            if (_inSortie || !inSortie.Any(x => x))\r
+            {\r
+                _inSortie = inSortie.Any(x => x);\r
+                return;\r
+            }\r
+            _inSortie = true;\r
+            if (inSortie[0] && inSortie[1])\r
+            {\r
+                _combinedFleet = true;\r
+                _currentFleet = 0;\r
+            }\r
+            else\r
+            {\r
+                _combinedFleet = false;\r
+                _currentFleet = Array.FindIndex(inSortie, x => x);\r
+            }\r
+        }\r
+\r
         private void UpdatePanelShipInfo()\r
         {\r
             var statuses = _sniffer.GetShipStatuses(_currentFleet);\r
@@ -622,6 +645,8 @@ namespace KancolleSniffer
             panelCombinedFleet.Visible = _combinedFleet;\r
             if (_combinedFleet)\r
                 _mainLabels.SetCombinedShipLabels(_sniffer.GetShipStatuses(0), _sniffer.GetShipStatuses(1));\r
+            for (var i = 0; i < _labelCheckFleets.Length; i++)\r
+                _labelCheckFleets[i].Visible = _currentFleet == i;\r
             UpdateAkashiTimer();\r
             UpdateFighterPower(_combinedFleet);\r
             UpdateLoS();\r
@@ -1101,9 +1126,6 @@ namespace KancolleSniffer
             }\r
             _combinedFleet = false;\r
             _currentFleet = fleet;\r
-            foreach (var label in _labelCheckFleets)\r
-                label.Visible = false;\r
-            _labelCheckFleets[fleet].Visible = true;\r
             UpdatePanelShipInfo();\r
         }\r
 \r
index 3981a69..abf64d6 100644 (file)
@@ -369,9 +369,9 @@ namespace KancolleSniffer
 \r
         public ShipSpec GetSpec(int id) => _shipMaster.GetSpec(id);\r
 \r
-        public bool InMission(int fleet) => _inMission[fleet];\r
+        public bool[] InMission => _inMission;\r
 \r
-        public bool InSortie(int fleet) => _inSortie[fleet];\r
+        public bool[] InSortie => _inSortie;\r
 \r
         public int CombinedFleetType => _combinedFleetType;\r
 \r
index dc55231..bce50f6 100644 (file)
@@ -555,6 +555,8 @@ namespace KancolleSniffer
 \r
         public int[] GetDeck(int fleet) => _shipInfo.GetDeck(fleet);\r
 \r
+        public bool[] InSortie => _shipInfo.InSortie;\r
+\r
         public ShipInfo.ShipStatusPair[] BattleResultStatusDiff => _shipInfo.BattleResultDiff;\r
 \r
         public bool IsBattleResultStatusError => _shipInfo.IsBattleResultError;\r