first steps of melee weapons working

merge-requests/34/merge
James Miller 2019-08-15 22:18:22 -05:00
parent 9d97d42bbe
commit 0f60606c73
2 changed files with 78 additions and 0 deletions

View File

@ -16,6 +16,7 @@ sqlite3 pf2.db < schema/senses.sql
sqlite3 pf2.db < schema/ancestries.sql
sqlite3 pf2.db < schema/armor.sql
sqlite3 pf2.db < schema/gear.sql
sqlite3 pf2.db < schema/weapons.sql
echo 'loading data'
sqlite3 pf2.db < data/sources.sql
sqlite3 pf2.db < data/damagetypes.sql
@ -34,10 +35,15 @@ sqlite3 pf2.db < data/ancestries.sql
sqlite3 pf2.db < data/armor.sql
sqlite3 pf2.db < data/gear.sql
sqlite3 pf2.db < data/heritages.sql
sqlite3 pf2.db < data/weapons.sql
# Comment out the following three lines if you don't want to generate the spell data.
cd data/third_party_json
python3 spells.py
cd ../..
# Comment out the following when we don't want to generate weapons
cd src/weapons
python3 weapons.py
cd ../..
# TODO Eventually we will stop relying on the spells.py script and I will have
# the actual .sql files for the spell data; I am waiting to see if the

View File

@ -0,0 +1,72 @@
import csv
import sqlite3
def main():
# load json into python
print("loading melee.csv")
## read file into memory
rows = []
with open('melee.csv') as f:
reader = csv.DictReader(f)
print(reader)
for row in reader:
rows.append(row)
## Get database connection
conn = sqlite3.connect('../../pf2.db')
## Set pragmas to make it go FAST
pragma1 = "PRAGMA synchronous=OFF;"
pragma2 = "PRAGMA count_changes=OFF;"
pragma3 = "PRAGMA journal_mode=MEMORY;"
pragma4 = "PRAGMA temp_store=MEMORY;"
pragma5 = "PRAGMA foreign_keys=ON;"
conn.execute(pragma1)
conn.execute(pragma2)
conn.execute(pragma3)
conn.execute(pragma4)
conn.execute(pragma5)
# load in ids for traits from traits table so we only call this once
# instead of every spell
stmt = "SELECT trait_id, short_name FROM traits"
c = conn.cursor()
c.execute(stmt)
traits = c.fetchall()
# print("Printing traits")
# print(traits)
for row in rows:
insert_melee_weapon(row, conn, traits)
def insert_melee_weapon(row, conn, traits):
print("Inserting: {}".format(row['name']))
# insert everything that's not a lookup
stmt = """
INSERT INTO weapons (
weapons_id,
sources_id,
sources_pages,
price_gp,
dice_size,
bulk,
hands,
name,
descr)
VALUES (?,?,?,?,?,?,?,?,?);
"""
r = row
inp = (r['weapon_m_id'],r['sources_id'],r['sources_pg'],r['price_gp'],
r['dice_size'],r['bulk'],r['hands'],r['name'],r['description'])
try:
conn.execute(stmt, inp)
except:
print("Error inserting basic row information")
else:
conn.commit()
# print("Successfully inserted row")
if __name__ == "__main__":
main()