private void _Init(int deck_id, int enemy_deck_id, BattleManager bManager, BattleResultFmt fmt, List <ShipModel_BattleAll> ships_f, List <ShipModel_BattleAll> ships_e, Dictionary <int, int> exp_rates_before)
        {
            UserInfoModel userInfo = bManager.UserInfo;
            DeckModel     deck     = userInfo.GetDeck(deck_id);

            this._deck_name = deck.Name;
            this._user_name = userInfo.Name;
            this._fmt       = fmt;
            this._ships_f   = ships_f.ConvertAll <ShipModel_BattleResult>((ShipModel_BattleAll ship) => (ShipModel_BattleResult)ship);
            this._ships_e   = ships_e.ConvertAll <ShipModel_BattleResult>((ShipModel_BattleAll ship) => (ShipModel_BattleResult)ship);
            this._mvp_ship  = this._ships_f.Find((ShipModel_BattleResult ship) => ship != null && ship.TmpId == this._fmt.MvpShip);
            for (int i = 0; i < this.Ships_f.Length; i++)
            {
                ShipModel_BattleResult shipModel_BattleResult = this.Ships_f[i];
                if (shipModel_BattleResult != null)
                {
                    this._SetShipExp(deck, shipModel_BattleResult, exp_rates_before);
                    this._hp_start_f += shipModel_BattleResult.HpStart;
                    this._hp_end_f   += shipModel_BattleResult.HpEnd;
                }
            }
            DeckModel deck2 = userInfo.GetDeck(enemy_deck_id);

            for (int j = 0; j < this.Ships_e.Length; j++)
            {
                ShipModel_BattleResult shipModel_BattleResult2 = this.Ships_e[j];
                if (shipModel_BattleResult2 != null)
                {
                    this._SetShipExp(deck2, shipModel_BattleResult2, exp_rates_before);
                    this._hp_start_e += shipModel_BattleResult2.HpStart;
                    this._hp_end_e   += shipModel_BattleResult2.HpEnd;
                }
            }
            this._new_opened_map_ids = fmt.NewOpenMapId.GetRange(0, fmt.NewOpenMapId.get_Count());
            this._new_opened_map_ids.AddRange(fmt.ReOpenMapId);
            this._new_opened_area_ids = this._new_opened_map_ids.FindAll((int map_id) => map_id % 10 == 1);
            this._new_opened_area_ids = this._new_opened_area_ids.ConvertAll <int>((int map_id) => (int)Math.Floor((double)map_id / 10.0));
            this._first_area_clear    = fmt.FirstAreaComplete;
        }