/************************************************************************/ /* 内部定義 */ /************************************************************************/ //============================================================================ //! システムイメージの作成 private void _CreateSystemImage() { var manager = ResourceManager.GetInstance(); var resource_Path = SystemUtility.GetResourcePath(); MemberHeaderImage.Source = manager.CreateImage(resource_Path + @"\System\MemberHeader.adg"); }
/************************************************************************/ /* アクセサ */ /************************************************************************/ /// <summary> /// 参加メンバーを表としてコントロールを生成する /// </summary> /// <param name="iMemberList"></param> public void SetJoinMemberList(List <BattleManager.SBattleJoinInfo> iMemberList) { //まずはコントロールを作成 var control_List = new List <TeamDisplayMember>(); int color_Index = 0; var color_List = new Brush[2] { new SolidColorBrush(SystemUtility.StringToColor("#55000000")), new SolidColorBrush(SystemUtility.StringToColor("#55555555")) }; var margin = new Thickness(); MemberGrid.Children.Clear(); foreach (var iMember in iMemberList) { var control = new TeamDisplayMember(); control.Margin = margin; control.Background = color_List[color_Index % 2]; control.SetJoinMemberInfo(control_List.Count, iMember); control_List.Add(control); MemberGrid.Children.Add(control); margin.Top += control.Height; ++color_Index; } //コントロール分だけ自分のコントロールのサイズを変更 MemberGrid.Width = control_List[0].Width; Width = MemberGrid.Width + 44; MemberGrid.Height = (control_List[0].Height * control_List.Count); Height = MemberGrid.Height + IndexGrid.Height + 44; }
/// <summary> /// 指定したキーリストに存在するデータを全て出力する /// </summary> /// <param name="iKeyList">キーリスト</param> /// <param name="iFileName">ファイルパス</param> public void WriteData(string[] iKeyList, string iFilePath) { var data_List = new List <SWriteData>(); foreach (var iKey in iKeyList) { //オブジェクトなしの場合はエラー var write_Object = GetData(iKey); if (write_Object == null) { SystemUtility.DisplayErrorDialog(string.Format("指定されたデータキー[{0}]が存在しなかった為出力に失敗しました", iKey)); return; } //設定 var write_Data = new SWriteData(); write_Data.mKeyName = iKey; write_Data.mObject = write_Object; data_List.Add(write_Data); } //出力 try { SystemUtility.WriteSerializationData(iFilePath, data_List.ToArray()); } catch (System.Exception iException) { SystemUtility.DisplayErrorDialog("データ出力に失敗しました\n\n" + iException.Message); } }
//============================================================================ //! 全てのメンバーを指定した人数が埋まる分だけチームを生成して振り分ける private void _ClickRandom(object iSender, RoutedEventArgs iArgs) { var window = new TeamMemberValSettingWindow(); //追加ボタンが押されたときの重複チェック window.DecideButton.Click += (iClickSender, iClickArgs) => { //OKボタンの時は内部チェック if (((Button)iClickSender).TabIndex == 0) { //テキストボックスチェック if (window.TeamValueTextBox.Text.Length == 0) { SystemUtility.DisplayErrorDialog("人数を入力してください"); return; } //数値チェック int val = 0; try { val = int.Parse(window.TeamValueTextBox.Text); //負の数チェック if (val < 2) { SystemUtility.DisplayErrorDialog("1人以下は設定出来ません"); return; } //ぴったりでない場合の確認 var member_Val = BattleOperatorManager.GetInstance().GetJoinMemberVal(); var team_Val = member_Val / int.Parse(window.TeamValueTextBox.Text); if ((member_Val % val) != 0) { if (MessageBox.Show("端数が出るチームが出ますが宜しいですか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) { return; } ++team_Val; } //追加して更新 window.Close(); mTeamList.Clear(); foreach (var iIndex in System.Linq.Enumerable.Range(0, team_Val)) { AddTeam(string.Format("チーム{0}", iIndex + 1)); } _ClickDivideMember(iSender, iArgs); TeamScrollViewer.ScrollToEnd(); } catch { SystemUtility.DisplayErrorDialog("数値のみ入力できます"); } } }; window.ShowDialog(); }
//============================================================================ //! 選択していないメンバーリストの更新 private void _RefreshJoinMemberList() { MemberStackPanel.Children.Clear(); var set_Width = MemberGrid.Width - 44; int color_Index = 0; var color_List = new Brush[2] { new SolidColorBrush(SystemUtility.StringToColor("#55000000")), new SolidColorBrush(SystemUtility.StringToColor("#55555555")) }; //作成 foreach (var iMember in BattleOperatorManager.GetInstance().GetJoinMemberList()) { if (!_IsInTeamJoinMember(iMember.mJoinID)) { var control = new NoTeamMemberControl(); control.Width = set_Width; control.Background = color_List[color_Index % 2]; control.SetJoinMemberInfo(iMember); control.OnSelectionFilter(); control.PreviewMouseLeftButtonDown += _ClickMember; control.Tag = iMember; MemberStackPanel.Children.Add(control); ++color_Index; } } }
//============================================================================ //! チーム+トーナメント画像出力 private string _CreateConnectScreenShot() { _ClearLeafFilter(); string file_Path = SystemUtility.GetRootPath() + @"ScreenShot\" + BattleOperatorManager.GetInstance().GetBattleName() + ".png"; //一旦親から切り離す var stock_Brush = Background; var parent = (Panel)Parent; parent.Children.Remove(this); try { Background = new SolidColorBrush(Colors.Black); BattleOperatorManager.GetInstance().CreateMemberScreenShot(file_Path, this); parent.Children.Add(this); Background = stock_Brush; } catch (System.Exception iException) { if (Parent == null) { parent.Children.Add(this); } Background = stock_Brush; System.Media.SystemSounds.Hand.Play(); MessageBox.Show(string.Format("スクリーンショットの出力に失敗しました\n\n{0}", iException.Message), "エラー", MessageBoxButton.OK, MessageBoxImage.Error); file_Path = ""; } return(file_Path); }
//============================================================================ //! OKボタンが押された private void _ClickOKButton(object iSender, RoutedEventArgs iArgs) { //チェック var tweet = TweetTextBox.Text.Trim(); if (tweet.Length == 0) { System.Media.SystemSounds.Hand.Play(); MessageBox.Show("ツイートが入力されて居ません", "エラー", MessageBoxButton.OK, MessageBoxImage.Error); return; } tweet += "\n\n#FCあどみぃ!"; //ツイート try { var manager = SystemManager.GetInstance(); var service = new TweetSharp.TwitterService(manager.GetTwitterAPICKey(), manager.GetTwitterAPICSecret()); var info = manager.GetSystemInfo(); service.AuthenticateWith(info.mAccessToken.mToken, info.mAccessToken.mTokenSecret); var responce = service.SendTweet(new TweetSharp.SendTweetOptions { Status = tweet }); System.Media.SystemSounds.Asterisk.Play(); MessageBox.Show("ツイートに成功しました!", "確認", MessageBoxButton.OK, MessageBoxImage.Information); } catch (System.Exception iException) { SystemUtility.DisplayErrorDialog("ツイートに失敗しました\n\n" + iException.Message); } Close(); }
/************************************************************************/ /* 入出力 */ /************************************************************************/ /// <summary> /// データの出力 /// </summary> /// <param name="iFileName">ファイルパス</param> public void WriteData(string iKey, string iFilePath) { //オブジェクトなしの場合はエラー var write_Object = GetData(iKey); if (write_Object == null) { SystemUtility.DisplayErrorDialog("指定されたデータキーが存在しなかった為出力に失敗しました"); return; } //書き出しデータ準備 var write_Data = new SWriteData[1]; write_Data[0].mKeyName = iKey; write_Data[0].mObject = write_Object; //出力 try { SystemUtility.WriteSerializationData(iFilePath, write_Data); } catch (System.Exception iException) { SystemUtility.DisplayErrorDialog("データ出力に失敗しました\n\n" + iException.Message); } }
/// <summary> /// 指定したキーリストに存在しないデータを全て出力する /// </summary> /// <param name="iKeyList">キーリスト</param> /// <param name="iFileName">ファイルパス</param> public void WriteDataNoValidKeys(string[] iKeyList, string iFilePath) { var data_List = new List <SWriteData>(); foreach (var iData in mDataMap) { //キー内に存在しない場合のみ追加 if (Array.IndexOf(iKeyList, iData.Key) == -1) { var write_Data = new SWriteData(); write_Data.mKeyName = iData.Key; write_Data.mObject = iData.Value; data_List.Add(write_Data); } } //出力 try { SystemUtility.WriteSerializationData(iFilePath, data_List.ToArray()); } catch (System.Exception iException) { SystemUtility.DisplayErrorDialog("データ出力に失敗しました\n\n" + iException.Message); } }
/// <summary> /// コンストラクタ /// </summary> public LoadScene() { InitializeComponent(); ContentBorder.IsEnabled = false; //前に読み込んだファイルが存在しない場合はクリック出来ない var get_Obj = DataManager.GetInstance().GetData(SystemUtility.GetSceneName(this)); if (get_Obj == null) { RefPrevFileButton.IsEnabled = false; } else { var info = (SSerialData)get_Obj; if (System.IO.File.Exists(info.mLastRefFilePath)) { RefPrevFileButton.IsEnabled = true; } } //情報設定 var version = Version.CurrentVersion; InfoTextBlock.Text = string.Format("FCあどみぃ! Ver{0} -{1}-", version, SystemManager.GetInstance().GetUserName()); }
//============================================================================ //! その他ボタンが押された時の処理 private void _ClickButton(object iSender, RoutedEventArgs iArgs) { //チェック var button = iSender as Button; if (button == null) { return; } //チームに0人のところがあればエラー foreach (var iTeam in mTeamList) { if (iTeam.mJoinIDList.Count == 0) { SystemUtility.DisplayErrorDialog("所属が0人のチームがあります\n使用しない場合は削除を行ってください"); return; } } //チーム設定をして次へ var manager = BattleOperatorManager.GetInstance(); foreach (var iTeam in mTeamList) { var info = new BattleManager.SBattleTeamInfo(); info.mJoinIDList = new List <int>(iTeam.mJoinIDList.ToArray()); info.mTeamName = iTeam.mTeamName; manager.AddTeam(info); } manager.SetLockTeam(true); mDecideTeamDelegate(); }
//============================================================================ //! チーム名変更時に呼ばれる private void _ChangeTeamName(object iSender, RoutedEventArgs iArgs) { var textbox = iSender as TextBox; if (textbox != null) { //変更が無ければ無視 var index = textbox.TabIndex; var info = mOperator.GetTeamInfo(index); if (info.mTeamName == textbox.Text) { return; } //変更があった場合は全てのチームと比較して同一の名前があった時にエラーを出して戻す foreach (var iIndex in System.Linq.Enumerable.Range(0, mOperator.GetTeamVal())) { //自分自身以外 if (iIndex != index && mOperator.GetTeamInfo(iIndex).mTeamName == textbox.Text) { SystemUtility.DisplayErrorDialog("同じチーム名が存在する為、変更に失敗しました"); textbox.Text = mOperator.GetTeamInfo(index).mTeamName; return; } } //成功という事で変更をかける info.mTeamName = textbox.Text; mOperator.SetTeamInfo(index, info); } }
//============================================================================ //! メンバー保存系ボタンが押された時に呼ばれる private void _ClickSaveLoadButton(object iSender, RoutedEventArgs iArgs) { try { var button = iSender as Button; if (button != null) { //保存 if (button.TabIndex == 0) { //作成チームが無ければエラー if (mTeamList.Count == 0) { System.Media.SystemSounds.Hand.Play(); MessageBox.Show("作成メンバーが一つもありません", "エラー", MessageBoxButton.OK, MessageBoxImage.Error); return; } var dialog = new SaveFileDialog(); dialog.Filter = "チーム構成ファイル(*.tsb)|*.tsb|すべてのファイル(*.*)|*.*"; dialog.Title = "チーム構成ファイルを選択してください"; dialog.RestoreDirectory = true; dialog.InitialDirectory = SystemUtility.GetSystemPath(); if (dialog.ShowDialog() == true) { _WriteTeamData(dialog.FileName); } } //読み込み else { //参加メンバーが既にいれば確認 if (mTeamList.Count != 0) { System.Media.SystemSounds.Asterisk.Play(); var result = MessageBox.Show("既にチームが登録されていますが\n上書きしても宜しいですか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result != MessageBoxResult.Yes) { return; } } var dialog = new OpenFileDialog(); dialog.Filter = "チーム構成ファイル(*.tsb)|*.tsb|すべてのファイル(*.*)|*.*"; dialog.Title = "チーム構成ファイルを選択してください"; dialog.RestoreDirectory = true; dialog.InitialDirectory = SystemUtility.GetSystemPath(); if (dialog.ShowDialog() == true) { _ReadTeamData(dialog.FileName); } } } } catch (System.Exception) { } }
/************************************************************************/ /* 内部処理 */ /************************************************************************/ //============================================================================ //! メンバーリストの更新 private void _RefreshMemberList() { //まだ無視 if (NormalDisplayRadioButton == null) { return; } //メンバーリスト作成 var member_List = MemberManager.GetInstance().GetMemberList((MemberManager.ESortKind)SortMemberComboBox.SelectedIndex); //現在のメンバー全てを設定 MemberStackPanel.Children.Clear(); var set_Width = MemberScrollViewer.Width; int index = 0; var color_List = new Brush[2] { new SolidColorBrush(SystemUtility.StringToColor("#55000000")), new SolidColorBrush(SystemUtility.StringToColor("#55555555")) }; //通常表示 if (NormalDisplayRadioButton.IsChecked == true) { foreach (var iMember in member_List) { var control = new MemberListControl(); control.Width = set_Width; control.Background = color_List[index % 2]; control.EditButton.TabIndex = iMember.mID; control.EditButton.Click += _ClickEditMember; control.SetMemberInfo(iMember); MemberStackPanel.Children.Add(control); ++index; } } else { foreach (var iMember in member_List) { var control = new MemberMinListControl(); control.Width = set_Width; control.Background = color_List[index % 2]; control.EditButton.TabIndex = iMember.mID; control.EditButton.Click += _ClickEditMember; control.SetMemberInfo(iMember); MemberStackPanel.Children.Add(control); ++index; } } //追加コントロール var add_Contrl = new MemberAddControl(); add_Contrl.AddButton.Click += _ClickAddMember; MemberStackPanel.Children.Add(add_Contrl); }
//============================================================================ //! 最後に読み込んだプロジェクトの読み込みボタンが押された private void _ClickRefPrevProject(object iSender, RoutedEventArgs iArgs) { var get_Obj = DataManager.GetInstance().GetData(SystemUtility.GetSceneName(this)); if (get_Obj != null && _LoadProjectFile(((SSerialData)get_Obj).mLastRefFilePath)) { _StartUpTool(); } }
/// <summary> /// データの読み込み /// </summary> /// <param name="iFileName">ファイルパス</param> public void ReadData(string iFilePath) { var get_Data = (SWriteData[])SystemUtility.ReadSerializationData(iFilePath); foreach (var iData in get_Data) { mDataMap[iData.mKeyName] = iData.mObject; } }
//============================================================================ //! メンバーのコミット状態チェック private bool _CheckLockJoinMember() { //コミット状態の場合は、この関数を呼ぶとエラーとして認識 if (mLockJoinMemberFlg) { SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされています\nメンバー情報の変更は行えません"); } return(mLockJoinMemberFlg); }
/************************************************************************/ /* 内部処理 */ /************************************************************************/ //============================================================================ //! エラーチェック private bool _CheckError() { if (!mBeginBattleFlg) { SystemUtility.DisplayErrorDialog("大会管理が起動していない状態で\nプロパティの設定及び取得を行えません"); return(false); } return(true); }
/************************************************************************/ /* 静的処理 */ /************************************************************************/ /// <summary> /// /// </summary> /// <param name="iFilePath"></param> /// <returns></returns> static public bool OutputTeamImageFile(string iFilePath) { try { SystemUtility.OutputImageFile(iFilePath, mCurrentTeamBitmap); return(true); } catch (System.Exception) { return(false); } }
//============================================================================ //! 戻るボタンが押された時の処理 private void _ClickReturn(object iSender, MouseButtonEventArgs iArgs) { //情報保存 var info = new SSerialData(); info.mSortKind = SortMemberComboBox.SelectedIndex; info.mDisplayKind = (NormalDisplayRadioButton.IsChecked == true) ? 0 : 1; DataManager.GetInstance().SetData(SystemUtility.GetSceneName(this), info); //プロジェクトの保存チェック SaveManager.GetInstance().AutoSaveProject(); SceneManager.GetInstance().ReturnBackScene(); }
//============================================================================ //! チームリストの更新 private void _RefreshTeamList() { TeamStackPanel.Children.Clear(); var set_Width = TeamGrid.Width - 44; var color_Index = 0; var color_List = new Brush[2] { new SolidColorBrush(SystemUtility.StringToColor("#55000000")), new SolidColorBrush(SystemUtility.StringToColor("#55555555")) }; foreach (var iTeam in mTeamList) { var control = new TeamControl(); control.Background = color_List[color_Index % 2]; control.SetTeamInfo(iTeam.mTeamID, iTeam.mTeamName); control.RemoveButton.IsEnabled = mTeamOperateFlg; control.RemoveButton.Click += _ClickRemoveTeam; control.RemoveButton.TabIndex = iTeam.mTeamID; control.EditButton.IsEnabled = mTeamOperateFlg; control.EditButton.Click += _ClickEditTeam; control.EditButton.TabIndex = iTeam.mTeamID; control.OpenCloseButton.Click += _ClickTeamInfoOpenClose; control.TabIndex = iTeam.mTeamID; control.SetOpenClose(iTeam.mCloseFlg); //チームに登録されているメンバーを設定 int join_Index = 0; foreach (var iJoinMemberID in iTeam.mJoinIDList) { //戻ってきたメンバーごとのコントロールの削除ボタンの設定 var in_Control = control.AddJoinMember(iJoinMemberID); in_Control.RemoveButton.Tag = iTeam.mTeamID; in_Control.RemoveButton.TabIndex = join_Index; in_Control.RemoveButton.Click += _ClickRemoveMember; ++join_Index; } control.RefreshControlSize(); //チームスタックに挿入 TeamStackPanel.Children.Add(control); ++color_Index; } //追加ボタンを追加 if (mTeamOperateFlg) { var control = new TeamAddControl(); control.AddButton.Click += _ClickAddTeam; control.Width = set_Width; TeamStackPanel.Children.Add(control); } }
/************************************************************************/ /* 片側だけで場合に使用する内部処理 */ /************************************************************************/ //============================================================================ //! リーフ情報作成 private void _CreateSingleLeaf() { //全てのリーフがチームとする(全て同じ深度でなければエラーとする) var root_Point = mTopPointChecker.GetSrcConnectPoint()[0]; var all_Point_List = root_Point.GetLeafPointList(); var depth = -1; foreach (var iPoint in all_Point_List) { if (depth != iPoint.GetDepth()) { if (depth == -1) { depth = iPoint.GetDepth(); } else { SystemUtility.DisplayErrorDialog("リーフ部分に深度が違う物が混じっています"); break; } } } //作成 foreach (var iPoint in all_Point_List) { var team_Info = new SPointLeafInfo(); team_Info.mLabelControl = new TournamentLabelControl(); team_Info.mLabelControl.TabIndex = mLeafInfoList.Count; team_Info.mLabelControl.MouseEnter += _MouseEnterLeafLabel; team_Info.mLabelControl.MouseLeave += _MouseLeaveLeafLabel; team_Info.mLabelControl.PreviewMouseLeftButtonDown += _MouseClickLeafLabel; MainGrid.Children.Add(team_Info.mLabelControl); team_Info.mVersusPoint = iPoint; team_Info.mPointRoot = new List <VersusPointChecker>(); team_Info.mPointRoot.Add(team_Info.mVersusPoint); mLeafInfoList.Add(team_Info); } //チーム戦の場合の設定 if (BattleOperatorManager.GetInstance().IsTeamBattleFlg()) { foreach (var iLeaf in mLeafInfoList) { iLeaf.mLabelControl.PreviewMouseRightButtonDown += _MouseRightClickLeafLabel; iLeaf.mLabelControl.PreviewMouseRightButtonUp += _MouseRightReleaseLeafLabel; } } }
//============================================================================ //! チームメンバー一覧画像出力 private void _ClickTeamOutputItem(object iSender, RoutedEventArgs iArgs) { string file_Path = SystemUtility.GetRootPath() + @"ScreenShot\" + BattleManager.GetInstance().GetBattleOperator().GetBattleName() + "(チーム).png"; if (TeamSelectControl.OutputTeamImageFile(file_Path)) { System.Media.SystemSounds.Asterisk.Play(); MessageBox.Show("以下にスクリーンショットを出力しました\n\n" + file_Path, "確認", MessageBoxButton.OK, MessageBoxImage.Information); } else { System.Media.SystemSounds.Hand.Play(); MessageBox.Show("スクリーンショットの出力に失敗しました", "エラー", MessageBoxButton.OK, MessageBoxImage.Error); } }
//============================================================================ //! 選択していないメンバーリストの更新 private void _RefreshNonSelectMemberList() { NonSelectMemberStackPanel.Children.Clear(); var set_Width = NonSelectMemberScrollViewer.Width; int color_Index = 0; var color_List = new Brush[2] { new SolidColorBrush(SystemUtility.StringToColor("#55000000")), new SolidColorBrush(SystemUtility.StringToColor("#55555555")) }; //メンバーリスト作成 var member_List = MemberManager.GetInstance().GetMemberList((MemberManager.ESortKind)SortMemberComboBox.SelectedIndex); //検索情報 string search_member_name = ""; int search_character_id = -1; if (IsOpenSearchWindow()) { search_member_name = mSearchWindow.GetSearchMemberName(); search_character_id = mSearchWindow.GetSearchCharacterID(); } //作成 foreach (var iMember in member_List) { if (!_IsJoinMember(iMember.mID)) { //サーチチェック if (search_member_name.Length > 0 && iMember.mName.IndexOf(search_member_name) == -1) { continue; } if (search_character_id != -1 && search_character_id != iMember.mDefaultCharacterID) { continue; } var control = new NonSelectMemberControl(); control.Width = set_Width; control.EntryButton.Tag = iMember; control.EntryButton.Click += _ClickJoin; control.Background = color_List[color_Index % 2]; control.SetMemberInfo(iMember); NonSelectMemberStackPanel.Children.Add(control); ++color_Index; } } }
//============================================================================ //! チームのコミット状態チェック private bool _CheckLockTeam() { //メンバーがコミット状態でない場合はエラー if (!mLockJoinMemberFlg) { SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされていなければ\nチームの情報の変更は出来ません"); return(true); } //コミット状態の場合は、この関数を呼ぶとエラーとして認識 if (mLockTeamFlg) { SystemUtility.DisplayErrorDialog("メンバーは既にコミットされています"); } return(mLockTeamFlg); }
//============================================================================ //! 参加メンバー一覧画像出力 private string _CreateJoinMemberScreenShot() { string file_Path = SystemUtility.GetRootPath() + @"ScreenShot\" + BattleOperatorManager.GetInstance().GetBattleName() + "(参加者).png"; try { BattleOperatorManager.GetInstance().CreateMemberScreenShot(file_Path); } catch (System.Exception iException) { System.Media.SystemSounds.Hand.Play(); MessageBox.Show(string.Format("スクリーンショットの出力に失敗しました\n\n{0}", iException.Message), "エラー", MessageBoxButton.OK, MessageBoxImage.Error); file_Path = ""; } return(file_Path); }
/************************************************************************/ /* コールバック処理 */ /************************************************************************/ //============================================================================ //! ボタンが押された時の処理 private void _ClickButton(object iSender, RoutedEventArgs iArgs) { //OKボタンの時は内部チェック if (((Button)iSender).TabIndex == 0) { //テキストボックスチェック if (MemberNameTextBox.Text.Length == 0) { SystemUtility.DisplayErrorDialog("メンバー名を入力してください"); iArgs.Handled = true; return; } } Close(); }
/// <summary> /// コミット状態の設定 /// </summary> /// <param name="iCommitFlg">コミットフラグ</param> public void SetLockJoinMember(bool iCommitFlg) { //チーム状態がコミットであればエラー if (mLockTeamFlg) { SystemUtility.DisplayErrorDialog("チームがコミット状態でメンバーのコミット状態を変更出来ません"); return; } //一致の時無視 if (mLockJoinMemberFlg == iCommitFlg) { return; } mLockJoinMemberFlg = iCommitFlg; }
/************************************************************************/ /* 基本処理 */ /************************************************************************/ /// <summary> /// 大会を実行する /// </summary> public void BeginBattle(BattleManager.EBattleKind iBattleKind) { if (mBeginBattleFlg) { SystemUtility.DisplayErrorDialog("大会管理の二重起動が発生しました"); return; } mCurrentBattleInfo = new BattleManager.SBattleInfo(); mCurrentBattleInfo.mBattleKind = iBattleKind; mCurrentBattleInfo.mDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); mCurrentBattleInfo.mJoinList = new List <BattleManager.SBattleJoinInfo>(); mCurrentBattleInfo.mTeamList = new List <BattleManager.SBattleTeamInfo>(); mLockJoinMemberFlg = false; mBeginBattleFlg = true; mLockTeamFlg = false; }
/************************************************************************/ /* 内部定義 */ /************************************************************************/ //============================================================================ //! 初期化 private void _Initialize() { string preset_Path = SystemUtility.GetResourcePath() + @"Preset"; string[] directory_List = System.IO.Directory.GetDirectories(preset_Path); foreach (string iPath in directory_List) { string preset_File_Path = iPath + @"\Preset.psx"; try { if (System.IO.File.Exists(preset_File_Path)) { //XMLを開いてゲーム名を取得 var analayzer = new DL.CXmlAnalyzer(); analayzer.AnalyzeXmlFile(preset_File_Path); var node = analayzer.GetRootNode().GetChildNodeFromPath("Preset/GameName")[0]; string game_Name = node.GetNodeInfo().mValue; PresetComboBox.Items.Add(game_Name); //プリセット名を追加 string preset_Name = preset_File_Path.Substring(0, preset_File_Path.LastIndexOf(@"\")); preset_Name = preset_Name.Substring(preset_Name.LastIndexOf(@"\") + 1); mPresetNameList.Add(preset_Name); } } catch (System.Exception iException) { //無効なプリセットデータがあります string message = string.Format("不正なプリセットデータが存在します\n[{0}]\n\n -> {1}", preset_File_Path, iException.Message); SystemUtility.DisplayErrorDialog(message); System.Environment.Exit(1); } } //無し if (PresetComboBox.Items.Count == 0) { SystemUtility.DisplayErrorDialog("使用可能なプリセットデータが存在しません"); System.Environment.Exit(1); } //選択 PresetComboBox.SelectedIndex = 0; mSelectIndex = -1; }