diff --git a/AideDeJeu/AideDeJeu/Models/Equipments.cs b/AideDeJeu/AideDeJeu/Models/Equipments.cs index d5fd33c8..0308278b 100644 --- a/AideDeJeu/AideDeJeu/Models/Equipments.cs +++ b/AideDeJeu/AideDeJeu/Models/Equipments.cs @@ -7,9 +7,15 @@ namespace AideDeJeuLib { public class Equipments : FilteredItems { + public string Types { get; set; } + public string Prices { get; set; } + public override FilterViewModel GetNewFilterViewModel() { - return new VFEquipmentFilterViewModel(); + return new EquipmentFilterViewModel(Family, + Split(Types), + Split(Prices) + ); } } } diff --git a/AideDeJeu/AideDeJeu/Models/MagicItems.cs b/AideDeJeu/AideDeJeu/Models/MagicItems.cs index ed07d999..78d092fe 100644 --- a/AideDeJeu/AideDeJeu/Models/MagicItems.cs +++ b/AideDeJeu/AideDeJeu/Models/MagicItems.cs @@ -8,9 +8,17 @@ namespace AideDeJeuLib { public class MagicItems : FilteredItems { + public string Types { get; set; } + public string Rarities { get; set; } + public string Attunements { get; set; } + public override FilterViewModel GetNewFilterViewModel() { - return new VFMagicItemFilterViewModel(); + return new MagicItemFilterViewModel(Family, + Split(Types), + Split(Rarities), + Split(Attunements) + ); } } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs index 391e6fe2..d487aa98 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/FilterViewModel.cs @@ -382,7 +382,7 @@ namespace AideDeJeu.ViewModels #endregion Monsters #region Equipments - public abstract class EquipmentFilterViewModel : FilterViewModel + public class EquipmentFilterViewModel : FilterViewModel { private IEnumerable _Filters = null; public override IEnumerable Filters @@ -395,7 +395,7 @@ namespace AideDeJeu.ViewModels { new Filter() { Key = FilterKeys.Type, Name = "Type", KeyValues = Types, _Index = 0 }, new Filter() { Key = FilterKeys.MinPrice, Name = "Prix Minimum", KeyValues = Prices, _Index = 0 }, - new Filter() { Key = FilterKeys.MaxPrice, Name = "Prix Maximum", KeyValues = Prices, _Index = 9 }, + new Filter() { Key = FilterKeys.MaxPrice, Name = "Prix Maximum", KeyValues = Prices, _Index = 0 }, }; RegisterFilters(); } @@ -403,12 +403,23 @@ namespace AideDeJeu.ViewModels } } + public EquipmentFilterViewModel(string family, List> types, List> prices) + { + this.Types = types; + this.Prices = prices; + } + + public string PriceConverter(string price) + { + if (price == "") return null; + return price; + } public override async Task> GetFilteredItemsAsync(CancellationToken token = default) { var priceComparer = new PriceComparer(); var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; - var minPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey ?? "0 pc"; - var maxPrice = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPrice).SelectedKey ?? "1 000 000 po"; + var minPrice = PriceConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MinPrice).SelectedKey) ?? "0 pc"; + var maxPrice = PriceConverter(Filters.SingleOrDefault(filter => filter.Key == FilterKeys.MaxPrice).SelectedKey) ?? "1 000 000 po"; try { @@ -437,62 +448,14 @@ namespace AideDeJeu.ViewModels } } - public abstract List> Types { get; } + public List> Types { get; } - public abstract List> Prices { get; } + public List> Prices { get; } } - - public class VFEquipmentFilterViewModel : EquipmentFilterViewModel - { - - public override List> Types { get; } = new List>() - { - new KeyValuePair("", "Tous" ), - new KeyValuePair("Armure", "Armure" ), - new KeyValuePair("Armure légère", " Armure légère" ), - new KeyValuePair("Armure intermédiaire", " Armure intermédiaire" ), - new KeyValuePair("Armure lourde", " Armure lourde" ), - new KeyValuePair("Bouclier", " Bouclier" ), - new KeyValuePair("Arme", "Arme" ), - new KeyValuePair("Arme de corps-à-corps", " Arme de corps-à-corps" ), - new KeyValuePair("Arme à distance", " Arme à distance" ), - new KeyValuePair("Équipement d'aventurier", "Équipement d'aventurier" ), - new KeyValuePair("Focaliseur arcanique", " Focaliseur arcanique" ), - new KeyValuePair("Focaliseur druidique", " Focaliseur druidique" ), - new KeyValuePair("Munitions", " Munitions" ), - new KeyValuePair("Symbole sacré", " Symbole sacré" ), - new KeyValuePair("Vêtements", " Vêtements" ), - new KeyValuePair("Outil", "Outil" ), - new KeyValuePair("Instrument de musique", " Instrument de musique" ), - new KeyValuePair("Jeu", " Jeu" ), - new KeyValuePair("Outil d'artisan", " Outil d'artisan" ), - new KeyValuePair("Monture", "Monture" ), - new KeyValuePair("Équipement, sellerie et véhicules à traction", "Équipement, sellerie et véhicules à traction" ), - new KeyValuePair("Bateau", "Bateau" ), - new KeyValuePair("Marchandise", "Marchandise" ), - new KeyValuePair("Service", "Service" ), - new KeyValuePair("Nourriture, boisson et logement", "Nourriture, boisson et logement" ), - }; - - public override List> Prices { get; } = new List>() - { - new KeyValuePair("0 pc", "0 pc" ), - new KeyValuePair("1 pc", "1 pc" ), - new KeyValuePair("1 pa", "1 pa" ), - new KeyValuePair("1 po", "1 po" ), - new KeyValuePair("10 po", "10 po" ), - new KeyValuePair("100 po", "100 po" ), - new KeyValuePair("1 000 po", "1 000 po" ), - new KeyValuePair("10 000 po", "10 000 po" ), - new KeyValuePair("100 000 po", "100 000 po" ), - new KeyValuePair("1 000 000 po", "1 000 000 po" ), - }; - } - #endregion Equipments #region Magic Items - public abstract class MagicItemFilterViewModel : FilterViewModel + public class MagicItemFilterViewModel : FilterViewModel { private IEnumerable _Filters = null; public override IEnumerable Filters @@ -504,8 +467,8 @@ namespace AideDeJeu.ViewModels _Filters = new List() { new Filter() { Key = FilterKeys.Type, Name = "Type", KeyValues = Types, _Index = 0 }, - new Filter() { Key = FilterKeys.Rarity, Name = "Rareté", KeyValues = Rarity, _Index = 0 }, - new Filter() { Key = FilterKeys.Attunement, Name = "Harmonisation", KeyValues = Attunement, _Index = 0 }, + new Filter() { Key = FilterKeys.Rarity, Name = "Rareté", KeyValues = Rarities, _Index = 0 }, + new Filter() { Key = FilterKeys.Attunement, Name = "Harmonisation", KeyValues = Attunements, _Index = 0 }, //new Filter() { Key = FilterKeys.MinPrice, Name = "Prix Minimum", KeyValues = Prices, _Index = 0 }, //new Filter() { Key = FilterKeys.MaxPrice, Name = "Prix Maximum", KeyValues = Prices, _Index = 9 }, }; @@ -515,9 +478,15 @@ namespace AideDeJeu.ViewModels } } + public MagicItemFilterViewModel(string family, List> types, List> rarities, List> attunements) + { + this.Types = types; + this.Rarities = rarities; + this.Attunements = attunements; + } + public override async Task> GetFilteredItemsAsync(CancellationToken token = default) { - var priceComparer = new PriceComparer(); var type = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Type).SelectedKey ?? ""; var rarity = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Rarity).SelectedKey ?? ""; var attunement = Filters.SingleOrDefault(filter => filter.Key == FilterKeys.Attunement).SelectedKey ?? ""; @@ -545,57 +514,11 @@ namespace AideDeJeu.ViewModels } } - public abstract List> Types { get; } + public List> Types { get; } - public abstract List> Rarity { get; } + public List> Rarities { get; } - public abstract List> Attunement { get; } + public List> Attunements { get; } } - - public class VFMagicItemFilterViewModel : MagicItemFilterViewModel - { - - public override List> Types { get; } = new List>() - { - new KeyValuePair("", "Tous" ), - new KeyValuePair("Anneau", "Anneau" ), - new KeyValuePair("Arme", "Arme" ), - new KeyValuePair("Armure", "Armure" ), - new KeyValuePair("Baguette", "Baguette" ), - new KeyValuePair("Bâton", "Bâton" ), - new KeyValuePair("Objet merveilleux", "Objet merveilleux" ), - new KeyValuePair("Parchemin", "Parchemin" ), - new KeyValuePair("Potion", "Potion" ), - new KeyValuePair("Sceptre", "Sceptre" ), - }; - - public override List> Rarity { get; } = new List>() - { - new KeyValuePair("", "Toutes" ), - new KeyValuePair("peu courant", "Peu courant" ), - new KeyValuePair("rare", "Rare" ), - new KeyValuePair("très rare", "Très rare" ), - new KeyValuePair("légendaire", "Légendaire" ), - new KeyValuePair("rareté variable", "Rareté variable" ), - }; - - public override List> Attunement { get; } = new List>() - { - new KeyValuePair("", "Tout" ), - new KeyValuePair("requise", "Requise" ), - new KeyValuePair("lanceur de sorts", "Lanceur de sorts" ), - new KeyValuePair("barde", " Barde" ), - new KeyValuePair("clerc", " Clerc" ), - new KeyValuePair("druide", " Druide" ), - new KeyValuePair("ensorceleur", " Ensorceleur" ), - new KeyValuePair("magicien", " Magicien" ), - new KeyValuePair("sorcier", " Sorcier" ), - new KeyValuePair("paladin", " Paladin" ), - new KeyValuePair("alignement bon", "Alignement bon" ), - new KeyValuePair("alignement mauvais", "Alignement mauvais" ), - new KeyValuePair("nain", "Nain" ), - }; - } - #endregion Equipments } diff --git a/Data/HD/hd_barbarian.md b/Data/HD/hd_barbarian.md index 55675889..742b2cd7 100644 --- a/Data/HD/hd_barbarian.md +++ b/Data/HD/hd_barbarian.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Barbare +AltName: Barbarian (SRD p8) +Source: (MDR p114) Id: barbarian_hd.md#barbare RootId: barbarian_hd.md ParentLink: classes_hd.md -Name: Barbare ParentName: Classes NameLevel: 1 -AltName: Barbarian (SRD p8) -Source: (MDR p114) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_bard.md b/Data/HD/hd_bard.md index c0372ed5..312f3bef 100644 --- a/Data/HD/hd_bard.md +++ b/Data/HD/hd_bard.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Barde +AltName: Bard (SRD p11) +Source: (MDR p121) Id: bard_hd.md#barde RootId: bard_hd.md ParentLink: classes_hd.md -Name: Barde ParentName: Classes NameLevel: 1 -AltName: Bard (SRD p11) -Source: (MDR p121) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_cleric.md b/Data/HD/hd_cleric.md index af9fec2d..aa3a0add 100644 --- a/Data/HD/hd_cleric.md +++ b/Data/HD/hd_cleric.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Clerc +AltName: Cleric (SRD p15) +Source: (MDR p129) Id: cleric_hd.md#clerc RootId: cleric_hd.md ParentLink: classes_hd.md -Name: Clerc ParentName: Classes NameLevel: 1 -AltName: Cleric (SRD p15) -Source: (MDR p129) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_druid.md b/Data/HD/hd_druid.md index 9a600f08..cdb86163 100644 --- a/Data/HD/hd_druid.md +++ b/Data/HD/hd_druid.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Druide +AltName: Druid (SRD p17) +Source: (MDR p142) Id: druid_hd.md#druide RootId: druid_hd.md ParentLink: classes_hd.md -Name: Druide ParentName: Classes NameLevel: 1 -AltName: Druid (SRD p17) -Source: (MDR p142) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_equipment.md b/Data/HD/hd_equipment.md index 8b72657e..0ef93727 100644 --- a/Data/HD/hd_equipment.md +++ b/Data/HD/hd_equipment.md @@ -1,5 +1,7 @@ --- !Equipments +Types: Armure|Armure légère|Armure intermédiaire|Armure lourde|Bouclier|Arme|Arme de corps-à-corps|Arme à distance|Équipement d'aventurier|Focaliseur arcanique|Focaliseur druidique|Munitions|Symbole sacré|Vêtements|Outil|Instrument de musique|Jeu|Outil d'artisan|Monture|Équipement, sellerie et véhicules à traction|Bateau|Marchandise|Service|Nourriture, boisson et logement +Prices: 0 pc|1 pc|1 pa|1 po|10 po|100 po|1 000 po|10 000 po|100 000 po|1 000 000 po SubItems: - !Equipment Type: Armure légère diff --git a/Data/HD/hd_fighter.md b/Data/HD/hd_fighter.md index 9445d65c..779f9cb8 100644 --- a/Data/HD/hd_fighter.md +++ b/Data/HD/hd_fighter.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Guerrier +AltName: Fighter (SRD p24) +Source: (MDR p160) Id: fighter_hd.md#guerrier RootId: fighter_hd.md ParentLink: classes_hd.md -Name: Guerrier ParentName: Classes NameLevel: 1 -AltName: Fighter (SRD p24) -Source: (MDR p160) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_magicitems_az_les_objets_magiques_de_a_a_z.md b/Data/HD/hd_magicitems_az_les_objets_magiques_de_a_a_z.md index 5679495a..5193def2 100644 --- a/Data/HD/hd_magicitems_az_les_objets_magiques_de_a_a_z.md +++ b/Data/HD/hd_magicitems_az_les_objets_magiques_de_a_a_z.md @@ -1,5 +1,8 @@ --- !MagicItems +Types: Anneau|Arme|Armure|Baguette|Bâton|Objet merveilleux|Parchemin|Potion|Sceptre +Rarities: Peu courant|Rare|Très rare|Légendaire|Rareté variable +Attunements: Requise|Lanceur de sorts|Barde|Clerc|Druide|Ensorceleur|Magicien|Sorcier|Paladin|Alignement bon|Alignement mauvais|Nain SubItems: - !MagicItem Type: Objet merveilleux diff --git a/Data/HD/hd_monk.md b/Data/HD/hd_monk.md index 2187572e..3a007755 100644 --- a/Data/HD/hd_monk.md +++ b/Data/HD/hd_monk.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Moine +AltName: Monk (SRD p26) +Source: (MDR p176) Id: monk_hd.md#moine RootId: monk_hd.md ParentLink: classes_hd.md -Name: Moine ParentName: Classes NameLevel: 1 -AltName: Monk (SRD p26) -Source: (MDR p176) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_paladin.md b/Data/HD/hd_paladin.md index 6163e410..03a9019c 100644 --- a/Data/HD/hd_paladin.md +++ b/Data/HD/hd_paladin.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Paladin +AltName: Paladin (SRD p30) +Source: (MDR p183) Id: paladin_hd.md#paladin RootId: paladin_hd.md ParentLink: classes_hd.md -Name: Paladin ParentName: Classes NameLevel: 1 -AltName: Paladin (SRD p30) -Source: (MDR p183) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_ranger.md b/Data/HD/hd_ranger.md index f36b165e..655bd5d6 100644 --- a/Data/HD/hd_ranger.md +++ b/Data/HD/hd_ranger.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Rôdeur +AltName: Ranger (SRD p35) +Source: (MDR p194) Id: ranger_hd.md#rôdeur RootId: ranger_hd.md ParentLink: classes_hd.md -Name: Rôdeur ParentName: Classes NameLevel: 1 -AltName: Ranger (SRD p35) -Source: (MDR p194) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_rogue.md b/Data/HD/hd_rogue.md index 846fbe9d..69b1e96c 100644 --- a/Data/HD/hd_rogue.md +++ b/Data/HD/hd_rogue.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Roublard +AltName: Rogue (SRD p39) +Source: (MDR p202) Id: rogue_hd.md#roublard RootId: rogue_hd.md ParentLink: classes_hd.md -Name: Roublard ParentName: Classes NameLevel: 1 -AltName: Rogue (SRD p39) -Source: (MDR p202) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_sorcerer.md b/Data/HD/hd_sorcerer.md index 3f4e8ad5..ef31b765 100644 --- a/Data/HD/hd_sorcerer.md +++ b/Data/HD/hd_sorcerer.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Ensorceleur +AltName: Sorcerer (SRD p41) +Source: (MDR p152) Id: sorcerer_hd.md#ensorceleur RootId: sorcerer_hd.md ParentLink: classes_hd.md -Name: Ensorceleur ParentName: Classes NameLevel: 1 -AltName: Sorcerer (SRD p41) -Source: (MDR p152) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_warlock.md b/Data/HD/hd_warlock.md index 2ac2e184..1915e7c3 100644 --- a/Data/HD/hd_warlock.md +++ b/Data/HD/hd_warlock.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Sorcier +AltName: Warlock (SRD p46) +Source: (MDR p209) Id: warlock_hd.md#sorcier RootId: warlock_hd.md ParentLink: classes_hd.md -Name: Sorcier ParentName: Classes NameLevel: 1 -AltName: Warlock (SRD p46) -Source: (MDR p209) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/HD/hd_wizard.md b/Data/HD/hd_wizard.md index 34baa35f..5e66a3b8 100644 --- a/Data/HD/hd_wizard.md +++ b/Data/HD/hd_wizard.md @@ -1,13 +1,13 @@ --- !ClassItem +Name: Magicien +AltName: Wizard (SRD p52) +Source: (MDR p166) Id: wizard_hd.md#magicien RootId: wizard_hd.md ParentLink: classes_hd.md -Name: Magicien ParentName: Classes NameLevel: 1 -AltName: Wizard (SRD p52) -Source: (MDR p166) Attributes: {} --- >  [Classes](hd_classes.md) diff --git a/Data/library.db b/Data/library.db index 4dcd075f..2ba1e6b2 100644 Binary files a/Data/library.db and b/Data/library.db differ