134 lines
5.5 KiB
Plaintext
134 lines
5.5 KiB
Plaintext
- let processedWeapons = new Set()
|
|
datalist(id='melee-weapons')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue;
|
|
if (!weapon.category.includes('Melee'))
|
|
- continue;
|
|
if processedWeapons.has(weapon.name.toLowerCase())
|
|
- continue
|
|
- processedWeapons.add(weapon.name.toLowerCase())
|
|
- books = 'Books: ' + bookShorthand(weaponList.filter(w => w['category'].includes('Melee')).flatMap(w => w.book))
|
|
- let group = weapon.group || ''
|
|
- group += (group ? ', ' : '') + books
|
|
option(value=weapon.name)= group
|
|
|
|
- processedWeapons.clear()
|
|
datalist(id='melee-weapons-ff')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue;
|
|
if (!weapon.category.includes('Melee'))
|
|
- continue;
|
|
if processedWeapons.has(weapon.name.toLowerCase())
|
|
- continue
|
|
- processedWeapons.add(weapon.name.toLowerCase())
|
|
option(value=weapon.name)
|
|
|
|
|
|
- processedWeapons.clear()
|
|
datalist(id='ranged-weapons')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue;
|
|
if (!weapon.category.includes('Range'))
|
|
- continue;
|
|
if processedWeapons.has(weapon.name.toLowerCase())
|
|
- continue
|
|
- books = 'Books: ' + bookShorthand(weaponList.filter(w => w['category'].includes('Range')).flatMap(w => w.book))
|
|
- processedWeapons.add(weapon.name.toLowerCase())
|
|
- let group = weapon.group || ''
|
|
- group += (group ? ', ' : '') + books
|
|
option(value=weapon.name)= group
|
|
|
|
- processedWeapons.clear()
|
|
datalist(id='ranged-weapons-ff')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue;
|
|
if (!weapon.category.includes('Range'))
|
|
- continue;
|
|
if processedWeapons.has(weapon.name.toLowerCase())
|
|
- continue
|
|
- processedWeapons.add(weapon.name.toLowerCase())
|
|
option(value=weapon.name)
|
|
|
|
- processedWeapons.clear()
|
|
datalist(id='all-weapons')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue;
|
|
if processedWeapons.has(weapon.name.toLowerCase())
|
|
- continue
|
|
- processedWeapons.add(weapon.name.toLowerCase())
|
|
- books = 'Books: ' + bookShorthand(weaponList.flatMap(w => w.book))
|
|
- let group = weapon.group || ''
|
|
- group += (group ? ', ' : '') + books
|
|
option(value=weapon.name)= group
|
|
|
|
- processedWeapons.clear()
|
|
datalist(id='all-weapons-ff')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue;
|
|
if processedWeapons.has(weapon.name.toLowerCase())
|
|
- continue
|
|
- processedWeapons.add(weapon.name.toLowerCase())
|
|
option(value=weapon.name)
|
|
|
|
- processedWeapons.clear();
|
|
datalist(id='weapon-proficiencies')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
- let group = weaponList.map(w => w.group).filter(Boolean).filter((v, i, a) => a.indexOf(v) === i).join(', ')
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue
|
|
if (weapon.noProf)
|
|
- continue
|
|
- let weaponName = weapon.name.split(/\s\(|,/)[0]
|
|
if (processedWeapons.has(weaponName.toLowerCase()))
|
|
- continue
|
|
- processedWeapons.add(weaponName.toLowerCase());
|
|
if (!weapon.book.includes('PHB'))
|
|
- books = 'Books: ' + bookShorthand(weaponList.flatMap(w => w.book))
|
|
- group += (group ? ', ' : '') + books
|
|
option(value=weaponName)= group
|
|
each prof, profName in proficiencies
|
|
if prof.book !== book
|
|
- continue
|
|
- category = prof.category || ''
|
|
if (prof.book !== 'PHB')
|
|
- category += (category ? ', ' : '') + prof.book
|
|
option(value=profName)= category
|
|
|
|
- processedWeapons.clear();
|
|
datalist(id='weapon-proficiencies-ff')
|
|
each book in booksPriority
|
|
each weaponList in data
|
|
each weapon in weaponList
|
|
if (!weapon.book.includes(book))
|
|
- continue
|
|
if (weapon.noProf)
|
|
- continue
|
|
- let weaponName = weapon.name.split(/\s\(|,/)[0]
|
|
if (processedWeapons.has(weaponName.toLowerCase()))
|
|
- continue
|
|
- processedWeapons.add(weaponName.toLowerCase());
|
|
option(value=weaponName)
|
|
each prof, profName in proficiencies
|
|
if prof.book !== book
|
|
- continue
|
|
option(value=profName) |