diff --git a/dbml/schema.dbml b/dbml/schema.dbml index 9ce29fe..f82959c 100644 --- a/dbml/schema.dbml +++ b/dbml/schema.dbml @@ -5,9 +5,14 @@ Table entity { id int [pk] name varchar [not null, note: "{*}.name"] img varchar(100) [note: "{*}.img"] + description text [not null, note: "{*}.system.description(.value)"] + description_gm text [null, note: "{*}.system.description.gm"] type entity_type [not null] slug varchar rarity entity_rarity [not null, default: "common", note: "{*}.system.rarity"] + + is_translated bool [default: false, note: "Первичный импорт идёт из англоязычного источника, перевод приходит вторым"] + is_checked bool [default: false, note: "Флаг, указывающий, что перевод был проверен вручную и не требует обновления парсером"] } Enum entity_type { feat @@ -93,8 +98,6 @@ Table entity_traits { // Action Table action { id int [pk, ref: - entity.id] - - description text [not null, note: "{}.system.description"] type action_type [not null, note: "{}.system.actionType.value"] actions int [null, note: "{}.system.actions?.value"] @@ -136,8 +139,6 @@ Enum action_category { // Ancestery Table ancestry { id int [pk, ref: - entity.id] - - description text [not null, note: "{}.system.description"] hp int [not null, note: "{}.system.hp"] reach int [not null, note: "{}.system.reach"] @@ -169,7 +170,7 @@ Enum ancestry_size { } Enum ancestry_vision { normal - low-light-vision + low_light_vision // low-light-vision darkvision } @@ -177,8 +178,6 @@ Enum ancestry_vision { Table armor { id int [pk, ref: - entity.id] - description text [not null, note: "{}.system.description"] - ac_bonus int [not null, note: "{}.system.acBonus"] strength int [null, note: "{}.system.strength"] check_penalty int [not null, note: "{}.system.checkPenalty"] @@ -216,8 +215,8 @@ Enum armor_category { light heavy medium - light-barding - heavy-barding + light_barding // light-barding + heavy_barding // heavy-barding unarmored } Enum armor_group { @@ -238,13 +237,13 @@ Enum armor_size { Table background { id int [pk, ref: - entity.id] - description text [not null, note: "{}.system.description"] - Note: '''{} = Item.background Перенаправление: {}.system.publication -> entity_sources {}.system.traits -> entity_traits + {}.system.items -> background_items + {}.system.trainedSkills -> background_skills Рассмотреть: {}.system.boosts @@ -252,20 +251,239 @@ Table background { Не использованы поля: ''' } +Table background_items { + id int [pk] + background_id int [ref: > background.id] + entity_id int [ref: > entity.id, note: "{}.name"] + + level int [note: "{}.level"] + name string [note: "{}.name (?)"] + Note: "{} = Item.background.system.items" +} +Table background_skills { + id int [pk] + background_id int [ref: > background.id] + + name varchar [note: "{}.[]"] + is_skill bool [note: "true = [value] false = [lore]"] + + Note: "{} = Item.background.system.items.[lore|value]" +} + +// Backpack +Table backpack { + id int [pk, ref: - entity.id] + + level int [note: "{}.system.bulk.level.value"] + + capacity int [note: "{}.system.bulk.heldOrStowed"] + heldOrStowed float [note: "{}.system.bulk.heldOrStowed"] + ignored int [note: "{}.system.bulk.ignored"] + value float [note: "{}.system.bulk.value"] + hardness int [note: "{}.system.bulk.hardness"] + quantity int [note: "{}.system.bulk.quantity"] + + price int [note: "price({}.system.price.value)"] + size varchar [note: "{}.system.bulk.size (always med)"] + stowing bool [note: "{}.system.stowing"] + usage + + Note: '''{} = Item.backpack + + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + Рассмотреть: + {}.system.material + + Не использованы поля: + {}.system.collapsed - всегда false + ''' +} +Enum backpack_usage { + wornbackpack + held_in_two_hands // held-in-two-hands + worn + held_in_one_hand // held-in-one-hand + worngarment +} + +// Campaign Feature +Table campaign_feature { + id int [pk, ref: - entity.id] + + level int [note: "{}.system.level"] + + type action_type [note: "{}.system.actionType"] + action int [note: "{}.system.actions"] + category campaign_feature_category [note: "{}.system.category"] + + + Note: '''{} = Item.campaignFeature + + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + Рассмотреть: + {}.system.prerequisites - очень странная структура, + но, похоже, просто одиночное value + + Не использованы поля: + {}.system.requirements - всегда пустое + {}.system.trigger - всегда пустое + ''' +} +Enum campaign_feature_category { + army_tactic // army-tactic + army_war_action // army-war-action + kingdom_activity // kingdom-activity + kingdom_feat // kingdom-feat + kingdom_feature // kingdom-feature +} + +// Class +Table class { + id int [pk, ref: - entity.id] + + hp int [note: "{}.system.hp"] + perception int [note: "{}.system.perception"] + spellcasting bool [note: "{}.system.spellcasting"] + + Note: '''{} = Item.class + + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + {}.system.ancestryFeatLevels -> class_progression + {}.system.classFeatLevels -> class_progression + {}.system.generalFeatLevels -> class_progression + {}.system.items -> class_progression + {}.system.skillFeatLevels -> class_progression + {}.system.skillIncreaseLevels -> class_progression + + {}.system.attacks.[!other] -> class_trainings + {}.system.defenses -> class_trainings + {}.system.savingThrows -> class_trainings + Рассмотреть: + {}.system.keyAbility + {}.system.attacks.other + Не использованы поля: + ''' +} +Table class_progression { + id int [pk, increment] + class_id int [ref: > class.id] + level int + type class_progression_type + entity_id [null, ref: > entity.id] +} +Table class_trainings { + id int [pk, increment] + class_id int [ref: class.id] + item varchar [note: "Возможно нужна связь с чем-то ещё"] + stage: int [note: "0-untrained, 1-trained..."] +} +Enum class_progression_type { + entity [note: "{}.system.items"] + ancestry_feat [note: "{}.system.ancestryFeatLevels"] + class_feat [note: "{}.system.classFeatLevels"] + general_feat [note: "{}.system.generalFeatLevels"] + skill_feat [note: "{}.system.skillFeatLevels"] + skill_increase [note: "{}.system.skillIncreaseLevels"] +} +// Condition +Table condition { + id int [pk, ref: - entity.id] + group condition_group + + Note: '''{} = Item.condition + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + Рассмотреть: + duration + overrides + references - всегда пустое + value + + Не использованы поля: + ''' +} +Enum condition_group { + senses + abilities + death + attitudes + detection +} + +// Deity +Table deity { + id int [pk, ref: - entity.id] + + category deity_category + + + Note: '''{} = Item.deity + + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + attribute -> deity_attribute + skill -> deity_skills + spells -> deity_spells + weapons -> deity_weapons + + Рассмотреть: + domains - нужная другая таблица? + font + sanctification + + Не использованы поля: + ''' +} +Table deity_attributes { + deity_id int [pk, ref: > deity.id] + attribute varchar(3) [pk] +} +Table deity_skills { + deity_id int [pk, ref: > deity.id] + skill varchar [pk] +} +Table deity_spells { + id int [pk, increment] + deity_id int [ref: > deity.id] + level int + spell_id int [ref: > spell.id] +} +Table deity_weapons { + id int [pk, increment] + deity_id int [ref: > deity.id] + weapon varchar +} +Enum deity_category { + deity + pantheon + covenant + philosophy +} // Feat Table feat { id int [pk, ref: - entity.id] - - description text [not null, note: "{}.system.description"] action_type feat_action_type [note: "{}.system.actionType.value"] actions int [null, note: "{}.system.actions?.value"] @@ -314,15 +532,48 @@ Enum feat_category { curse pfsboon } - Table feat_frequency { feat_id int [pk, ref: > feat.id] max int [not null, note: "{Item.feat}.system.frequency.max"] per int [not null, note: "{Item.feat}.system.frequency.per"] - value int [null, note "{Item.feat}.system.frequency.value - что это вообще?!"] + value int [null, note: "{Item.feat}.system.frequency.value - что это вообще?!"] } +// Heritage +Table heritage { + id int [pk, ref: - entity.id] + ancestry_id [null, ref: > ancestry.id] + + Note: '''{} = Item.heritage + + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + Рассмотреть: + + Не использованы поля: + ''' +} + +// Spell +Table spell { + id int [pk, ref: - entity.id] + + cost int [note: "{}.system.cost"] + + Note: '''{} = Item.spell + + Перенаправление: + {}.system.publication -> entity_sources + {}.system.traits -> entity_traits + + Рассмотреть: + + Не использованы поля: + ''' +} @@ -333,8 +584,6 @@ Table feat_frequency { Table template { id int [pk, ref: - entity.id] - description text [not null, note: "{}.system.description"] - Note: '''{} = Item. Перенаправление: @@ -346,4 +595,10 @@ Table template { Не использованы поля: ''' } -*/ \ No newline at end of file +*/ + +// consumable -> equipment? +// effect??? +// equipment +// kit +// shield -> equipment \ No newline at end of file