From: Kazuhiro Fujieda Date: Fri, 24 Nov 2017 11:16:48 +0000 (+0900) Subject: 連合艦隊が雷撃戦で被弾すると勝利判定がくるうのを直す X-Git-Tag: v9.33~3 X-Git-Url: http://git.osdn.net/view?p=kancollesniffer%2FKancolleSniffer.git;a=commitdiff_plain;h=aa7757f54e6271c9448b82e9ea570dc6501ffdba 連合艦隊が雷撃戦で被弾すると勝利判定がくるうのを直す --- diff --git a/KancolleSniffer.Test/SnifferTest.cs b/KancolleSniffer.Test/SnifferTest.cs index 6763244..e2aba8b 100644 --- a/KancolleSniffer.Test/SnifferTest.cs +++ b/KancolleSniffer.Test/SnifferTest.cs @@ -128,6 +128,28 @@ namespace KancolleSniffer.Test } /// + /// 連合艦隊が開幕雷撃で被弾する + /// + [TestMethod] + public void OpeningTorpedoInCombinedBattle() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "combined_battle_001"); + PAssert.That(() => sniffer.WrongBattleResult.Length == 0); + } + + /// + /// 連合艦隊が閉幕雷撃で被弾する + /// + [TestMethod] + public void ClosingTorpedoInCombinedBattle() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "combined_battle_002"); + PAssert.That(() => sniffer.WrongBattleResult.Length == 0); + } + + /// /// 出撃時に大破している艦娘がいたら警告する /// [TestMethod] diff --git a/KancolleSniffer.Test/logs b/KancolleSniffer.Test/logs index 4c1c0a2..cdc1b5f 160000 --- a/KancolleSniffer.Test/logs +++ b/KancolleSniffer.Test/logs @@ -1 +1 @@ -Subproject commit 4c1c0a2589989496debb97ec8902c5952a4f956a +Subproject commit cdc1b5f8205835274ad8246e9492c1a45c25c7dd diff --git a/KancolleSniffer/BattleInfo.cs b/KancolleSniffer/BattleInfo.cs index 0d27300..612c14b 100644 --- a/KancolleSniffer/BattleInfo.cs +++ b/KancolleSniffer/BattleInfo.cs @@ -258,9 +258,6 @@ namespace KancolleSniffer private void CalcDamage(dynamic json) { AirBattleResults.Clear(); - var fc = _guard.Length > 0; - var ec = _enemyGuardHp.Length > 0; - var both = fc && ec; if (json.api_air_base_injection()) { AddAirBattleResult(json.api_air_base_injection, "AB噴式"); @@ -290,18 +287,7 @@ namespace KancolleSniffer if (json.api_opening_taisen() && json.api_opening_taisen != null) CalcCombinedHougekiDamage(json.api_opening_taisen, _friend, _guard, _enemyHp, _enemyGuardHp); if (json.api_opening_atack != null) - { - if (both) - { - CalcSimpleDamage(json.api_opening_atack, _friend, _guard, _enemyHp, _enemyGuardHp); - } - else - { - CalcSimpleDamage(json.api_opening_atack, - fc ? _guard : _friend, // 雷撃の対象は護衛 - _enemyHp, _enemyGuardHp); - } - } + CalcSimpleDamage(json.api_opening_atack, _friend, _guard, _enemyHp, _enemyGuardHp); if (json.api_hougeki1() && json.api_hougeki1 != null) CalcCombinedHougekiDamage(json.api_hougeki1, _friend, _guard, _enemyHp, _enemyGuardHp); if (json.api_hougeki2() && json.api_hougeki2 != null) @@ -309,18 +295,7 @@ namespace KancolleSniffer if (json.api_hougeki3() && json.api_hougeki3 != null) CalcCombinedHougekiDamage(json.api_hougeki3, _friend, _guard, _enemyHp, _enemyGuardHp); if (json.api_raigeki() && json.api_raigeki != null) - { - if (both) - { - CalcSimpleDamage(json.api_raigeki, _friend, _guard, _enemyHp, _enemyGuardHp); - } - else - { - CalcSimpleDamage(json.api_raigeki, - fc ? _guard : _friend, // 雷撃の対象は護衛 - _enemyHp, _enemyGuardHp); - } - } + CalcSimpleDamage(json.api_raigeki, _friend, _guard, _enemyHp, _enemyGuardHp); } private void CalcSupportDamage(dynamic json) @@ -395,12 +370,6 @@ namespace KancolleSniffer CalcSimpleDamage(json.api_edam, enemy); } - private void CalcSimpleDamage(dynamic json, Record[] friend, int[] enemy, int[] enemyGuard) - { - CalcSimpleDamage(json.api_fdam, friend); - CalcSimpleDamage(json.api_edam, enemy, enemyGuard); - } - private void CalcSimpleDamage(dynamic json, Record[] friend, Record[] guard, int[] enemy, int[] enemyGuard) { CalcSimpleDamage(json.api_fdam, friend, guard); @@ -413,7 +382,7 @@ namespace KancolleSniffer for (var i = 0; i < friend.Length; i++) friend[i].ApplyDamage(damage[i]); for (var i = 0; i < guard.Length; i++) - guard[i].ApplyDamage(damage[i + 6]); + guard[i].ApplyDamage(damage[i + friend.Length]); } private void CalcSimpleDamage(dynamic rawDamage, Record[] friend) @@ -429,7 +398,7 @@ namespace KancolleSniffer for (var i = 0; i < enemy.Length; i++) enemy[i] -= damage[i]; for (var i = 0; i < enemyGuard.Length; i++) - enemyGuard[i] -= damage[i + 6]; + enemyGuard[i] -= damage[i + enemy.Length]; } private void CalcSimpleDamage(dynamic rawDamage, int[] result)