// コンストラクタ(コピー).
 public BattleResultData(BattleResultData brd)
 {
     if (brd != null)
     {
         this.ResultDateTime = brd.ResultDateTime;
         this.MapAreaName = brd.MapAreaName;
         this.MapInfoName = brd.MapInfoName;
         this.MapCell = brd.MapCell;
         this.EnemyDeckName = brd.EnemyDeckName;
         this.WinRank = brd.WinRank;
         this.GetShipName = brd.GetShipName;
     }
 }
 // 戦闘結果追加通知(通信データリスナークラスからの通知を受信する).
 public void onBattleResultDataAdded(BattleResultData brd)
 {
     #if DEBUG
     Trace.WriteLine("onBattleResultDataAdded", Plugin.LOGTAG);
     #endif
     var dispatcher = System.Windows.Application.Current.Dispatcher;
     if (dispatcher.CheckAccess())
     {
         addViewData(brd);
     }
     else
     {
         dispatcher.Invoke(() => addViewData(brd));
     }
 }
 // 表示データ追加.
 private void addViewData(BattleResultData data)
 {
     // 戦闘結果リスト.
     BattleResultDataList.Add(data);
     // 戦果ランク別戦闘数.
     BattleResultCount[data.WinRank]++;
     BattleResultCountText
         = string.Format("S:{0}, A:{1}, B:{2}, C:{3}, D:{4}, E:{5}"
             , BattleResultCount["S"]
             , BattleResultCount["A"]
             , BattleResultCount["B"]
             , BattleResultCount["C"]
             , BattleResultCount["D"]
             , BattleResultCount["E"]
         );
 }
 // 戦闘結果追加通知.
 private void onBattleResultDataAdded(BattleResultData brd)
 {
     #if DEBUG
     Trace.WriteLine("onBattleResultDataAdded", Plugin.LOGTAG);
     #endif
     foreach (IBattleResultDataChangeListener listener in dataChangeListeners)
     {
         if (listener != null)
         {
             listener.onBattleResultDataAdded(new BattleResultData(brd));
         }
     }
 }
 // 情報更新(連合艦隊戦闘結果).
 public void Update(kcsapi_combined_battle_battleresult result)
 {
     #if DEBUG
     Trace.WriteLine(string.Format("Update {0} {1}", result.api_quest_name, result.api_get_ship == null ? "null" : result.api_get_ship.api_ship_name), Plugin.LOGTAG);
     #endif
     BattleResultData brd = new BattleResultData();
     brd.ResultDateTime = DateTime.Now;
     brd.MapAreaName = this.mapAreaName;
     brd.MapInfoName = this.mapInfoName;
     brd.MapCell = this.mapCell;
     //brd.QuestName = result.api_quest_name;
     //brd.QuestLevel = result.api_quest_level;
     brd.EnemyDeckName = result.api_enemy_info.api_deck_name;
     brd.WinRank = result.api_win_rank;
     if (result.api_get_ship != null)
     {
         //brd.GetShipId = result.api_get_ship.api_ship_id;
         brd.GetShipName = result.api_get_ship.api_ship_name;
     }
     else
     {
         //brd.GetShipId = -1;
         brd.GetShipName = "";
     }
     dataList.Add(brd);
     onBattleResultDataAdded(brd);
 }