//============================================================================ //! リーフラベルが右クリックされた時に呼ばれる処理 private void _MouseRightClickLeafLabel(object iSender, MouseEventArgs iArgs) { //チェック var control = iSender as TournamentLabelControl; if (control == null) { return; } //チーム詳細表示 var manager = BattleOperatorManager.GetInstance(); var team_Index = mLeafInfoList[control.TabIndex].mLabelControl.GetSetInfo(); var team_Info = manager.GetTeamInfo(team_Index); var list = new List <BattleManager.SBattleJoinInfo>(); foreach (var iJoinMemberID in team_Info.mJoinIDList) { var info = new BattleManager.SBattleJoinInfo(); manager.GetJoinInfo(ref info, iJoinMemberID); list.Add(info); } mTeamDisplayControl.TeamNameTextBlock.Text = team_Info.mTeamName; mTeamDisplayControl.SetJoinMemberList(list); mTeamDisplayControl.Margin = new Thickness(); mTeamDisplayControl.Visibility = Visibility.Visible; }
/************************************************************************/ /* アクセサ */ /************************************************************************/ /// <summary> /// 参加メンバー情報の設定 /// </summary> /// <param name="iJoinMemberInfo">参加メンバー情報</param> public void SetJoinMemberInfo(BattleManager.SBattleJoinInfo iJoinMemberInfo) { //テキスト系設定 MemberNoTextBlock.Text = string.Format("参加No.{0:D2}", iJoinMemberInfo.mJoinID + 1); MemberNameTextBlock.Text = MemberManager.GetInstance().GetMemberInfo(iJoinMemberInfo.mMemberID).mName; //アイコン設定 bool set_Valid_Use_Character_ID_Flg = (iJoinMemberInfo.mUserCharacterID != -1); if (set_Valid_Use_Character_ID_Flg) { try { UseCharacterImage.Source = PresetManager.GetInstance().GetCharacterInfo(iJoinMemberInfo.mUserCharacterID).mIconImage; } catch (System.Exception) { set_Valid_Use_Character_ID_Flg = false; } } if (!set_Valid_Use_Character_ID_Flg) { UseCharacterImage.Source = PresetManager.GetInstance().GetUnknownCharacterIcon(); } }
/// <summary> /// 参加者IDから参加情報を取得 /// </summary> /// <param name="oJoinInfo">参加情報出力先</param> /// <param name="iJoinID">参加者ID</param> /// <returns>取得フラグ</returns> public bool GetJoinInfo(ref BattleManager.SBattleJoinInfo oJoinInfo, int iJoinID) { if (!_CheckError()) { return(false); } oJoinInfo = mCurrentBattleInfo.mJoinList[iJoinID]; return(true); }
/************************************************************************/ /* アクセサ */ /************************************************************************/ /// <summary> /// 表示情報設定 /// </summary> /// <param name="iInfoIndex">表示情報番号</param> public void SetInfo(int iInfoIndex) { string top_Name = ""; int character_Index = -1; //チーム戦の場合 if (BattleOperatorManager.GetInstance().IsTeamBattleFlg()) { var team_Info = BattleOperatorManager.GetInstance().GetTeamInfo(iInfoIndex); top_Name = team_Info.mTeamName; var join_Info = new BattleManager.SBattleJoinInfo(); BattleOperatorManager.GetInstance().GetJoinInfo(ref join_Info, team_Info.mJoinIDList[0]); character_Index = join_Info.mUserCharacterID; } //シングル戦の場合 else { var join_Info = new BattleManager.SBattleJoinInfo(); BattleOperatorManager.GetInstance().GetJoinInfo(ref join_Info, iInfoIndex); top_Name = MemberManager.GetInstance().GetMemberInfo(join_Info.mMemberID).mName; character_Index = join_Info.mUserCharacterID; } //設定 TopTextBlock.Text = top_Name; bool set_Valid_Use_Character_ID_Flg = (character_Index != -1); if (set_Valid_Use_Character_ID_Flg) { try { TopCharacterImage.Source = PresetManager.GetInstance().GetCharacterInfo(character_Index).mIconImage; } catch (System.Exception) { set_Valid_Use_Character_ID_Flg = false; } } if (!set_Valid_Use_Character_ID_Flg) { TopCharacterImage.Source = PresetManager.GetInstance().GetUnknownCharacterIcon(); } TopCharacterImage.Visibility = Visibility.Visible; mInfoIndex = iInfoIndex; }
/// <summary> /// メンバーIDから参加情報を取得 /// </summary> /// <param name="oJoinInfo">参加情報出力先</param> /// <param name="iMemberID">メンバーID</param> /// <returns>取得フラグ</returns> public bool GetJoinInfoFromMemberID(BattleManager.SBattleJoinInfo oJoinInfo, int iMemberID) { if (!_CheckError()) { return(false); } foreach (var iInfo in mCurrentBattleInfo.mJoinList) { if (iInfo.mMemberID == iMemberID) { oJoinInfo = iInfo; return(true); } } return(false); }
/// <summary> /// 参加メンバーIDの追加 /// </summary> /// <param name="iJoinIndex">参加メンバーID</param> public InTeamMemberControl AddJoinMember(int iJoinIndex) { //コントロールの設定 var color_List = new Brush[2] { new SolidColorBrush(SystemUtility.StringToColor("#55000000")), new SolidColorBrush(SystemUtility.StringToColor("#55555555")) }; var control = new InTeamMemberControl(); control.Width = Width; control.Background = color_List[mMemberList.Count % 2]; control.TabIndex = mMemberList.Count; var get_Info = new BattleManager.SBattleJoinInfo(); BattleOperatorManager.GetInstance().GetJoinInfo(ref get_Info, iJoinIndex); control.SetJoinMemberInfo(mMemberList.Count, get_Info); MemberStackPanel.Children.Add(control); mMemberList.Add(iJoinIndex); MemberValTextBlock.Text = string.Format("このチームには{0}人所属しています", mMemberList.Count); return(control); }
/// <summary> /// 参加するメンバーを追加 /// </summary> /// <param name="iMemberID">メンバーID</param> /// <param name="iCharacterID">使用キャラクター番号</param> public void AddMember(int iMemberID, int iCharacterID) { if (_CheckLockJoinMember()) { return; } //既に追加済みの場合はエラーとする foreach (var iInfo in mCurrentBattleInfo.mJoinList) { if (iInfo.mMemberID == iMemberID) { throw new System.Exception(); } } //追加 var member_Info = new BattleManager.SBattleJoinInfo(); member_Info.mMemberID = iMemberID; member_Info.mUserCharacterID = iCharacterID; member_Info.mJoinID = mCurrentBattleInfo.mJoinList.Count; mCurrentBattleInfo.mJoinList.Add(member_Info); }
/// <summary> /// スクリーンショットを撮る準備(チーム画像をスクリーンショットグリッドに入れておく) /// </summary> public void BeginScreenShot() { //必要なコントロールを作成 var control_List = new List <TeamDisplay>(); var manager = BattleOperatorManager.GetInstance(); var team_Val = manager.GetTeamVal(); foreach (var iTeamIndex in System.Linq.Enumerable.Range(0, team_Val)) { var team_Info = manager.GetTeamInfo(iTeamIndex); var list = new List <BattleManager.SBattleJoinInfo>(); foreach (var iJoinMemberID in team_Info.mJoinIDList) { var info = new BattleManager.SBattleJoinInfo(); manager.GetJoinInfo(ref info, iJoinMemberID); list.Add(info); } var control = new TeamDisplay(); control.TeamNameTextBlock.Text = team_Info.mTeamName; control.SetJoinMemberList(list); control_List.Add(control); } //正方形にできるだけなるように敷き詰める数を取得 var val = 1; while (true) { var check = Math.Pow(2, (double)val); if (team_Val < check) { break; } ++val; } //グリッドに挿入 var margin = new Thickness(); var grid = SystemManager.GetInstance().GetScreenShotGrid(); var sum_Height = 0.0; while (control_List.Count > 0) { //横方向への挿入 margin.Left = 0; var max_Height = 0.0; var sum_Width = 0.0; foreach (var iIndex in System.Linq.Enumerable.Range(0, val)) { var control = control_List[0]; control.Margin = margin; grid.Children.Add(control); //横へずらす margin.Left += control.Width; sum_Width += control.Width; //縦の最大サイズ取得 if (max_Height < control.Height) { max_Height = control.Height; } //先頭を削除して無くなったら終わり control_List.RemoveAt(0); if (control_List.Count == 0) { break; } } //横方向へサイズ変更チェック if (grid.Width < sum_Width) { grid.Width = sum_Width; } //縦移動 margin.Top += max_Height; sum_Height += max_Height; } //縦方向へサイズ変更チェック if (grid.Height < sum_Height) { grid.Height = sum_Height; } }