OSDN Git Service

演習の獲得計算値が正しく計算されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 18 Nov 2018 11:37:38 +0000 (20:37 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 18 Nov 2018 11:37:38 +0000 (20:37 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/MiscTextInfo.cs
KancolleSniffer/Model/PracticeExp.cs

index fa7050f..0a80db9 100644 (file)
@@ -729,6 +729,17 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 演習の獲得経験値を計算する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeExpPoint()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "practice_004");\r
+            PAssert.That(() => sniffer.MiscText == "[演習情報]\r\n敵艦隊名 : 第一艦隊\r\n獲得経験値 : 878\r\nS勝利 : 1053");\r
+        }\r
+\r
+        /// <summary>\r
         /// 新規のドロップ艦の初期装備数を登録する\r
         /// </summary>\r
         [TestMethod]\r
index 95e7b72..df2df6b 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 95e7b72218e86a99374eeba1dcfa63db7a582d49
+Subproject commit df2df6bd0b7a6234a1bd26c8132812e80182b6c3
index ea61e7e..7d9126b 100644 (file)
@@ -14,7 +14,6 @@
 \r
 using System.Collections.Generic;\r
 using System.Linq;\r
-using static System.Math;\r
 \r
 namespace KancolleSniffer.Model\r
 {\r
index e342b2c..b553d64 100644 (file)
@@ -30,11 +30,15 @@ namespace KancolleSniffer.Model
 \r
         public static double GetExp(int ship1Lv, int ship2Lv)\r
         {\r
-            return ExpTable[Min(ship1Lv, ExpTable.Length) - 1] / 100.0 +\r
+            var raw = ExpTable[Min(ship1Lv, ExpTable.Length) - 1] / 100.0 +\r
                       ExpTable[Min(ship2Lv, ExpTable.Length) - 1] / 300.0;\r
+            return raw >= 500 ? 500 + (int)Sqrt(raw - 500) : (int)raw;\r
         }\r
 \r
-        public static double TrainingCruiserBonus(IReadOnlyList<ShipStatus> fleet)\r
+        public static double TrainingCruiserBonus(IReadOnlyList<ShipStatus> fleet) =>\r
+            1.0 + TrainingCruiserBonusRate(fleet);\r
+\r
+        private static double TrainingCruiserBonusRate(IReadOnlyList<ShipStatus> fleet)\r
         {\r
             if (fleet[0].Spec.IsTrainingCruiser)\r
             {\r