public WudaoOpponentItem(WudaoOpponent opponent, CommonSettings.ObjectCallBack callback) { InitializeComponent(); opp = opponent; this.callback = callback; SayContent.Text = opponent.Say; HeadImage.Source = opponent.Team[0].Head; InfoText.Text = string.Format("{0}({1}) 周目:{2}\n游戏时间:{3}\n战斗力评估:{4}", opponent.Team[0].Name, opponent.Menpai == "" ? "无门派" : opponent.Menpai, opponent.Round == 0 ? "/" : opponent.Round.ToString(), CommonSettings.DateTimeToGameTime(opponent.GameTime), opponent.Power ); if (opponent.Rank == 1) { RankText.Text = string.Format("武林霸主"); RankText.Foreground = new SolidColorBrush(Colors.Orange); } else if (opponent.Rank < 10) { RankText.Text = string.Format("江湖排名:{0}", opponent.Rank); RankText.Foreground = new SolidColorBrush(Colors.Green); } else if (opponent.Rank < 50) { RankText.Text = string.Format("江湖排名:{0}", opponent.Rank); RankText.Foreground = new SolidColorBrush(Colors.Yellow); } else if (opponent.Rank < 100) { RankText.Text = string.Format("江湖排名:{0}", opponent.Rank); RankText.Foreground = new SolidColorBrush(Colors.Purple); } else if (opponent.Rank < 500) { RankText.Text = string.Format("江湖排名:{0}", opponent.Rank); RankText.Foreground = new SolidColorBrush(Colors.White); } else { RankText.Text = string.Format("江湖排名:{0}", opponent.Rank); RankText.Foreground = new SolidColorBrush(Colors.Gray); } foreach (var r in opponent.Team) { Role role = r; Image img = new Image() { Source = r.Head, Width = 40, Height = 40 }; ToolTipService.SetToolTip(img, "点击查看详情"); img.MouseLeftButtonUp += (s, e) => { RuntimeData.Instance.gameEngine.uihost.rolePanel.Show(role); }; TeamPanel.Children.Add(img); } }
/// <summary> /// 武道大会 /// </summary> /// <param name="opp"></param> public void LoadWudao(WudaoOpponent opp) { WudaoOpponent me = new WudaoOpponent(); me.Team = uiHost.arenaSelectRole.selectedMyFriends; if (me.IsCheat) { MessageBox.Show("检测到你在作弊,禁止参加武道大会"); RuntimeData.Instance.IsCheated = true; return; } if (opp.IsCheat) { MessageBox.Show("检测到对方作弊,直接判定胜利。"); GameServerManager.Instance.BeatWudaoOpponent(opp); MessageBox.Show("恭喜你,你的江湖排名升级到第" + opp.Rank + "名"); RuntimeData.Instance.gameEngine.CallScence( uiHost.battleFieldContainer.field, new NextGameState() { Type = "wudaodahui", Value = "" }); return; } CurrentScrollDirection = ScrollDirection.NONE; this.Visibility = System.Windows.Visibility.Visible; Battle battle = BattleManager.GetBattle("武道大会_比武"); field.LoadWudaodahui(battle, opp, (ret) => { uiHost.mapUI.resetTeam(); List <Role> roles = uiHost.arenaSelectRole.selectedMyFriends; //赢了交换名次 if (ret == 1) { GameServerManager.Instance.BeatWudaoOpponent(opp); MessageBox.Show("恭喜你,你的江湖排名升级到第" + opp.Rank + "名"); } //RuntimeData.Instance.gameEngine.LoadMap(RuntimeData.Instance.CurrentBigMap); RuntimeData.Instance.gameEngine.CallScence( uiHost.battleFieldContainer.field, new NextGameState() { Type = "wudaodahui", Value = "" }); }); this.BattleFieldScrollable = true; this.IsEnabled = false; this.FadeOut.Stop(); this.FadeIn.Begin(); }
private void Refresh() { UIHost uiHost = RuntimeData.Instance.gameEngine.uihost; RolesPanel.Children.Clear(); SayContentText.Text = RuntimeData.Instance.WudaoSay; Status = WudaoDahuiPanelStatus.Working; this.StatusInfoText.Text = "正在联机获取信息,请稍后..."; //获取对手数据 GameServerManager.Instance.GetWudaodahuiOpponents((opponents) => { Status = WudaoDahuiPanelStatus.Idle; //如果读到数据了,但玩家已经取消了 if (this.Visibility == System.Windows.Visibility.Collapsed) { return; } //读取出错 if (opponents == null) { this.StatusInfoText.Text = "获取失败,请检查网络连接!"; return; } //没有合适的对手 if (opponents.Count == 0) { this.StatusInfoText.Text = "没有找到合适的对手!"; if (RuntimeData.Instance.Rank == 1) { this.StatusInfoText.Text = "恭喜你,你已经问鼎江湖第一,没有对手了。"; } return; } this.StatusInfoText.Text = "请选择你的对手"; //填充对手列表 foreach (var oppent in from o in opponents orderby o.Rank select o) { foreach (var r in oppent.Team) { r.Reset(); } this.RolesPanel.Children.Add(new WudaoOpponentItem(oppent, (sender) => { WudaoOpponent opp = (sender as WudaoOpponentItem).opp; this.Visibility = System.Windows.Visibility.Collapsed; uiHost.arenaSelectRole.confirmBack = () => { //先将选择的角色发到服务器存档 RuntimeData.Instance.WudaoSay = SayContentText.Text; List <Role> roles = uiHost.arenaSelectRole.selectedMyFriends; GameServerManager.Instance.SendWudaodahuiTeam(RuntimeData.Instance.UUID, roles); //载入战斗 RuntimeData.Instance.gameEngine.uihost.battleFieldContainer.LoadWudao(opp); }; uiHost.arenaSelectRole.cancelBack = () => { this.Show(); }; uiHost.arenaSelectRole.load(3, new string[] { "主角" }); })); } }); }