diff --git a/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundItem.cs b/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundItem.cs index 81b13342..c95f8ca7 100644 --- a/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundItem.cs +++ b/AideDeJeu/AideDeJeu/Models/Backgrounds/BackgroundItem.cs @@ -1,12 +1,78 @@ -namespace AideDeJeuLib +using System.Collections.Generic; +using System.Linq; +using YamlDotNet.Serialization; + +namespace AideDeJeuLib { - public class BackgroundItem : Item + public class BackgroundItem : Items { public string SkillProficiencies { get; set; } public string MasteredTools { get; set; } public string MasteredLanguages { get; set; } public string Equipment { get; set; } + [YamlMember] + public FeatureItem Feature + { + get + { + return GetChild(); + } + } + + [YamlMember] + public BackgroundSpecialtyItem Specialty + { + get + { + return GetChild(); + } + } + + [YamlMember] + public PersonalityTraitItem PersonalityTraits + { + get + { + return GetChild(); + } + } + + [YamlMember] + public PersonalityIdealItem Ideal + { + get + { + return GetChild(); + } + } + + [YamlMember] + public PersonalityLinkItem Bond + { + get + { + return GetChild(); + } + } + + [YamlMember] + public PersonalityDefectItem Flaw + { + get + { + return GetChild(); + } + } + + [YamlMember] + public IEnumerable SubBackgrounds + { + get + { + return GetChildren(); + } + } } } diff --git a/AideDeJeu/AideDeJeu/Models/Classes/ClassItem.cs b/AideDeJeu/AideDeJeu/Models/Classes/ClassItem.cs index b903db86..f09a8a7a 100644 --- a/AideDeJeu/AideDeJeu/Models/Classes/ClassItem.cs +++ b/AideDeJeu/AideDeJeu/Models/Classes/ClassItem.cs @@ -1,6 +1,62 @@ -namespace AideDeJeuLib +using System.Collections.Generic; +using YamlDotNet.Serialization; + +namespace AideDeJeuLib { public class ClassItem : Item { + [YamlMember] + public ClassHitPointsItem HitPoints + { + get + { + return GetChild(); + } + } + + [YamlMember] + public ClassProficienciesItem Proficiencies + { + get + { + return GetChild(); + } + } + + [YamlMember] + public ClassEquipmentItem Equipment + { + get + { + return GetChild(); + } + } + + [YamlMember] + public ClassEvolutionItem Evolution + { + get + { + return GetChild(); + } + } + + [YamlMember] + public IEnumerable Features + { + get + { + return GetChildren(); + } + } + + [YamlMember] + public IEnumerable SubClasses + { + get + { + return GetChildren(); + } + } } } diff --git a/AideDeJeu/AideDeJeu/Models/Items/Item.cs b/AideDeJeu/AideDeJeu/Models/Items/Item.cs index 0de4ba7d..36b34557 100644 --- a/AideDeJeu/AideDeJeu/Models/Items/Item.cs +++ b/AideDeJeu/AideDeJeu/Models/Items/Item.cs @@ -97,6 +97,17 @@ namespace AideDeJeuLib _Items.Add(item); } + public virtual T GetChild() where T : class + { + return _Items.Where(i => i is T).FirstOrDefault() as T; + } + + public virtual IEnumerable GetChildren() where T : class + { + var items = _Items.Where(i => i is T).ToArray().Select(i => i as T).ToList(); + return items.Count > 0 ? items : null; + } + //public void Clear() //{ // _Items.Clear(); @@ -137,6 +148,7 @@ namespace AideDeJeuLib [DataMember(Name = "Item_Name", Order = 3)] [Indexed] + [YamlMember(Alias = "title")] public virtual string Name { get; set; } [YamlIgnore] @@ -621,5 +633,15 @@ namespace AideDeJeuLib return matrix; } + [YamlIgnore] + public string Folder + { + get + { + return null; + } + } + } + } diff --git a/AideDeJeu/AideDeJeu/Models/Origins/OriginItem.cs b/AideDeJeu/AideDeJeu/Models/Origins/OriginItem.cs index 2d717bc9..e12dd2cf 100644 --- a/AideDeJeu/AideDeJeu/Models/Origins/OriginItem.cs +++ b/AideDeJeu/AideDeJeu/Models/Origins/OriginItem.cs @@ -51,5 +51,15 @@ namespace AideDeJeuLib return Expand(AvailableSkills); } } + + [YamlMember] + public OriginFeatureItem Feature + { + get + { + return GetChild(); + } + } + } } diff --git a/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs b/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs index e992d9eb..aad57c52 100644 --- a/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs +++ b/AideDeJeu/AideDeJeu/Models/Races/RaceItem.cs @@ -1,4 +1,6 @@ -using System.Runtime.Serialization; +using System.Collections.Generic; +using System.Runtime.Serialization; +using YamlDotNet.Serialization; namespace AideDeJeuLib { @@ -79,5 +81,13 @@ namespace AideDeJeuLib [DataMember] public virtual string Languages { get; set; } + [YamlMember] + public IEnumerable SubRaces + { + get + { + return GetChildren(); + } + } } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs index b0b355e1..85b04fa0 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/StoreViewModel.cs @@ -121,6 +121,7 @@ namespace AideDeJeu.ViewModels currentItem.Markdown += $"\n\n{new String('#', altlevel)} _[{altname}]({link})_"; } currentItem.Markdown += "\n\n"; + currentItem.AddChild(subItem); } else { diff --git a/Data/library_JoA.db b/Data/library_JoA.db index 764b98da..5ab9a80c 100644 Binary files a/Data/library_JoA.db and b/Data/library_JoA.db differ diff --git a/JoA b/JoA index e0cb48ec..c626772a 160000 --- a/JoA +++ b/JoA @@ -1 +1 @@ -Subproject commit e0cb48ecef71df11dc85b44fcffc99a9a8d5391f +Subproject commit c626772a0de392952e44ed86ef394e52cf1a2d1a