diff --git a/AideDeJeu/AideDeJeu/Models/HomeItem.cs b/AideDeJeu/AideDeJeu/Models/HomeItem.cs index 5ea6aca7..7cf1bb1f 100644 --- a/AideDeJeu/AideDeJeu/Models/HomeItem.cs +++ b/AideDeJeu/AideDeJeu/Models/HomeItem.cs @@ -19,6 +19,7 @@ namespace AideDeJeuLib "## [Caractéristiques](abilities_hd.md)\n\n" + "## [États spéciaux](conditions_hd.md)\n\n" + "## [Sorts](spells_hd.md)\n\n" + + "## [Sorts de mago](spells_hd_with_class_magicien.md)\n\n" + "## [Créatures](monsters_hd.md)\n\n" + //"## [Mignons](baby_bestiary_hd.md)\n\n" + "# VO (SRD)\n\n" + diff --git a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs index 04b3b449..830ec416 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs @@ -43,7 +43,15 @@ namespace AideDeJeu.ViewModels } } - public virtual void FilterWith(string key, string val) { } + public void FilterWith(string key, string val) + { + var filter = Filters.FirstOrDefault(f => f.Key.ToString().ToLower() == key.ToLower()); + if (filter != null) + { + filter.Index = filter.KeyValues.FindIndex(kv => kv.Value.ToLower().Contains(val.ToLower())); + } + } + } public enum FilterKeys @@ -322,12 +330,6 @@ namespace AideDeJeu.ViewModels public class HDSpellFilterViewModel : SpellFilterViewModel { - public override void FilterWith(string key, string val) - { - var filter = Filters.FirstOrDefault(f => f.Key.ToString().ToLower() == key.ToLower()); - filter.Index = filter.KeyValues.FindIndex(kv => kv.Value.ToLower().Contains(val.ToLower())); - } - public override List> Classes { get; } = new List>() { new KeyValuePair("", "Toutes" ), diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index e69718db..d1a9b946 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -57,10 +57,11 @@ namespace AideDeJeu.ViewModels { if (s != null) { - var regex = new Regex("/(?.*)\\.md(#(?.*))?"); + var regex = new Regex("/(?.*?)(_with_(?.*))?\\.md(#(?.*))?"); var match = regex.Match(s); var file = match.Groups["file"].Value; var anchor = match.Groups["anchor"].Value; + var with = match.Groups["with"].Value; var item = await Main.GetItemFromDataAsync(file); if (item != null) { @@ -80,7 +81,13 @@ namespace AideDeJeu.ViewModels var filterViewModel = items.GetNewFilterViewModel(); var itemsViewModel = new ItemsViewModel() { AllItems = items, Filter = filterViewModel }; itemsViewModel.LoadItemsCommand.Execute(null); - //filterViewModel.FilterWith("class", "magicien"); + if(!string.IsNullOrEmpty(with)) + { + var swith = with.Split('_'); + var key = swith[0]; + var val = swith[1]; + filterViewModel.FilterWith(key, val); + } if (filterViewModel == null) { await GotoItemsPageAsync(itemsViewModel);