\r
private BattleResultRank CalcLdAirBattleRank()\r
{\r
- var combined = _friend.Concat(_guard).ToArray();\r
- var friendNowShips = combined.Count(r => r.NowHp > 0);\r
+ var combined = _friend.Concat(_guard).Where(r => !r.Escaped).ToArray();\r
var friendGauge = combined.Sum(r => r.StartHp - r.NowHp);\r
- var friendSunk = combined.Count(r => r.NowHp == 0);\r
var friendGaugeRate = Floor((double)friendGauge / combined.Sum(r => r.StartHp) * 100);\r
\r
- if (friendSunk == 0)\r
- {\r
- if (friendGauge == 0)\r
- return BattleResultRank.P;\r
- if (friendGaugeRate < 10)\r
- return BattleResultRank.A;\r
- if (friendGaugeRate < 20)\r
- return BattleResultRank.B;\r
- if (friendGaugeRate < 50)\r
- return BattleResultRank.C;\r
- return BattleResultRank.D;\r
- }\r
- if (friendSunk < friendNowShips)\r
+ if (friendGauge <= 0)\r
+ return BattleResultRank.P;\r
+ if (friendGaugeRate < 10)\r
+ return BattleResultRank.A;\r
+ if (friendGaugeRate < 20)\r
+ return BattleResultRank.B;\r
+ if (friendGaugeRate < 50)\r
+ return BattleResultRank.C;\r
+ if (friendGaugeRate < 80)\r
return BattleResultRank.D;\r
return BattleResultRank.E;\r
}\r
/// <summary>\r
/// テスト専用\r
/// </summary>\r
- public void InjectEnemyResultStatus(ShipStatus[] enemy, ShipStatus[] guard)\r
+ public void InjectResultStatus(ShipStatus[] main, ShipStatus[] guard, ShipStatus[] enemy, ShipStatus[] enemyGuard)\r
{\r
- Result = new BattleResult {Enemy = new BattleResult.Combined {Main = enemy, Guard = guard}};\r
+ Result = new BattleResult\r
+ {\r
+ Friend = new BattleResult.Combined { Main = main, Guard = guard},\r
+ Enemy = new BattleResult.Combined {Main = enemy, Guard = enemyGuard}\r
+ };\r
}\r
}\r
}
\ No newline at end of file