Merge branch 'weapons'

bradl/monsters-adult-gold-dragon
James Miller 2020-04-23 17:25:20 -05:00
commit df5c773a3c
3 changed files with 1857 additions and 0 deletions

View File

@ -0,0 +1,143 @@
import sqlite3
import yaml
import pprint
def main():
pp = pprint.PrettyPrinter(indent=4, width=160)
conn = sqlite3.connect('../../pf2.db')
conn.row_factory = sqlite3.Row
# DO WEAPONS
q = """
SELECT
price_gp,
dice_size,
bulk,
hands,
range,
reload,
weapons.name,
weapons.descr,
weapons.sources_id,
weapons.sources_pages,
weaponcategories.name AS weaponcategory,
weapongroups.name AS weapongroup,
damagetypes.name AS damagetype
FROM weapons
INNER JOIN
weaponcategories ON weapons.weaponcategories_id = weaponcategories.weaponcategories_id
INNER JOIN
weapongroups ON weapons.weapongroups_id = weapongroups.weapongroups_id
INNER JOIN
damagetypes ON weapons.damagetypes_id = damagetypes.damagetypes_id
;
"""
c = conn.cursor()
c.execute(q)
data = [dict(row) for row in c.fetchall()]
for i in data:
# handle empty bulk entries to match the abbr field in bulks.yaml
if i['bulk'] == '':
i['bulk'] = '-'
# convert gp prices to cp prices to avoid float issues
if i['price_gp'] == '':
i['price_gp'] = '0'
i['price_cp'] = int(float(i['price_gp']) * 100)
del i['price_gp']
i['source'] = [
{
'abbr': 'CRB',
'page_start': int(i['sources_pages']),
'page_stop': int(i['sources_pages'])
}
]
del i['sources_id']
del i['sources_pages']
# Get traits
qq = """
SELECT traits.short_name
FROM traits
INNER JOIN
weapons_traits ON traits.trait_id = weapons_traits.trait_id
INNER JOIN
weapons ON weapons.weapons_id = weapons_traits.weapons_id
WHERE weapons.weapons_id = (
SELECT weapons.weapons_id
WHERE weapons.name = ?
);
"""
cc = conn.cursor()
cc.execute(qq, (i['name'],))
res = cc.fetchall()
print("\n\nWeapon: {}".format(i['name']))
tlist = []
for j in res:
x = tuple(j)[0]
tlist.append(x)
if len(tlist) > 0:
i['traits'] = tlist
else:
i['traits'] = None
# pp.pprint(data)
fdata = {'weapons': data}
final = yaml.safe_dump(fdata, allow_unicode=True)
with open('tmp-weapons.yaml', 'w') as f:
f.write(final)
if __name__ == '__main__':
main()
# def done():
# DO WEAPON GROUPS
# q = """
# SELECT
# sources_pages,
# name,
# descr
# FROM weapongroups
# """
# c = conn.cursor()
# c.execute(q)
# data = [dict(row) for row in c.fetchall()]
# pp.pprint(data)
# # "source": [
# # {
# # 'abbr': 'CRB',
# # 'page_start': int(i['sources_pages']),
# # 'page_stop': int(i['sources_pages'])
# # },
# wgdata = []
# for i in data:
# res = {
# 'name': i['name'],
# 'descr': i['descr'],
# 'source': [
# {
# 'abbr': 'CRB',
# 'page_start': int(i['sources_pages']),
# 'page_stop': int(i['sources_pages'])
# }
# ]
# }
# wgdata.append(res)
# pp.pprint(wgdata)
# finalwgdata = {'weapongroups': wgdata}
# pp.pprint(finalwgdata)
# final = yaml.safe_dump(finalwgdata, allow_unicode=True)
# with open('tmp-weapongroups.yaml', 'w') as f:
# f.write(final)

View File

@ -0,0 +1,91 @@
weapongroups:
- descr: TODO descr from pg 283-84
name: Axe
source:
- abbr: CRB
page_start: 283
page_stop: 283
- descr: TODO descr from pg 283-84
name: Bomb
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Bow
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Brawling
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Club
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Dart
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Flail
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Hammer
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Knife
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Pick
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Polearm
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Shield
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Sling
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Spear
source:
- abbr: CRB
page_start: 284
page_stop: 284
- descr: TODO descr from pg 283-84
name: Sword
source:
- abbr: CRB
page_start: 284
page_stop: 284

File diff suppressed because it is too large Load Diff