}\r
\r
/// <summary>\r
+ /// 副砲の改修レベルの効果を計算する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void SecondaryGunFirepowerLevelBonus()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "firepower_001");\r
+ // ReSharper disable CompareOfFloatsByEqualityOperator\r
+ PAssert.That(() => sniffer.GetShipStatuses(0)[0].EffectiveFirepower == 93.5);\r
+ PAssert.That(() => sniffer.GetShipStatuses(0)[1].EffectiveFirepower == 82.5);\r
+ // ReSharper restore CompareOfFloatsByEqualityOperator\r
+ }\r
+\r
+ /// <summary>\r
/// 編成で空き番号を使ったローテートを正しく反映する\r
/// </summary>\r
[TestMethod]\r
case 3: // 大口径\r
return 1.5 * Sqrt(Level);\r
case 4: // 副砲\r
- return Sqrt(Level);\r
+ return SecondaryGunLevelBonus;\r
case 14: // ソナー\r
case 15: // 爆雷\r
return 0.75 * Sqrt(Level);\r
}\r
}\r
\r
+ public double SecondaryGunLevelBonus\r
+ {\r
+ get\r
+ {\r
+ switch (Spec.Id)\r
+ {\r
+ case 10: // 12.7cm連装高角砲\r
+ case 66: // 8cm高角砲\r
+ case 220: // 8cm高角砲改+増設機銃\r
+ case 275: // 10cm連装高角砲改+増設機銃\r
+ return 0.2 * Level;\r
+ case 12: // 15.5cm三連装副砲\r
+ case 234: // 15.5cm三連装副砲改\r
+ case 247: // 15.2cm三連装砲\r
+ return 0.3 * Level;\r
+ default:\r
+ return Sqrt(Level);\r
+ }\r
+ }\r
+ }\r
+\r
public double TorpedoLevelBonus\r
{\r
get\r
case 3: // 大口径\r
return Sqrt(Level);\r
case 4: // 副砲\r
- return Sqrt(Level);\r
+ return SecondaryGunLevelBonus;\r
case 5: // 魚雷\r
case 19: // 徹甲弾\r
case 29: // 探照灯\r