// 敵艦選択のコンボボックスを書き換え // comboIndex→コンボボックスの位置を表す番号(0~5) // typeIndex→右の艦種選択コンボボックスの選択番号(0~) private void ResetEnemyListByType(int comboIndex, int typeIndex) { string type = EnemyTypeList[typeIndex]; // 特殊処理 if (type == "--") { EnemyUnitIndex[comboIndex].Value = 0; } else { // 自動選択 int enemyIndex = EnemyList.IndexOf($"【{type}】"); EnemyUnitIndex[comboIndex].Value = enemyIndex; } }
/// <summary> /// 敵艦隊を引数の艦隊で上書きする /// </summary> /// <param name="fleet">敵艦隊</param> private void SetEnemyFleet(Fleet fleet) { // 敵艦隊の情報を初期化 for (int ki = 0; ki < 6; ++ki) { EnemyUnitIndex[ki].Value = 0; } // 敵艦隊の情報を書き込む if (fleet.KammusuList.Count > 0) { for (int ki = 0; ki < fleet.KammusuList[0].Count; ++ki) { var kammusu = fleet.KammusuList[0][ki]; int typeIndex = EnemyTypeList.IndexOf(KammusuTypeDic[kammusu.Type]); int kammusuIndex = EnemyList.IndexOf($"{kammusu.Name} [{kammusu.Id}]"); EnemyTypeIndex[ki].Value = typeIndex; EnemyUnitIndex[ki].Value = kammusuIndex; } } }
// 敵艦隊の読み込み処理 private void LoadEnemyUnit() { var ofd = new Microsoft.Win32.OpenFileDialog() { FileName = "enemy_data.enemy", Filter = "敵艦隊情報(*.enemy)|*.enemy|すべてのファイル(*.*)|*.*", Title = "読み込むのファイルを選択" }; if ((bool)ofd.ShowDialog()) { try { // ファイルを読み込み using (var sr = new System.IO.StreamReader(ofd.FileName)) { // テキストとして読み込んでパース string output = sr.ReadToEnd(); var enemyData = new FleetData(output); // 敵艦隊の情報を初期化 for (int ki = 0; ki < 6; ++ki) { EnemyUnitIndex[ki].Value = 0; } // 敵艦隊の情報を書き込む if (enemyData.Kammusu.Count > 0) { for (int ki = 0; ki < enemyData.Kammusu[0].Count; ++ki) { var kammusu = enemyData.Kammusu[0][ki]; int typeIndex = EnemyTypeList.IndexOf(kammusu.Type); int kammusuIndex = EnemyList.IndexOf($"{kammusu.Name} [{kammusu.Id}]"); EnemyTypeIndex[ki].Value = typeIndex; EnemyUnitIndex[ki].Value = kammusuIndex; } } } } catch (Exception e) { Console.WriteLine(e.ToString()); MessageBox.Show("ファイルを開けませんでした", "AWSK"); } } }