OSDN Git Service

制空値の計算などを噴式機に対応させる
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 11 Dec 2016 07:59:50 +0000 (16:59 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 11 Dec 2016 11:37:04 +0000 (20:37 +0900)
KancolleSniffer/FleetPanel.cs
KancolleSniffer/ItemInfo.cs

index 5781c28..e213fb7 100644 (file)
@@ -82,19 +82,15 @@ namespace KancolleSniffer
                         if (item.Spec.Name == "ドラム缶(輸送用)")\r
                             drum++;\r
                         var airspec = "";\r
-                        if (item.Spec.CanAirCombat)\r
+                        if (item.Spec.IsDiveBomber) // 爆撃\r
                         {\r
-                            if (item.Spec.Type == 7 || item.Spec.Type == 11) // 爆撃\r
-                            {\r
-                                airspec = "航空戦 " + (25 + (int)(item.Spec.Bomber * Math.Sqrt(onslot)));\r
-                            }\r
-                            else if (item.Spec.Type == 8)\r
-                            {\r
-                                var normal = 25 + item.Spec.Torpedo * Math.Sqrt(onslot);\r
-                                airspec = "航空戦 " + (int)(normal * 0.8) + "/" + (int)(normal * 1.5);\r
-                            }\r
+                            airspec = "航空戦 " + (25 + (int)(item.Spec.Bomber * Math.Sqrt(onslot)));\r
+                        }\r
+                        else if (item.Spec.IsTorpedoBomber)\r
+                        {\r
+                            var normal = 25 + item.Spec.Torpedo * Math.Sqrt(onslot);\r
+                            airspec = "航空戦 " + (int)(normal * 0.8) + "/" + (int)(normal * 1.5);\r
                         }\r
-\r
                         equips.Add(new EquipColumn\r
                         {\r
                             Equip = GenEquipString(item, onslot, max),\r
index 50f6ed4..0baac4e 100644 (file)
@@ -52,6 +52,9 @@ namespace KancolleSniffer
                     case 8: // 艦攻\r
                     case 11: // 水爆\r
                     case 45: // 水戦\r
+                    case 56: // 噴式戦闘機\r
+                    case 57: // 噴式戦闘爆撃機\r
+                    case 58: // 噴式攻撃機\r
                         return true;\r
                 }\r
                 return false;\r
@@ -97,12 +100,20 @@ namespace KancolleSniffer
                     case 45:\r
                     case 47: // 陸上攻撃機\r
                     case 48: // 局地戦闘機\r
+                    case 56:\r
+                    case 57:\r
+                    case 58:\r
+                    case 59: // 噴式偵察機\r
                         return true;\r
                 }\r
                 return false;\r
             }\r
         }\r
 \r
+        public bool IsDiveBomber => Type == 7 || Type == 11 || Type == 57;\r
+\r
+        public bool IsTorpedoBomber => Type == 8 || Type == 58;\r
+\r
         public int RealAntiSubmarine\r
         {\r
             get\r
@@ -260,6 +271,9 @@ namespace KancolleSniffer
                         return Color.FromArgb(57, 182, 78);\r
                     case 38: // 局地戦闘機\r
                         return Color.FromArgb(57, 182, 78);\r
+                    case 39: // 噴式景雲改\r
+                    case 40: // 橘花改\r
+                        return Color.FromArgb(72, 178, 141);\r
                     default:\r
                         return SystemColors.Control;\r
                 }\r
@@ -297,22 +311,36 @@ namespace KancolleSniffer
             Sqrt(9.9), Sqrt(12.0)\r
         };\r
 \r
-        private readonly Dictionary<int, int[]> _alvTypeBonus = new Dictionary<int, int[]>\r
+        private int[] AlvTypeBonusTable\r
         {\r
-            {06, new[] {0, 0, 2, 5, 9, 14, 14, 22}}, // 艦戦\r
-            {07, new[] {0, 0, 0, 0, 0, 0, 0, 0}}, // 艦爆\r
-            {08, new[] {0, 0, 0, 0, 0, 0, 0, 0}}, // 艦攻\r
-            {11, new[] {0, 0, 1, 1, 1, 3, 3, 6}}, // 水爆\r
-            {45, new[] {0, 0, 2, 5, 9, 14, 14, 22}}, // 水戦\r
-            {48, new[] {0, 0, 2, 5, 9, 14, 14, 22}} // 局地戦闘機\r
-        };\r
+            get\r
+            {\r
+                switch (Spec.Type)\r
+                {\r
+                    case 6: // 艦戦\r
+                    case 45: // 水戦\r
+                    case 48: // 局地戦闘機\r
+                    case 56: // 噴式戦闘機\r
+                        return new[] {0, 0, 2, 5, 9, 14, 14, 22};\r
+                    case 7: // 艦爆\r
+                    case 8: // 艦攻\r
+                    case 57: // 噴式戦闘爆撃機\r
+                    case 58: // 噴式攻撃機\r
+                        return new[] {0, 0, 0, 0, 0, 0, 0, 0};\r
+                    case 11: // 水爆\r
+                        return new[] {0, 0, 1, 1, 1, 3, 3, 6};\r
+                    default:\r
+                        return null;\r
+                }\r
+            }\r
+        }\r
 \r
         public double[] AlvBonus\r
         {\r
             get\r
             {\r
-                int[] table;\r
-                if (!_alvTypeBonus.TryGetValue(Spec.Type, out table))\r
+                var table = AlvTypeBonusTable;\r
+                if (table == null)\r
                     return new[] {0.0, 0.0};\r
                 return new[] {table[Alv] + _alvBonusMin[Alv], table[Alv] + _alvBonusMax[Alv]};\r
             }\r