Files
roll20-character-sheets-tester/ADnD_2E_Revised/pug/weaponsDatalists.pug
T

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)