OSDN Git Service

BattleInfoから戦闘APIの遷移を取得できるようにする
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 23 Dec 2016 09:21:57 +0000 (18:21 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 25 Dec 2016 06:43:44 +0000 (15:43 +0900)
KancolleSniffer/BattleInfo.cs
KancolleSniffer/MainForm.cs
KancolleSniffer/Sniffer.cs

index 053022a..85f04d5 100644 (file)
@@ -29,6 +29,14 @@ namespace KancolleSniffer
         E,\r
     }\r
 \r
+    public enum BattleState\r
+    {\r
+        None,\r
+        Day,\r
+        Night,\r
+        Result\r
+    }\r
+\r
     public class BattleInfo\r
     {\r
         private readonly ShipInfo _shipInfo;\r
@@ -43,7 +51,7 @@ namespace KancolleSniffer
         private readonly List<int> _escapingShips = new List<int>();\r
         private int _flagshipRecoveryType;\r
 \r
-        public bool InBattle { get; set; }\r
+        public BattleState BattleState { get; set; }\r
         public string Formation { get; private set; }\r
         public string EnemyFighterPower { get; private set; }\r
         public int AirControlLevel { get; private set; }\r
@@ -51,6 +59,7 @@ namespace KancolleSniffer
         public ShipStatus[] EnemyResultStatus { get; private set; }\r
         public List<AirBattleResult> AirBattleResults { get; } = new List<AirBattleResult>();\r
 \r
+\r
         public BattleInfo(ShipInfo shipInfo, ItemInfo itemInfo)\r
         {\r
             _shipInfo = shipInfo;\r
@@ -59,7 +68,6 @@ namespace KancolleSniffer
 \r
         public void InspectBattle(dynamic json, string url)\r
         {\r
-            InBattle = true;\r
             Formation = FormationName(json);\r
             EnemyFighterPower = CalcEnemyFighterPower(json);\r
             AirControlLevel = CheckAirControlLevel(json);\r
@@ -67,12 +75,14 @@ namespace KancolleSniffer
             SetupResult(json);\r
             if (IsNightBattle(json))\r
             {\r
+                BattleState = BattleState.Night;\r
                 CalcHougekiDamage(json.api_hougeki,\r
                     _guard.Length > 0 ? _guard : _friend,\r
                     json.api_active_deck() && json.api_active_deck[1] != 1 ? _enemyGuardHp : _enemyHp);\r
             }\r
             else\r
             {\r
+                BattleState = BattleState.Day;\r
                 CalcDamage(json, url.EndsWith("battle_water"));\r
             }\r
             ClearEnemyOverKill();\r
@@ -484,6 +494,7 @@ namespace KancolleSniffer
 \r
         public void InspectBattleResult(dynamic json)\r
         {\r
+            BattleState = BattleState.Result;\r
             ShowResult();\r
             CleanupResult();\r
             SetEscapeShips(json);\r
@@ -491,6 +502,7 @@ namespace KancolleSniffer
 \r
         public void InspectPracticeResult(dynamic json)\r
         {\r
+            BattleState = BattleState.Result;\r
             ShowResult(false);\r
             CleanupResult();\r
         }\r
index 8c25e3e..3a4c000 100644 (file)
@@ -559,8 +559,8 @@ namespace KancolleSniffer
             labelEnemyFighterPower.Text = "";\r
             labelFighterPower.ForeColor = DefaultForeColor;\r
             labelResultRank.Text = "判定";\r
-            panelBattleInfo.Visible = _sniffer.Battle.InBattle;\r
-            if (!_sniffer.Battle.InBattle)\r
+            panelBattleInfo.Visible = _sniffer.Battle.BattleState != BattleState.None;\r
+            if (_sniffer.Battle.BattleState == BattleState.None)\r
                 return;\r
             panelBattleInfo.BringToFront();\r
             var battle = _sniffer.Battle;\r
index 7618f1a..27939a1 100644 (file)
@@ -142,7 +142,7 @@ namespace KancolleSniffer
             if (data.api_plane_info())\r
                 _baseAirCoprs.InspectPlaneInfo(data.api_plane_info);\r
             _battleInfo.CleanupResult();\r
-            _battleInfo.InBattle = false;\r
+            _battleInfo.BattleState = BattleState.None;\r
             _shipInfo.ClearEscapedShips();\r
             _miscTextInfo.ClearIfNeeded();\r
             SaveState();\r
@@ -200,14 +200,14 @@ namespace KancolleSniffer
                 // ここだけjsonなので注意\r
                 _shipInfo.InspectShip(json);\r
                 _akashiTimer.CheckFleet();\r
-                _battleInfo.InBattle = false;\r
+                _battleInfo.BattleState = BattleState.None;\r
                 return Update.Item | Update.Ship | Update.Battle;\r
             }\r
             if (url.EndsWith("api_get_member/ship_deck"))\r
             {\r
                 _shipInfo.InspectShip(data);\r
                 _akashiTimer.CheckFleet();\r
-                _battleInfo.InBattle = false;\r
+                _battleInfo.BattleState = BattleState.None;\r
                 return Update.Ship | Update.Battle;\r
             }\r
             if (url.EndsWith("api_get_member/ship3"))\r