diff --git a/dbml/schema.dbml b/dbml/schema.dbml index 2afebd0..a0bad29 100644 --- a/dbml/schema.dbml +++ b/dbml/schema.dbml @@ -107,6 +107,13 @@ Table frequency { Используется для подключения полей из таблиц схем {Item.feat} и {Item.action}''' } +// Duration +Table duration { + id int [pk, ref: - entity.id] + + +} + // Languages Table language { id int [pk] @@ -115,6 +122,10 @@ Table language { } // Trainings +Table trainings { + id int [pk] + key varchar +} // ---------------------------------------------- @@ -202,7 +213,6 @@ Table ancestry_items { ancestry_id int [pk, ref: > ancestry.id] item_id int [pk, ref: > entity.id] level int [not null] - } // Background @@ -290,6 +300,7 @@ Table class { hp int [note: "{}.hp"] perception int [note: "{}.perception"] spellcasting bool [note: "{}.spellcasting"] + additionalTrainedSkills int [note: "{}.trainedSkills.additional"] Note: '''{} = Item.class.system @@ -307,14 +318,16 @@ Table class { {}.attacks.[!other] -> class_trainings {}.defenses -> class_trainings {}.savingThrows -> class_trainings - - Рассмотреть: - {}.keyAbility - {}.attacks.other - - Не использованы поля: + {}.trainedSkills.[value|custom] -> class_trainings + + {}.keyAbility.value -> class_key_abilities ''' } +Table class_key_abilities { + id int [pk] + class_id int [ref: > class.id] + value varchar(3) [not null] +} Table class_progression { id int [pk, increment] class_id int [ref: > class.id] @@ -324,8 +337,11 @@ Table class_progression { } Table class_trainings { id int [pk, increment] - class_id int [ref: class.id] - item varchar [note: "Возможно нужна связь с чем-то ещё"] + class_id int [ref: > class.id] + + item int [null, ref: > trainings.id] + name varchar [null, note: "{}.attacks.other"] + stage: int [note: "0-untrained, 1-trained..."] } Enum class_progression_type { @@ -341,7 +357,7 @@ Enum class_progression_type { Table condition { id int [pk, ref: - entity.id] - group condition_group + group condition_group [null] Note: '''{} = Item.condition.system @@ -370,8 +386,11 @@ Enum condition_group { Table deity { id int [pk, ref: - entity.id] - category deity_category + category deity_category [not null, note: "{}.category"] + font deity_fonts [not null, note: "{}.font"] + sanctification_must bool [not null, note: "{}.sanctification.modal"] + sanctification_type deity_sanctification [not null, note: "{}.sanctification.what"] Note: '''{} = Item.deity.system @@ -383,22 +402,16 @@ Table deity { {}.skill -> deity_skills {}.spells -> deity_spells {}.weapons -> deity_weapons - - Рассмотреть: - {}.domains - нужная другая таблица? - {}.font - {}.sanctification - - Не использованы поля: + {}.domains -> deity_domains ''' } Table deity_attributes { deity_id int [pk, ref: > deity.id] - attribute varchar(3) [pk] + attribute varchar(3) [pk] } Table deity_skills { deity_id int [pk, ref: > deity.id] - skill varchar [pk] + skill_id trainings [pk, ref: > trainings.id] } Table deity_spells { id int [pk, increment] @@ -411,25 +424,44 @@ Table deity_weapons { deity_id int [ref: > deity.id] weapon varchar } +Table deity_domains { + id int [pk, increment] + deity_id int [not null, ref: > deity.id] + is_primary bool [not null, note: "true = primary; false = alternate"] + value varchar [not null] +} Enum deity_category { deity pantheon covenant philosophy } +Enum deity_fonts { + none + heal + harm + any +} +Enum deity_sanctification { + holy + unholy + any +} // Feat Table feat { id int [pk, ref: - entity.id] - action_type feat_action_type [note: "{}.actionType.value"] + action_type feat_action_type [not null, note: "{}.actionType.value"] actions int [null, note: "{}.actions?.value"] category feat_category [not null, note: "{}.category"] level int [not null, note: "{}.level.value"] - level_taker int [null, note: "{}.level.taken"] // Всего 2 значения: 1, 2 + level_taken int [null, note: "{}.level.taken"] // Всего 2 значения: 1, 2 max_takable int [null, note: "{}.level.maxTakable"] location varchar(12) [null, note: "{}.level.location"] only_level_1 bool [null, note: "{}.onlyLevel1"] + + extra text [null, note: "json для того, что надо рассмотреть"] Note: '''{} = Item.feat.system @@ -438,16 +470,20 @@ Table feat { {}.traits -> entity_traits {}.frequency -> frequency + {}.prerequisites -> feat_prerequisites + Рассмотреть: - {}.prerequisites - {}.selfEffect - {}.duration - {}.start - .value всегда 103462347 - {}.target + {}.subfeatures + {}.duration - только у одного + {}.start - только у одного Не использованы поля: {}.subfeatures - пишем в описании пока что, потом подключение таблицы - {}.actionCategory - всегда пробел??? + {}.actionCategory - всегда пустое + {}.identified - всегда true + {}.target - всегда null + {}.selfEffect + ''' } Enum feat_action_type { @@ -469,6 +505,15 @@ Enum feat_category { curse pfsboon } +Table feat_prerequisites { + id int [pk, increment] + + feat_id int [not null, ref: > feat.id] + value varchar [not null, note: "{}.[].value"] + + Note: "{} = Item.feat.system.prerequisites.value" +} + // Heritage Table heritage { @@ -481,10 +526,6 @@ Table heritage { Перенаправление: {}.publication -> entity_sources {}.traits -> entity_traits - - Рассмотреть: - - Не использованы поля: ''' } @@ -510,25 +551,77 @@ Table spell { {}.publication -> entity_sources {}.traits -> entity_traits - Рассмотреть: - {}.area - damage - defense + {}.area -> spell_area + {}.damage -> spell_damage + {}.ritual -> spell_ritual + {}.defense -> spell_defense Не использованы поля: - heightening - overlays + {}.heightening + {}.overlays ''' } +Table spell_area { + spell_id int [pk, ref: - spell.id] + + details varchar [null, note: "{}.details"] + type spell_area_type [not null, note: "{}.type"] + value int [not null, note: "{}.value"] + + Note: "{} = Item.spell.system.area" +} +Table spell_damage { + id int [pk, increment] + spell_id int [ref: > spell.id] + + key varchar [not null, note: "{}.[key]"] + + apply_mod bool [null, note: "{}.[value].applyMod"] + category spell_damage_category [null, note: "{}.[value].category"] + formula varchar [not null, note: "{}.[value].formula"] + kinds spell_damage_kinds [not null, note: "{}.[value].kinds"] + materials varchar [null, note: "{}.[value].materials"] + type varchar [not null, note: "{}.[value].type"] + + Note: "{} = Item.spell.system.damage" +} Table spell_ritual { spell_id int [pk, ref: - spell.id] + primary_check varchar [note: "{}.primary.check"] secondary_casters int [note: "{}.secondary.casters"] secondary_checks varchar [note: "{}.secondary.checks"] Note: "{} = Item.spell.system.ritual" } +Table spell_defense { + id int [pk, increment] + spell_id int [ref: > spell.id] + is_passive bool [not null, note: "true = {}.passive; true = {}.save"] + is_basic bool [null, note: "{}.save?.basic"] + statistic varchar [not null, note: "{}.[save|passive].statistic"] + + Note: "{} = Item.spell.system.defense" +} +Enum spell_area_type { + burst + emanation + cone + line + square + cube + cylinder +} +Enum spell_damage_category { + persistent + splash +} +Enum spell_damage_kinds { + damage + healing + any +}