/// <summary> /// リフレッシュ /// </summary> public void Refresh() { //ラインの着色設定 foreach (var iLeaf in mLeafInfoList) { //まだ対戦していない場合 var root_Val = iLeaf.mPointRoot.Count; if (root_Val < 2) { iLeaf.mPointRoot[0].SetLineColor(new SolidColorBrush(Colors.White), true); iLeaf.mLabelControl.Opacity = 1; continue; } //勝ってる所に対してラインのZ位置及びカラーを設定 var lose_Flg = (iLeaf.mPointRoot[root_Val - 1] == null); var set_Val = iLeaf.mPointRoot.Count - 1; if (lose_Flg) { --set_Val; } foreach (var iIndex in System.Linq.Enumerable.Range(0, set_Val)) { iLeaf.mPointRoot[iIndex].SetLineColor(new SolidColorBrush(Colors.Red), true); iLeaf.mPointRoot[iIndex].SetZIndex(1000); } //負けてる場合の変更 if (lose_Flg) { iLeaf.mPointRoot[set_Val].SetLineColor(new SolidColorBrush(Colors.White), false); iLeaf.mPointRoot[set_Val].SetZIndex(0); iLeaf.mLabelControl.Opacity = 0.3; } else { iLeaf.mLabelControl.Opacity = 1; } } //勝者ラベル設定 if (mResultList.Count == mBattleVal) { WinnerLeafLabel.Opacity = 1; var last_Result = mResultList[mResultList.Count - 1]; var leaf_Index = last_Result.mLeafIndexList[last_Result.mWinLeafIndex]; WinnerLeafLabel.SetInfo(mLeafInfoList[leaf_Index].mLabelControl.GetSetInfo()); } else { WinnerLeafLabel.RemoveInfo(); WinnerLeafLabel.Opacity = 0.3; WinnerLeafLabel.TopTextBlock.Text = ""; } }
//============================================================================ //! 優勝者用ラベルがリーフラベルから出た時に呼ばれる処理 private void _MouseLeaveWinnerLabel(object iSender, MouseEventArgs iArgs) { //チェック var control = iSender as TournamentLabelControl; if (control == null) { return; } //優勝者が確定してる時のみ if (WinnerLeafLabel.IsSettingInfo()) { WinnerLeafLabel.SetVisibleFilter(false); } }
//============================================================================ //! 優勝者用ラベルがクリックされた時に呼ばれる処理 private void _MouseClickWinnerLabel(object iSender, MouseButtonEventArgs iArgs) { //チェック var control = iSender as TournamentLabelControl; if (control == null) { return; } //優勝者が確定してる時のみ if (WinnerLeafLabel.IsSettingInfo()) { System.Media.SystemSounds.Asterisk.Play(); var result = MessageBox.Show("トーナメント結果を確定しても宜しいですか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { //実際はコールバックかな?取り敢えず今はこれでOK WinnerLeafLabel.SetVisibleFilter(false); //クローズ CloseOptionWindow(); //取り敢えず今はここで書き出し及びループを行う var btl_Obj = BattleOperatorManager.GetInstance().GetBattleObject() as SimpleTournamentObject; foreach (var iLeaf in mLeafInfoList) { btl_Obj.AddLeafInfoIndex(iLeaf.mLabelControl.GetSetInfo()); } foreach (var iResult in mResultList) { var info = new SimpleTournamentObject.SResult(); info.mReafLabelIndexList = iResult.mLeafIndexList; info.mWinTeamIndex = iResult.mWinLeafIndex; info.mIgnoreTournament = false; btl_Obj.AddResult(info); } BattleOperatorManager.GetInstance().CommitBattle(); SaveManager.GetInstance().AutoSaveProject(); SceneManager.GetInstance().ReturnBackScene(SceneManager.EScene.SCENE_MAIN); } } }