diff --git a/ElectronicObserver/Data/AdmiralData.cs b/ElectronicObserver/Data/AdmiralData.cs
index ac608eefe..f66624089 100644
--- a/ElectronicObserver/Data/AdmiralData.cs
+++ b/ElectronicObserver/Data/AdmiralData.cs
@@ -119,6 +119,13 @@ public int AdmiralID
///
public int PracticeLose => (int)RawData.api_pt_lose;
+ ///
+ /// 甲種勲章保有数
+ ///
+ public int Medals
+ {
+ get { return (int)RawData.api_medals; }
+ }
///
diff --git a/ElectronicObserver/Data/Battle/BattleManager.cs b/ElectronicObserver/Data/Battle/BattleManager.cs
index a36791c03..fb1a9c342 100644
--- a/ElectronicObserver/Data/Battle/BattleManager.cs
+++ b/ElectronicObserver/Data/Battle/BattleManager.cs
@@ -344,10 +344,12 @@ private void BattleFinished()
{
var initialHPs = BattleDay.Initial.FriendInitialHPs.TakeWhile(hp => hp >= 0);
var damage = initialHPs.Zip(BattleDay.ResultHPs.Take(initialHPs.Count()), (initial, result) => initial - result).Sum();
+ var airraid = ((BattleBaseAirRaid)BattleDay).BaseAirRaid;
Utility.Logger.Add(2,
- string.Format("{0}-{1}-{2} で基地に空襲を受けました。( 被ダメージ合計: {3}, {4} )",
- Compass.MapAreaID, Compass.MapInfoID, Compass.Destination, damage, Constants.GetAirRaidDamage(Compass.AirRaidDamageKind)));
+ string.Format("{0}-{1}-{2} で基地に空襲を受けました。( {3}, 被ダメージ合計: {4}, {5} )",
+ Compass.MapAreaID, Compass.MapInfoID, Compass.Destination,
+ Constants.GetAirSuperiority(airraid.IsAvailable ? airraid.AirSuperiority : -1), damage, Constants.GetAirRaidDamage(Compass.AirRaidDamageKind)));
}
else
{
diff --git a/ElectronicObserver/Data/Battle/Detail/BattleDetail.cs b/ElectronicObserver/Data/Battle/Detail/BattleDetail.cs
index d5a7799ff..128019ef3 100644
--- a/ElectronicObserver/Data/Battle/Detail/BattleDetail.cs
+++ b/ElectronicObserver/Data/Battle/Detail/BattleDetail.cs
@@ -147,9 +147,14 @@ public override string ToString()
StringBuilder builder = new StringBuilder();
- // 航空戦・支援攻撃時 AttackerIndex = BattleIndex.Invalid 、それで AttackerIndex.Side = BattleSides.FriendMain になる
- // DefenderIndex.Side で判断すれば航空戦も正確に識別できるが表示が変になるので、最終的には AttackerIndex.Side で判断した
- builder.AppendFormat(AttackerIndex.IsFriend ? "{0} → {1}\r\n" : "{1} ← {0}\r\n", GetAttackerName(), GetDefenderName());
+
+ if (Battle.IsPractice)
+ builder.AppendFormat("{0}{1} → {2}{3}",
+ Attacker == null ? "" : AttackerIndex.IsFriend ? "自軍 " : "敵軍 ", GetAttackerName(),
+ DefenderIndex.IsFriend ? "自軍 " : "敵軍 ", GetDefenderName()
+ ).AppendLine();
+ else
+ builder.AppendFormat("{0} → {1}", GetAttackerName(), GetDefenderName()).AppendLine();
if (AttackType >= 0)
diff --git a/ElectronicObserver/Data/Battle/Phase/PhaseNightInitial.cs b/ElectronicObserver/Data/Battle/Phase/PhaseNightInitial.cs
index 294b9d745..2bf77c5cb 100644
--- a/ElectronicObserver/Data/Battle/Phase/PhaseNightInitial.cs
+++ b/ElectronicObserver/Data/Battle/Phase/PhaseNightInitial.cs
@@ -116,10 +116,10 @@ public ShipData FlareFriendInstance
if (index < 0)
return null;
- if (ActiveFriendFleet == 1)
- return FriendFleet.MembersInstance[index];
- else
+ if (IsFriendEscort)
return FriendFleet.MembersInstance[index - 6];
+ else
+ return FriendFleet.MembersInstance[index];
}
}
@@ -136,10 +136,10 @@ public ShipDataMaster FlareEnemyInstance
if (index < 0)
return null;
- if (EnemyFleetID == 1)
- return EnemyMembersInstance[index];
- else
+ if (IsEnemyEscort)
return EnemyMembersInstance[index - 6];
+ else
+ return EnemyMembersInstance[index];
}
}
@@ -152,7 +152,7 @@ public int SearchlightIndexFriend
get
{
var ships = FriendFleet.MembersWithoutEscaped;
- var hps = IsEscort ? Battle.Initial.FriendInitialHPsEscort : Battle.Initial.FriendInitialHPs;
+ var hps = IsFriendEscort ? Battle.Initial.FriendInitialHPsEscort : Battle.Initial.FriendInitialHPs;
int index = -1;
for (int i = 0; i < ships.Count; i++)
diff --git a/ElectronicObserver/Utility/SoftwareInformation.cs b/ElectronicObserver/Utility/SoftwareInformation.cs
index fc10acc6e..86edae8c2 100644
--- a/ElectronicObserver/Utility/SoftwareInformation.cs
+++ b/ElectronicObserver/Utility/SoftwareInformation.cs
@@ -29,20 +29,20 @@ public static class SoftwareInformation
///
/// バージョン(日本語, ソフトウェア名を含みます)
///
- public static string VersionJapanese => SoftwareNameJapanese + "三一型甲";
+ public static string VersionJapanese => SoftwareNameJapanese + "三一型改";
///
/// バージョン(英語)
///
- public static string VersionEnglish => "3.1.0.1";
+ public static string VersionEnglish => "3.1.1";
///
/// 更新日時
///
- public static DateTime UpdateTime => DateTimeHelper.CSVStringToTime("2018/02/26 20:00:00");
+ public static DateTime UpdateTime => DateTimeHelper.CSVStringToTime("2018/03/14 08:00:00");
diff --git a/ElectronicObserver/Window/FormHeadquarters.cs b/ElectronicObserver/Window/FormHeadquarters.cs
index ed482657d..5016ba3a2 100644
--- a/ElectronicObserver/Window/FormHeadquarters.cs
+++ b/ElectronicObserver/Window/FormHeadquarters.cs
@@ -221,6 +221,28 @@ void Updated(string apiname, dynamic data)
//Admiral
FlowPanelAdmiral.SuspendLayout();
AdmiralName.Text = string.Format("{0} {1}", db.Admiral.AdmiralName, Constants.GetAdmiralRank(db.Admiral.Rank));
+ {
+ StringBuilder tooltip = new StringBuilder();
+
+ var sortieCount = db.Admiral.SortieWin + db.Admiral.SortieLose;
+ tooltip.AppendFormat("出撃回数: {0} / 出撃勝利: {1} ({2:p2}) / 出撃敗北: {3}\r\n",
+ sortieCount, db.Admiral.SortieWin, db.Admiral.SortieWin / Math.Max(sortieCount, 1.0), db.Admiral.SortieLose);
+
+ tooltip.AppendFormat("出撃あたりの平均獲得Exp: {0:n2} / 勝利時 {1:n2}\r\n",
+ db.Admiral.Exp / Math.Max(sortieCount, 1.0),
+ db.Admiral.Exp / Math.Max(db.Admiral.SortieWin, 1.0));
+
+ tooltip.AppendFormat("遠征回数: {0} / 遠征成功: {1} ({2:p2}) / 遠征失敗: {3}\r\n",
+ db.Admiral.MissionCount, db.Admiral.MissionSuccess, db.Admiral.MissionSuccess / Math.Max(db.Admiral.MissionCount, 1.0), db.Admiral.MissionCount - db.Admiral.MissionSuccess);
+
+ var practiceCount = db.Admiral.PracticeWin + db.Admiral.PracticeLose;
+ tooltip.AppendFormat("演習回数: {0} / 演習勝利: {1} ({2:p2}) / 演習敗北: {3}\r\n",
+ practiceCount, db.Admiral.PracticeWin, db.Admiral.PracticeWin / Math.Max(practiceCount, 1.0), db.Admiral.PracticeLose);
+
+ tooltip.AppendFormat("甲種勲章保有数: {0}\r\n", db.Admiral.Medals);
+
+ ToolTipInfo.SetToolTip(AdmiralName, tooltip.ToString());
+ }
AdmiralComment.Text = db.Admiral.Comment;
FlowPanelAdmiral.ResumeLayout();
diff --git a/ElectronicObserver/Window/FormInformation.cs b/ElectronicObserver/Window/FormInformation.cs
index 81dbd4c2c..2dab18f88 100644
--- a/ElectronicObserver/Window/FormInformation.cs
+++ b/ElectronicObserver/Window/FormInformation.cs
@@ -143,9 +143,15 @@ void Updated(string apiname, dynamic data)
{
var str = CheckGimmickUpdated(data);
if (!string.IsNullOrWhiteSpace(str))
- {
TextInformation.Text = str;
+
+ if (data.api_destruction_battle())
+ {
+ str = CheckGimmickUpdated(data.api_destruction_battle);
+ if (!string.IsNullOrWhiteSpace(str))
+ TextInformation.Text = str;
}
+
}
break;
diff --git a/README.md b/README.md
index b32b8d32c..fb9670b2c 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@
*このリンクの更新は遅れる可能性があります。最新版は[こちら](http://electronicobserver.blog.fc2.com/)で確認してください。*
-[ver. 3.1.0.1 (2018/02/26)](http://bit.ly/2EVj4gg)
+[ver. 3.1.1 (2018/03/14)](http://bit.ly/2HzhD43)
[更新内容・履歴はこちらで確認できます。](https://github.com/andanteyk/ElectronicObserver/wiki/ChangeLog)