コード例 #1
0
        //============================================================================
        //! 全てのメンバーを指定した人数が埋まる分だけチームを生成して振り分ける
        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();
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        //============================================================================
        //! チーム名変更時に呼ばれる
        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);
            }
        }
コード例 #4
0
        //============================================================================
        //! 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();
        }
コード例 #5
0
        /************************************************************************/
        /* 入出力                                                               */
        /************************************************************************/

        /// <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);
            }
        }
コード例 #6
0
        //============================================================================
        //! その他ボタンが押された時の処理
        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();
        }
コード例 #7
0
        /// <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);
            }
        }
コード例 #8
0
        //============================================================================
        //! メンバーのコミット状態チェック
        private bool _CheckLockJoinMember()
        {
            //コミット状態の場合は、この関数を呼ぶとエラーとして認識
            if (mLockJoinMemberFlg)
            {
                SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされています\nメンバー情報の変更は行えません");
            }

            return(mLockJoinMemberFlg);
        }
コード例 #9
0
        /************************************************************************/
        /* 内部処理                                                             */
        /************************************************************************/

        //============================================================================
        //! エラーチェック
        private bool _CheckError()
        {
            if (!mBeginBattleFlg)
            {
                SystemUtility.DisplayErrorDialog("大会管理が起動していない状態で\nプロパティの設定及び取得を行えません");
                return(false);
            }

            return(true);
        }
コード例 #10
0
        /************************************************************************/
        /* 片側だけで場合に使用する内部処理                                     */
        /************************************************************************/

        //============================================================================
        //! リーフ情報作成
        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;
                }
            }
        }
コード例 #11
0
        /************************************************************************/
        /* コールバック処理                                                     */
        /************************************************************************/

        //============================================================================
        //! ボタンが押された時の処理
        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();
        }
コード例 #12
0
        //============================================================================
        //! チームのコミット状態チェック
        private bool _CheckLockTeam()
        {
            //メンバーがコミット状態でない場合はエラー
            if (!mLockJoinMemberFlg)
            {
                SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされていなければ\nチームの情報の変更は出来ません");
                return(true);
            }

            //コミット状態の場合は、この関数を呼ぶとエラーとして認識
            if (mLockTeamFlg)
            {
                SystemUtility.DisplayErrorDialog("メンバーは既にコミットされています");
            }
            return(mLockTeamFlg);
        }
コード例 #13
0
        /************************************************************************/
        /* 内部定義                                                             */
        /************************************************************************/

        //============================================================================
        //! 初期化
        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;
        }
コード例 #14
0
        /// <summary>
        /// コミット状態の設定
        /// </summary>
        /// <param name="iCommitFlg">コミットフラグ</param>
        public void SetLockJoinMember(bool iCommitFlg)
        {
            //チーム状態がコミットであればエラー
            if (mLockTeamFlg)
            {
                SystemUtility.DisplayErrorDialog("チームがコミット状態でメンバーのコミット状態を変更出来ません");
                return;
            }

            //一致の時無視
            if (mLockJoinMemberFlg == iCommitFlg)
            {
                return;
            }

            mLockJoinMemberFlg = iCommitFlg;
        }
コード例 #15
0
        /************************************************************************/
        /* 基本処理			                                                    */
        /************************************************************************/

        /// <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;
        }
コード例 #16
0
ファイル: MemberScene.xaml.cs プロジェクト: DiceRoom/FCAdmy
        //============================================================================
        //! メンバーの追加ボタンが押された時の処理
        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();
        }
コード例 #17
0
        /************************************************************************/
        /* コールバック処理                                                     */
        /************************************************************************/

        //============================================================================
        //! ボタンが押された時の処理
        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();
        }
コード例 #18
0
        /// <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);
        }
コード例 #19
0
        /************************************************************************/
        /* チーム系アクセサ	                                                    */
        /************************************************************************/

        /// <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);
        }
コード例 #20
0
        /************************************************************************/
        /* 公開処理                                                             */
        /************************************************************************/

        /// <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);
            }
        }
コード例 #21
0
        //============================================================================
        //! 画面中でマウスの左ボタンが離された
        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();
                }
            }
        }
コード例 #22
0
ファイル: MemberScene.xaml.cs プロジェクト: DiceRoom/FCAdmy
        //============================================================================
        //! メンバーの編集ボタンが押された時の処理
        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();
        }
コード例 #23
0
        //============================================================================
        //! チームの編集ボタンが押された時の処理
        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();
        }
コード例 #24
0
        //============================================================================
        //! チーム追加ボタンが押された時の処理
        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();
        }