public async void UpdateChampList() { var champs = new List <MyChampDto>(); foreach (var riot in await Session.Current.Account.GetAvailableChampions()) { if ((!riot.Owned && !riot.FreeToPlay) || riot.Banned) { continue; } champs.Add(DataDragon.GetChampData(riot.ChampionId)); } SetChampList(champs); }
public MatchDetails(RiotACS.Game game, RiotACS.Delta delta, Action back = null) { InitializeComponent(); this.back = back; if (back == null) { BackButton.Visibility = Visibility.Collapsed; } var blue = new List <object>(); var red = new List <object>(); foreach (var player in game.Participants) { var champ = DataDragon.GetChampData(player.ChampionId); var spell1 = DataDragon.GetSpellData(player.Spell1Id); var spell2 = DataDragon.GetSpellData(player.Spell2Id); var items = new[] { player.Stats.Item0, player.Stats.Item1, player.Stats.Item2, player.Stats.Item3, player.Stats.Item4, player.Stats.Item5, player.Stats.Item6 }; var item = new { ChampImage = DataDragon.GetChampIconImage(champ), Spell1Image = DataDragon.GetSpellImage(spell1), Spell2Image = DataDragon.GetSpellImage(spell2), Name = champ.name, Score = $"{player.Stats.Kills} / {player.Stats.Deaths} / {player.Stats.Assists}", Item0Image = DataDragon.GetItemImage(items[0]), Item1Image = DataDragon.GetItemImage(items[1]), Item2Image = DataDragon.GetItemImage(items[2]), Item3Image = DataDragon.GetItemImage(items[3]), Item4Image = DataDragon.GetItemImage(items[4]), Item5Image = DataDragon.GetItemImage(items[5]), Item6Image = DataDragon.GetItemImage(items[6]), CS = player.Stats.TotalMinionsKilled, Gold = (player.Stats.GoldEarned / 1000.0).ToString("#.#k") }; if (player.TeamId == 100) { blue.Add(item); } else { red.Add(item); } } BlueTeam.ItemsSource = blue; RedTeam.ItemsSource = red; }
private void GotChampions(Task <ChampionDTO[]> Champs) { if (Champs.IsFaulted) { if (Debugger.IsAttached) { Debugger.Break(); } return; } RiotChampions = new List <ChampionDTO>(Champs.Result); AvailableChampions = new List <MyChampDTO>(); foreach (var item in Champs.Result) { AvailableChampions.Add(DataDragon.GetChampData(item.ChampionId)); } }
public MatchHistoryItem() { InitializeComponent(); Loaded += (src, e) => { var game = DataContext as RiotACS.Game; var identity = game.ParticipantIdentities.FirstOrDefault(i => i.Player.AccountId == Session.Current.Account.AccountID); var me = game.Participants.FirstOrDefault(p => p.ParticipantId == identity.ParticipantId); var champ = DataDragon.GetChampData(me.ChampionId); var spell1 = DataDragon.GetSpellData(me.Spell1Id); var spell2 = DataDragon.GetSpellData(me.Spell2Id); ChampImage.Source = DataDragon.GetChampIconImage(champ).Load(); Spell1Image.Source = DataDragon.GetSpellImage(spell1).Load(); Spell2Image.Source = DataDragon.GetSpellImage(spell2).Load(); MapLabel.Content = DataDragon.GameMaps[game.MapId]; if (game.GameType.Equals("CUSTOM_GAME")) { ModeLabel.Content = "Custom"; } else if (game.GameType.Equals("TUTORIAL_GAME")) { ModeLabel.Content = "Tutorial"; } else { ModeLabel.Content = GameMode.Values[game.GameMode].Value; } var items = new[] { me.Stats.Item0, me.Stats.Item1, me.Stats.Item2, me.Stats.Item3, me.Stats.Item4, me.Stats.Item5, me.Stats.Item6 }; var images = new[] { Item0Image, Item1Image, Item2Image, Item3Image, Item4Image, Item5Image, Item6Image }; for (int i = 0; i < items.Length; i++) { images[i].Source = DataDragon.GetItemImage(items[i]).Load(); } ScoreLabel.Content = $"{me.Stats.Kills} / {me.Stats.Deaths} / {me.Stats.Assists}"; var date = Session.Epoch.AddMilliseconds(game.GameCreation); DateLabel.Content = date.ToString("M / d / yyyy"); TimeLabel.Content = date.ToString("h:mm tt"); }; }
private void DisplaySelection(PlayerChampionSelectionDTO selection) { if (selection?.Spell1Id > 0 && selection?.Spell2Id > 0 && selection?.ChampionId > 0) { ChampImage.Source = DataDragon.GetChampIconImage(DataDragon.GetChampData(selection.ChampionId)).Load(); Spell1Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell1Id)).Load(); Spell2Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell2Id)).Load(); Unknown.Visibility = Obscure.Visibility = Visibility.Collapsed; } else if (selection?.Spell1Id > 0 && selection?.Spell2Id > 0) { Spell1Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell1Id)).Load(); Spell2Image.Source = DataDragon.GetSpellImage(DataDragon.GetSpellData(selection.Spell2Id)).Load(); Grid.SetColumnSpan(Unknown, 1); Grid.SetColumnSpan(Obscure, 1); Unknown.Visibility = Obscure.Visibility = Visibility.Visible; } else { Unknown.Visibility = Obscure.Visibility = Visibility.Visible; } }
private TurnInfo RenderPlayers(GameDTO game) { var turn = new TurnInfo(); MyTeam.Children.Clear(); OtherTeam.Children.Clear(); bool meBlue = game.TeamOne.Any(p => (p as PlayerParticipant)?.AccountId == Session.Current.Account.AccountID); foreach (var thing in game.TeamOne.Concat(game.TeamTwo)) { var player = thing as PlayerParticipant; var bot = thing as BotParticipant; var obfusc = thing as ObfuscatedParticipant; bool blue = game.TeamOne.Contains(thing); UserControl control; if (player != null) { var selection = game.PlayerChampionSelections?.FirstOrDefault(c => c.SummonerInternalName == player.SummonerInternalName); control = new ChampSelectPlayer(player, selection); if (player.PickTurn == game.PickTurn) { if (player.SummonerId == Session.Current.Account.SummonerID) { turn.IsMyTurn = turn.IsOurTurn = true; } else if (meBlue == blue) { turn.IsOurTurn = true; } } } else if (bot != null) { control = new ChampSelectPlayer(bot); } else if (obfusc != null) { control = new ChampSelectPlayer(obfusc, null); } else { Session.Log(thing.GetType().Name); control = null; } if (blue == meBlue) { MyTeam.Children.Add(control); } else { OtherTeam.Children.Add(control); } } if (OtherTeam.Children.Count == 0) { OtherTeam.Visibility = Visibility.Collapsed; } Ban1.Source = Ban2.Source = Ban3.Source = Ban4.Source = Ban5.Source = Ban6.Source = null; Image[] blueBans, redBans; if (meBlue) { blueBans = new[] { Ban1, Ban2, Ban3 }; redBans = new[] { Ban4, Ban5, Ban6 }; } else { blueBans = new[] { Ban4, Ban5, Ban6 }; redBans = new[] { Ban1, Ban2, Ban3 }; } foreach (var thing in game.BannedChampions) { var champ = DataDragon.GetChampData(thing.ChampionId); var image = DataDragon.GetChampIconImage(champ); int index = thing.PickTurn - 1; if (index % 2 == 0) { //0, 2, 4: Blue team's bans blueBans[thing.PickTurn / 2].Source = image.Load(); } else { //1, 3, 5: Red team's bans redBans[thing.PickTurn / 2].Source = image.Load(); } } //Dispatcher.BeginInvoke((Action) (() => MyTeam.Height = OtherTeam.Height = Math.Max(MyTeam.ActualHeight, OtherTeam.ActualHeight)), System.Windows.Threading.DispatcherPriority.Input); return(turn); }
private async void Update() { var game = this.game.Data; var config = Session.Current.Account.LoginPacket.GameTypeConfigs.FirstOrDefault(q => q.Id == game.GameTypeConfigId); LockInButt.IsEnabled = false; var myChamp = game.PlayerChampionSelections .FirstOrDefault(p => p.SummonerInternalName == Session.Current.Account.LoginPacket.AllSummonerData.Summoner.InternalName); var me = (PlayerParticipant)game.TeamOne.Concat(game.TeamTwo) .FirstOrDefault(p => (p as PlayerParticipant)?.AccountId == Session.Current.Account.AccountID); if (game.GameState.Equals("CHAMP_SELECT") || game.GameState.Equals("PRE_CHAMP_SELECT")) { var turn = Dispatcher.MyInvoke(RenderPlayers, game); Popup.ChampSelector.IsReadOnly = !turn.IsMyTurn; spell1 = DataDragon.GetSpellData(myChamp.Spell1Id); spell2 = DataDragon.GetSpellData(myChamp.Spell2Id); Dispatcher.Invoke(() => { Spell1Image.Source = DataDragon.GetSpellImage(spell1).Load(); Spell2Image.Source = DataDragon.GetSpellImage(spell2).Load(); }); LockInButt.IsEnabled = turn.IsMyTurn; if (game.GameState.Equals("PRE_CHAMP_SELECT")) { if (last?.PickTurn != game.PickTurn) { SetTimer(config.BanTimerDuration - 2); } if (turn.IsMyTurn) { state = State.Banning; } else { state = State.Watching; } var champs = await this.game.GetChampionsForBan(); if (turn.IsOurTurn) { Popup.ChampSelector.SetChampList(champs.Where(c => c.EnemyOwned).Select(c => DataDragon.GetChampData(c.ChampionId))); } else { Popup.ChampSelector.SetChampList(champs.Where(c => c.Owned).Select(c => DataDragon.GetChampData(c.ChampionId))); } if (turn.IsMyTurn) { header = YouBanString; } else if (turn.IsOurTurn) { header = YourTeamBanString; } else { header = OtherTeamBanString; } } else { if (last?.PickTurn != game.PickTurn) { SetTimer(config.MainPickTimerDuration - 2); } if (turn.IsMyTurn) { state = State.Picking; } else { state = State.Watching; } Popup.ChampSelector.UpdateChampList(); if (turn.IsMyTurn) { header = YouPickString; } else { header = NotPickingString; } } } else if (game.GameState.Equals("POST_CHAMP_SELECT")) { if (last?.PickTurn != game.PickTurn) { SetTimer(config.PostPickTimerDuration - 2); } var turn = Dispatcher.MyInvoke(RenderPlayers, game); state = State.Watching; Popup.ChampSelector.IsReadOnly = true; header = PostString; } else { } if (game.GameType == GameConfig.AllRandom.Value) { LockInButt.Content = $"{me.PointSummary.NumberOfRolls} / {me.PointSummary.MaxRolls}"; LockInButt.IsEnabled = me.PointSummary.NumberOfRolls > 0; } MyTeam.Columns = OtherTeam.Columns = game.MaxNumPlayers / 2; UpdateHeader(); last = game; }