private void StripMenu_File_OutputCSVUser_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine("装備ID,図鑑番号,装備種,装備名,大分類,図鑑カテゴリID,カテゴリID,アイコンID,航空機グラフィックID,火力,雷装,対空,装甲,対潜,回避,索敵,運,命中,爆装,射程,レア,廃棄燃料,廃棄弾薬,廃棄鋼材,廃棄ボーキ,図鑑文章,戦闘行動半径,配置コスト"); foreach (EquipmentDataMaster eq in KCDatabase.Instance.MasterEquipments.Values) { sw.WriteLine(string.Join(",", eq.EquipmentID, eq.AlbumNo, CsvHelper.EscapeCsvCell(eq.CategoryTypeInstance.Name), CsvHelper.EscapeCsvCell(eq.Name), eq.EquipmentType[0], eq.EquipmentType[1], eq.EquipmentType[2], eq.EquipmentType[3], eq.EquipmentType[4], eq.Firepower, eq.Torpedo, eq.AA, eq.Armor, eq.ASW, eq.Evasion, eq.LOS, eq.Luck, eq.Accuracy, eq.Bomber, Constants.GetRange(eq.Range), Constants.GetEquipmentRarity(eq.Rarity), eq.Material[0], eq.Material[1], eq.Material[2], eq.Material[3], CsvHelper.EscapeCsvCell(eq.Message), eq.AircraftDistance, eq.AircraftCost )); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, "装備図鑑 CSVの出力に失敗しました。"); MessageBox.Show("装備図鑑 CSVの出力に失敗しました。\r\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void StripMenu_File_OutputCSVUser_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine("装備ID,図鑑番号,装備種,装備名,装備種1,装備種2,装備種3,装備種4,装備種5,火力,雷装,対空,装甲,対潜,回避,索敵,運,命中,爆装,射程,レア,廃棄燃料,廃棄弾薬,廃棄鋼材,廃棄ボーキ,図鑑文章,戦闘行動半径,配置コスト"); string arg = string.Format("{{{0}}}", string.Join("},{", Enumerable.Range(0, 28))); foreach (EquipmentDataMaster eq in KCDatabase.Instance.MasterEquipments.Values) { sw.WriteLine(arg, eq.EquipmentID, eq.AlbumNo, KCDatabase.Instance.EquipmentTypes[eq.EquipmentType[2]].Name, eq.Name, eq.EquipmentType[0], eq.EquipmentType[1], eq.EquipmentType[2], eq.EquipmentType[3], eq.EquipmentType[4], eq.Firepower, eq.Torpedo, eq.AA, eq.Armor, eq.ASW, eq.Evasion, eq.LOS, eq.Luck, eq.Accuracy, eq.Bomber, Constants.GetRange(eq.Range), Constants.GetEquipmentRarity(eq.Rarity), eq.Material[0], eq.Material[1], eq.Material[2], eq.Material[3], eq.Message.Replace("\n", "<br>"), eq.AircraftDistance, eq.AircraftCost ); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, "装備図鑑 CSVの出力に失敗しました。"); MessageBox.Show("装備図鑑 CSVの出力に失敗しました。\r\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void StripMenu_File_OutputCSVUser_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine(EncycloRes.EquipCSVUserFormat); string arg = string.Format("{{{0}}}", string.Join("},{", Enumerable.Range(0, 26))); foreach (EquipmentDataMaster eq in KCDatabase.Instance.MasterEquipments.Values) { sw.WriteLine(arg, eq.EquipmentID, eq.AlbumNo, KCDatabase.Instance.EquipmentTypes[eq.EquipmentType[2]].Name, eq.Name, eq.EquipmentType[0], eq.EquipmentType[1], eq.EquipmentType[2], eq.EquipmentType[3], eq.Firepower, eq.Torpedo, eq.AA, eq.Armor, eq.ASW, eq.Evasion, eq.LOS, eq.Luck, eq.Accuracy, eq.Bomber, Constants.GetRange(eq.Range), Constants.GetEquipmentRarity(eq.Rarity), eq.Material[0], eq.Material[1], eq.Material[2], eq.Material[3], eq.Message.Replace("\n", "<br>"), eq.ResourceVersion ); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, EncycloRes.FailedOutputEquipCSV); MessageBox.Show(EncycloRes.FailedOutputEquipCSV + "\r\n" + ex.Message, Properties.Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void Menu_File_CSVOutput_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine("固有ID,装備ID,装備名,改修Lv,艦載機Lv,ロック,装備艦ID,装備艦"); string arg = string.Format("{{{0}}}", string.Join("},{", Enumerable.Range(0, 8))); foreach (var eq in KCDatabase.Instance.Equipments.Values) { if (eq.Name == "なし") { continue; } ShipData equippedShip = KCDatabase.Instance.Ships.Values.FirstOrDefault(s => s.AllSlot.Contains(eq.MasterID)); sw.WriteLine(arg, eq.MasterID, eq.EquipmentID, eq.Name, eq.Level, eq.AircraftLevel, eq.IsLocked ? 1 : 0, equippedShip?.MasterID ?? -1, equippedShip?.NameWithLevel ?? "" ); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, "装備一覧 CSVの出力に失敗しました。"); MessageBox.Show("装備一覧 CSVの出力に失敗しました。\r\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void Menu_File_CSVOutput_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine(EncycloRes.EquipListCSVFormat); string arg = string.Format("{{{0}}}", string.Join("},{", Enumerable.Range(0, 8))); foreach (var eq in KCDatabase.Instance.Equipments.Values) { if (eq.Name == "なし") { continue; } ShipData equippedShip = KCDatabase.Instance.Ships.Values.FirstOrDefault(s => s.Slot.Contains(eq.MasterID)); sw.WriteLine(arg, eq.MasterID, eq.EquipmentID, eq.Name, eq.Level, eq.AircraftLevel, eq.IsLocked ? 1 : 0, equippedShip != null ? equippedShip.MasterID : -1, equippedShip != null ? equippedShip.NameWithLevel : "" ); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, EncycloRes.FailedOutputEqListCSV); MessageBox.Show(EncycloRes.FailedOutputEqListCSV + "\r\n" + ex.Message, Properties.Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void StripMenu_File_OutputCSVData_Click( object sender, EventArgs e ) { if ( SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK ) { try { using ( StreamWriter sw = new StreamWriter( SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding ) ) { sw.WriteLine( "艦船ID,図鑑番号,艦名,読み,艦種,改装前,改装後,改装Lv,改装弾薬,改装鋼材,改装設計図,耐久初期,耐久最大,耐久結婚,火力初期,火力最大,雷装初期,雷装最大,対空初期,対空最大,装甲初期,装甲最大,対潜初期最小,対潜初期最大,対潜最大,対潜150最小,対潜150最大,回避初期最小,回避初期最大,回避最大,回避150最小,回避150最大,索敵初期最小,索敵初期最大,索敵最大,索敵150最小,索敵150最大,運初期,運最大,速力,射程,レア,スロット数,搭載機数1,搭載機数2,搭載機数3,搭載機数4,搭載機数5,初期装備1,初期装備2,初期装備3,初期装備4,初期装備5,建造時間,解体燃料,解体弾薬,解体鋼材,解体ボーキ,改修火力,改修雷装,改修対空,改修装甲,ドロップ文章,図鑑文章,搭載燃料,搭載弾薬,ボイス,リソース名,バージョン" ); string arg = string.Format( "{{{0}}}", string.Join( "},{", Enumerable.Range( 0, 69 ) ) ); foreach ( ShipDataMaster ship in KCDatabase.Instance.MasterShips.Values ) { sw.WriteLine( arg, ship.ShipID, ship.AlbumNo, ship.Name, ship.NameReading, ship.ShipType, ship.RemodelBeforeShipID, ship.RemodelAfterShipID, ship.RemodelAfterLevel, ship.RemodelAmmo, ship.RemodelSteel, ship.NeedBlueprint, ship.HPMin, ship.HPMax, ship.HPMaxMarried, ship.FirepowerMin, ship.FirepowerMax, ship.TorpedoMin, ship.TorpedoMax, ship.AAMin, ship.AAMax, ship.ArmorMin, ship.ArmorMax, ship.ASW != null ? ship.ASW.MinimumEstMin : ShipParameterRecord.Parameter.MinimumDefault, ship.ASW != null ? ship.ASW.MinimumEstMax : ShipParameterRecord.Parameter.MaximumDefault, ship.ASW != null ? ship.ASW.Maximum : ShipParameterRecord.Parameter.MaximumDefault, ship.ASW != null ? ship.ASW.GetEstParameterMin( 150 ) : ShipParameterRecord.Parameter.MinimumDefault, ship.ASW != null ? ship.ASW.GetEstParameterMax( 150 ) : ShipParameterRecord.Parameter.MaximumDefault, ship.Evasion != null ? ship.Evasion.MinimumEstMin : ShipParameterRecord.Parameter.MinimumDefault, ship.Evasion != null ? ship.Evasion.MinimumEstMax : ShipParameterRecord.Parameter.MaximumDefault, ship.Evasion != null ? ship.Evasion.Maximum : ShipParameterRecord.Parameter.MaximumDefault, ship.Evasion != null ? ship.Evasion.GetEstParameterMin( 150 ) : ShipParameterRecord.Parameter.MinimumDefault, ship.Evasion != null ? ship.Evasion.GetEstParameterMax( 150 ) : ShipParameterRecord.Parameter.MaximumDefault, ship.LOS != null ? ship.LOS.MinimumEstMin : ShipParameterRecord.Parameter.MinimumDefault, ship.LOS != null ? ship.LOS.MinimumEstMax : ShipParameterRecord.Parameter.MaximumDefault, ship.LOS != null ? ship.LOS.Maximum : ShipParameterRecord.Parameter.MaximumDefault, ship.LOS != null ? ship.LOS.GetEstParameterMin( 150 ) : ShipParameterRecord.Parameter.MinimumDefault, ship.LOS != null ? ship.LOS.GetEstParameterMax( 150 ) : ShipParameterRecord.Parameter.MaximumDefault, ship.LuckMin, ship.LuckMax, ship.Speed, ship.Range, ship.Rarity, ship.SlotSize, ship.Aircraft[0], ship.Aircraft[1], ship.Aircraft[2], ship.Aircraft[3], ship.Aircraft[4], ship.DefaultSlot != null ? ship.DefaultSlot[0] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[1] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[2] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[3] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[4] : -1, ship.BuildingTime, ship.Material[0], ship.Material[1], ship.Material[2], ship.Material[3], ship.PowerUp[0], ship.PowerUp[1], ship.PowerUp[2], ship.PowerUp[3], ship.MessageGet.Replace( "\n", "<br>" ), ship.MessageAlbum.Replace( "\n", "<br>" ), ship.Fuel, ship.Ammo, ship.VoiceFlag, ship.ResourceName, ship.ResourceVersion ); } } } catch ( Exception ex ) { Utility.ErrorReporter.SendErrorReport( ex, "艦船図鑑 CSVの出力に失敗しました。" ); MessageBox.Show( "艦船図鑑 CSVの出力に失敗しました。\r\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error ); } } }
private void StripMenu_File_OutputCSVUser_Click( object sender, EventArgs e ) { if ( SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK ) { try { using ( StreamWriter sw = new StreamWriter( SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding ) ) { sw.WriteLine( "艦船ID,図鑑番号,艦種,艦名,読み,改装前,改装後,改装Lv,改装弾薬,改装鋼材,改装設計図,耐久初期,耐久結婚,火力初期,火力最大,雷装初期,雷装最大,対空初期,対空最大,装甲初期,装甲最大,対潜初期,対潜最大,回避初期,回避最大,索敵初期,索敵最大,運初期,運最大,速力,射程,レア,スロット数,搭載機数1,搭載機数2,搭載機数3,搭載機数4,搭載機数5,初期装備1,初期装備2,初期装備3,初期装備4,初期装備5,建造時間,解体燃料,解体弾薬,解体鋼材,解体ボーキ,改修火力,改修雷装,改修対空,改修装甲,ドロップ文章,図鑑文章,搭載燃料,搭載弾薬,ボイス,リソース名,バージョン" ); string arg = string.Format( "{{{0}}}", string.Join( "},{", Enumerable.Range( 0, 59 ) ) ); foreach ( ShipDataMaster ship in KCDatabase.Instance.MasterShips.Values ) { if ( ship.Name == "なし" ) continue; sw.WriteLine( arg, ship.ShipID, ship.AlbumNo, KCDatabase.Instance.ShipTypes[ship.ShipType].Name, ship.Name, ship.NameReading, ship.RemodelBeforeShipID > 0 ? ship.RemodelBeforeShip.Name : "-", ship.RemodelAfterShipID > 0 ? ship.RemodelAfterShip.Name : "-", ship.RemodelAfterLevel, ship.RemodelAmmo, ship.RemodelSteel, ship.NeedBlueprint > 0 ? ship.NeedBlueprint + "枚" : "-", ship.HPMin, ship.HPMaxMarried, ship.FirepowerMin, ship.FirepowerMax, ship.TorpedoMin, ship.TorpedoMax, ship.AAMin, ship.AAMax, ship.ArmorMin, ship.ArmorMax, ship.ASW != null && !ship.ASW.IsMinimumDefault ? ship.ASW.Minimum.ToString() : "???", ship.ASW != null && !ship.ASW.IsMaximumDefault ? ship.ASW.Maximum.ToString() : "???", ship.Evasion != null && !ship.Evasion.IsMinimumDefault ? ship.Evasion.Minimum.ToString() : "???", ship.Evasion != null && !ship.Evasion.IsMaximumDefault ? ship.Evasion.Maximum.ToString() : "???", ship.LOS != null && !ship.LOS.IsMinimumDefault ? ship.LOS.Minimum.ToString() : "???", ship.LOS != null && !ship.LOS.IsMaximumDefault ? ship.LOS.Maximum.ToString() : "???", ship.LuckMin, ship.LuckMax, Constants.GetSpeed( ship.Speed ), Constants.GetRange( ship.Range ), Constants.GetShipRarity( ship.Rarity ), ship.SlotSize, ship.Aircraft[0], ship.Aircraft[1], ship.Aircraft[2], ship.Aircraft[3], ship.Aircraft[4], ship.DefaultSlot != null ? ( ship.DefaultSlot[0] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[0]].Name : ( ship.SlotSize > 0 ? "(なし)" : "" ) ) : "???", ship.DefaultSlot != null ? ( ship.DefaultSlot[1] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[1]].Name : ( ship.SlotSize > 1 ? "(なし)" : "" ) ) : "???", ship.DefaultSlot != null ? ( ship.DefaultSlot[2] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[2]].Name : ( ship.SlotSize > 2 ? "(なし)" : "" ) ) : "???", ship.DefaultSlot != null ? ( ship.DefaultSlot[3] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[3]].Name : ( ship.SlotSize > 3 ? "(なし)" : "" ) ) : "???", ship.DefaultSlot != null ? ( ship.DefaultSlot[4] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[4]].Name : ( ship.SlotSize > 4 ? "(なし)" : "" ) ) : "???", DateTimeHelper.ToTimeRemainString( new TimeSpan( 0, ship.BuildingTime, 0 ) ), ship.Material[0], ship.Material[1], ship.Material[2], ship.Material[3], ship.PowerUp[0], ship.PowerUp[1], ship.PowerUp[2], ship.PowerUp[3], ship.MessageGet.Replace( "\n", "<br>" ), ship.MessageAlbum.Replace( "\n", "<br>" ), ship.Fuel, ship.Ammo, Constants.GetVoiceFlag( ship.VoiceFlag ), ship.ResourceName, ship.ResourceVersion ); } } } catch ( Exception ex ) { Utility.ErrorReporter.SendErrorReport( ex, "艦船図鑑 CSVの出力に失敗しました。" ); MessageBox.Show( "艦船図鑑 CSVの出力に失敗しました。\r\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error ); } } }
private void StripMenu_File_OutputCSVData_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine(EncycloRes.ShipCSVDataFormat); string arg = string.Format("{{{0}}}", string.Join("},{", Enumerable.Range(0, 69))); foreach (ShipDataMaster ship in KCDatabase.Instance.MasterShips.Values) { sw.WriteLine(arg, ship.ShipID, ship.AlbumNo, ship.Name, ship.NameReading, ship.ShipType, ship.RemodelBeforeShipID, ship.RemodelAfterShipID, ship.RemodelAfterLevel, ship.RemodelAmmo, ship.RemodelSteel, ship.NeedBlueprint, ship.HPMin, ship.HPMax, ship.HPMaxMarried, ship.FirepowerMin, ship.FirepowerMax, ship.TorpedoMin, ship.TorpedoMax, ship.AAMin, ship.AAMax, ship.ArmorMin, ship.ArmorMax, ship.ASW != null ? ship.ASW.MinimumEstMin : ShipParameterRecord.Parameter.MinimumDefault, ship.ASW != null ? ship.ASW.MinimumEstMax : ShipParameterRecord.Parameter.MaximumDefault, ship.ASW != null ? ship.ASW.Maximum : ShipParameterRecord.Parameter.MaximumDefault, ship.ASW != null ? ship.ASW.GetEstParameterMin(150) : ShipParameterRecord.Parameter.MinimumDefault, ship.ASW != null ? ship.ASW.GetEstParameterMax(150) : ShipParameterRecord.Parameter.MaximumDefault, ship.Evasion != null ? ship.Evasion.MinimumEstMin : ShipParameterRecord.Parameter.MinimumDefault, ship.Evasion != null ? ship.Evasion.MinimumEstMax : ShipParameterRecord.Parameter.MaximumDefault, ship.Evasion != null ? ship.Evasion.Maximum : ShipParameterRecord.Parameter.MaximumDefault, ship.Evasion != null ? ship.Evasion.GetEstParameterMin(150) : ShipParameterRecord.Parameter.MinimumDefault, ship.Evasion != null ? ship.Evasion.GetEstParameterMax(150) : ShipParameterRecord.Parameter.MaximumDefault, ship.LOS != null ? ship.LOS.MinimumEstMin : ShipParameterRecord.Parameter.MinimumDefault, ship.LOS != null ? ship.LOS.MinimumEstMax : ShipParameterRecord.Parameter.MaximumDefault, ship.LOS != null ? ship.LOS.Maximum : ShipParameterRecord.Parameter.MaximumDefault, ship.LOS != null ? ship.LOS.GetEstParameterMin(150) : ShipParameterRecord.Parameter.MinimumDefault, ship.LOS != null ? ship.LOS.GetEstParameterMax(150) : ShipParameterRecord.Parameter.MaximumDefault, ship.LuckMin, ship.LuckMax, ship.Speed, ship.Range, ship.Rarity, ship.SlotSize, ship.Aircraft[0], ship.Aircraft[1], ship.Aircraft[2], ship.Aircraft[3], ship.Aircraft[4], ship.DefaultSlot != null ? ship.DefaultSlot[0] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[1] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[2] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[3] : -1, ship.DefaultSlot != null ? ship.DefaultSlot[4] : -1, ship.BuildingTime, ship.Material[0], ship.Material[1], ship.Material[2], ship.Material[3], ship.PowerUp[0], ship.PowerUp[1], ship.PowerUp[2], ship.PowerUp[3], ship.MessageGet.Replace("\n", "<br>"), ship.MessageAlbum.Replace("\n", "<br>"), ship.Fuel, ship.Ammo, ship.VoiceFlag, ship.ResourceName, ship.ResourceVersion ); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, EncycloRes.FailedToOutputCSV); MessageBox.Show(EncycloRes.FailedToOutputCSV + "\r\n" + ex.Message, Properties.Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void StripMenu_File_OutputCSVUser_Click(object sender, EventArgs e) { if (SaveCSVDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { using (StreamWriter sw = new StreamWriter(SaveCSVDialog.FileName, false, Utility.Configuration.Config.Log.FileEncoding)) { sw.WriteLine(EncycloRes.ShipCSVUserFormat); string arg = string.Format("{{{0}}}", string.Join("},{", Enumerable.Range(0, 59))); foreach (ShipDataMaster ship in KCDatabase.Instance.MasterShips.Values) { if (ship.Name == "なし") { continue; } sw.WriteLine(arg, ship.ShipID, ship.AlbumNo, FormMain.Instance.Translator.GetTranslation(KCDatabase.Instance.ShipTypes[ship.ShipType].Name, Utility.TranslationType.ShipTypes), ship.Name, ship.NameReading, ship.RemodelBeforeShipID > 0 ? ship.RemodelBeforeShip.Name : "-", ship.RemodelAfterShipID > 0 ? ship.RemodelAfterShip.Name : "-", ship.RemodelAfterLevel, ship.RemodelAmmo, ship.RemodelSteel, ship.NeedBlueprint > 0 ? ship.NeedBlueprint + EncycloRes.Sheets : "-", ship.HPMin, ship.HPMaxMarried, ship.FirepowerMin, ship.FirepowerMax, ship.TorpedoMin, ship.TorpedoMax, ship.AAMin, ship.AAMax, ship.ArmorMin, ship.ArmorMax, ship.ASW != null && !ship.ASW.IsMinimumDefault ? ship.ASW.Minimum.ToString() : "???", ship.ASW != null && !ship.ASW.IsMaximumDefault ? ship.ASW.Maximum.ToString() : "???", ship.Evasion != null && !ship.Evasion.IsMinimumDefault ? ship.Evasion.Minimum.ToString() : "???", ship.Evasion != null && !ship.Evasion.IsMaximumDefault ? ship.Evasion.Maximum.ToString() : "???", ship.LOS != null && !ship.LOS.IsMinimumDefault ? ship.LOS.Minimum.ToString() : "???", ship.LOS != null && !ship.LOS.IsMaximumDefault ? ship.LOS.Maximum.ToString() : "???", ship.LuckMin, ship.LuckMax, Constants.GetSpeed(ship.Speed), Constants.GetRange(ship.Range), Constants.GetShipRarity(ship.Rarity), ship.SlotSize, ship.Aircraft[0], ship.Aircraft[1], ship.Aircraft[2], ship.Aircraft[3], ship.Aircraft[4], ship.DefaultSlot != null ? (ship.DefaultSlot[0] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[0]].Name : (ship.SlotSize > 0 ? EncycloRes.None : "")) : "???", ship.DefaultSlot != null ? (ship.DefaultSlot[1] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[1]].Name : (ship.SlotSize > 1 ? EncycloRes.None : "")) : "???", ship.DefaultSlot != null ? (ship.DefaultSlot[2] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[2]].Name : (ship.SlotSize > 2 ? EncycloRes.None : "")) : "???", ship.DefaultSlot != null ? (ship.DefaultSlot[3] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[3]].Name : (ship.SlotSize > 3 ? EncycloRes.None : "")) : "???", ship.DefaultSlot != null ? (ship.DefaultSlot[4] != -1 ? KCDatabase.Instance.MasterEquipments[ship.DefaultSlot[4]].Name : (ship.SlotSize > 4 ? EncycloRes.None : "")) : "???", DateTimeHelper.ToTimeRemainString(new TimeSpan(0, ship.BuildingTime, 0)), ship.Material[0], ship.Material[1], ship.Material[2], ship.Material[3], ship.PowerUp[0], ship.PowerUp[1], ship.PowerUp[2], ship.PowerUp[3], ship.MessageGet.Replace("\n", "<br>"), ship.MessageAlbum.Replace("\n", "<br>"), ship.Fuel, ship.Ammo, Constants.GetVoiceFlag(ship.VoiceFlag), ship.ResourceName, ship.ResourceVersion ); } } } catch (Exception ex) { Utility.ErrorReporter.SendErrorReport(ex, EncycloRes.FailedToOutputCSV); MessageBox.Show(EncycloRes.FailedToOutputCSV + "\r\n" + ex.Message, Properties.Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }