Esempio n. 1
0
        /************************************************************************/
        /* 内部定義                                                             */
        /************************************************************************/

        //============================================================================
        //! システムイメージの作成
        private void _CreateSystemImage()
        {
            var manager       = ResourceManager.GetInstance();
            var resource_Path = SystemUtility.GetResourcePath();

            MemberHeaderImage.Source = manager.CreateImage(resource_Path + @"\System\MemberHeader.adg");
        }
Esempio n. 2
0
        /************************************************************************/
        /* アクセサ                                                             */
        /************************************************************************/

        /// <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;
        }
Esempio n. 3
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);
            }
        }
Esempio n. 4
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();
        }
Esempio n. 5
0
        //============================================================================
        //! 選択していないメンバーリストの更新
        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);
        }
Esempio n. 7
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();
        }
Esempio n. 8
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);
            }
        }
Esempio n. 9
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);
            }
        }
Esempio n. 10
0
        /// <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());
        }
Esempio n. 11
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();
        }
Esempio n. 12
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);
            }
        }
Esempio n. 13
0
        //============================================================================
        //! メンバー保存系ボタンが押された時に呼ばれる
        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)
            {
            }
        }
Esempio n. 14
0
        /************************************************************************/
        /* 内部処理                                                             */
        /************************************************************************/

        //============================================================================
        //! メンバーリストの更新
        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);
        }
Esempio n. 15
0
        //============================================================================
        //! 最後に読み込んだプロジェクトの読み込みボタンが押された
        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();
            }
        }
Esempio n. 16
0
        /// <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;
            }
        }
Esempio n. 17
0
        //============================================================================
        //! メンバーのコミット状態チェック
        private bool _CheckLockJoinMember()
        {
            //コミット状態の場合は、この関数を呼ぶとエラーとして認識
            if (mLockJoinMemberFlg)
            {
                SystemUtility.DisplayErrorDialog("参加メンバー情報は既にはロックされています\nメンバー情報の変更は行えません");
            }

            return(mLockJoinMemberFlg);
        }
Esempio n. 18
0
        /************************************************************************/
        /* 内部処理                                                             */
        /************************************************************************/

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

            return(true);
        }
Esempio n. 19
0
        /************************************************************************/
        /* 静的処理                                                             */
        /************************************************************************/

        /// <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);
            }
        }
Esempio n. 20
0
        //============================================================================
        //! 戻るボタンが押された時の処理
        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();
        }
Esempio n. 21
0
        //============================================================================
        //! チームリストの更新
        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);
            }
        }
Esempio n. 24
0
        //============================================================================
        //! 選択していないメンバーリストの更新
        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;
                }
            }
        }
Esempio n. 25
0
        //============================================================================
        //! チームのコミット状態チェック
        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);
        }
Esempio n. 27
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();
        }
Esempio n. 28
0
        /// <summary>
        /// コミット状態の設定
        /// </summary>
        /// <param name="iCommitFlg">コミットフラグ</param>
        public void SetLockJoinMember(bool iCommitFlg)
        {
            //チーム状態がコミットであればエラー
            if (mLockTeamFlg)
            {
                SystemUtility.DisplayErrorDialog("チームがコミット状態でメンバーのコミット状態を変更出来ません");
                return;
            }

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

            mLockJoinMemberFlg = iCommitFlg;
        }
Esempio n. 29
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;
        }
Esempio n. 30
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;
        }