diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 0a6a768f8e..239dea8c2f 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -68,7 +68,7 @@
| Roll20 Name |
| AC Back: | * No Dex bonus or Shield AC | - +||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AC Head: | @@ -273,7 +273,7 @@ Mount Swimming Flying - +|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @@ -794,7 +794,7 @@ |
| Damage S/M | Damage L | Knockdown | - +|||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -10588,7 +10588,7 @@ | |||||||||||||||||||||||||||
| 1d8 | 1d8 | - | Arms & Equipment | +Arms and Equipment Guide | Melee | ||||||||||||||||||||||
| 1d3 | 1d2 | - | Arms & Equipment | +Arms and Equipment Guide | Range | ||||||||||||||||||||||
| 1 | 1 | - | Arms & Equipment | +Arms and Equipment Guide | Range | ||||||||||||||||||||||
| Light crossbow, Light quarrel | - | M | -S | +M | +S | P | 7 | @@ -5944,26 +5944,8 @@ | Light crossbow, Light quarrel | - | M | -S | -P | -7 | -- | 1 | -60/120/180 | -- | 1d4 | -1d4 | -- | Arms and Equipment Guide | -Range | -||||
| Light crossbow, Light quarrel | -- | - | M | -S | +M | +S | P | 7 | @@ -5980,8 +5962,26 @@ | Light crossbow, Light quarrel | - | M | -S | +S | +M | +P | +7 | ++ | 1 | +60/120/180 | ++ | 1d4 | +1d4 | ++ | Arms and Equipment Guide | +Range | +|
| Light crossbow, Light quarrel | ++ | + | M | +S | P | 7 | diff --git a/ADnD_2E_Revised/pug/weaponsDatalists.pug b/ADnD_2E_Revised/pug/weaponsDatalists.pug index 7b1f2512b9..6ad37959d4 100644 --- a/ADnD_2E_Revised/pug/weaponsDatalists.pug +++ b/ADnD_2E_Revised/pug/weaponsDatalists.pug @@ -1,55 +1,75 @@ +- const booksPriority = ['PHB','The Complete Fighter\'s Handbook','The Complete Priest\'s Handbook','Arms and Equipment Guide','The Complete Book of Dwarves','The Complete Book of Elves','The Complete Book of Humanoids','The Complete Ranger\'s Handbook','The Complete Barbarian\'s Handbook','The Complete Ninja\'s Handbook']; + +- function bookShorthand(books) {return books.map(b => b.replace('The Complete', '').replace('Book of', '').replace('Handbook', '').replace('Arms and Equipment Guide', 'A\&E').replace('Player\'s Option: Combat & Tactics', 'PO: C&T').replace('\'','').trim()).join(', ')} + +- let processedWeapons = new Set() datalist(id='melee-weapons') - each weapon in data - if (!weapon.category.includes('Melee')) - - continue; - - let group = weapon.group || '' - if (weapon.book !== 'PHB') - - group += (group ? ', ' : '') + weapon.book - option(value=weapon.name)= group - -datalist(id='ranged-weapons') - each weapon in data - if (!weapon.category.includes('Range')) - - continue; - - let group = weapon.group || '' - if (weapon.book !== 'PHB') - - group += (group ? ', ' : '') + weapon.book - option(value=weapon.name)= group - -datalist(id='all-weapons') - each weapon in data - - let group = weapon.group || '' - if (weapon.book !== 'PHB') - - group += (group ? ', ' : '') + weapon.book - option(value=weapon.name)= group - -- let usedWeapons = new Set(); -datalist(id='weapon-proficiencies') - - let book = 'PHB' - - let weaponProfsAdded = false - each weapon in data - - weaponProfsAdded = false - if (weapon.book !== book) - each prof, profName in proficiencies - if prof.book !== book + 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 - - category = prof.category || '' - if (prof.book !== 'PHB') - - category += (category ? ', ' : '') + prof.book - option(value=profName)= category - - book = weapon.book - - weaponProfsAdded = true - if (weapon.noProf) - - continue - - let weaponName = weapon.name.split(/\s\(|,/)[0] - if (usedWeapons.has(weaponName)) - - continue - - usedWeapons.add(weaponName); - - let group = weapon.group || '' - if (weapon.book !== 'PHB') - - group += (group ? ', ' : '') + weapon.book - option(value=weaponName)= group - if (!weaponProfsAdded) + - books = 'Books: ' + bookShorthand(weaponList.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') + 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.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='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 + - books = 'Books: ' + bookShorthand(weaponList.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='weapon-proficiencies') + - let weaponProfsAdded = false + 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)) + - continue + - processedWeapons.add(weaponName); + 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 | ||||||||||||||||||||