From: Kazuhiro Fujieda Date: Wed, 12 Apr 2017 15:50:34 +0000 (+0900) Subject: 最終セルで大破警告を出さない X-Git-Tag: v9.14~10 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;ds=sidebyside;h=b882cb3cdf3386980d16474fddb4ebb00a438145;p=kancollesniffer%2FKancolleSniffer.git 最終セルで大破警告を出さない --- diff --git a/KancolleSniffer.Test/SnifferTest.cs b/KancolleSniffer.Test/SnifferTest.cs index feb587f..da0cc0d 100644 --- a/KancolleSniffer.Test/SnifferTest.cs +++ b/KancolleSniffer.Test/SnifferTest.cs @@ -91,7 +91,6 @@ namespace KancolleSniffer.Test var sniffer = new Sniffer(); SniffLogFile(sniffer, "battle_002"); AssertEqualBattleResult(sniffer, new[] {28, 1, 13}); - PAssert.That(() => sniffer.BadlyDamagedShips.Any()); } private void AssertEqualBattleResult(Sniffer sniffer, IEnumerable expected, string msg = null) @@ -109,11 +108,9 @@ namespace KancolleSniffer.Test var sniffer = new Sniffer(); SniffLogFile(sniffer, "combined_surface_001"); AssertEauqlCombinedResult(sniffer, new[] {40, 77, 77, 33, 51, 47}, new[] {39, 35, 11, 39, 37, 40}); - PAssert.That(() => !sniffer.BadlyDamagedShips.Any()); SniffLogFile(sniffer, "combined_surface_002"); AssertEauqlCombinedResult(sniffer, new[] {40, 77, 77, 33, 15, 6}, new[] {39, 35, 4, 3, 14, 40}); - PAssert.That(() => sniffer.BadlyDamagedShips.Any()); } private void AssertEauqlCombinedResult(Sniffer sniffer, IEnumerable expected0, IEnumerable expected1, @@ -315,7 +312,8 @@ namespace KancolleSniffer.Test { var sniffer = new Sniffer(); SniffLogFile(sniffer, "sunk_001"); - PAssert.That(() => sniffer.BadlyDamagedShips.SequenceEqual(new[] {"磯波"})); + AssertEqualBattleResult(sniffer, new[]{26, 0, 1, 3}); + PAssert.That(() => sniffer.BadlyDamagedShips.SequenceEqual(new[] {"菊月", "雪風"})); } /// @@ -431,6 +429,30 @@ namespace KancolleSniffer.Test } /// + /// 最終セルで大破警告を出さない + /// + [TestMethod] + public void NotWarnDamagedShipInLastCell() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "taiha_001"); + PAssert.That(() => sniffer.GetShipStatuses(0)[2].NowHp == 2); + PAssert.That(() => !sniffer.BadlyDamagedShips.Any()); + } + + /// + /// 道中で大破警告を出す + /// + [TestMethod] + public void WarnDamagedShip() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "taiha_002"); + PAssert.That(() => sniffer.GetShipStatuses(0)[2].NowHp == 1); + PAssert.That(() => sniffer.BadlyDamagedShips.Any()); + } + + /// /// 熟練度込みの制空値を正しく計算する /// [TestMethod] diff --git a/KancolleSniffer.Test/logs b/KancolleSniffer.Test/logs index 74e61d9..192e1f1 160000 --- a/KancolleSniffer.Test/logs +++ b/KancolleSniffer.Test/logs @@ -1 +1 @@ -Subproject commit 74e61d96c60a6f927d57dd41584f0c298ed9b8ca +Subproject commit 192e1f168c2952a9ea4e435e48449090c7adb9bc diff --git a/KancolleSniffer/BattleInfo.cs b/KancolleSniffer/BattleInfo.cs index 61c21ab..e38d630 100644 --- a/KancolleSniffer/BattleInfo.cs +++ b/KancolleSniffer/BattleInfo.cs @@ -50,6 +50,7 @@ namespace KancolleSniffer private int[] _enemyGuardStartHp; private readonly List _escapingShips = new List(); private int _flagshipRecoveryType; + private bool _lastCell; public BattleState BattleState { get; set; } public string Formation { get; private set; } @@ -59,7 +60,6 @@ namespace KancolleSniffer public ShipStatus[] EnemyResultStatus { get; private set; } public List AirBattleResults { get; } = new List(); - public BattleInfo(ShipInfo shipInfo, ItemInfo itemInfo) { _shipInfo = shipInfo; @@ -206,6 +206,7 @@ namespace KancolleSniffer public void CleanupResult() { _friend = null; + _lastCell = false; } private int CheckAirControlLevel(dynamic json) @@ -510,10 +511,20 @@ namespace KancolleSniffer } } + public void InspectMapStart(dynamic json) + { + InspectMapNext(json); + } + + public void InspectMapNext(dynamic json) + { + _lastCell = (int)json.api_next == 0; + } + public void InspectBattleResult(dynamic json) { BattleState = BattleState.Result; - ShowResult(); + ShowResult(!_lastCell); CleanupResult(); SetEscapeShips(json); } diff --git a/KancolleSniffer/Sniffer.cs b/KancolleSniffer/Sniffer.cs index ddf23ff..23165e7 100644 --- a/KancolleSniffer/Sniffer.cs +++ b/KancolleSniffer/Sniffer.cs @@ -432,6 +432,7 @@ namespace KancolleSniffer _shipInfo.InspectMapStart(request); // 出撃中判定が必要なので_conditionTimerより前 _conditionTimer.InvalidateCond(); _exMapInfo.InspectMapStart(data); + _battleInfo.InspectMapStart(data); _logger.InspectMapStart(data); _miscTextInfo.ClearFlag = true; return Update.Timer | Update.Ship; @@ -440,6 +441,7 @@ namespace KancolleSniffer { _battleInfo.InspectMapNext(request); _exMapInfo.InspectMapNext(data); + _battleInfo.InspectMapNext(data); _logger.InspectMapNext(data); return Update.None; }