OSDN Git Service

演習ティータイム!と最精鋭!主力オブ主力、演習開始!のカウンターを実装する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 18 Oct 2020 13:07:58 +0000 (22:07 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 18 Oct 2020 13:07:58 +0000 (22:07 +0900)
KancolleSniffer.Test/QuestCounterTest.cs
KancolleSniffer/Model/QuestCountList.cs
KancolleSniffer/Model/QuestCounter.cs
KancolleSniffer/Model/QuestInfo.cs

index 7033628..cd27081 100644 (file)
@@ -1574,6 +1574,60 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 345: 演習ティータイム!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_345()\r
+        {\r
+            var count = InjectQuest(345);\r
+\r
+            _battleInfo.InjectResultStatus(new []{ShipStatus("Warspite"), ShipStatus("金剛"), ShipStatus("Ark Royal"), ShipStatus("Richelieu"), ShipStatus("Perth")},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            InjectPracticeResult("B");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus("Jervis");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("Janus");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[1] = ShipStatus("Richelieu");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 346: 最精鋭!主力オブ主力、演習開始!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_346()\r
+        {\r
+            var count = InjectQuest(346);\r
+\r
+            _battleInfo.InjectResultStatus(new []{ShipStatus("夕雲改二"), ShipStatus("巻雲改二"), ShipStatus("風雲改二"), ShipStatus("秋雲改")},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus("秋雲改二");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("綾波改二");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now);\r
+        }\r
+\r
+        /// <summary>\r
         /// 402: 「遠征」を3回成功させよう!\r
         /// 403: 「遠征」を10回成功させよう!\r
         /// 404: 大規模遠征作戦、発令!\r
index 126bae8..8a47055 100644 (file)
@@ -28,6 +28,7 @@ namespace KancolleSniffer.Model
         private const QuestInterval Yearly5 = QuestInterval.Yearly5;\r
         private const QuestInterval Yearly8 = QuestInterval.Yearly8;\r
         private const QuestInterval Yearly9 = QuestInterval.Yearly9;\r
+        private const QuestInterval Yearly10 = QuestInterval.Yearly10;\r
 \r
         /// <summary>\r
         /// このテーブルは七四式電子観測儀を参考に作成した。\r
@@ -92,6 +93,8 @@ namespace KancolleSniffer.Model
             {337, new QuestPractice {Interval = Daily, Max = 3, Rank = "S", Material = new[] {0, 0, 0, 3}, Shift = 2}}, // 337: 「十八駆」演習!\r
             {339, new QuestPractice {Interval = Daily, Max = 3, Rank = "S", Material = new[] {0, 0, 8, 3}, Shift = 2}}, // 339: 「十九駆」演習!\r
             {342, new QuestPractice {Interval = Quarterly, Max = 4, Rank = "A", Material = new[] {0, 4, 4, 0}, Shift = 1}}, // 342: 小艦艇群演習強化任務\r
+            {345, new QuestPractice {Interval = Yearly10, Max = 4, Rank = "A", Material = new[] {0, 5, 4, 0}, Shift = 1}}, // 345: 演習ティータイム!\r
+            {346, new QuestPractice {Interval = Yearly10, Max = 4, Rank = "S", Material = new[] {0, 4, 6, 0}, Shift = 1}}, // 346: 最精鋭!主力オブ主力、演習開始!\r
 \r
             {402, new QuestMission {Interval = Daily, Max = 3, Material = new[] {0, 0, 1, 0}}}, // 402: 「遠征」を3回成功させよう!\r
             {403, new QuestMission {Interval = Daily, Max = 10, Material = new[] {0, 0, 0, 0}}}, // 403: 「遠征」を10回成功させよう!\r
index 56ee538..1a99e57 100644 (file)
@@ -337,6 +337,10 @@ namespace KancolleSniffer.Model
                 case 342:\r
                     var t12 = specs.Types.Count(type => type == 1 || type == 2);\r
                     return t12 >= 4 || t12 >= 3 && specs.Types.Intersect(new[] {3, 4, 7, 21}).Any();\r
+                case 345:\r
+                    return specs.Names.Count("Warspite", "金剛", "Ark Royal", "Nelson", "Jervis", "Janus") >= 4;\r
+                case 346:\r
+                    return specs.Names.Count("夕雲改二", "巻雲改二", "風雲改二", "秋雲改二") == 4;\r
                 default:\r
                     return true;\r
             }\r
index d45d699..3d94a64 100644 (file)
@@ -66,7 +66,8 @@ namespace KancolleSniffer.Model
         Yearly3,\r
         Yearly5,\r
         Yearly8,\r
-        Yearly9\r
+        Yearly9,\r
+        Yearly10\r
     }\r
 \r
     public class QuestInfo : IHaveState\r
@@ -201,6 +202,7 @@ namespace KancolleSniffer.Model
                 QuestInterval.Yearly5 => CrossBoundary(new DateTime(_now.Year, 5, 1, 5, 0, 0)),\r
                 QuestInterval.Yearly8 => CrossBoundary(new DateTime(_now.Year, 8, 1, 5, 0, 0)),\r
                 QuestInterval.Yearly9 => CrossBoundary(new DateTime(_now.Year, 9, 1, 5, 0, 0)),\r
+                QuestInterval.Yearly10 => CrossBoundary(new DateTime(_now.Year, 10, 1, 5, 0, 0)),\r
                 _ => false\r
             };\r
         }\r