OSDN Git Service

随伴艦一括解除が反映されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 18 Aug 2018 10:26:45 +0000 (19:26 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 18 Aug 2018 10:26:45 +0000 (19:26 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/Fleet.cs
KancolleSniffer/Model/ShipInfo.cs

index ac6b809..bdd189c 100644 (file)
@@ -527,6 +527,18 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 随伴艦一括解除を実行する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void WithdrawAccompanyingShipsAtOnce()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "deck_006");\r
+            var result = sniffer.Fleets[0].Deck;\r
+            PAssert.That(() => new[] {135, -1, -1, -1, -1, -1}.SequenceEqual(result));\r
+        }\r
+\r
+        /// <summary>\r
         /// 編成展開を正しく反映する\r
         /// </summary>\r
         [TestMethod]\r
index 58854d8..4ae11cc 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 58854d8f5962f024c081fb2dc655570e18880d74
+Subproject commit 4ae11cc2466653d6179e2b38d602643f256098a0
index 3e0be5f..9126ec7 100644 (file)
@@ -126,15 +126,15 @@ namespace KancolleSniffer.Model
             return prev;\r
         }\r
 \r
-        public void WithdrowShip(int index)\r
+        public void WithrawAccompanyingShips()\r
+        {\r
+            for (var i = 1; i < _deck.Length; i++)\r
+                _deck[i] = -1;\r
+            SetDeck();\r
+        }\r
+\r
+        public void WithdrawShip(int index)\r
         {\r
-            if (index == -1) // 旗艦以外解除\r
-            {\r
-                for (var i = 1; i < _deck.Length; i++)\r
-                    _deck[i] = -1;\r
-                SetDeck();\r
-                return;\r
-            }\r
             var dst = index;\r
             for (var src = index + 1; src < _deck.Length; src++)\r
             {\r
index 441440f..f272ced 100644 (file)
@@ -215,9 +215,14 @@ namespace KancolleSniffer.Model
             var dstIdx = int.Parse(values["api_ship_idx"]);\r
             var shipId = int.Parse(values["api_ship_id"]);\r
 \r
-            if (dstIdx == -1 || shipId == -1) // 解除\r
+            if (shipId == -2)\r
             {\r
-                dstFleet.WithdrowShip(dstIdx);\r
+                dstFleet.WithrawAccompanyingShips();\r
+                return;\r
+            }\r
+            if (shipId == -1)\r
+            {\r
+                dstFleet.WithdrawShip(dstIdx);\r
                 return;\r
             }\r
             var srcFleet = FindFleet(shipId, out var srcIdx);\r
@@ -227,7 +232,7 @@ namespace KancolleSniffer.Model
             // 入れ替えの場合\r
             srcFleet.SetShip(srcIdx, prevShipId);\r
             if (prevShipId == -1)\r
-                srcFleet.WithdrowShip(srcIdx);\r
+                srcFleet.WithdrawShip(srcIdx);\r
         }\r
 \r
         private Fleet FindFleet(int ship, out int idx)\r
@@ -277,7 +282,7 @@ namespace KancolleSniffer.Model
                 if (delitem)\r
                     _itemInventry.Remove(_shipInventry[shipId].AllSlot);\r
                 var srcFleet = FindFleet(shipId, out var srcIdx);\r
-                srcFleet?.WithdrowShip(srcIdx);\r
+                srcFleet?.WithdrawShip(srcIdx);\r
                 _shipInventry.Remove(shipId);\r
             }\r
         }\r