OSDN Git Service

AirBattleResultPanelからBattleStateを参照しないようにする
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 17 Aug 2019 08:16:38 +0000 (17:16 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 17 Aug 2019 13:21:08 +0000 (22:21 +0900)
KancolleSniffer/Model/AirBattleResult.cs
KancolleSniffer/Model/BattleInfo.cs
KancolleSniffer/View/AirBattleResultPanel.cs

index f8c1d53..7e96d2d 100644 (file)
@@ -21,6 +21,7 @@ namespace KancolleSniffer.Model
     {\r
         public List<AirBattleRecord> Result = new List<AirBattleRecord>();\r
 \r
+        private bool _updated;\r
         private readonly Func<int, string> _getShipName;\r
         private readonly Func<int[], string[]> _getItemNames;\r
 \r
@@ -39,9 +40,18 @@ namespace KancolleSniffer.Model
             public AirFireResult AirFire { get; set; }\r
         }\r
 \r
+        public bool CheckUpdate()\r
+        {\r
+            if (!_updated)\r
+                return false;\r
+            _updated = false;\r
+            return true;\r
+        }\r
+\r
         public void Clear()\r
         {\r
             Result.Clear();\r
+            _updated = true;\r
         }\r
 \r
         public class StageResult\r
index 6a7e6f3..3657fcf 100644 (file)
@@ -130,6 +130,8 @@ namespace KancolleSniffer.Model
             SetEnemyFighterPower();\r
             BattleState = url.Contains("sp_midnight") ? BattleState.SpNight :\r
                 url.Contains("midnight") ? BattleState.Night : BattleState.Day;\r
+            if (BattleState != BattleState.Night)\r
+                AirBattleResult.Clear();\r
             CalcDamage(json);\r
             ResultRank = url.Contains("/ld_") ? CalcLdResultRank() : CalcResultRank();\r
             SetResult();\r
@@ -376,7 +378,6 @@ namespace KancolleSniffer.Model
 \r
         private void CalcDamage(dynamic json)\r
         {\r
-            AirBattleResult.Clear();\r
             foreach (KeyValuePair<string, dynamic> kv in json)\r
             {\r
                 if (kv.Value == null)\r
index 35b7c8e..c80e112 100644 (file)
@@ -100,10 +100,10 @@ namespace KancolleSniffer.View
 \r
         public void SetResult(Sniffer sniffer)\r
         {\r
-            var state = sniffer.Battle.BattleState;\r
-            if (state != BattleState.Day && state != BattleState.SpNight)\r
+            var battleResult = sniffer.Battle.AirBattleResult;\r
+            if (!battleResult.CheckUpdate())\r
                 return;\r
-            _resultList = sniffer.Battle.AirBattleResult.Result.ToArray();\r
+            _resultList = battleResult.Result.ToArray();\r
             if (_resultList.Length == 0)\r
             {\r
                 ResultRemained = false;\r