From 00a7bd817d598ec1a521d1dd5c3b75b58263ebae Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Sat, 11 Jun 2022 21:37:46 +0200 Subject: [PATCH] Added overview of proficiencies --- ADnD_2E_Revised/build/buildPug.js | 13 +- ADnD_2E_Revised/html/changelog.html | 4 +- .../javascript/nonweaponProficiencies.js | 1520 ++++++---- .../nonweapon-proficiencies-overview.html | 2652 +++++++++++++++++ ...ol-overview.html => schools-overview.html} | 6 +- ...re-overview.html => spheres-overview.html} | 6 +- ADnD_2E_Revised/misc/weapons-overview.html | 32 +- .../pug/nonweaponProficienciesOverview.pug | 48 + ...schoolOverview.pug => schoolsOverview.pug} | 6 +- ...sphereOverview.pug => spheresOverview.pug} | 6 +- ADnD_2E_Revised/pug/weaponsOverview.pug | 32 +- 11 files changed, 3640 insertions(+), 685 deletions(-) create mode 100644 ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html rename ADnD_2E_Revised/misc/{school-overview.html => schools-overview.html} (99%) rename ADnD_2E_Revised/misc/{sphere-overview.html => spheres-overview.html} (99%) create mode 100644 ADnD_2E_Revised/pug/nonweaponProficienciesOverview.pug rename ADnD_2E_Revised/pug/{schoolOverview.pug => schoolsOverview.pug} (94%) rename ADnD_2E_Revised/pug/{sphereOverview.pug => spheresOverview.pug} (96%) diff --git a/ADnD_2E_Revised/build/buildPug.js b/ADnD_2E_Revised/build/buildPug.js index ad02ccb272..64c7983de6 100644 --- a/ADnD_2E_Revised/build/buildPug.js +++ b/ADnD_2E_Revised/build/buildPug.js @@ -17,12 +17,12 @@ spellsJs.forEach(jsFile => { html += pug.renderFile(path.join(pugFolder, 'spellsDatalists.pug'), {pretty: true, data: spells}); if (jsFile === 'wizardSpells.js') { - let schoolTable = pug.renderFile(path.join(pugFolder, 'schoolOverview.pug'), {pretty: true, data: spells}); - fs.writeFileSync(path.join(miscFolder, 'school-overview.html'), schoolTable); + let schoolTable = pug.renderFile(path.join(pugFolder, 'schoolsOverview.pug'), {pretty: true, data: spells}); + fs.writeFileSync(path.join(miscFolder, 'schools-overview.html'), schoolTable); } if (jsFile === 'priestSpells.js') { - let sphereTable = pug.renderFile(path.join(pugFolder, 'sphereOverview.pug'), {pretty: true, data: spells}); - fs.writeFileSync(path.join(miscFolder, 'sphere-overview.html'), sphereTable); + let sphereTable = pug.renderFile(path.join(pugFolder, 'spheresOverview.pug'), {pretty: true, data: spells}); + fs.writeFileSync(path.join(miscFolder, 'spheres-overview.html'), sphereTable); } }); @@ -32,11 +32,14 @@ const weapons = require(path.join(jsFolder, 'weapons.js')); const weaponsProficiencies = require(path.join(jsFolder, 'weaponProficiencies.js')); html += pug.renderFile(path.join(pugFolder, 'weaponsDatalists.pug'), {pretty: true, data: weapons, proficiencies: weaponsProficiencies}); +const nonWeaponProfs = require(path.join(jsFolder, 'nonweaponProficiencies.js')); +const nonWeaponProfTable = pug.renderFile(path.join(pugFolder, 'nonweaponProficienciesOverview.pug'), {pretty: true, data: nonWeaponProfs}); +fs.writeFileSync(path.join(miscFolder, 'nonweapon-proficiencies-overview.html'), nonWeaponProfTable); + let weaponTable = pug.renderFile(path.join(pugFolder, 'weaponsOverview.pug'), {pretty: true, data: weapons}); fs.writeFileSync(path.join(miscFolder, 'weapons-overview.html'), weaponTable); const simpleDatalists = [ - ['nonweaponProficiencies.js','nonweapon-proficiencies'], ['players-option-talents.js','talents'], ['players-option-traits.js','traits'], ['players-option-disadvantages.js','disadvantages'] diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index d11a6608e6..61bc2df765 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -14,12 +14,12 @@
  • Added Lorloveim's Creeping Shadow from Tome of Magic
  • Added Sheet Setting to enable the rearranged Priest Spheres from the Player's Option: Spells & Magic book
  • Added Sheet Setting to enable the rearranged Wizard Schools from the Player's Option: Spells & Magic book
  • Reworked weapons autofill to support different version of weapons, to accommodate differences between the PO: Combat & Tactics and other books. diff --git a/ADnD_2E_Revised/javascript/nonweaponProficiencies.js b/ADnD_2E_Revised/javascript/nonweaponProficiencies.js index 03817f59fc..95e26950eb 100644 --- a/ADnD_2E_Revised/javascript/nonweaponProficiencies.js +++ b/ADnD_2E_Revised/javascript/nonweaponProficiencies.js @@ -1,1532 +1,1784 @@ const nonweaponProficiencies = {}; //#region Player's Handbook -nonweaponProficiencies['Agriculture'] = { +nonweaponProficiencies['Agriculture'] = []; +nonweaponProficiencies['Agriculture'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Animal Handling'] = { +nonweaponProficiencies['Animal Handling'] = []; +nonweaponProficiencies['Animal Handling'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Animal Training'] = { +nonweaponProficiencies['Animal Training'] = []; +nonweaponProficiencies['Animal Training'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Artistic Ability'] = { +nonweaponProficiencies['Artistic Ability'] = []; +nonweaponProficiencies['Artistic Ability'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Blacksmithing'] = { +nonweaponProficiencies['Blacksmithing'] = []; +nonweaponProficiencies['Blacksmithing'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Brewing'] = { +nonweaponProficiencies['Brewing'] = []; +nonweaponProficiencies['Brewing'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Carpentry'] = { +nonweaponProficiencies['Carpentry'] = []; +nonweaponProficiencies['Carpentry'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Cobbling'] = { +nonweaponProficiencies['Cobbling'] = []; +nonweaponProficiencies['Cobbling'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Cooking'] = { +nonweaponProficiencies['Cooking'] = []; +nonweaponProficiencies['Cooking'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Dancing'] = { +nonweaponProficiencies['Dancing'] = []; +nonweaponProficiencies['Dancing'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Direction Sense'] = { +nonweaponProficiencies['Direction Sense'] = []; +nonweaponProficiencies['Direction Sense'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Etiquette'] = { +nonweaponProficiencies['Etiquette'] = []; +nonweaponProficiencies['Etiquette'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Fire-building'] = { +nonweaponProficiencies['Fire-building'] = []; +nonweaponProficiencies['Fire-building'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Fishing'] = { +nonweaponProficiencies['Fishing'] = []; +nonweaponProficiencies['Fishing'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Heraldry'] = { +nonweaponProficiencies['Heraldry'] = []; +nonweaponProficiencies['Heraldry'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Languages, Modern'] = { +nonweaponProficiencies['Languages, Modern'] = []; +nonweaponProficiencies['Languages, Modern'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Leatherworking'] = { +nonweaponProficiencies['Leatherworking'] = []; +nonweaponProficiencies['Leatherworking'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Mining'] = { +nonweaponProficiencies['Mining'] = []; +nonweaponProficiencies['Mining'].push({ 'slots': 2, 'abilityScore': '@{Wisdom}', 'modifier': -3, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Pottery'] = { +nonweaponProficiencies['Pottery'] = []; +nonweaponProficiencies['Pottery'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Riding, Airborne'] = { +nonweaponProficiencies['Riding, Airborne'] = []; +nonweaponProficiencies['Riding, Airborne'].push({ 'slots': 2, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Riding, Land-based'] = { +nonweaponProficiencies['Riding, Land-based'] = []; +nonweaponProficiencies['Riding, Land-based'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +3, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Rope Use'] = { +nonweaponProficiencies['Rope Use'] = []; +nonweaponProficiencies['Rope Use'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Seamanship'] = { +nonweaponProficiencies['Seamanship'] = []; +nonweaponProficiencies['Seamanship'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Seamstress/Tailor'] = { +nonweaponProficiencies['Seamstress/Tailor'] = []; +nonweaponProficiencies['Seamstress/Tailor'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Singing'] = { +nonweaponProficiencies['Singing'] = []; +nonweaponProficiencies['Singing'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Stonemasonry'] = { +nonweaponProficiencies['Stonemasonry'] = []; +nonweaponProficiencies['Stonemasonry'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': -2, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Swimming'] = { +nonweaponProficiencies['Swimming'] = []; +nonweaponProficiencies['Swimming'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': 0, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Weather Sense'] = { +nonweaponProficiencies['Weather Sense'] = []; +nonweaponProficiencies['Weather Sense'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': '', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); -nonweaponProficiencies['Weaving'] = { +nonweaponProficiencies['Weaving'] = []; +nonweaponProficiencies['Weaving'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': '', - 'book': 'PHB' -}; -nonweaponProficiencies['Ancient History'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Ancient History'] = []; +nonweaponProficiencies['Ancient History'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Priest/Rogue/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Animal Lore'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Animal Lore'] = []; +nonweaponProficiencies['Animal Lore'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Appraising'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Appraising'] = []; +nonweaponProficiencies['Appraising'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Armorer'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Armorer'] = []; +nonweaponProficiencies['Armorer'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Astrology'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Astrology'] = []; +nonweaponProficiencies['Astrology'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Blind-fighting'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Blind-fighting'] = []; +nonweaponProficiencies['Blind-fighting'].push({ 'slots': 2, 'abilityScore': '@{NA}', 'modifier': 'NA', 'classes': 'Rogue/Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Bowyer/Fletcher'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Bowyer/Fletcher'] = []; +nonweaponProficiencies['Bowyer/Fletcher'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Charioteering'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Charioteering'] = []; +nonweaponProficiencies['Charioteering'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +2, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Disguise'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Disguise'] = []; +nonweaponProficiencies['Disguise'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': -1, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Endurance'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Endurance'] = []; +nonweaponProficiencies['Endurance'].push({ 'slots': 2, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Engineering'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Engineering'] = []; +nonweaponProficiencies['Engineering'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -3, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Forgery'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Forgery'] = []; +nonweaponProficiencies['Forgery'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Gaming'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Gaming'] = []; +nonweaponProficiencies['Gaming'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': 'Rogue/Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Gem-Cutting'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Gem-Cutting'] = []; +nonweaponProficiencies['Gem-Cutting'].push({ 'slots': 2, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': 'Rogue/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Healing'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Healing'] = []; +nonweaponProficiencies['Healing'].push({ 'slots': 2, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': 'Priest', - 'book': 'PHB' -}; -nonweaponProficiencies['Herbalism'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Herbalism'] = []; +nonweaponProficiencies['Herbalism'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Hunting'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Hunting'] = []; +nonweaponProficiencies['Hunting'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Juggling'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Juggling'] = []; +nonweaponProficiencies['Juggling'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Jumping'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Jumping'] = []; +nonweaponProficiencies['Jumping'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Languages, Ancient'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Languages, Ancient'] = []; +nonweaponProficiencies['Languages, Ancient'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Local History'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Local History'] = []; +nonweaponProficiencies['Local History'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': 'Priest/Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Mountaineering'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Mountaineering'] = []; +nonweaponProficiencies['Mountaineering'].push({ 'slots': 1, 'abilityScore': 'NA', 'modifier': 'NA', 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Musical Instrument'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Musical Instrument'] = []; +nonweaponProficiencies['Musical Instrument'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Priest/Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Navigation'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Navigation'] = []; +nonweaponProficiencies['Navigation'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Priest/Warrior/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Reading Lips'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Reading Lips'] = []; +nonweaponProficiencies['Reading Lips'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Reading/Writing'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Reading/Writing'] = []; +nonweaponProficiencies['Reading/Writing'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +1, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Religion'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Religion'] = []; +nonweaponProficiencies['Religion'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Running'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Running'] = []; +nonweaponProficiencies['Running'].push({ 'slots': 1, 'abilityScore': '@{Constitution}', 'modifier': -6, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Set-Snares'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Set Snares'] = []; +nonweaponProficiencies['Set Snares'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Rogue/Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Spellcraft'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Spellcraft'] = []; +nonweaponProficiencies['Spellcraft'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Priest/Wizard', - 'book': 'PHB' -}; -nonweaponProficiencies['Survival'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Survival'] = []; +nonweaponProficiencies['Survival'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Tightrope Walking'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Tightrope Walking'] = []; +nonweaponProficiencies['Tightrope Walking'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Tracking'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Tracking'] = []; +nonweaponProficiencies['Tracking'].push({ 'slots': 2, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'PHB' -}; -nonweaponProficiencies['Tumbling'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Tumbling'] = []; +nonweaponProficiencies['Tumbling'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Ventriloquism'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Ventriloquism'] = []; +nonweaponProficiencies['Ventriloquism'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Rogue', - 'book': 'PHB' -}; -nonweaponProficiencies['Weaponsmithing'] = { + 'book': ['PHB'] +}); +nonweaponProficiencies['Weaponsmithing'] = []; +nonweaponProficiencies['Weaponsmithing'].push({ 'slots': 3, 'abilityScore': '@{Intelligence}', 'modifier': -3, 'classes': 'Warrior', - 'book': 'PHB' -}; + 'book': ['PHB'] +}); //#endregion //#region The Complete Thief's Handbook -nonweaponProficiencies['Alertness'] = { +nonweaponProficiencies['Alertness'] = []; +nonweaponProficiencies['Alertness'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +1, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Animal Noise'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids','The Complete Ranger\'s Handbook','The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Animal Noise'] = []; +nonweaponProficiencies['Animal Noise'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Begging'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Begging'] = []; +nonweaponProficiencies['Begging'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', - 'modifier': '', + 'modifier': '?{Current Locale?|Uninhabited/Wilderness,-99|Countryside,-7|Hamlet/Village,-5|Town,-0,City,0}', 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Boating'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Boating'] = []; +nonweaponProficiencies['Boating'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +1, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Fast-Talking'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Ranger\'s Handbook','The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Fast-Talking'] = []; +nonweaponProficiencies['Fast-Talking'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': '', 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Fortune Telling'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Fortune Telling'] = []; +nonweaponProficiencies['Fortune Telling'].push({ 'slots': 2, 'abilityScore': '@{Charisma}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Information Gathering'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Information Gathering'] = []; +nonweaponProficiencies['Information Gathering'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': '', 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Intimidation'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids','The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Intimidation'] = []; +nonweaponProficiencies['Intimidation'].push({ 'slots': 1, - 'abilityScore': '', + 'abilityScore': '?{Intimidation with?|@{Strength}|@{Charisma}}', 'modifier': '', 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Locksmithing'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Dwarves','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Locksmithing'] = []; +nonweaponProficiencies['Locksmithing'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Looting'] = { + 'book': ['The Complete Thief\'s Handbook'] +}); +nonweaponProficiencies['Looting'] = []; +nonweaponProficiencies['Looting'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Observation'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Observation'] = []; +nonweaponProficiencies['Observation'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Trailing'] = { + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids','The Complete Ninja\'s Handbook','Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Trailing'] = []; +nonweaponProficiencies['Trailing'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': '', 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; -nonweaponProficiencies['Voice Mimicry'] = { + 'book': ['The Complete Thief\'s Handbook'] +}); +nonweaponProficiencies['Voice Mimicry'] = []; +nonweaponProficiencies['Voice Mimicry'].push({ 'slots': 2, 'abilityScore': '@{Charisma}', 'modifier': '', 'classes': '', - 'book': 'The Complete Thief\'s Handbook' -}; + 'book': ['The Complete Thief\'s Handbook','The Complete Book of Humanoids','The Complete Ninja\'s Handbook'] +}); //#endregion //#region The Complete Book of Dwarves -nonweaponProficiencies['Appraising (Dwarf)'] = { +nonweaponProficiencies['Appraising (Dwarf)'] = []; +nonweaponProficiencies['Appraising (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +3, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Dwarf Runes'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Dwarf Runes'] = []; +nonweaponProficiencies['Dwarf Runes'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Dwarf Runes (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Dwarf Runes (Dwarf)'] = []; +nonweaponProficiencies['Dwarf Runes (Dwarf)'].push({ 'slots': 0, 'abilityScore': '@{Intelligence}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Endurance (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Endurance (Dwarf)'] = []; +nonweaponProficiencies['Endurance (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Fungi Recognition'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Fungi Recognition'] = []; +nonweaponProficiencies['Fungi Recognition'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +3, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Local Dwarf History'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Local Dwarf History'] = []; +nonweaponProficiencies['Local Dwarf History'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Navigation, Underground'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Navigation, Underground'] = []; +nonweaponProficiencies['Navigation, Underground'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Riding, Land-Based (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Riding, Land-Based (Dwarf)'] = []; +nonweaponProficiencies['Riding, Land-Based (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Sign Language'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Sign Language'] = []; +nonweaponProficiencies['Sign Language'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Signalling'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Signalling'] = []; +nonweaponProficiencies['Signalling'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Singing (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Singing (Dwarf)'] = []; +nonweaponProficiencies['Singing (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Slow Respiration'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Slow Respiration'] = []; +nonweaponProficiencies['Slow Respiration'].push({ 'slots': 1, 'abilityScore': '@{NA}', 'modifier': 'NA', 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Sound Analysis'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Sound Analysis'] = []; +nonweaponProficiencies['Sound Analysis'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Survival, Underground'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Survival, Underground'] = []; +nonweaponProficiencies['Survival, Underground'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Armorer (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Armorer (Dwarf)'] = []; +nonweaponProficiencies['Armorer (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Blacksmithing (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Blacksmithing (Dwarf)'] = []; +nonweaponProficiencies['Blacksmithing (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': +1, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Bowyer/Fletcher (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Bowyer/Fletcher (Dwarf)'] = []; +nonweaponProficiencies['Bowyer/Fletcher (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Brewing (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Brewing (Dwarf)'] = []; +nonweaponProficiencies['Brewing (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +1, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Engineering (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Engineering (Dwarf)'] = []; +nonweaponProficiencies['Engineering (Dwarf)'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Gem Cutting (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Gem Cutting (Dwarf)'] = []; +nonweaponProficiencies['Gem Cutting (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Herbalism (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Herbalism (Dwarf)'] = []; +nonweaponProficiencies['Herbalism (Dwarf)'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Locksmithing (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Locksmithing (Dwarf)'] = []; +nonweaponProficiencies['Locksmithing (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +1, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Mining (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Mining (Dwarf)'] = []; +nonweaponProficiencies['Mining (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Pottery (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Pottery (Dwarf)'] = []; +nonweaponProficiencies['Pottery (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -3, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Seamstress/Tailor (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Seamstress/Tailor (Dwarf)'] = []; +nonweaponProficiencies['Seamstress/Tailor (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Smelting'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Smelting'] = []; +nonweaponProficiencies['Smelting'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Stonemasonry (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Stonemasonry (Dwarf)'] = []; +nonweaponProficiencies['Stonemasonry (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': 0, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Weaponsmithing (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Weaponsmithing (Dwarf)'] = []; +nonweaponProficiencies['Weaponsmithing (Dwarf)'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Weaving (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Weaving (Dwarf)'] = []; +nonweaponProficiencies['Weaving (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Crafts', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Ancient History (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Ancient History (Dwarf)'] = []; +nonweaponProficiencies['Ancient History (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Blind-fighting (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Blind-fighting (Dwarf)'] = []; +nonweaponProficiencies['Blind-fighting (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{NA}', 'modifier': 'NA', 'classes': 'Warrior/Thief', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Disguise (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Disguise (Dwarf)'] = []; +nonweaponProficiencies['Disguise (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': -2, 'classes': 'Thief', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Forgery (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Forgery (Dwarf)'] = []; +nonweaponProficiencies['Forgery (Dwarf)'].push({ 'slots': 2, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Thief', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Hunting (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Hunting (Dwarf)'] = []; +nonweaponProficiencies['Hunting (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': '-2', 'classes': 'Warrior', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Juggling (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Juggling (Dwarf)'] = []; +nonweaponProficiencies['Juggling (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': 'Thief', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Lip Reading (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Lip Reading (Dwarf)'] = []; +nonweaponProficiencies['Lip Reading (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Thief', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Musical Instrument (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Musical Instrument (Dwarf)'] = []; +nonweaponProficiencies['Musical Instrument (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': 'Thief/Priest', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Pest Control'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Pest Control'] = []; +nonweaponProficiencies['Pest Control'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Thief', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Survival (Hill, Mountain)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Survival (Hill, Mountain)'] = []; +nonweaponProficiencies['Survival (Hill, Mountain)'].push({ 'slots': 1, 'abilityScore': '@{NA}', 'modifier': 'NA', 'classes': 'Warrior', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Boating (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Boating (Dwarf)'] = []; +nonweaponProficiencies['Boating (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Special Background', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Boatwright'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Boatwright'] = []; +nonweaponProficiencies['Boatwright'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Special Background', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Navigation (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Navigation (Dwarf)'] = []; +nonweaponProficiencies['Navigation (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -3, 'classes': 'Special Background', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Swimming (Dwarf)'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Swimming (Dwarf)'] = []; +nonweaponProficiencies['Swimming (Dwarf)'].push({ 'slots': 1, 'abilityScore': '@{Strength}', 'modifier': -1, 'classes': 'Special Background', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Grade or Slope in Passage'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Grade or Slope in Passage'] = []; +nonweaponProficiencies['Grade or Slope in Passage'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +4, 'classes': '(Optional) Dwarven Detection', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['New Tunnel/Passage Construction'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['New Tunnel/Passage Construction'] = []; +nonweaponProficiencies['New Tunnel/Passage Construction'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +4, 'classes': '(Optional) Dwarven Detection', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Sliding/Shifting Walls or Rooms'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Sliding/Shifting Walls or Rooms'] = []; +nonweaponProficiencies['Sliding/Shifting Walls or Rooms'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': +2, 'classes': '(Optional) Dwarven Detection', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Stonework Traps, Pits, and Deadfalls'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Stonework Traps, Pits, and Deadfalls'] = []; +nonweaponProficiencies['Stonework Traps, Pits, and Deadfalls'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '(Optional) Dwarven Detection', - 'book': 'The Complete Book of Dwarves' -}; -nonweaponProficiencies['Approximate Depth Underground'] = { + 'book': ['The Complete Book of Dwarves'] +}); +nonweaponProficiencies['Approximate Depth Underground'] = []; +nonweaponProficiencies['Approximate Depth Underground'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '(Optional) Dwarven Detection', - 'book': 'The Complete Book of Dwarves' -}; + 'book': ['The Complete Book of Dwarves'] +}); //#endregion //#region The Complete Bard's Handbook -nonweaponProficiencies['Acting'] = { +nonweaponProficiencies['Acting'] = []; +nonweaponProficiencies['Acting'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': -1, 'classes': '', - 'book': 'The Complete Bard\'s Handbook' -}; -nonweaponProficiencies['Chanting'] = { + 'book': ['The Complete Bard\'s Handbook','The Complete Book of Humanoids','The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Chanting'] = []; +nonweaponProficiencies['Chanting'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Bard\'s Handbook' -}; -nonweaponProficiencies['Craft Instrument'] = { + 'book': ['The Complete Bard\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Craft Instrument'] = []; +nonweaponProficiencies['Craft Instrument'].push({ 'slots': 2, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': '', - 'book': 'The Complete Bard\'s Handbook' -}; -nonweaponProficiencies['Crowd Working'] = { + 'book': ['The Complete Bard\'s Handbook','The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Crowd Working'] = []; +nonweaponProficiencies['Crowd Working'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Bard\'s Handbook' -}; -nonweaponProficiencies['Poetry'] = { + 'book': ['The Complete Bard\'s Handbook'] +}); +nonweaponProficiencies['Poetry'] = []; +nonweaponProficiencies['Poetry'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': '', - 'book': 'The Complete Bard\'s Handbook' -}; -nonweaponProficiencies['Whistling/Humming'] = { + 'book': ['The Complete Bard\'s Handbook','The Complete Book of Humanoids','The Complete Paladin\'s Handbook'] +}); +nonweaponProficiencies['Whistling/Humming'] = []; +nonweaponProficiencies['Whistling/Humming'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +2, 'classes': '', - 'book': 'The Complete Bard\'s Handbook' -}; + 'book': ['The Complete Bard\'s Handbook','The Complete Book of Humanoids'] +}); //#endregion //#region The Complete Book of Humanoids -nonweaponProficiencies['Cheesemaking'] = { +nonweaponProficiencies['Cheesemaking'] = []; +nonweaponProficiencies['Cheesemaking'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Danger Sense'] = { + 'book': ['The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Danger Sense'] = []; +nonweaponProficiencies['Danger Sense'].push({ 'slots': 2, 'abilityScore': '@{Wisdom}', 'modifier': +1, 'classes': '', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Drinking'] = { + 'book': ['The Complete Book of Humanoids','The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Drinking'] = []; +nonweaponProficiencies['Drinking'].push({ 'slots': 1, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Eating'] = { + 'book': ['The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Eating'] = []; +nonweaponProficiencies['Eating'].push({ 'slots': 1, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Hiding'] = { + 'book': ['The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Hiding'] = []; +nonweaponProficiencies['Hiding'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': '', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Winemaking'] = { + 'book': ['The Complete Book of Humanoids','The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Winemaking'] = []; +nonweaponProficiencies['Winemaking'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Close-quarter Fighting'] = { + 'book': ['The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Close-quarter Fighting'] = []; +nonweaponProficiencies['Close-quarter Fighting'].push({ 'slots': 2, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Warrior/Rogue', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Natural Fighting'] = { + 'book': ['The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Natural Fighting'] = []; +nonweaponProficiencies['Natural Fighting'].push({ 'slots': 2, 'abilityScore': '@{Strength}', 'modifier': +1, 'classes': 'Warrior', - 'book': 'The Complete Book of Humanoids' -}; -nonweaponProficiencies['Wild Fighting'] = { + 'book': ['The Complete Book of Humanoids'] +}); +nonweaponProficiencies['Wild Fighting'] = []; +nonweaponProficiencies['Wild Fighting'].push({ 'slots': 2, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'The Complete Book of Humanoids' -}; + 'book': ['The Complete Book of Humanoids','The Complete Barbarian\'s Handbook'] +}); //#endregion //#region The Complete Ranger's Handbook -nonweaponProficiencies['Cartography'] = { +nonweaponProficiencies['Cartography'] = []; +nonweaponProficiencies['Cartography'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Distance Sense'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Distance Sense'] = []; +nonweaponProficiencies['Distance Sense'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Falconry'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Falconry'] = []; +nonweaponProficiencies['Falconry'].push({ 'slots': 1, - 'abilityScore': '@{Intelligence}', - 'modifier': -2, + 'abilityScore': '@{Wisdom}', + 'modifier': -1, 'classes': '', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Persuasion'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Persuasion'] = []; +nonweaponProficiencies['Persuasion'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Riding, Sea-based'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Riding, Sea-based'] = []; +nonweaponProficiencies['Riding, Sea-based'].push({ 'slots': 2, 'abilityScore': '@{Dexterity}', 'modifier': -2, 'classes': '', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Signaling'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Signaling'] = []; +nonweaponProficiencies['Signaling'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': '', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Camouflage'] = { + 'book': ['The Complete Ranger\'s Handbook','The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Camouflage'] = []; +nonweaponProficiencies['Camouflage'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Fighter/Rogue', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Foraging'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Foraging'] = []; +nonweaponProficiencies['Foraging'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Warrior/Rogue', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Spelunking'] = { + 'book': ['The Complete Ranger\'s Handbook','The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Spelunking'] = []; +nonweaponProficiencies['Spelunking'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Warrior', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Trail Marking'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Trail Marking'] = []; +nonweaponProficiencies['Trail Marking'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Trail Signs'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Trail Signs'] = []; +nonweaponProficiencies['Trail Signs'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Warrior/Rogue', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Veterinary Healing'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Veterinary Healing'] = []; +nonweaponProficiencies['Veterinary Healing'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -3, 'classes': 'Priest', - 'book': 'The Complete Ranger\'s Handbook' -}; -nonweaponProficiencies['Weaponsmithing, Crude'] = { + 'book': ['The Complete Ranger\'s Handbook'] +}); +nonweaponProficiencies['Weaponsmithing, Crude'] = []; +nonweaponProficiencies['Weaponsmithing, Crude'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -3, 'classes': 'Warrior', - 'book': 'The Complete Ranger\'s Handbook' -}; + 'book': ['The Complete Ranger\'s Handbook','The Complete Barbarian\'s Handbook'] +}); //#endregion //#region The Complete Paladin's Handbook -nonweaponProficiencies['Bureaucracy'] = { +nonweaponProficiencies['Bureaucracy'] = []; +nonweaponProficiencies['Bureaucracy'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest/Rogue', - 'book': 'The Complete Paladin\'s Handbook' -}; -nonweaponProficiencies['Diagnostics'] = { + 'book': ['The Complete Paladin\'s Handbook','Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Diagnostics'] = []; +nonweaponProficiencies['Diagnostics'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': 'Priest', - 'book': 'The Complete Paladin\'s Handbook' -}; -nonweaponProficiencies['Jousting'] = { + 'book': ['The Complete Paladin\'s Handbook'] +}); +nonweaponProficiencies['Jousting'] = []; +nonweaponProficiencies['Jousting'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +2, 'classes': 'Warrior', - 'book': 'The Complete Paladin\'s Handbook' -}; -nonweaponProficiencies['Law'] = { + 'book': ['The Complete Paladin\'s Handbook'] +}); +nonweaponProficiencies['Law'] = []; +nonweaponProficiencies['Law'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Warrior/Priest', - 'book': 'The Complete Paladin\'s Handbook' -}; -nonweaponProficiencies['Oratory'] = { + 'book': ['The Complete Paladin\'s Handbook'] +}); +nonweaponProficiencies['Oratory'] = []; +nonweaponProficiencies['Oratory'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': 'Warrior/Priest', - 'book': 'The Complete Paladin\'s Handbook' -}; + 'book': ['The Complete Paladin\'s Handbook'] +}); //#endregion //#region The Complete Barbarian's Handbook -nonweaponProficiencies['Clothesmaking, Crude'] = { +nonweaponProficiencies['Clothesmaking, Crude'] = []; +nonweaponProficiencies['Clothesmaking, Crude'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': '', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Animal Rending'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Animal Rending'] = []; +nonweaponProficiencies['Animal Rending'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +2, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Armorer, Crude'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Armorer, Crude'] = []; +nonweaponProficiencies['Armorer, Crude'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Bartering'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Bartering'] = []; +nonweaponProficiencies['Bartering'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Rogue', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Bowyer/Fletcher, Crude'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Bowyer/Fletcher, Crude'] = []; +nonweaponProficiencies['Bowyer/Fletcher, Crude'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Horde Summoning'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Horde Summoning'] = []; +nonweaponProficiencies['Horde Summoning'].push({ 'slots': 2, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Leadership'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Leadership'] = []; +nonweaponProficiencies['Leadership'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Light Sleeping'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Light Sleeping'] = []; +nonweaponProficiencies['Light Sleeping'].push({ 'slots': 1, 'abilityScore': '@{Constitution}', 'modifier': -1, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Soothsaying'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Sign Language'].push({ + 'slots': 1, + 'abilityScore': '@{Charisma}', + 'modifier': 0, + 'classes': '', + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Set Snares'].push({ + 'slots': 1, + 'abilityScore': '@{Intelligence}', + 'modifier': -1, + 'classes': 'Fighter', + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Soothsaying'] = []; +nonweaponProficiencies['Soothsaying'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest', - 'book': 'The Complete Barbarian\'s Handbook' -}; -nonweaponProficiencies['Weapon Improvisation'] = { + 'book': ['The Complete Barbarian\'s Handbook'] +}); +nonweaponProficiencies['Weapon Improvisation'] = []; +nonweaponProficiencies['Weapon Improvisation'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': 'Warrior', - 'book': 'The Complete Barbarian\'s Handbook' -}; + 'book': ['The Complete Barbarian\'s Handbook'] +}); //#endregion //#region The Complete Book of Necromancers -nonweaponProficiencies['Anatomy'] = { +nonweaponProficiencies['Anatomy'] = []; +nonweaponProficiencies['Anatomy'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Necromancers' -}; -nonweaponProficiencies['Necrology'] = { + 'book': ['The Complete Book of Necromancers'] +}); +nonweaponProficiencies['Necrology'] = []; +nonweaponProficiencies['Necrology'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Book of Necromancers' -}; -nonweaponProficiencies['Netherworld Knowledge'] = { + 'book': ['The Complete Book of Necromancers'] +}); +nonweaponProficiencies['Netherworld Knowledge'] = []; +nonweaponProficiencies['Netherworld Knowledge'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -3, 'classes': '', - 'book': 'The Complete Book of Necromancers' -}; -nonweaponProficiencies['Spirit Lore'] = { + 'book': ['The Complete Book of Necromancers'] +}); +nonweaponProficiencies['Spirit Lore'] = []; +nonweaponProficiencies['Spirit Lore'].push({ 'slots': 2, 'abilityScore': '@{Charisma}', 'modifier': -4, 'classes': '', - 'book': 'The Complete Book of Necromancers' -}; -nonweaponProficiencies['Venom Handling'] = { + 'book': ['The Complete Book of Necromancers'] +}); +nonweaponProficiencies['Venom Handling'] = []; +nonweaponProficiencies['Venom Handling'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': '', - 'book': 'The Complete Book of Necromancers' -}; + 'book': ['The Complete Book of Necromancers'] +}); //#endregion //#region The Complete Ninja's Handbook -nonweaponProficiencies['City Familiarity'] = { +nonweaponProficiencies['City Familiarity'] = []; +nonweaponProficiencies['City Familiarity'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': '', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Style Analysis'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Style Analysis'] = []; +nonweaponProficiencies['Style Analysis'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Warrior', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Assimilation'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Assimilation'] = []; +nonweaponProficiencies['Assimilation'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Detect Signing'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Detect Signing'] = []; +nonweaponProficiencies['Detect Signing'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +1, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Enamor'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Enamor'] = []; +nonweaponProficiencies['Enamor'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': -2, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Escape'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Escape'] = []; +nonweaponProficiencies['Escape'].push({ 'slots': 2, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Feign/Detect Sleep'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Feign/Detect Sleep'] = []; +nonweaponProficiencies['Feign/Detect Sleep'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Giant Kite Flying'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Giant Kite Flying'] = []; +nonweaponProficiencies['Giant Kite Flying'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -3, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Hold Breath'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Hold Breath'] = []; +nonweaponProficiencies['Hold Breath'].push({ 'slots': 1, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Night Vision'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Night Vision'] = []; +nonweaponProficiencies['Night Vision'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Toxicology'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Toxicology'] = []; +nonweaponProficiencies['Toxicology'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Quick Study'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Quick Study'] = []; +nonweaponProficiencies['Quick Study'].push({ 'slots': 2, 'abilityScore': '', 'modifier': -3, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Underclass'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Underclass'] = []; +nonweaponProficiencies['Underclass'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; -nonweaponProficiencies['Water Walking'] = { + 'book': ['The Complete Ninja\'s Handbook'] +}); +nonweaponProficiencies['Water Walking'] = []; +nonweaponProficiencies['Water Walking'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Rogue', - 'book': 'The Complete Ninja\'s Handbook' -}; + 'book': ['The Complete Ninja\'s Handbook'] +}); //#endregion //#region Player's Option: Spells & Magic -nonweaponProficiencies['Alchemy'] = { +nonweaponProficiencies['Alchemy'] = []; +nonweaponProficiencies['Alchemy'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -3, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Arcanology'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Anatomy'].push({ + 'slots': 2, + 'abilityScore': '@{Intelligence}', + 'modifier': -2, + 'classes': '', + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Arcanology'] = []; +nonweaponProficiencies['Arcanology'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -3, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Bookbinding'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Bookbinding'] = []; +nonweaponProficiencies['Bookbinding'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest/Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Concentration'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Concentration'] = []; +nonweaponProficiencies['Concentration'].push({ 'slots': 2, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Dowsing'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Dowsing'] = []; +nonweaponProficiencies['Dowsing'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -3, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Glassblowing'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Glassblowing'] = []; +nonweaponProficiencies['Glassblowing'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': 0, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Hypnotism'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Hypnotism'] = []; +nonweaponProficiencies['Hypnotism'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': -2, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Mental Resistance'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Mental Resistance'] = []; +nonweaponProficiencies['Mental Resistance'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -1, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Omen Reading'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Omen Reading'] = []; +nonweaponProficiencies['Omen Reading'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': -2, 'classes': 'Priest/Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Papermaking'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Papermaking'] = []; +nonweaponProficiencies['Papermaking'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Priest/Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Prestidigitation'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Prestidigitation'] = []; +nonweaponProficiencies['Prestidigitation'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': -1, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Research'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Research'] = []; +nonweaponProficiencies['Research'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': 0, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Sage Knowledge'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Sage Knowledge'] = []; +nonweaponProficiencies['Sage Knowledge'].push({ 'slots': 2, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Priest/Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Scribe'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Scribe'] = []; +nonweaponProficiencies['Scribe'].push({ 'slots': 1, 'abilityScore': '@{Dexterity}', 'modifier': +1, 'classes': 'Priest/Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Tactics of Magic'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Tactics of Magic'] = []; +nonweaponProficiencies['Tactics of Magic'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Thaumaturgy'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Thaumaturgy'] = []; +nonweaponProficiencies['Thaumaturgy'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Wizard', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Administration'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Administration'] = []; +nonweaponProficiencies['Administration'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': +1, 'classes': 'Priest', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Alms'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Alms'] = []; +nonweaponProficiencies['Alms'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': 0, 'classes': 'Priest', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Ceremony'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Ceremony'] = []; +nonweaponProficiencies['Ceremony'].push({ 'slots': 1, 'abilityScore': '@{Wisdom}', 'modifier': 0, 'classes': 'Priest', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Diplomacy'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Diplomacy'] = []; +nonweaponProficiencies['Diplomacy'].push({ 'slots': 1, 'abilityScore': '@{Charisma}', 'modifier': -1, 'classes': 'Priest', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Investigation'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Investigation'] = []; +nonweaponProficiencies['Investigation'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -2, 'classes': 'Priest', - 'book': 'Player\'s Option: Spells & Magic' -}; -nonweaponProficiencies['Undead Lore'] = { + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Law'].push({ + 'slots': 1, + 'abilityScore': '@{Intelligence}', + 'modifier': 0, + 'classes': 'Priest', + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Oratory'].push({ + 'slots': 1, + 'abilityScore': '@{Charisma}', + 'modifier': -1, + 'classes': 'Priest', + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Persuasion'].push({ + 'slots': 1, + 'abilityScore': '@{Charisma}', + 'modifier': -2, + 'classes': 'Priest', + 'book': ['Player\'s Option: Spells & Magic'] +}); +nonweaponProficiencies['Undead Lore'] = []; +nonweaponProficiencies['Undead Lore'].push({ 'slots': 1, 'abilityScore': '@{Intelligence}', 'modifier': -1, 'classes': 'Priest', - 'book': 'Player\'s Option: Spells & Magic' -}; + 'book': ['Player\'s Option: Spells & Magic'] +}); //#endregion module.exports = nonweaponProficiencies; \ No newline at end of file diff --git a/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html b/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html new file mode 100644 index 0000000000..27079f33d5 --- /dev/null +++ b/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html @@ -0,0 +1,2652 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameSlotsAbility ScoreModifierClassesBook
    Acting1@{Charisma}-1The Complete Bard's Handbook
    Acting1@{Charisma}-1The Complete Book of Humanoids
    Acting1@{Charisma}-1The Complete Ninja's Handbook
     
    Administration1@{Intelligence}1PriestPlayer's Option: Spells & Magic
     
    Agriculture1@{Intelligence}0PHB
     
    Alchemy2@{Intelligence}-3WizardPlayer's Option: Spells & Magic
     
    Alertness1@{Wisdom}1The Complete Thief's Handbook
    Alertness1@{Wisdom}1The Complete Book of Humanoids
    Alertness1@{Wisdom}1The Complete Ranger's Handbook
    Alertness1@{Wisdom}1The Complete Barbarian's Handbook
     
    Alms1@{Charisma}0PriestPlayer's Option: Spells & Magic
     
    Anatomy1@{Intelligence}0The Complete Book of Necromancers
    Anatomy2@{Intelligence}-2Player's Option: Spells & Magic
     
    Ancient History1@{Intelligence}-1Priest/Rogue/WizardPHB
     
    Ancient History (Dwarf)1@{Intelligence}0PriestThe Complete Book of Dwarves
     
    Animal Handling1@{Wisdom}-1PHB
     
    Animal Lore1@{Intelligence}0WarriorPHB
     
    Animal Noise1@{Wisdom}-1The Complete Thief's Handbook
    Animal Noise1@{Wisdom}-1The Complete Book of Humanoids
     
    Animal Rending1@{Dexterity}2WarriorThe Complete Barbarian's Handbook
     
    Animal Training1@{Wisdom}0PHB
     
    Appraising1@{Intelligence}0RoguePHB
     
    Appraising (Dwarf)1@{Intelligence}3The Complete Book of Dwarves
     
    Approximate Depth Underground1@{Wisdom}0(Optional) Dwarven DetectionThe Complete Book of Dwarves
     
    Arcanology1@{Intelligence}-3WizardPlayer's Option: Spells & Magic
     
    Armorer2@{Intelligence}-2WarriorPHB
     
    Armorer (Dwarf)1@{Intelligence}0CraftsThe Complete Book of Dwarves
     
    Armorer, Crude1@{Intelligence}-1WarriorThe Complete Barbarian's Handbook
     
    Artistic Ability1@{Wisdom}0PHB
     
    Assimilation1@{Intelligence}0RogueThe Complete Ninja's Handbook
     
    Astrology2@{Intelligence}0Priest/WizardPHB
     
    Bartering1@{Intelligence}-2RogueThe Complete Barbarian's Handbook
     
    Begging1@{Charisma}?{Current Locale?|Uninhabited/Wilderness,-99|Countryside,-7|Hamlet/Village,-5|Town,-0,City,0}The Complete Thief's Handbook
    Begging1@{Charisma}?{Current Locale?|Uninhabited/Wilderness,-99|Countryside,-7|Hamlet/Village,-5|Town,-0,City,0}The Complete Book of Humanoids
     
    Blacksmithing1@{Strength}0PHB
     
    Blacksmithing (Dwarf)1@{Strength}1CraftsThe Complete Book of Dwarves
     
    Blind-fighting2@{NA}NARogue/WarriorPHB
     
    Blind-fighting (Dwarf)1@{NA}NAWarrior/ThiefThe Complete Book of Dwarves
     
    Boating1@{Wisdom}1The Complete Thief's Handbook
    Boating1@{Wisdom}1The Complete Ranger's Handbook
    Boating1@{Wisdom}1The Complete Barbarian's Handbook
     
    Boating (Dwarf)1@{Wisdom}0Special BackgroundThe Complete Book of Dwarves
     
    Boatwright1@{Intelligence}-2Special BackgroundThe Complete Book of Dwarves
     
    Bookbinding1@{Intelligence}0Priest/WizardPlayer's Option: Spells & Magic
     
    Bowyer/Fletcher1@{Dexterity}-1WarriorPHB
     
    Bowyer/Fletcher (Dwarf)1@{Dexterity}0CraftsThe Complete Book of Dwarves
     
    Bowyer/Fletcher, Crude1@{Dexterity}0WarriorThe Complete Barbarian's Handbook
     
    Brewing1@{Intelligence}0PHB
     
    Brewing (Dwarf)1@{Intelligence}1CraftsThe Complete Book of Dwarves
     
    Bureaucracy2@{Intelligence}0Priest/RogueThe Complete Paladin's Handbook
    Bureaucracy2@{Intelligence}0Priest/RoguePlayer's Option: Spells & Magic
     
    Camouflage1@{Wisdom}0Fighter/RogueThe Complete Ranger's Handbook
     
    Carpentry1@{Strength}0PHB
     
    Cartography1@{Wisdom}0The Complete Ranger's Handbook
     
    Ceremony1@{Wisdom}0PriestPlayer's Option: Spells & Magic
     
    Chanting1@{Charisma}2The Complete Bard's Handbook
    Chanting1@{Charisma}2The Complete Book of Humanoids
     
    Charioteering1@{Dexterity}2WarriorPHB
     
    Cheesemaking1@{Intelligence}0The Complete Book of Humanoids
     
    City Familiarity1@{Intelligence}0The Complete Ninja's Handbook
     
    Close-quarter Fighting2@{Dexterity}0Warrior/RogueThe Complete Book of Humanoids
     
    Clothesmaking, Crude1@{Intelligence}-1The Complete Barbarian's Handbook
     
    Cobbling1@{Dexterity}0PHB
     
    Concentration2@{Wisdom}-2WizardPlayer's Option: Spells & Magic
     
    Cooking1@{Intelligence}0PHB
     
    Craft Instrument2@{Dexterity}-2The Complete Bard's Handbook
    Craft Instrument2@{Dexterity}-2The Complete Book of Humanoids
     
    Crowd Working1@{Charisma}0The Complete Bard's Handbook
     
    Dancing1@{Dexterity}0PHB
     
    Danger Sense2@{Wisdom}1The Complete Book of Humanoids
    Danger Sense2@{Wisdom}1The Complete Barbarian's Handbook
     
    Detect Signing1@{Intelligence}1RogueThe Complete Ninja's Handbook
     
    Diagnostics1@{Wisdom}-1PriestThe Complete Paladin's Handbook
     
    Diplomacy1@{Charisma}-1PriestPlayer's Option: Spells & Magic
     
    Direction Sense1@{Wisdom}1PHB
     
    Disguise1@{Charisma}-1RoguePHB
     
    Disguise (Dwarf)1@{Charisma}-2ThiefThe Complete Book of Dwarves
     
    Distance Sense1@{Wisdom}0The Complete Ranger's Handbook
     
    Dowsing1@{Wisdom}-3WizardPlayer's Option: Spells & Magic
     
    Drinking1@{Constitution}0The Complete Book of Humanoids
     
    Dwarf Runes1@{Intelligence}2The Complete Book of Dwarves
     
    Dwarf Runes (Dwarf)0@{Intelligence}2The Complete Book of Dwarves
     
    Eating1@{Constitution}0The Complete Book of Humanoids
     
    Enamor1@{Charisma}-2RogueThe Complete Ninja's Handbook
     
    Endurance2@{Constitution}0WarriorPHB
     
    Endurance (Dwarf)1@{Constitution}0The Complete Book of Dwarves
     
    Engineering2@{Intelligence}-3Priest/WizardPHB
     
    Engineering (Dwarf)2@{Intelligence}0CraftsThe Complete Book of Dwarves
     
    Escape2@{Dexterity}0RogueThe Complete Ninja's Handbook
     
    Etiquette1@{Charisma}0PHB
     
    Falconry1@{Wisdom}-1The Complete Ranger's Handbook
     
    Fast-Talking1@{Charisma}The Complete Thief's Handbook
    Fast-Talking1@{Charisma}The Complete Book of Humanoids
     
    Feign/Detect Sleep1@{Intelligence}0RogueThe Complete Ninja's Handbook
     
    Fire-building1@{Wisdom}-1PHB
     
    Fishing1@{Wisdom}-1PHB
     
    Foraging1@{Intelligence}-2Warrior/RogueThe Complete Ranger's Handbook
    Foraging1@{Intelligence}-2Warrior/RogueThe Complete Barbarian's Handbook
     
    Forgery1@{Dexterity}-1RoguePHB
     
    Forgery (Dwarf)2@{Dexterity}-1ThiefThe Complete Book of Dwarves
     
    Fortune Telling2@{Charisma}2The Complete Thief's Handbook
    Fortune Telling2@{Charisma}2The Complete Book of Humanoids
     
    Fungi Recognition1@{Intelligence}3The Complete Book of Dwarves
     
    Gaming1@{Charisma}0Rogue/WarriorPHB
     
    Gem Cutting (Dwarf)1@{Dexterity}0CraftsThe Complete Book of Dwarves
     
    Gem-Cutting2@{Dexterity}-2Rogue/WizardPHB
     
    Giant Kite Flying1@{Dexterity}-3RogueThe Complete Ninja's Handbook
     
    Glassblowing1@{Dexterity}0WizardPlayer's Option: Spells & Magic
     
    Grade or Slope in Passage1@{Wisdom}4(Optional) Dwarven DetectionThe Complete Book of Dwarves
     
    Healing2@{Wisdom}-2PriestPHB
     
    Heraldry1@{Intelligence}0PHB
     
    Herbalism2@{Intelligence}-2Priest/WizardPHB
     
    Herbalism (Dwarf)2@{Intelligence}0CraftsThe Complete Book of Dwarves
     
    Hiding2@{Intelligence}-1The Complete Book of Humanoids
    Hiding2@{Intelligence}-1The Complete Barbarian's Handbook
     
    Hold Breath1@{Constitution}0RogueThe Complete Ninja's Handbook
     
    Horde Summoning2@{Charisma}0WarriorThe Complete Barbarian's Handbook
     
    Hunting1@{Wisdom}-1WarriorPHB
     
    Hunting (Dwarf)1@{Wisdom}-2WarriorThe Complete Book of Dwarves
     
    Hypnotism1@{Charisma}-2WizardPlayer's Option: Spells & Magic
     
    Information Gathering1@{Intelligence}The Complete Thief's Handbook
    Information Gathering1@{Intelligence}The Complete Book of Humanoids
    Information Gathering1@{Intelligence}The Complete Ninja's Handbook
     
    Intimidation1?{Intimidation with?|@{Strength}|@{Charisma}}The Complete Thief's Handbook
    Intimidation1?{Intimidation with?|@{Strength}|@{Charisma}}The Complete Book of Dwarves
    Intimidation1?{Intimidation with?|@{Strength}|@{Charisma}}The Complete Book of Humanoids
     
    Investigation1@{Intelligence}-2PriestPlayer's Option: Spells & Magic
     
    Jousting1@{Dexterity}2WarriorThe Complete Paladin's Handbook
     
    Juggling1@{Dexterity}-1RoguePHB
     
    Juggling (Dwarf)1@{Dexterity}-2ThiefThe Complete Book of Dwarves
     
    Jumping1@{Strength}0RoguePHB
     
    Languages, Ancient1@{Intelligence}0Priest/WizardPHB
     
    Languages, Modern1@{Intelligence}0PHB
     
    Law1@{Wisdom}0Warrior/PriestThe Complete Paladin's Handbook
    Law1@{Intelligence}0PriestPlayer's Option: Spells & Magic
     
    Leadership1@{Charisma}0WarriorThe Complete Barbarian's Handbook
     
    Leatherworking1@{Intelligence}0PHB
     
    Light Sleeping1@{Constitution}-1WarriorThe Complete Barbarian's Handbook
     
    Lip Reading (Dwarf)1@{Intelligence}0ThiefThe Complete Book of Dwarves
     
    Local Dwarf History1@{Charisma}2The Complete Book of Dwarves
     
    Local History1@{Charisma}0Priest/RoguePHB
     
    Locksmithing1@{Dexterity}0The Complete Thief's Handbook
     
    Locksmithing (Dwarf)1@{Dexterity}1CraftsThe Complete Book of Dwarves
     
    Looting1@{Dexterity}0The Complete Thief's Handbook
    Looting1@{Dexterity}0The Complete Book of Humanoids
     
    Mental Resistance1@{Wisdom}-1WizardPlayer's Option: Spells & Magic
     
    Mining2@{Wisdom}-3PHB
     
    Mining (Dwarf)1@{Wisdom}0CraftsThe Complete Book of Dwarves
     
    Mountaineering1NANAWarriorPHB
     
    Musical Instrument1@{Dexterity}-1Priest/RoguePHB
     
    Musical Instrument (Dwarf)1@{Dexterity}-2Thief/PriestThe Complete Book of Dwarves
     
    Natural Fighting2@{Strength}1WarriorThe Complete Book of Humanoids
     
    Navigation1@{Intelligence}-2Priest/Warrior/WizardPHB
     
    Navigation (Dwarf)1@{Intelligence}-3Special BackgroundThe Complete Book of Dwarves
     
    Navigation, Underground1@{Intelligence}0The Complete Book of Dwarves
     
    Necrology1@{Wisdom}0The Complete Book of Necromancers
     
    Netherworld Knowledge1@{Wisdom}-3The Complete Book of Necromancers
     
    New Tunnel/Passage Construction1@{Wisdom}4(Optional) Dwarven DetectionThe Complete Book of Dwarves
     
    Night Vision1@{Wisdom}-2RogueThe Complete Ninja's Handbook
     
    Observation1@{Intelligence}0The Complete Thief's Handbook
    Observation1@{Intelligence}0The Complete Book of Humanoids
    Observation1@{Intelligence}0The Complete Ninja's Handbook
    Observation1@{Intelligence}0Player's Option: Spells & Magic
     
    Omen Reading1@{Wisdom}-2Priest/WizardPlayer's Option: Spells & Magic
     
    Oratory1@{Charisma}0Warrior/PriestThe Complete Paladin's Handbook
    Oratory1@{Charisma}-1PriestPlayer's Option: Spells & Magic
     
    Papermaking1@{Intelligence}0Priest/WizardPlayer's Option: Spells & Magic
     
    Persuasion1@{Charisma}0The Complete Ranger's Handbook
    Persuasion1@{Charisma}-2PriestPlayer's Option: Spells & Magic
     
    Pest Control1@{Wisdom}0ThiefThe Complete Book of Dwarves
     
    Poetry1@{Intelligence}-2The Complete Bard's Handbook
    Poetry1@{Intelligence}-2The Complete Book of Humanoids
    Poetry1@{Intelligence}-2The Complete Paladin's Handbook
     
    Pottery1@{Dexterity}-2PHB
     
    Pottery (Dwarf)1@{Dexterity}-3CraftsThe Complete Book of Dwarves
     
    Prestidigitation1@{Dexterity}-1WizardPlayer's Option: Spells & Magic
     
    Quick Study2-3RogueThe Complete Ninja's Handbook
     
    Reading Lips2@{Intelligence}-2RoguePHB
     
    Reading/Writing1@{Intelligence}1Priest/WizardPHB
     
    Religion1@{Wisdom}0Priest/WizardPHB
     
    Research1@{Intelligence}0WizardPlayer's Option: Spells & Magic
     
    Riding, Airborne2@{Wisdom}-2PHB
     
    Riding, Land-Based (Dwarf)1@{Wisdom}-2The Complete Book of Dwarves
     
    Riding, Land-based1@{Wisdom}3PHB
     
    Riding, Sea-based2@{Dexterity}-2The Complete Ranger's Handbook
     
    Rope Use1@{Dexterity}0PHB
     
    Running1@{Constitution}-6WarriorPHB
     
    Sage Knowledge2@{Intelligence}-2Priest/WizardPlayer's Option: Spells & Magic
     
    Scribe1@{Dexterity}1Priest/WizardPlayer's Option: Spells & Magic
     
    Seamanship1@{Dexterity}1PHB
     
    Seamstress/Tailor1@{Dexterity}-1PHB
     
    Seamstress/Tailor (Dwarf)1@{Dexterity}-2CraftsThe Complete Book of Dwarves
     
    Set Snares1@{Dexterity}-1Rogue/WarriorPHB
    Set Snares1@{Intelligence}-1FighterThe Complete Barbarian's Handbook
     
    Sign Language1@{Intelligence}2The Complete Book of Dwarves
    Sign Language1@{Charisma}0The Complete Barbarian's Handbook
     
    Signaling1@{Intelligence}-2The Complete Ranger's Handbook
    Signaling1@{Intelligence}-2The Complete Barbarian's Handbook
     
    Signalling1@{Intelligence}2The Complete Book of Dwarves
     
    Singing1@{Charisma}0PHB
     
    Singing (Dwarf)1@{Charisma}2The Complete Book of Dwarves
     
    Sliding/Shifting Walls or Rooms1@{Wisdom}2(Optional) Dwarven DetectionThe Complete Book of Dwarves
     
    Slow Respiration1@{NA}NAThe Complete Book of Dwarves
     
    Smelting1@{Intelligence}0CraftsThe Complete Book of Dwarves
     
    Soothsaying2@{Intelligence}0PriestThe Complete Barbarian's Handbook
     
    Sound Analysis1@{Wisdom}0The Complete Book of Dwarves
     
    Spellcraft1@{Intelligence}-2Priest/WizardPHB
     
    Spelunking1@{Intelligence}-2WarriorThe Complete Ranger's Handbook
     
    Spirit Lore2@{Charisma}-4The Complete Book of Necromancers
     
    Stonemasonry1@{Strength}-2PHB
     
    Stonemasonry (Dwarf)1@{Strength}0CraftsThe Complete Book of Dwarves
     
    Stonework Traps, Pits, and Deadfalls1@{Wisdom}0(Optional) Dwarven DetectionThe Complete Book of Dwarves
     
    Style Analysis1@{Intelligence}-1WarriorThe Complete Ninja's Handbook
     
    Survival2@{Intelligence}0WarriorPHB
     
    Survival (Hill, Mountain)1@{NA}NAWarriorThe Complete Book of Dwarves
     
    Survival, Underground1@{Intelligence}0The Complete Book of Dwarves
     
    Swimming1@{Strength}0PHB
     
    Swimming (Dwarf)1@{Strength}-1Special BackgroundThe Complete Book of Dwarves
     
    Tactics of Magic1@{Intelligence}-1WizardPlayer's Option: Spells & Magic
     
    Thaumaturgy1@{Intelligence}-2WizardPlayer's Option: Spells & Magic
     
    Tightrope Walking1@{Dexterity}0RoguePHB
     
    Toxicology2@{Intelligence}0RogueThe Complete Ninja's Handbook
     
    Tracking2@{Wisdom}0WarriorPHB
     
    Trail Marking1@{Wisdom}0WarriorThe Complete Ranger's Handbook
     
    Trail Signs1@{Intelligence}-1Warrior/RogueThe Complete Ranger's Handbook
     
    Trailing1@{Dexterity}The Complete Thief's Handbook
     
    Tumbling1@{Dexterity}0RoguePHB
     
    Undead Lore1@{Intelligence}-1PriestPlayer's Option: Spells & Magic
     
    Underclass1@{Wisdom}0RogueThe Complete Ninja's Handbook
     
    Venom Handling1@{Wisdom}-2The Complete Book of Necromancers
     
    Ventriloquism1@{Intelligence}-2RoguePHB
     
    Veterinary Healing1@{Wisdom}-3PriestThe Complete Ranger's Handbook
     
    Voice Mimicry2@{Charisma}The Complete Thief's Handbook
    Voice Mimicry2@{Charisma}The Complete Book of Humanoids
    Voice Mimicry2@{Charisma}The Complete Ninja's Handbook
     
    Water Walking1@{Dexterity}-1RogueThe Complete Ninja's Handbook
     
    Weapon Improvisation1@{Wisdom}-1WarriorThe Complete Barbarian's Handbook
     
    Weaponsmithing3@{Intelligence}-3WarriorPHB
     
    Weaponsmithing (Dwarf)2@{Intelligence}-1CraftsThe Complete Book of Dwarves
     
    Weaponsmithing, Crude1@{Wisdom}-3WarriorThe Complete Ranger's Handbook
    Weaponsmithing, Crude1@{Wisdom}-3WarriorThe Complete Barbarian's Handbook
     
    Weather Sense1@{Wisdom}-1PHB
     
    Weaving1@{Intelligence}-1PHB
     
    Weaving (Dwarf)1@{Intelligence}-2CraftsThe Complete Book of Dwarves
     
    Whistling/Humming1@{Dexterity}2The Complete Bard's Handbook
    Whistling/Humming1@{Dexterity}2The Complete Book of Humanoids
     
    Wild Fighting2@{Constitution}0WarriorThe Complete Book of Humanoids
    Wild Fighting2@{Constitution}0WarriorThe Complete Barbarian's Handbook
     
    Winemaking1@{Intelligence}0The Complete Book of Humanoids
     
    \ No newline at end of file diff --git a/ADnD_2E_Revised/misc/school-overview.html b/ADnD_2E_Revised/misc/schools-overview.html similarity index 99% rename from ADnD_2E_Revised/misc/school-overview.html rename to ADnD_2E_Revised/misc/schools-overview.html index 3f3ceef64e..07af407646 100644 --- a/ADnD_2E_Revised/misc/school-overview.html +++ b/ADnD_2E_Revised/misc/schools-overview.html @@ -19,9 +19,9 @@ - - - + + + diff --git a/ADnD_2E_Revised/misc/sphere-overview.html b/ADnD_2E_Revised/misc/spheres-overview.html similarity index 99% rename from ADnD_2E_Revised/misc/sphere-overview.html rename to ADnD_2E_Revised/misc/spheres-overview.html index 07fc730c24..e249eaf784 100644 --- a/ADnD_2E_Revised/misc/sphere-overview.html +++ b/ADnD_2E_Revised/misc/spheres-overview.html @@ -19,9 +19,9 @@
    nameschoolsbookNameSchoolsBook
    Affect Normal Fires
    - - - + + + diff --git a/ADnD_2E_Revised/misc/weapons-overview.html b/ADnD_2E_Revised/misc/weapons-overview.html index b6457bd1a8..0ffef3a278 100644 --- a/ADnD_2E_Revised/misc/weapons-overview.html +++ b/ADnD_2E_Revised/misc/weapons-overview.html @@ -20,22 +20,22 @@
    namespheresbookNameSpheresBook
    Command
    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/ADnD_2E_Revised/pug/nonweaponProficienciesOverview.pug b/ADnD_2E_Revised/pug/nonweaponProficienciesOverview.pug new file mode 100644 index 0000000000..110196d3c3 --- /dev/null +++ b/ADnD_2E_Revised/pug/nonweaponProficienciesOverview.pug @@ -0,0 +1,48 @@ +style("text/css"). + table { + border-collapse: collapse; + position: relative; + text-align: left; + width: 100%; + } + tr.gray th { + background: lightgray; + } + th, td { + padding: 2px; + } + th { + position: sticky; + top: 0; + } + +table + tr(class="gray") + th Name + th Slots + th Ability Score + th Modifier + th Classes + th Book + - let processedNonWeaponProfs = new Set() + - let keys = Object.keys(data).sort() + each key in keys + - let nonWeaponProfList = data[key] + if processedNonWeaponProfs.has(nonWeaponProfList) + - continue + - processedNonWeaponProfs.add(nonWeaponProfList) + - let slotsColor = nonWeaponProfList.every( (ele,i,arr) => ele.slots === arr[0].slots) ? "white" : "orange" + - let abilityScoreColor = nonWeaponProfList.every( (ele,i,arr) => ele.abilityScore === arr[0].abilityScore) ? "white" : "orange" + - let modifierColor = nonWeaponProfList.every( (ele,i,arr) => ele.modifier === arr[0].modifier) ? "white" : "orange" + - let classesColor = nonWeaponProfList.every( (ele,i,arr) => ele.classes === arr[0].classes) ? "white" : "orange" + each nonWeaponProf in nonWeaponProfList + each book in nonWeaponProf.book + tr + td #{key} + td(style=`background-color:${slotsColor}`) #{nonWeaponProf.slots} + td(style=`background-color:${abilityScoreColor}`) #{nonWeaponProf.abilityScore} + td(style=`background-color:${modifierColor}`) #{nonWeaponProf.modifier} + td(style=`background-color:${classesColor}`) #{nonWeaponProf.classes} + td #{book} + tr + td   diff --git a/ADnD_2E_Revised/pug/schoolOverview.pug b/ADnD_2E_Revised/pug/schoolsOverview.pug similarity index 94% rename from ADnD_2E_Revised/pug/schoolOverview.pug rename to ADnD_2E_Revised/pug/schoolsOverview.pug index 990df6e61f..eecb77a3f5 100644 --- a/ADnD_2E_Revised/pug/schoolOverview.pug +++ b/ADnD_2E_Revised/pug/schoolsOverview.pug @@ -17,9 +17,9 @@ style("text/css"). table tr(class="gray") - th name - th schools - th book + th Name + th Schools + th Book each levelObject, level in data each spell, spellName in levelObject if (!spell['school-spells-and-magic']) diff --git a/ADnD_2E_Revised/pug/sphereOverview.pug b/ADnD_2E_Revised/pug/spheresOverview.pug similarity index 96% rename from ADnD_2E_Revised/pug/sphereOverview.pug rename to ADnD_2E_Revised/pug/spheresOverview.pug index f59d89ceb8..0c7fa1d3a4 100644 --- a/ADnD_2E_Revised/pug/sphereOverview.pug +++ b/ADnD_2E_Revised/pug/spheresOverview.pug @@ -17,9 +17,9 @@ style("text/css"). table tr(class="gray") - th name - th spheres - th book + th Name + th Spheres + th Book each levelObject, level in data each spell, spellName in levelObject if (!spell['sphere-druids'] && !spell['sphere-necromancers'] && !spell['sphere-spells-and-magic']) diff --git a/ADnD_2E_Revised/pug/weaponsOverview.pug b/ADnD_2E_Revised/pug/weaponsOverview.pug index 956911c21d..728714432a 100644 --- a/ADnD_2E_Revised/pug/weaponsOverview.pug +++ b/ADnD_2E_Revised/pug/weaponsOverview.pug @@ -18,22 +18,22 @@ style("text/css"). table tr(class="gray") - th name - th group - th noProf - th size - th ammo
    size - th type - th speed - th reach - th rof - th range - th strength - th small
    medium - th large - th knockdown - th book - th category + th Name + th Group + th NoProf + th Size + th Ammo
    size + th Type + th Speed + th Reach + th Rof + th Range + th Strength + th Small
    Medium + th Large + th Knockdown + th Book + th Category - let processedWeapons = new Set() - let keys = Object.keys(data).sort() each key in keys
    namegroupnoProfsizeammo
    size
    typespeedreachrofrangestrengthsmall
    medium
    largeknockdownbookcategoryNameGroupNoProfSizeAmmo
    size
    TypeSpeedReachRofRangeStrengthSmall
    Medium
    LargeKnockdownBookCategory
    Acid