OSDN Git Service

噴式強襲に対応する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 11 Dec 2016 07:02:40 +0000 (16:02 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 11 Dec 2016 07:03:28 +0000 (16:03 +0900)
KancolleSniffer/BattleInfo.cs

index 9502baa..6a7ce64 100644 (file)
@@ -230,19 +230,19 @@ namespace KancolleSniffer
             var fc = _guard.Length > 0;\r
             var ec = _enemyGuardHp.Length > 0;\r
             var both = fc && ec;\r
+            if (json.api_air_base_injection())\r
+            {\r
+                var obj = json.api_air_base_injection;\r
+                CalcAirBaseAttackDamage(obj.IsArray() ? obj : new[] {obj});\r
+            }\r
             if (json.api_air_base_attack())\r
                 CalcAirBaseAttackDamage(json.api_air_base_attack);\r
-            if (json.api_kouku.api_stage3 != null)\r
-                CalcSimpleDamage(json.api_kouku.api_stage3, _friend, _enemyHp);\r
-            if (json.api_kouku.api_stage3_combined() && json.api_kouku.api_stage3_combined != null)\r
-                CalcSimpleDamage(json.api_kouku.api_stage3_combined, _guard, _enemyGuardHp);\r
+            if (json.api_injection_kouku()) // 噴式強襲\r
+                CalcKoukuDamage(json.api_injection_kouku);\r
+            if (json.api_kouku())\r
+                CalcKoukuDamage(json.api_kouku);\r
             if (json.api_kouku2()) // 航空戦2回目\r
-            {\r
-                if (json.api_kouku2.api_stage3 != null)\r
-                    CalcSimpleDamage(json.api_kouku2.api_stage3, _friend, _enemyHp);\r
-                if (json.api_kouku2.api_stage3_combined() && json.api_kouku2.api_stage3_combined != null)\r
-                    CalcSimpleDamage(json.api_kouku2.api_stage3_combined, _guard, _enemyGuardHp);\r
-            }\r
+                CalcKoukuDamage(json.api_kouku2);\r
             if (!json.api_opening_atack()) // 航空戦のみ\r
                 return;\r
             if (json.api_support_info() && json.api_support_info != null)\r
@@ -282,9 +282,13 @@ namespace KancolleSniffer
             if (json.api_hougeki2() && json.api_hougeki2 != null)\r
             {\r
                 if (json.api_hougeki2.api_at_eflag())\r
+                {\r
                     CalcCombinedHougekiDamage(json.api_hougeki2, _friend, _guard, _enemyHp, _enemyGuardHp);\r
+                }\r
                 else\r
+                {\r
                     CalcHougekiDamage(json.api_hougeki2, _friend, _enemyHp);\r
+                }\r
             }\r
             if (json.api_hougeki3() && json.api_hougeki3 != null)\r
             {\r
@@ -322,24 +326,23 @@ namespace KancolleSniffer
             }\r
             else if (json.api_support_airatack != null)\r
             {\r
-                var airattack = json.api_support_airatack;\r
-                if (airattack.api_stage3 != null)\r
-                    CalcSimpleDamage(airattack.api_stage3.api_edam, _enemyHp);\r
-                if (airattack.api_stage3_combined() && airattack.api_stage3_combined != null)\r
-                    CalcSimpleDamage(airattack.api_stage3_combined.api_edam, _enemyGuardHp);\r
+                CalcKoukuDamage(json.api_support_airatack);\r
             }\r
         }\r
 \r
         private void CalcAirBaseAttackDamage(dynamic json)\r
         {\r
             foreach (var entry in json)\r
-            {\r
-                if (!entry.api_stage3() || entry.api_stage3 == null)\r
-                    continue;\r
-                CalcSimpleDamage(entry.api_stage3.api_edam, _enemyHp);\r
-                if (entry.api_stage3_combined())\r
-                    CalcSimpleDamage(entry.api_stage3_combined.api_edam, _enemyGuardHp);\r
-            }\r
+                CalcKoukuDamage(entry);\r
+        }\r
+\r
+        private void CalcKoukuDamage(dynamic json)\r
+        {\r
+            if (!json.api_stage3() || json.api_stage3 == null)\r
+                return;\r
+            CalcSimpleDamage(json.api_stage3, _friend, _enemyHp);\r
+            if (json.api_stage3_combined())\r
+                CalcSimpleDamage(json.api_stage3_combined, _guard, _enemyGuardHp);\r
         }\r
 \r
         private void CalcSimpleDamage(dynamic json, Record[] friend, int[] enemy)\r