Пример #1
0
        public async Task <string> GetSpellPathAsync(Champion champion, ChampionAbility spell)
        {
            var path = Path.Combine(_environment.WebRootPath, "spells");

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            if (!System.IO.File.Exists($"{path}/{champion.Key}_{spell}.png"))
            {
                var content = await _httpClient.GetByteArrayAsync(champion.GetAbilityIconUrl(spell));

                await System.IO.File.WriteAllBytesAsync($"{path}/{champion.Key}_{spell}.png", content);
            }

            return($"/spells/{champion.Key}_{spell}.png");
        }
Пример #2
0
        /// <summary>
        /// Render the post selection grid after locked in
        /// </summary>
        /// <param name="selection">Details of champion you want to render</param>
        internal void RenderLockInGrid(PlayerChampionSelectionDTO selection)
        {
            ChampionSelectListView.Visibility  = Visibility.Hidden;
            AfterChampionSelectGrid.Visibility = Visibility.Visible;

            LockInButton.Content = "Locked In";

            //
            champions Champion = champions.GetChampion(selection.ChampionId);

            SkinSelectListView.Items.Clear();
            AbilityListView.Items.Clear();

            //Render default skin
            ListViewItem item      = new ListViewItem();
            Image        skinImage = new Image();
            string       uriSource = Path.Combine(Client.ExecutingDirectory, "Assets", "champions", Champion.portraitPath);

            skinImage.Source  = Client.GetImage(uriSource);
            skinImage.Width   = 191;
            skinImage.Stretch = Stretch.UniformToFill;
            item.Tag          = "0:" + Champion.id; //Hack
            item.Content      = skinImage;
            SkinSelectListView.Items.Add(item);

            //Render abilities
            List <championAbilities> Abilities = championAbilities.GetAbilities(selection.ChampionId);

            foreach (championAbilities ability in Abilities)
            {
                ChampionAbility championAbility = new ChampionAbility();
                uriSource = Path.Combine(Client.ExecutingDirectory, "Assets", "abilities", ability.iconPath);
                championAbility.AbilityImage.Source     = Client.GetImage(uriSource);
                championAbility.AbilityHotKey.Content   = ability.hotkey;
                championAbility.AbilityName.Content     = ability.name;
                championAbility.AbilityDescription.Text = ability.description;
                championAbility.Width  = 375;
                championAbility.Height = 75;
                AbilityListView.Items.Add(championAbility);
            }

            //Render champions
            foreach (ChampionDTO champ in ChampList)
            {
                if (champ.ChampionId == selection.ChampionId)
                {
                    foreach (ChampionSkinDTO skin in champ.ChampionSkins)
                    {
                        if (skin.Owned)
                        {
                            item              = new ListViewItem();
                            skinImage         = new Image();
                            uriSource         = Path.Combine(Client.ExecutingDirectory, "Assets", "champions", championSkins.GetSkin(skin.SkinId).portraitPath);
                            skinImage.Source  = Client.GetImage(uriSource);
                            skinImage.Width   = 191;
                            skinImage.Stretch = Stretch.UniformToFill;
                            item.Tag          = skin.SkinId;
                            item.Content      = skinImage;
                            SkinSelectListView.Items.Add(item);
                        }
                    }
                }
            }
        }
Пример #3
0
 /// <summary>
 ///     Gets the icon's url of the specified ability.
 /// </summary>
 /// <param name="ability">
 ///     The ability to get.
 /// </param>
 public string GetAbilityIconUrl(ChampionAbility ability)
 => $"{DataDragonClient.CommunityDragonUrl}{Version}/champion/{Id}/ability-icon/{ability.ToLower()}";
        /// <summary>
        /// Render the post selection grid after locked in
        /// </summary>
        /// <param name="selection">Details of champion you want to render</param>
        internal void RenderLockInGrid(PlayerChampionSelectionDTO selection)
        {
            champions Champion = champions.GetChampion(selection.ChampionId);

            if (Champion == null)
            {
                return;
            }

            ChampionSelectListView.Visibility  = Visibility.Hidden;
            AfterChampionSelectGrid.Visibility = Visibility.Visible;

            LockInButton.Content = "Locked In";

            SkinSelectListView.Items.Clear();
            AbilityListView.Items.Clear();

            //Render default skin
            ListViewItem item      = new ListViewItem();
            Image        skinImage = new Image();
            string       uriSource = Path.Combine(Client.ExecutingDirectory, "Assets", "champions", Champion.portraitPath);

            skinImage.Source  = Client.GetImage(uriSource);
            skinImage.Width   = 191;
            skinImage.Stretch = Stretch.UniformToFill;
            item.Tag          = "0:" + Champion.id; //Hack
            item.Content      = skinImage;
            SkinSelectListView.Items.Add(item);

            //Render abilities
            foreach (Spell ability in Champion.Spells)
            {
                ChampionAbility championAbility = new ChampionAbility();
                championAbility.DataContext = ability;
                uriSource = Path.Combine(Client.ExecutingDirectory, "Assets", "spell", ability.Image);
                championAbility.AbilityImage.Source = Client.GetImage(uriSource);
                championAbility.Width  = 375;
                championAbility.Height = 75;
                AbilityListView.Items.Add(championAbility);
            }

            //Render champions
            foreach (ChampionDTO champ in ChampList)
            {
                if (champ.ChampionId == selection.ChampionId)
                {
                    foreach (ChampionSkinDTO skin in champ.ChampionSkins)
                    {
                        if (skin.Owned)
                        {
                            item              = new ListViewItem();
                            skinImage         = new Image();
                            uriSource         = Path.Combine(Client.ExecutingDirectory, "Assets", "champions", championSkins.GetSkin(skin.SkinId).portraitPath);
                            skinImage.Source  = Client.GetImage(uriSource);
                            skinImage.Width   = 191;
                            skinImage.Stretch = Stretch.UniformToFill;
                            item.Tag          = skin.SkinId;
                            item.Content      = skinImage;
                            SkinSelectListView.Items.Add(item);
                        }
                    }
                }
            }
        }