pathfinder-2-sqlite-MIRROR/README.md

81 lines
2.5 KiB
Markdown
Raw Normal View History

2019-08-02 18:30:41 -04:00
# Pathfinder 2 Sqlite
2019-08-02 18:56:21 -04:00
This will be a repository for the code necessary to generate a sqlite database
containing the open gaming content for the Pathfinder 2 table-top
role-playing-game system that is available under the Open Gaming License. Pull
requests welcomed!
## Why sqlite?
It's an open, permissively licensed, and portable single-file database that does
not require setting up a client/server model. It's also likely that the database
will fit into memory easily so performance issues aren't likely to be a problem.
Also, most use cases of this data will likely be read only, so the sqlite
2019-08-06 12:21:14 -04:00
limitations on concurrent writes won't be an issue either. Finally, it's
permissively licensed.
2019-08-02 18:56:21 -04:00
## Roadmap
2019-11-12 01:10:00 -05:00
1. Get data in YAML format (spells are in JSON for the time being; but will
get converted over to YAML in the future).
2. Design schema;
3. Write script to generate sqlite database from YAML data (see
`data/yaml/gendb.py` for work in progress);
4. Metric boatloads of proofreading
5. Drinks for all when finished!
# Conventions in the Code
2019-08-07 20:16:53 -04:00
## Text Encoding
2019-08-07 20:21:31 -04:00
2019-08-07 20:16:53 -04:00
The goal is for all of our stored text in the database to be unicode,
preferably `UTF-8`.
2019-08-07 20:21:31 -04:00
Also, many of the text fields will be in Github-Flavored Markdown.
Text may use the following escape codes:
1. `\n` for Newline
2. `\n\n` for a new paragraph
3. `\t` for Tab
4. `\\` for Backslash
2019-08-07 20:21:31 -04:00
The action symbols can be represented by the following characters:
2019-08-07 20:21:31 -04:00
2019-11-14 22:58:29 -05:00
| Meaning | Character |
|----------|----|
2019-11-14 23:01:42 -05:00
| 1 action | `\|1\|` |
| 2 actions | `\|2\|` |
| 3 actions | `\|3\|` |
| Reaction | `\|R\|` |
| Free action | `\|F\|` |
| One Minute | `\|1m\|` |
| Ten Minutes | `\|10m\|` |
| One Hour | `\|1h\|` |
2019-08-07 20:21:31 -04:00
## Text Formatting
2019-08-14 22:55:16 -04:00
Text formatting will be according to github-flavored markdown.
2019-08-14 23:55:38 -04:00
## Identical names
2019-08-14 22:55:16 -04:00
2019-08-22 22:05:19 -04:00
In the case of identical names ex. Sudden Charge for Fighter vs Barbarian we will use an identifier in parentheses ex. Sudden Charge (Fighter) vs Sudden Charge (Barbarian) or Lock (Simple) vs Lock (Average).
## Ability Scores in Integer Representation
| Ability Type | Value |
|--------------|-------|
| None | 0 |
| STR | 1 |
| DEX | 2 |
| CON | 4 |
| INT | 8 |
| WIS | 16 |
| CHA | 32 |
2019-08-02 22:32:19 -04:00
| Free 1 | 64 |
| Free 2 | 128 |
If I wanted to say STR and DEX, I would use a `3`. If I wanted STR, WIS, and
2019-08-06 12:20:11 -04:00
CHA, that would be 1 + 16 + 32 = `49`. This is to give a program-focused data
return in addition to the textual representation.