//============================================================================ //! 全てのメンバーを指定した人数が埋まる分だけチームを生成して振り分ける 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(); }
/// <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); } }
//============================================================================ //! チーム名変更時に呼ばれる 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); } }
//============================================================================ //! 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); } }
//============================================================================ //! その他ボタンが押された時の処理 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(); }
/// <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 bool _CheckLockJoinMember() { //コミット状態の場合は、この関数を呼ぶとエラーとして認識 if (mLockJoinMemberFlg) { SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされています\nメンバー情報の変更は行えません"); } return(mLockJoinMemberFlg); }
/************************************************************************/ /* 内部処理 */ /************************************************************************/ //============================================================================ //! エラーチェック private bool _CheckError() { if (!mBeginBattleFlg) { SystemUtility.DisplayErrorDialog("大会管理が起動していない状態で\nプロパティの設定及び取得を行えません"); return(false); } return(true); }
/************************************************************************/ /* 片側だけで場合に使用する内部処理 */ /************************************************************************/ //============================================================================ //! リーフ情報作成 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 _ClickButton(object iSender, RoutedEventArgs iArgs) { //OKボタンの時は内部チェック if (((Button)iSender).TabIndex == 0) { //テキストボックスチェック if (MemberNameTextBox.Text.Length == 0) { SystemUtility.DisplayErrorDialog("メンバー名を入力してください"); iArgs.Handled = true; return; } } Close(); }
//============================================================================ //! チームのコミット状態チェック private bool _CheckLockTeam() { //メンバーがコミット状態でない場合はエラー if (!mLockJoinMemberFlg) { SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされていなければ\nチームの情報の変更は出来ません"); return(true); } //コミット状態の場合は、この関数を呼ぶとエラーとして認識 if (mLockTeamFlg) { SystemUtility.DisplayErrorDialog("メンバーは既にコミットされています"); } return(mLockTeamFlg); }
/************************************************************************/ /* 内部定義 */ /************************************************************************/ //============================================================================ //! 初期化 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; }
/// <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 _ClickAddMember(object iSender, RoutedEventArgs iArgs) { //無かった場合はゲームプリセットを選択させる var window = new MemberAddWindow(); //追加ボタンが押されたときの重複チェック window.AddButton.Click += (iClickSender, iClickArgs) => { //既に名前がある場合は無効 string name = window.MemberNameTextBox.Text; foreach (var iInfo in MemberManager.GetInstance().GetMemberList()) { if (name.Length > 14) { iClickArgs.Handled = true; SystemUtility.DisplayErrorDialog("メンバー名は14文字以内で入力してください"); return; } else if (iInfo.mName == name) { iClickArgs.Handled = true; string txt = string.Format("既に「{0}」という名前は存在します\n別の名前にして下さい", name); SystemUtility.DisplayErrorDialog(txt); break; } } }; window.SettingCallback(); //追加が押されて全ての条件を満たした時に追加 window.AddButton.Click += (iClickSender, iClickArgs) => { //追加 var info = new MemberManager.SMemberInfo(); info.mName = window.MemberNameTextBox.Text; info.mDefaultCharacterID = window.GetSelectCharacterIndex(); MemberManager.GetInstance().AddMember(info); //メンバーリストの更新 _RefreshMemberList(); MemberScrollViewer.ScrollToEnd(); }; window.ShowDialog(); }
/************************************************************************/ /* コールバック処理 */ /************************************************************************/ //============================================================================ //! ボタンが押された時の処理 private void _ClickButton(object iSender, RoutedEventArgs iArgs) { //OKボタンの時は内部チェック if (((Button)iSender).TabIndex == 0) { //テキストボックスチェック if (BattleNameTextBox.Text.Length == 0) { SystemUtility.DisplayErrorDialog("大会名を入力してください"); iArgs.Handled = true; return; } //過去の大会に同名の物が無いかチェック foreach (var iBattle in BattleManager.GetInstance().GetBattleList()) { if (iBattle.mName == BattleNameTextBox.Text) { SystemUtility.DisplayErrorDialog("過去に行った大会で同名の物が存在します\n違う名前をを入力してください"); iArgs.Handled = true; return; } } //使えない物をチェック var check_Char_List = new List <char>(new char[] { '\\', ':', '*', '?', '"', '<', '>', '|', '#', '{', '}', '%', '&', '~' }); foreach (char iChar in BattleNameTextBox.Text) { if (check_Char_List.IndexOf(iChar) != -1) { SystemUtility.DisplayErrorDialog(string.Format("大会名に[\"{0}\"]の文字は使用できません", iChar)); iArgs.Handled = true; return; } } } else { //キャンセルの場合 BattleNameTextBox.Text = ""; } Close(); }
/// <summary> /// 現在入っているチームを確定してチーム番号等を割り振る /// </summary> public bool SetLockTeam(bool iCommitFlg) { //一致の時無視 if (mLockTeamFlg == iCommitFlg) { return(mLockTeamFlg); } //メンバー状態がコミットでなければエラー if (!mLockJoinMemberFlg) { SystemUtility.DisplayErrorDialog("参加メンバーが未コミット状態でチームのコミット状態を変更出来ません"); mLockTeamFlg = false; return(false); } mLockJoinMemberFlg = true; mLockTeamFlg = iCommitFlg; return(mLockTeamFlg); }
/************************************************************************/ /* チーム系アクセサ */ /************************************************************************/ /// <summary> /// チームの追加 /// </summary> /// <param name="iTeamName">チーム名</param> public void AddTeam(BattleManager.SBattleTeamInfo iTeamInfo) { if (_CheckLockTeam()) { return; } //同名のチームが追加された場合はエラーとする foreach (var iInfo in mCurrentBattleInfo.mTeamList) { if (iInfo.mTeamName == iTeamInfo.mTeamName) { SystemUtility.DisplayErrorDialog("大会に同盟のチームを設定できません"); throw new System.Exception(); } } //追加 iTeamInfo.mTeamID = mCurrentBattleInfo.mTeamList.Count; mCurrentBattleInfo.mTeamList.Add(iTeamInfo); }
/************************************************************************/ /* 公開処理 */ /************************************************************************/ /// <summary> /// 設定されているプリセット名からプリセットデータをロードする /// </summary> public void LoadPreset() { try { string preset_Name = (string)DataManager.GetInstance().GetData(SaveManager.GetInstance().PresetInfoKey); string preset_Path = SystemUtility.GetResourcePath() + @"Preset\" + preset_Name + @"\"; var analayzer = new DL.CXmlAnalyzer(); analayzer.AnalyzeXmlFile(preset_Path + "Preset.psx"); //背景画像の取得 var node = analayzer.GetRootNode().GetChildNodeFromPath("Preset/BackGroundImage")[0]; mBackgroundImage = ResourceManager.GetInstance().CreateImage(preset_Path + node.GetNodeInfo().mValue + ".adg"); //キャラクター情報の読み込み node = analayzer.GetRootNode().GetChildNodeFromPath("Preset/Characters")[0]; foreach (var iNode in node.GetChildNode("Character")) { var info = new SCharacterInfo(); info.mIndex = int.Parse(iNode.GetChildNode("Index")[0].GetNodeInfo().mValue); info.mName = iNode.GetChildNode("Name")[0].GetNodeInfo().mValue; info.mIconColorList = new Color[2] { SystemUtility.StringToColor(iNode.GetChildNode("UpBGColor")[0].GetNodeInfo().mValue), SystemUtility.StringToColor(iNode.GetChildNode("DownBGColor")[0].GetNodeInfo().mValue) }; info.mNameColorList = new Color[2] { SystemUtility.StringToColor(iNode.GetChildNode("FontColor")[0].GetNodeInfo().mValue), SystemUtility.StringToColor(iNode.GetChildNode("ShadowFontColor")[0].GetNodeInfo().mValue) }; info.mIconImage = ResourceManager.GetInstance().CreateImage(preset_Path + @"\" + string.Format("CIC{0}.adg", info.mIndex)); mCharacterMap.Add(info.mIndex, info); } mUnknownCharacterIcon = ResourceManager.GetInstance().CreateImage(SystemUtility.GetResourcePath() + @"System\CIC_UKN.adg"); } catch (System.Exception iException) { SystemUtility.DisplayErrorDialog(string.Format("プリセットソースの読み込みに失敗しました\n[{0}]", iException.Message)); System.Environment.Exit(1); } }
//============================================================================ //! 画面中でマウスの左ボタンが離された private void _ReleaseMouseLeftButton(object iSender, MouseButtonEventArgs iArgs) { if (mDragMember != null) { int member_Index = mDragMember.TabIndex; int current_Team_Index = mOperator.GetMemberJoinTeamIndex(member_Index); try { //パネルに所属させる if (mCurrentCursorPosition != -1) { if (mCurrentCursorPosition == 0) { mOperator.RemoveTeamMember(member_Index); } else { mOperator.AddTeamMember(mCurrentCursorPosition - 1, member_Index); } } //ドラッグ終了 _ClearDrag(); _RefreshDisplay(); //ここで全てのメンバーの所属が決まったら次に進むかを聞いてOKなら進む foreach (var iInfo in mOperator.GetMemberList()) { if (mOperator.GetMemberJoinTeamIndex(iInfo.mMemberID) == -1) { return; } } //1チームしかない場合はエラー if (TeamWrapPanel.Children.Count < 2) { SystemUtility.DisplayErrorDialog("チームが1つ以下です、チームを2チーム以上に分割して下さい"); throw new System.Exception(); } //各チームにメンバーが一人は所属していること foreach (TeamDetailsControl iControl in TeamWrapPanel.Children) { if (iControl.MemberWrapPanel.Children.Count == 0) { SystemUtility.DisplayErrorDialog("一人のメンバーも所属していないチームが存在しています"); throw new System.Exception(); } } //確認 System.Media.SystemSounds.Question.Play(); var result = MessageBox.Show("このチーム編成で先に進みますか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (result == MessageBoxResult.Yes) { //予約先へ進む if (mOperator.SetCommitTeam(true)) { SceneManager.GetInstance().AdvanceScene(mNextScene); var stack = TeamWrapPanel.Background; TeamWrapPanel.Background = new SolidColorBrush(SystemUtility.StringToColor("#C8000000")); TeamWrapPanel.UpdateLayout(); mCurrentTeamBitmap = SystemUtility.GetCaptureControlBitmap(TeamWrapPanel); TeamWrapPanel.Background = stack; } } else { throw new System.Exception(); } } catch (System.Exception) { mOperator.RemoveTeamMember(member_Index); _RefreshDisplay(); } } }
//============================================================================ //! メンバーの編集ボタンが押された時の処理 private void _ClickEditMember(object iSender, RoutedEventArgs iArgs) { //チェック var button = iSender as Button; if (button == null) { return; } //押されたボタンのメンバー情報取得 int id = button.TabIndex; var member_Info = MemberManager.GetInstance().GetMemberInfo(id); //選択されているセルが無かった場合は無視 var window = new MemberAddWindow(); window.Title = "メンバー編集"; int index = 1; foreach (var iInfo in PresetManager.GetInstance().GetCharacterList()) { if (iInfo.mIndex == member_Info.mDefaultCharacterID) { window.CharacterComboBox.SelectedIndex = index; break; } ++index; } string current_Name = member_Info.mName; window.MemberNameTextBox.Text = current_Name; window.AddButton.Content = "決定"; //追加ボタンが押されたときの重複チェック window.AddButton.Click += (iClickSender, iClickArgs) => { //既に名前がある場合は無効 string name = window.MemberNameTextBox.Text; foreach (var iInfo in MemberManager.GetInstance().GetMemberList()) { if (iInfo.mName == name) { //現在の自分の物の場合は無視 if (current_Name != name) { iClickArgs.Handled = true; string txt = string.Format("既に「{0}」という名前は存在します\n別の名前にして下さい", name); SystemUtility.DisplayErrorDialog(txt); break; } } } }; window.SettingCallback(); //追加が押されて全ての条件を満たした時に追加 window.AddButton.Click += (iClickSender, iClickArgs) => { if (current_Name != window.MemberNameTextBox.Text || member_Info.mDefaultCharacterID != window.GetSelectCharacterIndex()) { try { member_Info.mName = window.MemberNameTextBox.Text; member_Info.mDefaultCharacterID = window.GetSelectCharacterIndex(); MemberManager.GetInstance().SetMemberInfo(id, member_Info); _RefreshMemberList(); } catch (System.Exception) { } } }; window.ShowDialog(); }
//============================================================================ //! チームの編集ボタンが押された時の処理 private void _ClickEditTeam(object iSender, RoutedEventArgs iArgs) { //チェック var button = iSender as Button; if (button == null) { return; } //ウィンドウ表示準備 var window = new TeamAddWindow(); window.Title = "チーム編集"; var index = button.TabIndex; string current_Name = mTeamList[index].mTeamName; window.TeamNameTextBox.Text = current_Name; window.AddButton.Content = "決定"; //追加ボタンが押されたときの重複チェック window.AddButton.Click += (iClickSender, iClickArgs) => { //既に名前がある場合は無効 string name = window.TeamNameTextBox.Text; foreach (var iInfo in MemberManager.GetInstance().GetMemberList()) { if (iInfo.mName == name) { //現在の自分の物の場合は無視 if (current_Name != name) { iClickArgs.Handled = true; string txt = string.Format("既に「{0}」というチームは存在します\n別の名前にして下さい", name); SystemUtility.DisplayErrorDialog(txt); break; } } } }; window.SettingCallback(); //決定が押されて全ての条件を満たした時に追加 window.AddButton.Click += (iClickSender, iClickArgs) => { if (current_Name != window.TeamNameTextBox.Text) { try { var info = mTeamList[index]; info.mTeamName = window.TeamNameTextBox.Text; mTeamList[index] = info; _Refresh(); } catch (System.Exception) { } } }; window.ShowDialog(); }
//============================================================================ //! チーム追加ボタンが押された時の処理 private void _ClickAddTeam(object iSender, RoutedEventArgs iArgs) { //無かった場合はゲームプリセットを選択させる var window = new TeamAddWindow(); //チーム名の自動設定 int useable_Team_Index = 1; string team_Name = ""; while (true) { team_Name = string.Format("チーム{0}", useable_Team_Index); bool end_Flg = true; foreach (var iTeam in mTeamList) { if (iTeam.mTeamName == team_Name) { end_Flg = false; break; } } //終了チェック if (end_Flg) { break; } ++useable_Team_Index; } window.TeamNameTextBox.Text = team_Name; //追加ボタンが押されたときの重複チェック window.AddButton.Click += (iClickSender, iClickArgs) => { //既に名前がある場合は無効 string name = window.TeamNameTextBox.Text; foreach (var iTeam in mTeamList) { if (name.Length > 15) { iClickArgs.Handled = true; SystemUtility.DisplayErrorDialog("チーム名は15文字以内で入力してください"); return; } else if (iTeam.mTeamName == name) { iClickArgs.Handled = true; string txt = string.Format("既に「{0}」というチームは存在します\n別の名前にして下さい", name); SystemUtility.DisplayErrorDialog(txt); break; } } }; window.SettingCallback(); //追加が押されて全ての条件を満たした時に追加 window.AddButton.Click += (iClickSender, iClickArgs) => { //追加 AddTeam(window.TeamNameTextBox.Text); //メンバーリストの更新 _RefreshTeamList(); _RefreshButton(); TeamScrollViewer.ScrollToEnd(); }; window.ShowDialog(); }