diff --git a/Pf2eDataScrapper/Importers/Implementations/Aonprd/SchemaBuilder/AonprdSchemaBuilder.cs b/Pf2eDataScrapper/Importers/Implementations/Aonprd/SchemaBuilder/AonprdSchemaBuilder.cs index aee9267..713c5d7 100644 --- a/Pf2eDataScrapper/Importers/Implementations/Aonprd/SchemaBuilder/AonprdSchemaBuilder.cs +++ b/Pf2eDataScrapper/Importers/Implementations/Aonprd/SchemaBuilder/AonprdSchemaBuilder.cs @@ -12,20 +12,59 @@ internal class AonprdSchemaBuilder(AonprdLoader loader) // public readonly AonprdSchemaTypeResolver Resolver = new(); - public readonly Dictionary Schemas = []; + public readonly Dictionary Schemas = new() + { + { "_subclass", new SchemaNode {Path = "_subclass"} } + }; + + private string[] _subclassSchemaTypes = + [ + "research-field", + "apparition", + "practice", + "instinct", + "muse", + "cause", + "tenet", + "doctrine", + "druidic-order", + "methodology", + "element", + "hybrid-study", + "mystery", + "conscious-mind", + "subconscious-mind", + "hunters-edge", + "racket", + "bloodline", + "style", + "implement", + "lesson", + "patron", + "arcane-school", + "arcane-thesis", + "way", + "innovation", + "ikon", + "epithet", + ]; private SchemaNode GetSchema(AonprdLoader.LoaderEntry entry) { string key = entry.Type; - if (!Schemas.TryGetValue(key, out SchemaNode? value)) + + if (Schemas.TryGetValue(key, out SchemaNode? value)) { - value = new SchemaNode() - { - // Resolver = Resolver, - Path = key, - }; - Schemas[key] = value; + return value; } + + value = new SchemaNode + { + // Resolver = Resolver, + Path = key, + }; + Schemas[key] = value; + return value; } @@ -33,13 +72,18 @@ internal class AonprdSchemaBuilder(AonprdLoader loader) { Console.WriteLine("Building schemas..."); - ProgressBar bar = new ProgressBar(Loader.ItemCount); + ProgressBar bar = new(Loader.ItemCount); int i = 0; foreach (AonprdLoader.LoaderEntry entry in Loader.Entries()) { bar.Refresh(i++, entry.Type); GetSchema(entry).AddValue(entry.Json); + + if (_subclassSchemaTypes.Contains(entry.Type)) + { + Schemas["_subclass"].AddValue(entry.Json); + } } bar.Refresh(Loader.ItemCount, "Done!"); diff --git a/Pf2eDataScrapper/Program.cs b/Pf2eDataScrapper/Program.cs index e01695e..935f46d 100644 --- a/Pf2eDataScrapper/Program.cs +++ b/Pf2eDataScrapper/Program.cs @@ -11,4 +11,5 @@ Pf2EFoundryImporter importer = new(); AonprdImporter importer = new(); importer.Prepare(); -importer.Import(); +// importer.Import(); +importer.BuildSchemas(); diff --git a/Pf2eModel/Model/Structure/Subclass.cs b/Pf2eModel/Model/Structure/Subclass.cs new file mode 100644 index 0000000..b0b53b6 --- /dev/null +++ b/Pf2eModel/Model/Structure/Subclass.cs @@ -0,0 +1,25 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using Pf2eModel.Model.Base; +using Pf2eModel.Model.Common.I18n; + +namespace Pf2eModel.Model.Structure; + +public class Subclass : IEntity +{ + [Key] + [Column(Order = 1)] + public int Id { get; set; } + + public Entity Entity { get; set; } = null!; + + [Column(Order = 2)] + public int? ClassId { get; set; } = null; + + public Class? Class { get; set; } = null!; + + [Column(Order = 3)] + public LocaleString Additional { get; set; } = null!; + + public string Extra { get; set; } = null!; +} diff --git a/output-filtered/aonprd/_subclass.yaml b/output-filtered/aonprd/_subclass.yaml new file mode 100644 index 0000000..c153385 --- /dev/null +++ b/output-filtered/aonprd/_subclass.yaml @@ -0,0 +1,221 @@ +name: _subclass +values: 326 +schema: + [attribute]: + type: array + path: _subclass.attribute + is_null: true + values: 4 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.attribute.[] + is_null: false + values: 4 + different_values: 2 + variants: + - "Charisma" (x2) + - "Intelligence" (x2) + [bloodline_markdown]: + type: string + path: _subclass.bloodline_markdown + is_null: true + values: 27 + different_values: 17 + variants: + - "Aberrant" (x2) + - "Angelic" (x2) + - "Demonic" (x2) + - "Diabolic" (x2) + - "Draconic" (x2) + - "Elemental" (x2) + - "Fey" (x2) + - "Hag" (x2) + - "Imperial" (x2) + - "Undead" (x2) + - "Genie" (x1) + - "Nymph" (x1) + - "Psychopomp" (x1) + - "Shadow" (x1) + - "Phoenix" (x1) + - "Wyrmblessed" (x1) + - "Harrow" (x1) + 'resistance': + type: object + path: _subclass.resistance + is_null: false + values: 326 + schema: + [alignment]: + type: string + path: _subclass.alignment + is_null: true + values: 6 + different_values: 6 + variants: + - "LG" (x1) + - "NG" (x1) + - "CG" (x1) + - "LE" (x1) + - "NE" (x1) + - "CE" (x1) + [element]: + type: array + path: _subclass.element + is_null: true + values: 6 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.element.[] + is_null: false + values: 6 + different_values: 6 + variants: + - "Air" (x1) + - "Earth" (x1) + - "Fire" (x1) + - "Metal" (x1) + - "Water" (x1) + - "Wood" (x1) + [lesson_type]: + type: string + path: _subclass.lesson_type + is_null: true + values: 29 + different_values: 3 + variants: + - "Greater" (x12) + - "Basic" (x11) + - "Major" (x6) + [level]: + type: integer + path: _subclass.level + is_null: true + values: 16 + different_values: 3 + variants: + - 3 (x6) + - 7 (x6) + - 15 (x4) + 'speed': + type: object + path: _subclass.speed + is_null: false + values: 326 + schema: + [domain]: + type: array + path: _subclass.domain + is_null: true + values: 21 + min_count: 2 + max_count: 4 + value_type: + type: string + path: _subclass.domain.[] + is_null: false + values: 64 + different_values: 33 + variants: [omitted] + [pfs]: + type: string + path: _subclass.pfs + is_null: true + values: 315 + different_values: 3 + variants: + - "Standard" (x308) + - "Limited" (x5) + - "Restricted" (x2) + [skill_markdown]: + type: string + path: _subclass.skill_markdown + is_null: true + values: 58 + different_values: 28 + variants: [omitted] + [spell_markdown]: + type: string + path: _subclass.spell_markdown + is_null: true + values: 85 + different_values: 77 + variants: [omitted] + [summary_markdown]: + type: string + path: _subclass.summary_markdown + is_null: true + values: 297 + different_values: 277 + variants: [omitted] + [tradition]: + type: array + path: _subclass.tradition + is_null: true + values: 52 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.tradition.[] + is_null: false + values: 52 + different_values: 4 + variants: + - "Occult" (x17) + - "Primal" (x15) + - "Divine" (x14) + - "Arcane" (x6) + 'type': + type: string + path: _subclass.type + is_null: false + values: 326 + different_values: 32 + variants: [omitted] + 'weakness': + type: object + path: _subclass.weakness + is_null: false + values: 326 + schema: + [tradition_markdown]: + type: string + path: _subclass.tradition_markdown + is_null: true + values: 26 + different_values: 4 + variants: + - "[Occult](/SpellLists.aspx?Tradition=3)" (x11) + - "[Primal](/SpellLists.aspx?Tradition=4)" (x9) + - "[Divine](/SpellLists.aspx?Tradition=2)" (x4) + - "[Arcane](/SpellLists.aspx?Tradition=1)" (x2) + [usage_markdown]: + type: string + path: _subclass.usage_markdown + is_null: true + values: 21 + different_values: 19 + variants: + - "imbued in the skin" (x2) + - "a ranged weapon" (x2) + - "worn anklets, bracers, or circlet (often a headband)" (x1) + - "melee weapon that deals slashing or piercing damage" (x1) + - "worn bracers" (x1) + - "imbued on the face" (x1) + - "imbued in the eyes" (x1) + - "a weapon in the [sword](/WeaponGroups.aspx?ID=15) or [knife](/WeaponGroups.aspx?ID=9) group, or a melee unarmed attack that deals slashing damage" (x1) + - "a melee [free-hand](/Traits.aspx?ID=613) weapon or a melee [unarmed](/Traits.aspx?ID=719) Strike" (x1) + - "a wallet, bag, or similar container of 1 Bulk you can wear on your body" (x1) + - "any [shield](/WeaponGroups.aspx?ID=12)" (x1) + - "a [sickle](/Weapons.aspx?ID=364) or any weapon from the [axe](/WeaponGroups.aspx?ID=1), [flail](/WeaponGroups.aspx?ID=7), or [polearm](/WeaponGroups.aspx?ID=11) group" (x1) + - "a [staff](/Weapons.aspx?ID=367), [bo staff](/Weapons.aspx?ID=372), [fighting stick](/Weapons.aspx?ID=168), [khakkara](/Weapons.aspx?ID=412), or any weapon in the [spear](/WeaponGroups.aspx?ID=14) or [polearm](/WeaponGroups.aspx?ID=11) weapon group" (x1) + - "worn cloak or belt" (x1) + - "a holster or sheath shaped for a one-handed [thrown](/Traits.aspx?ID=711) weapon of light Bulk or less" (x1) + - "worn belt" (x1) + - "worn shoes" (x1) + - "any melee weapon in the [club](/WeaponGroups.aspx?ID=5), [hammer](/WeaponGroups.aspx?ID=8), or [axe](/WeaponGroups.aspx?ID=1) group, or any your melee [unarmed](/Traits.aspx?ID=719) [Strikes](/Rules.aspx?ID=2895) that deals bludgeoning damage" (x1) + - "worn headwear or belt (typically a sash)" (x1) diff --git a/output-filtered/aonprd/armor.yaml b/output-filtered/aonprd/armor.yaml index b941d93..640874f 100644 --- a/output-filtered/aonprd/armor.yaml +++ b/output-filtered/aonprd/armor.yaml @@ -50,7 +50,7 @@ schema: variants: - 2 (x18) - 1 (x15) - - 0.1 (x7) + - 0,1 (x7) - 3 (x6) - 4 (x4) - 5 (x3) diff --git a/output-filtered/aonprd/class-kit.yaml b/output-filtered/aonprd/class-kit.yaml index 2ca85e1..e27a62e 100644 --- a/output-filtered/aonprd/class-kit.yaml +++ b/output-filtered/aonprd/class-kit.yaml @@ -8,20 +8,20 @@ schema: values: 32 different_values: 14 variants: - - 3.3 (x5) - - 3.7 (x4) - - 3.5 (x4) - - 4.4 (x4) - - 2.2 (x3) - - 3.2 (x2) - - 2.1 (x2) - - 4.1 (x2) - - 1.3 (x1) - - 1.6 (x1) - - 2.6 (x1) - - 1.2 (x1) - - 2.5 (x1) - - 1.7 (x1) + - 3,3 (x5) + - 3,7 (x4) + - 3,5 (x4) + - 4,4 (x4) + - 2,2 (x3) + - 3,2 (x2) + - 2,1 (x2) + - 4,1 (x2) + - 1,3 (x1) + - 1,6 (x1) + - 2,6 (x1) + - 1,2 (x1) + - 2,5 (x1) + - 1,7 (x1) 'bulk_raw': type: string path: class-kit.bulk_raw diff --git a/output-filtered/aonprd/equipment-bonus.yaml b/output-filtered/aonprd/equipment-bonus.yaml index 7827f28..3d399e2 100644 --- a/output-filtered/aonprd/equipment-bonus.yaml +++ b/output-filtered/aonprd/equipment-bonus.yaml @@ -15,7 +15,7 @@ schema: values: 816 different_values: 10 variants: - - 0.1 (x370) + - 0,1 (x370) - 0 (x287) - 1 (x97) - 2 (x40) diff --git a/output-filtered/aonprd/equipment-sub.yaml b/output-filtered/aonprd/equipment-sub.yaml index 3dd4ddc..6f7abc2 100644 --- a/output-filtered/aonprd/equipment-sub.yaml +++ b/output-filtered/aonprd/equipment-sub.yaml @@ -8,7 +8,7 @@ schema: values: 2776 different_values: 11 variants: - - 0.1 (x1267) + - 0,1 (x1267) - 0 (x1021) - 1 (x384) - 2 (x64) diff --git a/output-filtered/aonprd/equipment.yaml b/output-filtered/aonprd/equipment.yaml index 86c447e..ec396cf 100644 --- a/output-filtered/aonprd/equipment.yaml +++ b/output-filtered/aonprd/equipment.yaml @@ -42,7 +42,7 @@ schema: different_values: 14 variants: - 0 (x1430) - - 0.1 (x1398) + - 0,1 (x1398) - 1 (x436) - 2 (x134) - 3 (x32) diff --git a/output-filtered/aonprd/shield.yaml b/output-filtered/aonprd/shield.yaml index 4fd462a..3435e0f 100644 --- a/output-filtered/aonprd/shield.yaml +++ b/output-filtered/aonprd/shield.yaml @@ -19,7 +19,7 @@ schema: different_values: 5 variants: - 1 (x14) - - 0.1 (x2) + - 0,1 (x2) - 4 (x2) - 5 (x1) - 2 (x1) diff --git a/output-filtered/aonprd/weapon-sub.yaml b/output-filtered/aonprd/weapon-sub.yaml index f3fe914..683be5f 100644 --- a/output-filtered/aonprd/weapon-sub.yaml +++ b/output-filtered/aonprd/weapon-sub.yaml @@ -10,7 +10,7 @@ schema: variants: - 2 (x9) - 1 (x6) - - 0.1 (x3) + - 0,1 (x3) [level]: type: integer path: weapon-sub.level diff --git a/output-filtered/aonprd/weapon.yaml b/output-filtered/aonprd/weapon.yaml index aa2ea28..f3c2056 100644 --- a/output-filtered/aonprd/weapon.yaml +++ b/output-filtered/aonprd/weapon.yaml @@ -8,7 +8,7 @@ schema: values: 450 different_values: 5 variants: - - 0.1 (x169) + - 0,1 (x169) - 1 (x155) - 2 (x103) - 0 (x19) diff --git a/output/aonprd/_subclass.yaml b/output/aonprd/_subclass.yaml new file mode 100644 index 0000000..81c2506 --- /dev/null +++ b/output/aonprd/_subclass.yaml @@ -0,0 +1,458 @@ +name: _subclass +values: 326 +schema: + [attribute]: + type: array + path: _subclass.attribute + is_null: true + values: 4 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.attribute.[] + is_null: false + values: 4 + different_values: 2 + variants: + - "Charisma" (x2) + - "Intelligence" (x2) + [bloodline_markdown]: + type: string + path: _subclass.bloodline_markdown + is_null: true + values: 27 + different_values: 17 + variants: + - "Aberrant" (x2) + - "Angelic" (x2) + - "Demonic" (x2) + - "Diabolic" (x2) + - "Draconic" (x2) + - "Elemental" (x2) + - "Fey" (x2) + - "Hag" (x2) + - "Imperial" (x2) + - "Undead" (x2) + - "Genie" (x1) + - "Nymph" (x1) + - "Psychopomp" (x1) + - "Shadow" (x1) + - "Phoenix" (x1) + - "Wyrmblessed" (x1) + - "Harrow" (x1) + 'resistance': + type: object + path: _subclass.resistance + is_null: false + values: 326 + schema: + 'search_markdown': + type: string + path: _subclass.search_markdown + is_null: false + values: 326 + different_values: 304 + variants: [omitted] + 'source': + type: array + path: _subclass.source + is_null: false + values: 326 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.source.[] + is_null: false + values: 326 + different_values: 22 + variants: [omitted] + [alignment]: + type: string + path: _subclass.alignment + is_null: true + values: 6 + different_values: 6 + variants: + - "LG" (x1) + - "NG" (x1) + - "CG" (x1) + - "LE" (x1) + - "NE" (x1) + - "CE" (x1) + 'rarity_id': + type: integer + path: _subclass.rarity_id + is_null: false + values: 326 + different_values: 3 + variants: + - 1 (x317) + - 3 (x7) + - 2 (x2) + [element]: + type: array + path: _subclass.element + is_null: true + values: 6 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.element.[] + is_null: false + values: 6 + different_values: 6 + variants: + - "Air" (x1) + - "Earth" (x1) + - "Fire" (x1) + - "Metal" (x1) + - "Water" (x1) + - "Wood" (x1) + 'id': + type: string + path: _subclass.id + is_null: false + values: 326 + different_values: 326 (all different) + variants: [omitted] + 'primary_source_category': + type: string + path: _subclass.primary_source_category + is_null: false + values: 326 + different_values: 4 + variants: + - "Rulebooks" (x297) + - "Lost Omens" (x24) + - "Adventure Paths" (x4) + - "Adventures" (x1) + [legacy_id]: + type: array + path: _subclass.legacy_id + is_null: true + values: 87 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.legacy_id.[] + is_null: false + values: 87 + different_values: 87 + variants: [omitted] + 'name': + type: string + path: _subclass.name + is_null: false + values: 326 + different_values: 251 + variants: [omitted] + [lesson_type]: + type: string + path: _subclass.lesson_type + is_null: true + values: 29 + different_values: 3 + variants: + - "Greater" (x12) + - "Basic" (x11) + - "Major" (x6) + 'markdown': + type: string + path: _subclass.markdown + is_null: false + values: 326 + different_values: 326 (all different) + variants: [omitted] + [level]: + type: integer + path: _subclass.level + is_null: true + values: 16 + different_values: 3 + variants: + - 3 (x6) + - 7 (x6) + - 15 (x4) + [primary_source_group]: + type: string + path: _subclass.primary_source_group + is_null: true + values: 5 + different_values: 5 + variants: + - "Blood Lords" (x1) + - "Prey for Death" (x1) + - "Strength of Thousands" (x1) + - "Fists of the Ruby Phoenix" (x1) + - "Stolen Fate" (x1) + 'rarity': + type: string + path: _subclass.rarity + is_null: false + values: 326 + different_values: 3 + variants: + - "common" (x317) + - "rare" (x7) + - "uncommon" (x2) + 'release_date': + type: string + path: _subclass.release_date + is_null: false + values: 326 + different_values: 19 + variants: + - "2024-10-30" (x55) + - "2020-07-30" (x50) + - "2019-08-01" (x50) + - "2023-11-15" (x46) + - "2024-08-01" (x45) + - "2022-07-27" (x23) + - "2025-01-30" (x10) + - "2021-09-01" (x8) + - "2021-10-13" (x8) + - "2024-05-29" (x7) + - "2025-02-26" (x7) + - "2023-08-02" (x7) + - "2022-11-16" (x2) + - "2021-07-07" (x2) + - "2024-08-28" (x2) + - "2021-12-22" (x1) + - "2024-07-31" (x1) + - "2021-08-05" (x1) + - "2023-04-13" (x1) + 'source_category': + type: array + path: _subclass.source_category + is_null: false + values: 326 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.source_category.[] + is_null: false + values: 326 + different_values: 4 + variants: + - "Rulebooks" (x297) + - "Lost Omens" (x24) + - "Adventure Paths" (x4) + - "Adventures" (x1) + 'source_markdown': + type: string + path: _subclass.source_markdown + is_null: false + values: 326 + different_values: 145 + variants: [omitted] + 'speed': + type: object + path: _subclass.speed + is_null: false + values: 326 + schema: + [domain]: + type: array + path: _subclass.domain + is_null: true + values: 21 + min_count: 2 + max_count: 4 + value_type: + type: string + path: _subclass.domain.[] + is_null: false + values: 64 + different_values: 33 + variants: [omitted] + [pfs]: + type: string + path: _subclass.pfs + is_null: true + values: 315 + different_values: 3 + variants: + - "Standard" (x308) + - "Limited" (x5) + - "Restricted" (x2) + [remaster_id]: + type: array + path: _subclass.remaster_id + is_null: true + values: 87 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.remaster_id.[] + is_null: false + values: 87 + different_values: 87 + variants: [omitted] + [skill_markdown]: + type: string + path: _subclass.skill_markdown + is_null: true + values: 58 + different_values: 28 + variants: [omitted] + [source_group]: + type: array + path: _subclass.source_group + is_null: true + values: 5 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.source_group.[] + is_null: false + values: 5 + different_values: 5 + variants: + - "Blood Lords" (x1) + - "Prey for Death" (x1) + - "Strength of Thousands" (x1) + - "Fists of the Ruby Phoenix" (x1) + - "Stolen Fate" (x1) + [spell_markdown]: + type: string + path: _subclass.spell_markdown + is_null: true + values: 85 + different_values: 77 + variants: [omitted] + [spoilers]: + type: string + path: _subclass.spoilers + is_null: true + values: 2 + different_values: 2 + variants: + - "Strength of Thousands" (x1) + - "Fists of the Ruby Phoenix" (x1) + [summary_markdown]: + type: string + path: _subclass.summary_markdown + is_null: true + values: 297 + different_values: 277 + variants: [omitted] + [tradition]: + type: array + path: _subclass.tradition + is_null: true + values: 52 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.tradition.[] + is_null: false + values: 52 + different_values: 4 + variants: + - "Occult" (x17) + - "Primal" (x15) + - "Divine" (x14) + - "Arcane" (x6) + 'category': + type: string + path: _subclass.category + is_null: false + values: 326 + different_values: 28 + variants: [omitted] + [trait]: + type: array + path: _subclass.trait + is_null: true + values: 13 + min_count: 1 + max_count: 1 + value_type: + type: string + path: _subclass.trait.[] + is_null: false + values: 13 + different_values: 4 + variants: + - "Rare" (x7) + - "Uncommon" (x2) + - "Unholy" (x2) + - "Holy" (x2) + 'type': + type: string + path: _subclass.type + is_null: false + values: 326 + different_values: 32 + variants: [omitted] + 'url': + type: string + path: _subclass.url + is_null: false + values: 326 + different_values: 326 (all different) + variants: [omitted] + 'weakness': + type: object + path: _subclass.weakness + is_null: false + values: 326 + schema: + [tradition_markdown]: + type: string + path: _subclass.tradition_markdown + is_null: true + values: 26 + different_values: 4 + variants: + - "[Occult](/SpellLists.aspx?Tradition=3)" (x11) + - "[Primal](/SpellLists.aspx?Tradition=4)" (x9) + - "[Divine](/SpellLists.aspx?Tradition=2)" (x4) + - "[Arcane](/SpellLists.aspx?Tradition=1)" (x2) + [trait_markdown]: + type: string + path: _subclass.trait_markdown + is_null: true + values: 101 + different_values: 6 + variants: + - "" (x88) + - "[Rare](/Traits.aspx?ID=137)" (x6) + - "[Uncommon](/Traits.aspx?ID=159)" (x2) + - "[Unholy](/Traits.aspx?ID=521)" (x2) + - "[Holy](/Traits.aspx?ID=517)" (x2) + - "[Rare](/Traits.aspx?ID=683)" (x1) + [usage_markdown]: + type: string + path: _subclass.usage_markdown + is_null: true + values: 21 + different_values: 19 + variants: + - "imbued in the skin" (x2) + - "a ranged weapon" (x2) + - "worn anklets, bracers, or circlet (often a headband)" (x1) + - "melee weapon that deals slashing or piercing damage" (x1) + - "worn bracers" (x1) + - "imbued on the face" (x1) + - "imbued in the eyes" (x1) + - "a weapon in the [sword](/WeaponGroups.aspx?ID=15) or [knife](/WeaponGroups.aspx?ID=9) group, or a melee unarmed attack that deals slashing damage" (x1) + - "a melee [free-hand](/Traits.aspx?ID=613) weapon or a melee [unarmed](/Traits.aspx?ID=719) Strike" (x1) + - "a wallet, bag, or similar container of 1 Bulk you can wear on your body" (x1) + - "any [shield](/WeaponGroups.aspx?ID=12)" (x1) + - "a [sickle](/Weapons.aspx?ID=364) or any weapon from the [axe](/WeaponGroups.aspx?ID=1), [flail](/WeaponGroups.aspx?ID=7), or [polearm](/WeaponGroups.aspx?ID=11) group" (x1) + - "a [staff](/Weapons.aspx?ID=367), [bo staff](/Weapons.aspx?ID=372), [fighting stick](/Weapons.aspx?ID=168), [khakkara](/Weapons.aspx?ID=412), or any weapon in the [spear](/WeaponGroups.aspx?ID=14) or [polearm](/WeaponGroups.aspx?ID=11) weapon group" (x1) + - "worn cloak or belt" (x1) + - "a holster or sheath shaped for a one-handed [thrown](/Traits.aspx?ID=711) weapon of light Bulk or less" (x1) + - "worn belt" (x1) + - "worn shoes" (x1) + - "any melee weapon in the [club](/WeaponGroups.aspx?ID=5), [hammer](/WeaponGroups.aspx?ID=8), or [axe](/WeaponGroups.aspx?ID=1) group, or any your melee [unarmed](/Traits.aspx?ID=719) [Strikes](/Rules.aspx?ID=2895) that deals bludgeoning damage" (x1) + - "worn headwear or belt (typically a sash)" (x1) diff --git a/output/aonprd/armor.yaml b/output/aonprd/armor.yaml index b241ff4..2ac0475 100644 --- a/output/aonprd/armor.yaml +++ b/output/aonprd/armor.yaml @@ -50,7 +50,7 @@ schema: variants: - 2 (x18) - 1 (x15) - - 0.1 (x7) + - 0,1 (x7) - 3 (x6) - 4 (x4) - 5 (x3) diff --git a/output/aonprd/class-kit.yaml b/output/aonprd/class-kit.yaml index 4213e09..dc4663f 100644 --- a/output/aonprd/class-kit.yaml +++ b/output/aonprd/class-kit.yaml @@ -8,20 +8,20 @@ schema: values: 32 different_values: 14 variants: - - 3.3 (x5) - - 3.7 (x4) - - 3.5 (x4) - - 4.4 (x4) - - 2.2 (x3) - - 3.2 (x2) - - 2.1 (x2) - - 4.1 (x2) - - 1.3 (x1) - - 1.6 (x1) - - 2.6 (x1) - - 1.2 (x1) - - 2.5 (x1) - - 1.7 (x1) + - 3,3 (x5) + - 3,7 (x4) + - 3,5 (x4) + - 4,4 (x4) + - 2,2 (x3) + - 3,2 (x2) + - 2,1 (x2) + - 4,1 (x2) + - 1,3 (x1) + - 1,6 (x1) + - 2,6 (x1) + - 1,2 (x1) + - 2,5 (x1) + - 1,7 (x1) 'bulk_raw': type: string path: class-kit.bulk_raw diff --git a/output/aonprd/equipment-bonus.yaml b/output/aonprd/equipment-bonus.yaml index e771af0..b582e19 100644 --- a/output/aonprd/equipment-bonus.yaml +++ b/output/aonprd/equipment-bonus.yaml @@ -15,7 +15,7 @@ schema: values: 816 different_values: 10 variants: - - 0.1 (x370) + - 0,1 (x370) - 0 (x287) - 1 (x97) - 2 (x40) diff --git a/output/aonprd/equipment-sub.yaml b/output/aonprd/equipment-sub.yaml index 865b0b7..702dd7c 100644 --- a/output/aonprd/equipment-sub.yaml +++ b/output/aonprd/equipment-sub.yaml @@ -8,7 +8,7 @@ schema: values: 2776 different_values: 11 variants: - - 0.1 (x1267) + - 0,1 (x1267) - 0 (x1021) - 1 (x384) - 2 (x64) diff --git a/output/aonprd/equipment.yaml b/output/aonprd/equipment.yaml index 1a9df00..ef28d39 100644 --- a/output/aonprd/equipment.yaml +++ b/output/aonprd/equipment.yaml @@ -42,7 +42,7 @@ schema: different_values: 14 variants: - 0 (x1430) - - 0.1 (x1398) + - 0,1 (x1398) - 1 (x436) - 2 (x134) - 3 (x32) diff --git a/output/aonprd/shield.yaml b/output/aonprd/shield.yaml index c263faa..54cf4df 100644 --- a/output/aonprd/shield.yaml +++ b/output/aonprd/shield.yaml @@ -19,7 +19,7 @@ schema: different_values: 5 variants: - 1 (x14) - - 0.1 (x2) + - 0,1 (x2) - 4 (x2) - 5 (x1) - 2 (x1) diff --git a/output/aonprd/weapon-sub.yaml b/output/aonprd/weapon-sub.yaml index 8c68cbe..4de6c63 100644 --- a/output/aonprd/weapon-sub.yaml +++ b/output/aonprd/weapon-sub.yaml @@ -10,7 +10,7 @@ schema: variants: - 2 (x9) - 1 (x6) - - 0.1 (x3) + - 0,1 (x3) 'category': type: string path: weapon-sub.category diff --git a/output/aonprd/weapon.yaml b/output/aonprd/weapon.yaml index a35965a..d7600df 100644 --- a/output/aonprd/weapon.yaml +++ b/output/aonprd/weapon.yaml @@ -8,7 +8,7 @@ schema: values: 450 different_values: 5 variants: - - 0.1 (x169) + - 0,1 (x169) - 1 (x155) - 2 (x103) - 0 (x19)