From 132c691f60e9a2e147d7696532abc04e2c81d4d3 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 17:41:06 -0500 Subject: [PATCH 01/16] initial jab at schema for monsters --- schema/monsters.sql | 97 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 schema/monsters.sql diff --git a/schema/monsters.sql b/schema/monsters.sql new file mode 100644 index 0000000..0b5ff69 --- /dev/null +++ b/schema/monsters.sql @@ -0,0 +1,97 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +CREATE TABLE monsters ( + monsters_id INTEGER PRIMARY KEY, + is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req + sources_id INTEGER, + sources_pages TEXT, + "name" TEXT NOT NULL UNIQUE, + "level" INTEGER, + alignment_id INTEGER, -- i.e. NG, LE etc.. + perception INTEGER, + sizes_id INTEGER, -- i.e. large medium small etc.. + ac INTEGER, + fortitude INTEGER, + reflex INTEGER, + will INTEGER, + hp INTEGER, + speed INTEGER, + str_mod INTEGER, + dex_mod INTEGER, + con_mod INTEGER, + int_mod INTEGER, + wis_mod INTEGER, + cha_mod INTEGER, + descr TEXT, -- The idea with this is for this to hold the entire stat block + -- text in it for those that want to do a simple query. I DO + -- intend to break out all the actions etc. into a separate table + -- and do many-to-many joins. Yes, this duplicates some data but + -- this is more for getting markdown formatting of the stat block + -- in one nice column. + FOREIGN KEY (alignments_id) REFERENCES alignments(alignments_id), + FOREIGN KEY (sizes_id) REFERENCES sizes(sizes_id), + FOREIGN KEY (sources_id) REFERENCES sources(sources_id) + +); + +CREATE TABLE monsterflavortexttypes ( + monsterflavortexttypes_id INTEGER PRIMARY KEY, + "name" TEXT NOT NULL UNIQUE + -- page 7 Bestiary + -- 'Monster Category' -- i.e. "Bear" + -- 'Specific Monster' -- i.e. "Grizzly Bear" + -- 'Advice and Rules' + -- 'Related Creatures' + -- 'Additional Lore' + -- 'Treasure and Rewards' + -- 'Locations' +); + +CREATE TABLE monsterflavortexts ( + monsterflavortexts_id INTEGER PRIMARY KEY, + monsterflavortexttypes_id INTEGER, + heading TEXT NOT NULL, + mft_text TEXT NOT NULL, + FOREIGN KEY (monsterflavortexttypes_id) REFERENCES monsterflavortexttypes(monsterflavortexttype_id) +); + +CREATE TABLE monsters_senses ( + id INTEGER PRIMARY KEY, + monsters_id INTEGER NOT NULL, + immunities_id INTEGER NOT NULL, + FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), + FOREIGN KEY (senses_id) REFERENCES senses(senses_id) +); + +CREATE TABLE monsters_immunities ( + id INTEGER PRIMARY KEY, + monsters_id INTEGER NOT NULL, + immunities_id INTEGER NOT NULL, + FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), + FOREIGN KEY (immunities_id) REFERENCES immunities(immunities_id) +); + +CREATE TABLE monsters_skills ( + id INTEGER PRIMARY KEY, + monsters_id INTEGER NOT NULL, + skills_id INTEGER NOT NULL, + skill_mod INTEGER NOT NULL, + FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), + FOREIGN KEY (skills_id) REFERENCES skills(skills_id) +); + +-- TODO does this need to be separate table for monsters only or share the main +-- actions table +CREATE TABLE monsteractions ( + monsteractions_id INTEGER PRIMARY KEY, + "name" TEXT, + -- TODO +); + +CREATE TABLE monsters_actions ( + id INTEGER PRIMARY KEY, + monsters_id INTEGER NOT NULL, + actions_id INTEGER NOT NULL, -- TODO actions table? or monsteractions table? +); From c71ad3b5bd513f0b57c06f554ffe9134d2604660 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 17:45:10 -0500 Subject: [PATCH 02/16] add monsters_traits table to monsters schema --- schema/monsters.sql | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/schema/monsters.sql b/schema/monsters.sql index 0b5ff69..1b91eb6 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -82,6 +82,14 @@ CREATE TABLE monsters_skills ( FOREIGN KEY (skills_id) REFERENCES skills(skills_id) ); +CREATE TABLE monsters_traits ( + id INTEGER PRIMARY KEY, + monsters_id INTEGER NOT NULL, + traits_id INTEGER NOT NULL, + FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), + FOREIGN KEY (traits_id) REFERENCES traits(traits_id) +); + -- TODO does this need to be separate table for monsters only or share the main -- actions table CREATE TABLE monsteractions ( From 81b47bb7beadf3ad462320454ba57f2db754a4f6 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 18:57:29 -0500 Subject: [PATCH 03/16] working on adding in basic skills --- data/skills.sql | 25 +++++++++++++++++++++++++ schema/skills.sql | 12 ++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 data/skills.sql create mode 100644 schema/skills.sql diff --git a/data/skills.sql b/data/skills.sql new file mode 100644 index 0000000..7a5c652 --- /dev/null +++ b/data/skills.sql @@ -0,0 +1,25 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +-- TODO Need to enter descriptions + +BEGIN TRANSACTION; +INSERT INTO skills (1, 1, '240', 'Acrobatics', 'TODO'); +INSERT INTO skills (2, 1, '241', 'Arcana', 'TODO'); +INSERT INTO skills (3, 1, '241', 'Athletics', 'TODO'); +INSERT INTO skills (4, 1, '243', 'Crafting', 'TODO'); +INSERT INTO skills (5, 1, '245', 'Deception', 'TODO'); +INSERT INTO skills (6, 1, '246', 'Diplomacy', 'TODO'); +INSERT INTO skills (7, 1, '247', 'Intimidation', 'TODO'); +INSERT INTO skills (8, 1, '247', 'Lore', 'TODO'); -- TODO special case +INSERT INTO skills (9, 1, '248', 'Medicine', 'TODO'); +INSERT INTO skills (10, 1, '249', 'Nature', 'TODO'); +INSERT INTO skills (11, 1, '249', 'Occultism', 'TODO'); +INSERT INTO skills (12, 1, '250', 'Performance', 'TODO'); +INSERT INTO skills (13, 1, '250', 'Religion', 'TODO'); +INSERT INTO skills (14, 1, '250', 'Society', 'TODO'); +INSERT INTO skills (15, 1, '251', 'Stealth', 'TODO'); +INSERT INTO skills (16, 1, '252', 'Survival', 'TODO'); +INSERT INTO skills (17, 1, '253', 'Thievery', 'TODO'); +COMMIT; diff --git a/schema/skills.sql b/schema/skills.sql new file mode 100644 index 0000000..e356558 --- /dev/null +++ b/schema/skills.sql @@ -0,0 +1,12 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +CREATE TABLE skills ( + skills_id INTEGER PRIMARY KEY, + sources_id INTEGER, + sources_pages TEXT, + "name" TEXT UNIQUE NOT NULL, + descr TEXT, + FOREIGN KEY (sources_id) REFERENCES sources(sources_id) +); From 91543a3e43ab199a7dc9230d632412225875b7f2 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 18:57:58 -0500 Subject: [PATCH 04/16] updates to monsters schema --- schema/monsters.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/schema/monsters.sql b/schema/monsters.sql index 1b91eb6..3cfc182 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -33,7 +33,6 @@ CREATE TABLE monsters ( FOREIGN KEY (alignments_id) REFERENCES alignments(alignments_id), FOREIGN KEY (sizes_id) REFERENCES sizes(sizes_id), FOREIGN KEY (sources_id) REFERENCES sources(sources_id) - ); CREATE TABLE monsterflavortexttypes ( @@ -76,8 +75,9 @@ CREATE TABLE monsters_immunities ( CREATE TABLE monsters_skills ( id INTEGER PRIMARY KEY, monsters_id INTEGER NOT NULL, - skills_id INTEGER NOT NULL, - skill_mod INTEGER NOT NULL, + skills_id INTEGER NOT NULL, -- will ID the specific skill + skill_mod INTEGER NOT NULL, -- will hold the modifier value + UNIQUE(monsters_id, skills_id), -- so we don't get duplicate rows for a specific monster FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), FOREIGN KEY (skills_id) REFERENCES skills(skills_id) ); @@ -85,9 +85,9 @@ CREATE TABLE monsters_skills ( CREATE TABLE monsters_traits ( id INTEGER PRIMARY KEY, monsters_id INTEGER NOT NULL, - traits_id INTEGER NOT NULL, + trait_id INTEGER NOT NULL, FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), - FOREIGN KEY (traits_id) REFERENCES traits(traits_id) + FOREIGN KEY (traits_id) REFERENCES traits(trait_id) ); -- TODO does this need to be separate table for monsters only or share the main From 9bd9b830a03c07f12d74e8353753ebf6921d47b4 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:03:46 -0500 Subject: [PATCH 05/16] fix skills entry --- data/skills.sql | 34 +++++++++++++++++----------------- gendb.sh | 3 +++ 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/data/skills.sql b/data/skills.sql index 7a5c652..e096cc8 100644 --- a/data/skills.sql +++ b/data/skills.sql @@ -5,21 +5,21 @@ PRAGMA foreign_keys = ON; -- TODO Need to enter descriptions BEGIN TRANSACTION; -INSERT INTO skills (1, 1, '240', 'Acrobatics', 'TODO'); -INSERT INTO skills (2, 1, '241', 'Arcana', 'TODO'); -INSERT INTO skills (3, 1, '241', 'Athletics', 'TODO'); -INSERT INTO skills (4, 1, '243', 'Crafting', 'TODO'); -INSERT INTO skills (5, 1, '245', 'Deception', 'TODO'); -INSERT INTO skills (6, 1, '246', 'Diplomacy', 'TODO'); -INSERT INTO skills (7, 1, '247', 'Intimidation', 'TODO'); -INSERT INTO skills (8, 1, '247', 'Lore', 'TODO'); -- TODO special case -INSERT INTO skills (9, 1, '248', 'Medicine', 'TODO'); -INSERT INTO skills (10, 1, '249', 'Nature', 'TODO'); -INSERT INTO skills (11, 1, '249', 'Occultism', 'TODO'); -INSERT INTO skills (12, 1, '250', 'Performance', 'TODO'); -INSERT INTO skills (13, 1, '250', 'Religion', 'TODO'); -INSERT INTO skills (14, 1, '250', 'Society', 'TODO'); -INSERT INTO skills (15, 1, '251', 'Stealth', 'TODO'); -INSERT INTO skills (16, 1, '252', 'Survival', 'TODO'); -INSERT INTO skills (17, 1, '253', 'Thievery', 'TODO'); +INSERT INTO skills VALUES(1, 1, '240', 'Acrobatics', 'TODO'); +INSERT INTO skills VALUES(2, 1, '241', 'Arcana', 'TODO'); +INSERT INTO skills VALUES(3, 1, '241', 'Athletics', 'TODO'); +INSERT INTO skills VALUES(4, 1, '243', 'Crafting', 'TODO'); +INSERT INTO skills VALUES(5, 1, '245', 'Deception', 'TODO'); +INSERT INTO skills VALUES(6, 1, '246', 'Diplomacy', 'TODO'); +INSERT INTO skills VALUES(7, 1, '247', 'Intimidation', 'TODO'); +INSERT INTO skills VALUES(8, 1, '247', 'Lore', 'TODO'); -- TODO special case +INSERT INTO skills VALUES(9, 1, '248', 'Medicine', 'TODO'); +INSERT INTO skills VALUES(10, 1, '249', 'Nature', 'TODO'); +INSERT INTO skills VALUES(11, 1, '249', 'Occultism', 'TODO'); +INSERT INTO skills VALUES(12, 1, '250', 'Performance', 'TODO'); +INSERT INTO skills VALUES(13, 1, '250', 'Religion', 'TODO'); +INSERT INTO skills VALUES(14, 1, '250', 'Society', 'TODO'); +INSERT INTO skills VALUES(15, 1, '251', 'Stealth', 'TODO'); +INSERT INTO skills VALUES(16, 1, '252', 'Survival', 'TODO'); +INSERT INTO skills VALUES(17, 1, '253', 'Thievery', 'TODO'); COMMIT; diff --git a/gendb.sh b/gendb.sh index dd0b307..2dafc0f 100755 --- a/gendb.sh +++ b/gendb.sh @@ -1,6 +1,8 @@ +#!/bin/sh -v rm pf2.db echo 'loading schema' sqlite3 pf2.db < schema/sources.sql +sqlite3 pf2.db < schema/skills.sql sqlite3 pf2.db < schema/damagetypes.sql sqlite3 pf2.db < schema/conditions.sql sqlite3 pf2.db < schema/backgrounds.sql @@ -20,6 +22,7 @@ sqlite3 pf2.db < schema/weapons.sql sqlite3 pf2.db < schema/ammunition.sql echo 'loading data' sqlite3 pf2.db < data/sources.sql +sqlite3 pf2.db < data/skills.sql sqlite3 pf2.db < data/damagetypes.sql sqlite3 pf2.db < data/conditions.sql sqlite3 pf2.db < data/backgrounds.sql From 80310f87894b1866f3180bbc9a5319f7509c5deb Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:07:11 -0500 Subject: [PATCH 06/16] fix bug in senses.sql data --- data/senses.sql | 2 ++ gendb.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/data/senses.sql b/data/senses.sql index fc655a0..905852f 100644 --- a/data/senses.sql +++ b/data/senses.sql @@ -8,6 +8,8 @@ PRAGMA foreign_keys = ON; -- database requires foreign key checking to be turned /* TODO smoke vision is from young-red dragon */ INSERT INTO senses (senses_id, + sources_id, + sources_pages, short_name, description) VALUES diff --git a/gendb.sh b/gendb.sh index 2dafc0f..ec5fa79 100755 --- a/gendb.sh +++ b/gendb.sh @@ -1,4 +1,4 @@ -#!/bin/sh -v +# UNCOMMENT FOR DEBUGGING #!/bin/sh -v rm pf2.db echo 'loading schema' sqlite3 pf2.db < schema/sources.sql From 6320ab685c826d104c8210c8779fdbf7f9e79234 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:20:49 -0500 Subject: [PATCH 07/16] updating monsters schema --- schema/monsters.sql | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/schema/monsters.sql b/schema/monsters.sql index 3cfc182..a4b3e16 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -2,11 +2,19 @@ PRAGMA foreign_keys = ON; +-- TODO needs data + +CREATE TABLE monstertypes( + monstertypes_id INTEGER PRIMARY KEY, + "name" TEXT NOT NULL UNIQUE +); + CREATE TABLE monsters ( monsters_id INTEGER PRIMARY KEY, is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req sources_id INTEGER, sources_pages TEXT, + monstertypes_id INTEGER, -- Humanoid etc.. "name" TEXT NOT NULL UNIQUE, "level" INTEGER, alignment_id INTEGER, -- i.e. NG, LE etc.. @@ -17,7 +25,7 @@ CREATE TABLE monsters ( reflex INTEGER, will INTEGER, hp INTEGER, - speed INTEGER, + land_speed INTEGER, -- will have separate many-to-many table for other movements str_mod INTEGER, dex_mod INTEGER, con_mod INTEGER, From 42f40be4c45e0694808fa0e4ccc5b834d6869dea Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:21:16 -0500 Subject: [PATCH 08/16] add movements and alignments --- data/movements.sql | 7 +++++++ schema/alignments.sql | 9 +++++++++ schema/movements.sql | 12 ++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 data/movements.sql create mode 100644 schema/alignments.sql create mode 100644 schema/movements.sql diff --git a/data/movements.sql b/data/movements.sql new file mode 100644 index 0000000..44494fd --- /dev/null +++ b/data/movements.sql @@ -0,0 +1,7 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +BEGIN TRANSACTION; +INSERT INTO movements VALUES(1, 'Fly'); +COMMIT; diff --git a/schema/alignments.sql b/schema/alignments.sql new file mode 100644 index 0000000..be4c6a9 --- /dev/null +++ b/schema/alignments.sql @@ -0,0 +1,9 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +CREATE TABLE alignments ( + alignments_id INTEGER PRIMARY KEY, + "name" TEXT UNIQUE NOT NULL, -- 'Lawful Good' + abbr TEXT UNIQUE NOT NULL -- 'LG' +); diff --git a/schema/movements.sql b/schema/movements.sql new file mode 100644 index 0000000..f652597 --- /dev/null +++ b/schema/movements.sql @@ -0,0 +1,12 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +-- TODO needs data + +CREATE TABLE movements ( + movements_id INTEGER PRIMARY KEY, + "name" TEXT UNIQUE NOT NULL +); + + From 382352f41202e39e351c20ffc1b448d3095775d1 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:24:30 -0500 Subject: [PATCH 09/16] data entered for alignments --- data/alignments.sql | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 data/alignments.sql diff --git a/data/alignments.sql b/data/alignments.sql new file mode 100644 index 0000000..0b8d560 --- /dev/null +++ b/data/alignments.sql @@ -0,0 +1,21 @@ +-- -*- mode:sql sql-product:sqlite -*- + +PRAGMA foreign_keys = ON; + +-- CREATE TABLE alignments ( +-- alignments_id INTEGER PRIMARY KEY, +-- "name" TEXT UNIQUE NOT NULL, -- 'Lawful Good' +-- abbr TEXT UNIQUE NOT NULL -- 'LG' +-- ); + +BEGIN TRANSACTION; +INSERT INTO alignments VALUES(1,'Lawful Good','LG'); +INSERT INTO alignments VALUES(2,'Neutral Good','NG'); +INSERT INTO alignments VALUES(3,'Chaotic Good','CG'); +INSERT INTO alignments VALUES(4,'Lawful Neutral','LN'); +INSERT INTO alignments VALUES(5,'Neutral','N'); +INSERT INTO alignments VALUES(6,'Chaotic Neutral','CN'); +INSERT INTO alignments VALUES(7,'Lawful Evil','LE'); +INSERT INTO alignments VALUES(8,'Neutral Evil','NE'); +INSERT INTO alignments VALUES(9,'Chaotic Evil','CE'); +COMMIT; From aa4ae5473ff5eca394671e4f73df6cbf4e37ddb0 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:25:35 -0500 Subject: [PATCH 10/16] remove comments --- data/alignments.sql | 6 ------ 1 file changed, 6 deletions(-) diff --git a/data/alignments.sql b/data/alignments.sql index 0b8d560..8725c26 100644 --- a/data/alignments.sql +++ b/data/alignments.sql @@ -2,12 +2,6 @@ PRAGMA foreign_keys = ON; --- CREATE TABLE alignments ( --- alignments_id INTEGER PRIMARY KEY, --- "name" TEXT UNIQUE NOT NULL, -- 'Lawful Good' --- abbr TEXT UNIQUE NOT NULL -- 'LG' --- ); - BEGIN TRANSACTION; INSERT INTO alignments VALUES(1,'Lawful Good','LG'); INSERT INTO alignments VALUES(2,'Neutral Good','NG'); From 453dd03232c4a610cd5b086091aad25a377fb278 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:32:06 -0500 Subject: [PATCH 11/16] add movements data --- data/movements.sql | 11 ++++++++++- gendb.sh | 2 ++ schema/monsters.sql | 10 ++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/data/movements.sql b/data/movements.sql index 44494fd..afe3377 100644 --- a/data/movements.sql +++ b/data/movements.sql @@ -2,6 +2,15 @@ PRAGMA foreign_keys = ON; +-- TODO any other movements? + BEGIN TRANSACTION; -INSERT INTO movements VALUES(1, 'Fly'); +INSERT INTO movements VALUES(0, 'Land'); -- This is already incorporated into + -- monsters and ancestries but is + -- included here so we have the type of + -- speed +INSERT INTO movements VALUES(1, 'Burrow'); +INSERT INTO movements VALUES(2, 'Climb'); +INSERT INTO movements VALUES(3, 'Fly'); +INSERT INTO movements VALUES(4, 'Swim'); COMMIT; diff --git a/gendb.sh b/gendb.sh index ec5fa79..edbc793 100755 --- a/gendb.sh +++ b/gendb.sh @@ -3,6 +3,7 @@ rm pf2.db echo 'loading schema' sqlite3 pf2.db < schema/sources.sql sqlite3 pf2.db < schema/skills.sql +sqlite3 pf2.db < schema/movements.sql sqlite3 pf2.db < schema/damagetypes.sql sqlite3 pf2.db < schema/conditions.sql sqlite3 pf2.db < schema/backgrounds.sql @@ -23,6 +24,7 @@ sqlite3 pf2.db < schema/ammunition.sql echo 'loading data' sqlite3 pf2.db < data/sources.sql sqlite3 pf2.db < data/skills.sql +sqlite3 pf2.db < data/movements.sql sqlite3 pf2.db < data/damagetypes.sql sqlite3 pf2.db < data/conditions.sql sqlite3 pf2.db < data/backgrounds.sql diff --git a/schema/monsters.sql b/schema/monsters.sql index a4b3e16..8162d71 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -98,6 +98,16 @@ CREATE TABLE monsters_traits ( FOREIGN KEY (traits_id) REFERENCES traits(trait_id) ); +CREATE TABLE monster_movements ( + id INTEGER PRIMARY KEY, + monsters_id INTEGER NOT NULL, + movements_id INTEGER NOT NULL, + movement_speed INTEGER NOT NULL, -- this is the actual monster speed + UNIQUE (monsters_id, movements_id), -- prevent duplicates + FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), + FOREIGN KEY (movements_id) REFERENCES movements(movements_id) +); + -- TODO does this need to be separate table for monsters only or share the main -- actions table CREATE TABLE monsteractions ( From 50277224ba9fbe18247269ebbbc50eb71e91a683 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:32:45 -0500 Subject: [PATCH 12/16] fix whitespace on movement.sql --- data/movements.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/movements.sql b/data/movements.sql index afe3377..c96a2dc 100644 --- a/data/movements.sql +++ b/data/movements.sql @@ -9,8 +9,8 @@ INSERT INTO movements VALUES(0, 'Land'); -- This is already incorporated into -- monsters and ancestries but is -- included here so we have the type of -- speed -INSERT INTO movements VALUES(1, 'Burrow'); -INSERT INTO movements VALUES(2, 'Climb'); -INSERT INTO movements VALUES(3, 'Fly'); -INSERT INTO movements VALUES(4, 'Swim'); +INSERT INTO movements VALUES(1, 'Burrow'); +INSERT INTO movements VALUES(2, 'Climb'); +INSERT INTO movements VALUES(3, 'Fly'); +INSERT INTO movements VALUES(4, 'Swim'); COMMIT; From 56ae0099c4134d9398cfde41ddabf77d519c5596 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:36:00 -0500 Subject: [PATCH 13/16] fix Neutral to True Neutral --- data/alignments.sql | 3 ++- gendb.sh | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data/alignments.sql b/data/alignments.sql index 8725c26..d93ffae 100644 --- a/data/alignments.sql +++ b/data/alignments.sql @@ -7,7 +7,8 @@ INSERT INTO alignments VALUES(1,'Lawful Good','LG'); INSERT INTO alignments VALUES(2,'Neutral Good','NG'); INSERT INTO alignments VALUES(3,'Chaotic Good','CG'); INSERT INTO alignments VALUES(4,'Lawful Neutral','LN'); -INSERT INTO alignments VALUES(5,'Neutral','N'); +INSERT INTO alignments VALUES(5,'True Neutral','N'); -- per CRB they use 'True + -- Neutral' and 'N' only INSERT INTO alignments VALUES(6,'Chaotic Neutral','CN'); INSERT INTO alignments VALUES(7,'Lawful Evil','LE'); INSERT INTO alignments VALUES(8,'Neutral Evil','NE'); diff --git a/gendb.sh b/gendb.sh index edbc793..ff485c0 100755 --- a/gendb.sh +++ b/gendb.sh @@ -2,6 +2,7 @@ rm pf2.db echo 'loading schema' sqlite3 pf2.db < schema/sources.sql +sqlite3 pf2.db < schema/alignments.sql sqlite3 pf2.db < schema/skills.sql sqlite3 pf2.db < schema/movements.sql sqlite3 pf2.db < schema/damagetypes.sql @@ -23,6 +24,7 @@ sqlite3 pf2.db < schema/weapons.sql sqlite3 pf2.db < schema/ammunition.sql echo 'loading data' sqlite3 pf2.db < data/sources.sql +sqlite3 pf2.db < data/alignments.sql sqlite3 pf2.db < data/skills.sql sqlite3 pf2.db < data/movements.sql sqlite3 pf2.db < data/damagetypes.sql From abafdf9a356a53755d7f172842b8b146bac3adf1 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:41:50 -0500 Subject: [PATCH 14/16] tweak monster types -> categories --- schema/monsters.sql | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/schema/monsters.sql b/schema/monsters.sql index 8162d71..f3e6d65 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -4,17 +4,22 @@ PRAGMA foreign_keys = ON; -- TODO needs data -CREATE TABLE monstertypes( - monstertypes_id INTEGER PRIMARY KEY, +CREATE TABLE monstercategories( + monstercategories_id INTEGER PRIMARY KEY, + is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req "name" TEXT NOT NULL UNIQUE ); +-- Rarity will be by trait +-- Monster 'type' will be by trait +-- Monster 'category/family' will be by FK to table + CREATE TABLE monsters ( monsters_id INTEGER PRIMARY KEY, is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req sources_id INTEGER, sources_pages TEXT, - monstertypes_id INTEGER, -- Humanoid etc.. + monstercategories_id INTEGER, -- Humanoid etc.. "name" TEXT NOT NULL UNIQUE, "level" INTEGER, alignment_id INTEGER, -- i.e. NG, LE etc.. @@ -39,6 +44,7 @@ CREATE TABLE monsters ( -- this is more for getting markdown formatting of the stat block -- in one nice column. FOREIGN KEY (alignments_id) REFERENCES alignments(alignments_id), + FOREIGN KEY (monstercategories_id) REFERENCES monstercategories(monstercategories_id), FOREIGN KEY (sizes_id) REFERENCES sizes(sizes_id), FOREIGN KEY (sources_id) REFERENCES sources(sources_id) ); From 53e3d61f01f1c97f8ecd2c6be0f51b2123dd8723 Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 19:48:36 -0500 Subject: [PATCH 15/16] change schema and comment on traits and categories --- schema/monsters.sql | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/schema/monsters.sql b/schema/monsters.sql index f3e6d65..b1c5e38 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -4,22 +4,26 @@ PRAGMA foreign_keys = ON; -- TODO needs data -CREATE TABLE monstercategories( - monstercategories_id INTEGER PRIMARY KEY, - is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req - "name" TEXT NOT NULL UNIQUE -); +-- CREATE TABLE monstercategories( +-- monstercategories_id INTEGER PRIMARY KEY, +-- is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req +-- "name" TEXT NOT NULL UNIQUE +-- ); -- Rarity will be by trait -- Monster 'type' will be by trait --- Monster 'category/family' will be by FK to table +-- Monster category is also by trait + +-- So the bestiary breaks down trait versus category or family, but then sticks +-- them all in the trait position on the stat block, so I think we just do it +-- all with traits. Thoughts? CREATE TABLE monsters ( monsters_id INTEGER PRIMARY KEY, is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req sources_id INTEGER, sources_pages TEXT, - monstercategories_id INTEGER, -- Humanoid etc.. + -- monstercategories_id INTEGER, -- Humanoid etc.. "name" TEXT NOT NULL UNIQUE, "level" INTEGER, alignment_id INTEGER, -- i.e. NG, LE etc.. @@ -44,7 +48,7 @@ CREATE TABLE monsters ( -- this is more for getting markdown formatting of the stat block -- in one nice column. FOREIGN KEY (alignments_id) REFERENCES alignments(alignments_id), - FOREIGN KEY (monstercategories_id) REFERENCES monstercategories(monstercategories_id), + -- FOREIGN KEY (monstercategories_id) REFERENCES monstercategories(monstercategories_id), FOREIGN KEY (sizes_id) REFERENCES sizes(sizes_id), FOREIGN KEY (sources_id) REFERENCES sources(sources_id) ); From 01094d4a162a61eff2bbfc3c442bf9a53f7073ee Mon Sep 17 00:00:00 2001 From: James R Miller Date: Sun, 18 Aug 2019 20:06:28 -0500 Subject: [PATCH 16/16] -mmove to new sources way in monsters --- schema/monsters.sql | 8 +++++--- schema/sources.sql | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/schema/monsters.sql b/schema/monsters.sql index b1c5e38..a4448e0 100644 --- a/schema/monsters.sql +++ b/schema/monsters.sql @@ -21,8 +21,9 @@ PRAGMA foreign_keys = ON; CREATE TABLE monsters ( monsters_id INTEGER PRIMARY KEY, is_comty_use BOOLEAN NOT NULL, -- false = no community use policy req - sources_id INTEGER, - sources_pages TEXT, + sources_id INTEGER, -- old style source entries + sources_pages TEXT, -- old style source entries + sourceentries_id INTEGER, -- new style source entries -- monstercategories_id INTEGER, -- Humanoid etc.. "name" TEXT NOT NULL UNIQUE, "level" INTEGER, @@ -50,7 +51,8 @@ CREATE TABLE monsters ( FOREIGN KEY (alignments_id) REFERENCES alignments(alignments_id), -- FOREIGN KEY (monstercategories_id) REFERENCES monstercategories(monstercategories_id), FOREIGN KEY (sizes_id) REFERENCES sizes(sizes_id), - FOREIGN KEY (sources_id) REFERENCES sources(sources_id) + FOREIGN KEY (sources_id) REFERENCES sources(sources_id), + FOREIGN KEY (sourceentries_id) REFERENCES sourceentries(sourceentries_id) ); CREATE TABLE monsterflavortexttypes ( diff --git a/schema/sources.sql b/schema/sources.sql index 41bcd57..b42aebe 100644 --- a/schema/sources.sql +++ b/schema/sources.sql @@ -29,7 +29,7 @@ CREATE TABLE monsters_sourceentries ( monsters_id INTEGER NOT NULL, sourceentries_id INTEGER NOT NULL, FOREIGN KEY (monsters_id) REFERENCES monsters(monsters_id), - FOREIGN KEY (sourceentries_id_id) REFERENCES sourceentries_id(sourceentries_id_id) + FOREIGN KEY (sourceentries_id) REFERENCES sourceentries(sourceentries_id) ); -- TODO add in new many-to-many tables for the various things we want to have sources be listed this way