From 9416ed3cc8bf9a96ddf6c52f86c92e6421ab5bff Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 27 Mar 2023 16:07:22 +0200 Subject: [PATCH 01/51] Fixed telekinesis for items weighing exactly 3 pounds --- ADnD_2E_Revised/2ESheet.html | 18 +++++++----------- ADnD_2E_Revised/html/changelog.html | 10 +++------- ADnD_2E_Revised/javascript/psionicPowers.js | 8 ++++---- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index e5fbdc949426..eefdf3edddd9 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -9,13 +9,9 @@

Changes in


@@ -63813,9 +63809,9 @@

Monster Sheet specific

PSYCHOKINETIC['Science']['Telekinesis'] = { 'attribute': '@{Wisdom-psi}', 'modifier': '-3', - 'context-modifier': '[[ceil(?{Object’s weight in pounds|0}/-3)]] [?{Object’s weight in pounds|0} pounds]', - 'initial-cost': '[[{3,?{Object’s weight in pounds|0}}kh1]]', - 'maintenance-cost': '[[{1,floor(?{Object’s weight in pounds|0}/2)}kh1]]/round', + 'context-modifier': '[[floor(?{Object’s weight in pounds|0}/3)*([[{?{Object’s weight in pounds|0},4}<3]]-1)]] [?{Object’s weight in pounds|0} pounds]', + 'initial-cost': '[[{?{Object’s weight in pounds|0},3}kh1]]', + 'maintenance-cost': '[[{floor(?{Object’s weight in pounds|0}/2),1}kh1]]/round', 'range': '30 yards', 'prep': '0', 'aoe': 'single item', @@ -63828,7 +63824,7 @@

Monster Sheet specific

'power-score': 'The character can lift a second item of equal or lesser weight simultaneously for the same cost.', '20': 'The psionicist “fumbles” the item, knocking it over, etc.', '1': '', - 'effect': 'Telekinesis, or “TK” for short, is the ability to move objects through space without touching them. All telekinetic efforts tend to be physically taxing, because they involve real work. Moving small, light objects is relatively easy. As the objects become more massive, the task becomes significantly more difficult.\n The costs above (3 PSPs initially and 1 per round of maintenance) assume that the object being moved weighs 3 pounds or less. For heavier objects, these rules apply:}}{{style=min1}}{{c1-1=•}}{{c2-1=•}}{{c3-1=•}}{{c1-2=The initial cost equals the object’s weight in pounds.}}{{c2-2=The maintenance cost is half the initial cost, rounded down.}}{{c3-2=The character’s power score is decreased by one-third of the object’s weight in pounds, rounded down.}}{{effects2= For example, to telekinetically snatch a 15-pound battle axe from a rack, a psionicist must pay 15 PSPs and make a power check with a -5 modifier to his score.\n A psionicist using TK can move an object up to 60 feet per round. The object can serve as a weapon. In this case, the character attacks using his own TAHC0 score, with a penalty equaling the objects weight modifier (one—third its weight, rounded down).\n *Power Score*—The character can lift a second item of equal or lesser weight simultaneously for the same cost.\n *20*—The psionicist “fumbles” the item, knocking it over, etc.' + 'effect': 'Telekinesis, or “TK” for short, is the ability to move objects through space without touching them. All telekinetic efforts tend to be physically taxing, because they involve real work. Moving small, light objects is relatively easy. As the objects become more massive, the task becomes significantly more difficult.\n The costs above (3 PSPs initially and 1 per round of maintenance) assume that the object being moved weighs 3 pounds or less. For heavier objects, these rules apply:}}{{style=min1}}{{c1-1=•}}{{c2-1=•}}{{c3-1=•}}{{c1-2=The initial cost equals the object’s weight in pounds.}}{{c2-2=The maintenance cost is half the initial cost, rounded down.}}{{c3-2=The character’s power score is decreased by one-third of the object’s weight in pounds, rounded down.}}{{effects2= For example, to telekinetically snatch a 15-pound battle axe from a rack, a psionicist must pay 15 PSPs and make a power check with a -5 modifier to his score.\n A psionicist using TK can move an object up to 60 feet per round. The object can serve as a weapon. In this case, the character attacks using his own THAC0 score, with a penalty equaling the objects weight modifier (one—third its weight, rounded down). Currently [[floor(?{Object’s weight in pounds|0}/3)*([[{?{Object’s weight in pounds|0},4}<3]]-1) [?{Object’s weight in pounds|0} pounds] ]] attack penalty.\n *Power Score*—The character can lift a second item of equal or lesser weight simultaneously for the same cost.\n *20*—The psionicist “fumbles” the item, knocking it over, etc.' }; PSYCHOKINETIC['Devotion']['Animate Object'] = { 'attribute': '@{Intelligence-psi}', diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 46bf46ba6e44..5b8b102afeef 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -4,13 +4,9 @@

Changes in

    -
  • Psionics Core powers can now be made secret by adding {{secret=true}}
  • -
  • Psionics Core powers can now be temporarily modify Constitution, Intelligence, and Wisdom for psionioc purposes only
  • -
  • Psionics Core powers checks now also show the base power score attribute and modifier
  • -
  • Potions design has been updated to match that of Scrolls
  • -
  • Dust design has been updated to match that of Scrolls
  • -
  • Made it easier to read repeating lines while modifying them
  • -
  • Added datalist arrows for Firefox.
  • +
  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighting exactly 3 pounds or less
  • +
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • +
  • Psionic Power - Telekinesis fixed spelling of THAC0

diff --git a/ADnD_2E_Revised/javascript/psionicPowers.js b/ADnD_2E_Revised/javascript/psionicPowers.js index 5d52f51ca182..390ea8d9ecb0 100644 --- a/ADnD_2E_Revised/javascript/psionicPowers.js +++ b/ADnD_2E_Revised/javascript/psionicPowers.js @@ -467,9 +467,9 @@ PSYCHOKINETIC['Science']['Project Force'] = { PSYCHOKINETIC['Science']['Telekinesis'] = { 'attribute': '@{Wisdom-psi}', 'modifier': '-3', - 'context-modifier': '[[ceil(?{Object’s weight in pounds|0}/-3)]] [?{Object’s weight in pounds|0} pounds]', - 'initial-cost': '[[{3,?{Object’s weight in pounds|0}}kh1]]', - 'maintenance-cost': '[[{1,floor(?{Object’s weight in pounds|0}/2)}kh1]]/round', + 'context-modifier': '[[floor(?{Object’s weight in pounds|0}/3)*([[{?{Object’s weight in pounds|0},4}<3]]-1)]] [?{Object’s weight in pounds|0} pounds]', + 'initial-cost': '[[{?{Object’s weight in pounds|0},3}kh1]]', + 'maintenance-cost': '[[{floor(?{Object’s weight in pounds|0}/2),1}kh1]]/round', 'range': '30 yards', 'prep': '0', 'aoe': 'single item', @@ -482,7 +482,7 @@ PSYCHOKINETIC['Science']['Telekinesis'] = { 'power-score': 'The character can lift a second item of equal or lesser weight simultaneously for the same cost.', '20': 'The psionicist “fumbles” the item, knocking it over, etc.', '1': '', - 'effect': 'Telekinesis, or “TK” for short, is the ability to move objects through space without touching them. All telekinetic efforts tend to be physically taxing, because they involve real work. Moving small, light objects is relatively easy. As the objects become more massive, the task becomes significantly more difficult.\n The costs above (3 PSPs initially and 1 per round of maintenance) assume that the object being moved weighs 3 pounds or less. For heavier objects, these rules apply:}}{{style=min1}}{{c1-1=•}}{{c2-1=•}}{{c3-1=•}}{{c1-2=The initial cost equals the object’s weight in pounds.}}{{c2-2=The maintenance cost is half the initial cost, rounded down.}}{{c3-2=The character’s power score is decreased by one-third of the object’s weight in pounds, rounded down.}}{{effects2= For example, to telekinetically snatch a 15-pound battle axe from a rack, a psionicist must pay 15 PSPs and make a power check with a -5 modifier to his score.\n A psionicist using TK can move an object up to 60 feet per round. The object can serve as a weapon. In this case, the character attacks using his own TAHC0 score, with a penalty equaling the objects weight modifier (one—third its weight, rounded down).\n *Power Score*—The character can lift a second item of equal or lesser weight simultaneously for the same cost.\n *20*—The psionicist “fumbles” the item, knocking it over, etc.' + 'effect': 'Telekinesis, or “TK” for short, is the ability to move objects through space without touching them. All telekinetic efforts tend to be physically taxing, because they involve real work. Moving small, light objects is relatively easy. As the objects become more massive, the task becomes significantly more difficult.\n The costs above (3 PSPs initially and 1 per round of maintenance) assume that the object being moved weighs 3 pounds or less. For heavier objects, these rules apply:}}{{style=min1}}{{c1-1=•}}{{c2-1=•}}{{c3-1=•}}{{c1-2=The initial cost equals the object’s weight in pounds.}}{{c2-2=The maintenance cost is half the initial cost, rounded down.}}{{c3-2=The character’s power score is decreased by one-third of the object’s weight in pounds, rounded down.}}{{effects2= For example, to telekinetically snatch a 15-pound battle axe from a rack, a psionicist must pay 15 PSPs and make a power check with a -5 modifier to his score.\n A psionicist using TK can move an object up to 60 feet per round. The object can serve as a weapon. In this case, the character attacks using his own THAC0 score, with a penalty equaling the objects weight modifier (one—third its weight, rounded down). Currently [[floor(?{Object’s weight in pounds|0}/3)*([[{?{Object’s weight in pounds|0},4}<3]]-1) [?{Object’s weight in pounds|0} pounds] ]] attack penalty.\n *Power Score*—The character can lift a second item of equal or lesser weight simultaneously for the same cost.\n *20*—The psionicist “fumbles” the item, knocking it over, etc.' }; PSYCHOKINETIC['Devotion']['Animate Object'] = { 'attribute': '@{Intelligence-psi}', From 4561b1fa25040f0a36fd689aa34427af97034f17 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 28 Mar 2023 08:55:07 +0200 Subject: [PATCH 02/51] Updated change log and Life Draining --- ADnD_2E_Revised/2ESheet.html | 5 ++--- ADnD_2E_Revised/html/changelog.html | 3 +-- ADnD_2E_Revised/javascript/psionicPowers.js | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index eefdf3edddd9..c1e2de27f2d4 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -9,9 +9,8 @@

Changes in

    -
  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighting exactly 3 pounds or less
  • +
  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • -
  • Psionic Power - Telekinesis fixed spelling of THAC0

@@ -64206,7 +64205,7 @@

Monster Sheet specific

'power-score': 'Rate of drain increases to 1d20 points per round.', '20': 'Backfire! Half of the psionicist’s remaining hit points ([[@{HP}/2]]) are absorbed by the target, reversing the power’s effects.', '1': '', - 'effect': 'With this devotion, a psionicist can drain hit points from another character and use them to recover his own. This transfer occurs at the rate of 1d6 points per round.\n The character can absorb up to 10 more hit points than his healthy total, but these bonus points last only one hour. After that, if the psionicist still has more hit points than he should, the excess points vanish.\n *Power Score*—Rate of drain increases to 1d20 points per round.\n *20*—Backfire! Half of the psionicist’s remaining hit points are absorbed by the target, reversing the power’s effects.' + 'effect': 'With this power, a psionicist can drain hit points from another character and use them to recover his own. This transfer occurs at the rate of 1d6 points per round.\n The character can absorb up to 10 more hit points than his healthy total, but these bonus points last only one hour. After that, if the psionicist still has more hit points than he should, the excess points vanish.\n *Power Score*—Rate of drain increases to 1d20 points per round.\n *20*—Backfire! Half of the psionicist’s remaining hit points are absorbed by the target, reversing the power’s effects.' }; PSYCHOMETABOLIC['Science']['Metamorphosis'] = { 'attribute': '@{Constitution-psi}', diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 5b8b102afeef..17e33f91a0db 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -4,9 +4,8 @@

Changes in

    -
  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighting exactly 3 pounds or less
  • +
  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • -
  • Psionic Power - Telekinesis fixed spelling of THAC0

diff --git a/ADnD_2E_Revised/javascript/psionicPowers.js b/ADnD_2E_Revised/javascript/psionicPowers.js index 390ea8d9ecb0..4a764970bf4f 100644 --- a/ADnD_2E_Revised/javascript/psionicPowers.js +++ b/ADnD_2E_Revised/javascript/psionicPowers.js @@ -864,7 +864,7 @@ PSYCHOMETABOLIC['Science']['Life Draining'] = { 'power-score': 'Rate of drain increases to 1d20 points per round.', '20': 'Backfire! Half of the psionicist’s remaining hit points ([[@{HP}/2]]) are absorbed by the target, reversing the power’s effects.', '1': '', - 'effect': 'With this devotion, a psionicist can drain hit points from another character and use them to recover his own. This transfer occurs at the rate of 1d6 points per round.\n The character can absorb up to 10 more hit points than his healthy total, but these bonus points last only one hour. After that, if the psionicist still has more hit points than he should, the excess points vanish.\n *Power Score*—Rate of drain increases to 1d20 points per round.\n *20*—Backfire! Half of the psionicist’s remaining hit points are absorbed by the target, reversing the power’s effects.' + 'effect': 'With this power, a psionicist can drain hit points from another character and use them to recover his own. This transfer occurs at the rate of 1d6 points per round.\n The character can absorb up to 10 more hit points than his healthy total, but these bonus points last only one hour. After that, if the psionicist still has more hit points than he should, the excess points vanish.\n *Power Score*—Rate of drain increases to 1d20 points per round.\n *20*—Backfire! Half of the psionicist’s remaining hit points are absorbed by the target, reversing the power’s effects.' }; PSYCHOMETABOLIC['Science']['Metamorphosis'] = { 'attribute': '@{Constitution-psi}', From b17306450ab2f556ba9d0b6941b98cd059962751 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 17 Apr 2023 07:44:54 +0200 Subject: [PATCH 03/51] Added V, S components to all quest spells --- ADnD_2E_Revised/2ESheet.html | 59 +++++++++++----------- ADnD_2E_Revised/html/changelog.html | 1 + ADnD_2E_Revised/javascript/priestSpells.js | 58 ++++++++++----------- 3 files changed, 60 insertions(+), 58 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index c1e2de27f2d4..b3366d47767a 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -11,6 +11,7 @@

Changes in

  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • +
  • Added V, S components to all Quest spells from Tome of Magic

@@ -60624,7 +60625,7 @@

Monster Sheet specific

'range': '0', 'duration': 'Permanent', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60643,7 +60644,7 @@

Monster Sheet specific

'range': '0', 'duration': '1 day', 'aoe': '10-mile radius', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60662,7 +60663,7 @@

Monster Sheet specific

'range': '200 yards', 'duration': '3 turns', 'aoe': '60-foot-radius hemisphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -60681,7 +60682,7 @@

Monster Sheet specific

'range': '0', 'duration': '6 turns', 'aoe': '80-foot-diameter sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -60700,7 +60701,7 @@

Monster Sheet specific

'range': '240 yards', 'duration': '6 turns', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '3 turns', 'saving-throw': 'None', 'materials': '', @@ -60719,7 +60720,7 @@

Monster Sheet specific

'range': 'Special', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '5 rounds', 'saving-throw': 'Negate', 'materials': '', @@ -60738,7 +60739,7 @@

Monster Sheet specific

'range': '240 yards', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Special', 'materials': '', @@ -60757,7 +60758,7 @@

Monster Sheet specific

'range': '100 yards', 'duration': '[[@{level-priest}]] days', 'aoe': '50 creatures', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -60776,7 +60777,7 @@

Monster Sheet specific

'range': '0', 'duration': '1 day', 'aoe': '1,000 square yards', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60795,7 +60796,7 @@

Monster Sheet specific

'range': '0', 'duration': 'Special', 'aoe': 'The caster', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60814,7 +60815,7 @@

Monster Sheet specific

'range': '120 yards', 'duration': 'Special', 'aoe': 'One or more creatures', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Negate', 'materials': '', @@ -60833,7 +60834,7 @@

Monster Sheet specific

'range': '240 yards', 'duration': '1 day', 'aoe': '[[200*[[@{level-priest}]] ]]-foot cube', - 'components': '', + 'components': 'V, S', 'cast-time': '2 turns', 'saving-throw': 'Special', 'materials': '', @@ -60852,7 +60853,7 @@

Monster Sheet specific

'range': '0', 'duration': '12 turns', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': 'Special', 'saving-throw': 'Special', 'materials': '', @@ -60871,7 +60872,7 @@

Monster Sheet specific

'range': 'Touch', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '5 rounds', 'saving-throw': 'Negate', 'materials': '', @@ -60890,7 +60891,7 @@

Monster Sheet specific

'range': '480 yards', 'duration': 'Special', 'aoe': 'One structure', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60909,7 +60910,7 @@

Monster Sheet specific

'range': 'Special', 'duration': '1 day', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60928,7 +60929,7 @@

Monster Sheet specific

'range': '0', 'duration': 'Instantaneous', 'aoe': '10-foot-radius sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1', 'saving-throw': 'None', 'materials': '', @@ -60947,7 +60948,7 @@

Monster Sheet specific

'range': 'Touch', 'duration': '1 hour', 'aoe': 'One robe', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -60966,7 +60967,7 @@

Monster Sheet specific

'range': '480 yards', 'duration': 'Special', 'aoe': 'One building', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -60985,7 +60986,7 @@

Monster Sheet specific

'range': '120 yards', 'duration': 'Instantaneous', 'aoe': '40-yard radius', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': '½', 'materials': '', @@ -61004,7 +61005,7 @@

Monster Sheet specific

'range': '0', 'duration': '6 turns', 'aoe': '10-foot-radius sphere', - 'components': '', + 'components': 'V, S', 'cast-time': 'Special', 'saving-throw': 'None', 'materials': '', @@ -61023,7 +61024,7 @@

Monster Sheet specific

'range': '0', 'duration': '6 turns', 'aoe': '50-foot-diameter sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Special', 'materials': '', @@ -61042,7 +61043,7 @@

Monster Sheet specific

'range': '30 yards', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -61061,7 +61062,7 @@

Monster Sheet specific

'range': '400 yards', 'duration': '1 turn', 'aoe': '120-yard radius circle', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'Special', 'materials': '', @@ -61080,7 +61081,7 @@

Monster Sheet specific

'range': '0', 'duration': '3 turns', 'aoe': '100-yard-radius sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -61099,7 +61100,7 @@

Monster Sheet specific

'range': '1 mile', 'duration': 'Special', 'aoe': '100-yard square/level', - 'components': '', + 'components': 'V, S', 'cast-time': '2 rounds', 'saving-throw': 'None', 'materials': '', @@ -61118,7 +61119,7 @@

Monster Sheet specific

'range': '240 yards', 'duration': 'Special', 'aoe': '200 creatures', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Negate', 'materials': '', @@ -61137,7 +61138,7 @@

Monster Sheet specific

'range': 'Special', 'duration': '60 days', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '6 turns', 'saving-throw': 'None', 'materials': '', @@ -61156,7 +61157,7 @@

Monster Sheet specific

'range': '30 yards', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '2 turns', 'saving-throw': 'None', 'materials': '', diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 17e33f91a0db..725c4b88c0dc 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -6,6 +6,7 @@

Changes in

  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • +
  • Added V, S components to all Quest spells from Tome of Magic

diff --git a/ADnD_2E_Revised/javascript/priestSpells.js b/ADnD_2E_Revised/javascript/priestSpells.js index bc4538e394f8..a27883a75dd8 100644 --- a/ADnD_2E_Revised/javascript/priestSpells.js +++ b/ADnD_2E_Revised/javascript/priestSpells.js @@ -6081,7 +6081,7 @@ priq['Abundance'] = { 'range': '0', 'duration': 'Permanent', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6100,7 +6100,7 @@ priq['Animal Horde'] = { 'range': '0', 'duration': '1 day', 'aoe': '10-mile radius', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6119,7 +6119,7 @@ priq['Circle of Sunmotes'] = { 'range': '200 yards', 'duration': '3 turns', 'aoe': '60-foot-radius hemisphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -6138,7 +6138,7 @@ priq['Conformance'] = { 'range': '0', 'duration': '6 turns', 'aoe': '80-foot-diameter sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -6157,7 +6157,7 @@ priq['Elemental Swarm'] = { 'range': '240 yards', 'duration': '6 turns', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '3 turns', 'saving-throw': 'None', 'materials': '', @@ -6176,7 +6176,7 @@ priq['Etherwalk'] = { 'range': 'Special', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '5 rounds', 'saving-throw': 'Negate', 'materials': '', @@ -6195,7 +6195,7 @@ priq['Fear Contagion'] = { 'range': '240 yards', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Special', 'materials': '', @@ -6214,7 +6214,7 @@ priq['Health Blessing'] = { 'range': '100 yards', 'duration': '[[@{level-priest}]] days', 'aoe': '50 creatures', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -6233,7 +6233,7 @@ priq['Highway'] = { 'range': '0', 'duration': '1 day', 'aoe': '1,000 square yards', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6252,7 +6252,7 @@ priq['Imago Interrogation'] = { 'range': '0', 'duration': 'Special', 'aoe': 'The caster', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6271,7 +6271,7 @@ priq['Implosion/Inversion'] = { 'range': '120 yards', 'duration': 'Special', 'aoe': 'One or more creatures', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Negate', 'materials': '', @@ -6290,7 +6290,7 @@ priq['Interdiction'] = { 'range': '240 yards', 'duration': '1 day', 'aoe': '[[200*[[@{level-priest}]] ]]-foot cube', - 'components': '', + 'components': 'V, S', 'cast-time': '2 turns', 'saving-throw': 'Special', 'materials': '', @@ -6309,7 +6309,7 @@ priq['Mindnet'] = { 'range': '0', 'duration': '12 turns', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': 'Special', 'saving-throw': 'Special', 'materials': '', @@ -6328,7 +6328,7 @@ priq['Planar Quest'] = { 'range': 'Touch', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '5 rounds', 'saving-throw': 'Negate', 'materials': '', @@ -6347,7 +6347,7 @@ priq['Preservation'] = { 'range': '480 yards', 'duration': 'Special', 'aoe': 'One structure', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6366,7 +6366,7 @@ priq['Revelation'] = { 'range': 'Special', 'duration': '1 day', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6385,7 +6385,7 @@ priq['Reversion'] = { 'range': '0', 'duration': 'Instantaneous', 'aoe': '10-foot-radius sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1', 'saving-throw': 'None', 'materials': '', @@ -6404,7 +6404,7 @@ priq['Robe of Healing'] = { 'range': 'Touch', 'duration': '1 hour', 'aoe': 'One robe', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -6423,7 +6423,7 @@ priq['Siege Wall'] = { 'range': '480 yards', 'duration': 'Special', 'aoe': 'One building', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'None', 'materials': '', @@ -6442,7 +6442,7 @@ priq['Shooting Stars'] = { 'range': '120 yards', 'duration': 'Instantaneous', 'aoe': '40-yard radius', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': '½', 'materials': '', @@ -6461,7 +6461,7 @@ priq['Sphere of Security'] = { 'range': '0', 'duration': '6 turns', 'aoe': '10-foot-radius sphere', - 'components': '', + 'components': 'V, S', 'cast-time': 'Special', 'saving-throw': 'None', 'materials': '', @@ -6480,7 +6480,7 @@ priq['Spiral of Degeneration'] = { 'range': '0', 'duration': '6 turns', 'aoe': '50-foot-diameter sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Special', 'materials': '', @@ -6499,7 +6499,7 @@ priq['Stalker'] = { 'range': '30 yards', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -6518,7 +6518,7 @@ priq['Storm of Vengeance'] = { 'range': '400 yards', 'duration': '1 turn', 'aoe': '120-yard radius circle', - 'components': '', + 'components': 'V, S', 'cast-time': '1 turn', 'saving-throw': 'Special', 'materials': '', @@ -6537,7 +6537,7 @@ priq['Transformation'] = { 'range': '0', 'duration': '3 turns', 'aoe': '100-yard-radius sphere', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'None', 'materials': '', @@ -6556,7 +6556,7 @@ priq['Undead Plague'] = { 'range': '1 mile', 'duration': 'Special', 'aoe': '100-yard square/level', - 'components': '', + 'components': 'V, S', 'cast-time': '2 rounds', 'saving-throw': 'None', 'materials': '', @@ -6575,7 +6575,7 @@ priq['Warband Quest'] = { 'range': '240 yards', 'duration': 'Special', 'aoe': '200 creatures', - 'components': '', + 'components': 'V, S', 'cast-time': '1 round', 'saving-throw': 'Negate', 'materials': '', @@ -6594,7 +6594,7 @@ priq['Ward Matrix'] = { 'range': 'Special', 'duration': '60 days', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '6 turns', 'saving-throw': 'None', 'materials': '', @@ -6613,7 +6613,7 @@ priq['Wolf Spirits'] = { 'range': '30 yards', 'duration': 'Special', 'aoe': 'Special', - 'components': '', + 'components': 'V, S', 'cast-time': '2 turns', 'saving-throw': 'None', 'materials': '', From b443abbfd3c06c98c6792d4c39f7d5cc4ea3ce08 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Fri, 28 Apr 2023 19:39:43 +0200 Subject: [PATCH 04/51] A bit of clean up --- ADnD_2E_Revised/2ESheet.html | 5 ++--- ADnD_2E_Revised/html/changelog.html | 3 +-- .../character-info-tab/character-info-tracker-tab.html | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index b3366d47767a..3a9d0c5bbf72 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -11,13 +11,12 @@

Changes in

  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • -
  • Added V, S components to all Quest spells from Tome of Magic
  • +
  • Added V, S components to all Quest spells from Tome of Magic p. 12

If you want to help improve the sheet, you can go and vote for these suggestions on the Roll20 forum! With these I could make the sheet even better! :)

    -
  • https://app.roll20.net/forum/post/10709362/extend-roll20-jquery-to-allow-toggling-of-the-disabled-tag
  • https://app.roll20.net/forum/post/4922089/gmrolls-that-are-hidden-even-from-the-player-that-makes-the-roll

@@ -876,7 +875,7 @@

Save and Magic Resistance Details:

  • Defense Adjustment from Dexterity affects saving throws against attacks that can be dodged, like lightning bolt. (PHB p. 20, DMG p. 93)
  • Magical Defense Adjustment from Wisdom only affects spells that attack the Mind such as: beguiling, charm, fear, hypnosis, illusions, possession, suggestion, etc. (PHB p. 23, DMG p. 93)
  • Psionicists gain a +2 bonus on all saving throws vs. enchantment/charm spells and the like. (The Complete Psionics Handbook p. 14)
  • -
  • Magical Armor gives bonus to saving throws vs something physical. Magical armor never gives a saving throw bonus against gas (which it cannot block), poison (which operates internally), and spells that are mental or that cause no physical damage. (DMG p. 93)"
  • +
  • Magical Armor gives bonus to saving throws vs something physical. Magical armor never gives a saving throw bonus against gas (which it cannot block), poison (which operates internally), and spells that are mental or that cause no physical damage. (DMG p. 93)

  • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 725c4b88c0dc..4b587615ebc4 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -6,13 +6,12 @@

    Changes in

    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
    • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
    • -
    • Added V, S components to all Quest spells from Tome of Magic
    • +
    • Added V, S components to all Quest spells from Tome of Magic p. 12

    If you want to help improve the sheet, you can go and vote for these suggestions on the Roll20 forum! With these I could make the sheet even better! :)

      -
    • https://app.roll20.net/forum/post/10709362/extend-roll20-jquery-to-allow-toggling-of-the-disabled-tag
    • https://app.roll20.net/forum/post/4922089/gmrolls-that-are-hidden-even-from-the-player-that-makes-the-roll

    diff --git a/ADnD_2E_Revised/html/tabs/character-tab/character-info-tab/character-info-tracker-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/character-info-tab/character-info-tracker-tab.html index ed570a8a9be7..e53eb65bf787 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/character-info-tab/character-info-tracker-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/character-info-tab/character-info-tracker-tab.html @@ -642,7 +642,7 @@

    Save and Magic Resistance Details:

  • Defense Adjustment from Dexterity affects saving throws against attacks that can be dodged, like lightning bolt. (PHB p. 20, DMG p. 93)
  • Magical Defense Adjustment from Wisdom only affects spells that attack the Mind such as: beguiling, charm, fear, hypnosis, illusions, possession, suggestion, etc. (PHB p. 23, DMG p. 93)
  • Psionicists gain a +2 bonus on all saving throws vs. enchantment/charm spells and the like. (The Complete Psionics Handbook p. 14)
  • -
  • Magical Armor gives bonus to saving throws vs something physical. Magical armor never gives a saving throw bonus against gas (which it cannot block), poison (which operates internally), and spells that are mental or that cause no physical damage. (DMG p. 93)"
  • +
  • Magical Armor gives bonus to saving throws vs something physical. Magical armor never gives a saving throw bonus against gas (which it cannot block), poison (which operates internally), and spells that are mental or that cause no physical damage. (DMG p. 93)

  • From 6445704678138cbb531a5c447c34b27aac4ffcec Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 16 May 2023 15:14:24 +0200 Subject: [PATCH 05/51] Updated scroll spell casting notes --- ADnD_2E_Revised/2ESheet.html | 77 ++++++++++++++----- ADnD_2E_Revised/html/changelog.html | 1 + .../spells-tab/casting-from-scrolls.html | 38 ++++++--- 3 files changed, 89 insertions(+), 27 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 3a9d0c5bbf72..e3a6a63609b9 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -12,6 +12,7 @@

    Changes in

  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • Added V, S components to all Quest spells from Tome of Magic p. 12
  • +
  • Updated casting spells from scroll notes

  • @@ -11431,22 +11432,42 @@

    Powers List

  • Priest holy symbols are not lost when a spell is cast (PHB p. 114)
  • Casting from Scrolls
      -
    • Wizards can use (read and cast from) wizard scrolls (PHB p. 42 / DMG p. 196)
    • -
    • Priest can use (read and cast from) priest scrolls (PHB p. 48 / DMG p. 196) +
    • All classes can read and cast Protection Scrolls (DMG p. 196)
      + Protection Scrolls, unless stated otherwise, have a Initiative Modifier of +3 (Sage Advice #152 p. 59) +
    • +
    • Classes
        -
      • Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)
      • -
      • Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)
      • -
      • Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)
      • +
      • Wizards can use (read and cast from) wizard spell scrolls (PHB p. 42 / DMG p. 196)
        + Wizards can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81) + Wizards can use spells from scrolls without any (Sage Advice #219. p. 81) +
      • +
      • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
        + Priests can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) + Priests can use spells from scrolls without any (Sage Advice #219. p. 81) +
      • +
      • Thieves can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 57)
      • +
      • Bards can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 61)
      • +
      • Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)
      • +
      • Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)
      • +
      • Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)
    • -
    • 10th level Thieves can cast spells from scrolls with a 25% failure rate (PHB p. 57-58)
    • -
    • 10th level Bards can cast spells from scrolls with a 15% failure rate (PHB p. 61)
    • -
    • All classes can read and cast Protection Scrolls (DMG p. 196)
    • Scrolls have a read time equal to the inscribed spell's cast time (PHB p. 125 / DMG p. 196)
    • Scrolls are cast at the level at which they were inscribed (DMG p. 196)
    • -
    • Casting scrolls containing spells of a higher level than spell-user can cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)
    • Scrolls require no material components to cast (PHB p. 144 / DMG p. 118)
    • No adverse effects associated with casting the spell are suffered by the reader. These requirements or penalties have already been fulfilled or suffered by the creator of the scroll (DMG p. 196)
    • +
    • Scroll Spell Failure +
        +
      • Wizards and Priests casting scrolls containing spells of a level too high for him to cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)
        + Wizards and Priests scroll spell failure is either Total Failure (nothing happens) or Reverse / Harmful Failure effect (DMG p. 196) +
      • +
      • Thieves casting scrolls have 25% failure chance. Failure is always a reverse of the effect (PHB p. 58)
      • +
      • Bards casting scrolls have 15% failure chance. Failure is always a reverse of the effect (PHB p. 61)
      • +
      • Dual/Multi-class thieves/mages uses the best failure chance. Failure follows the rules of the class the chance belongs to (Sage Advice #260 p. 23)
      • +
      +
  • @@ -13406,22 +13427,42 @@

    Scrolls

    Casting from Scrolls
      -
    • Wizards can use (read and cast from) wizard scrolls (PHB p. 42 / DMG p. 196)
    • -
    • Priest can use (read and cast from) priest scrolls (PHB p. 48 / DMG p. 196) +
    • All classes can read and cast Protection Scrolls (DMG p. 196)
      + Protection Scrolls, unless stated otherwise, have a Initiative Modifier of +3 (Sage Advice #152 p. 59) +
    • +
    • Classes
        -
      • Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)
      • -
      • Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)
      • -
      • Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)
      • +
      • Wizards can use (read and cast from) wizard spell scrolls (PHB p. 42 / DMG p. 196)
        + Wizards can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81) + Wizards can use spells from scrolls without any (Sage Advice #219. p. 81) +
      • +
      • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
        + Priests can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) + Priests can use spells from scrolls without any (Sage Advice #219. p. 81) +
      • +
      • Thieves can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 57)
      • +
      • Bards can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 61)
      • +
      • Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)
      • +
      • Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)
      • +
      • Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)
    • -
    • 10th level Thieves can cast spells from scrolls with a 25% failure rate (PHB p. 57-58)
    • -
    • 10th level Bards can cast spells from scrolls with a 15% failure rate (PHB p. 61)
    • -
    • All classes can read and cast Protection Scrolls (DMG p. 196)
    • Scrolls have a read time equal to the inscribed spell's cast time (PHB p. 125 / DMG p. 196)
    • Scrolls are cast at the level at which they were inscribed (DMG p. 196)
    • -
    • Casting scrolls containing spells of a higher level than spell-user can cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)
    • Scrolls require no material components to cast (PHB p. 144 / DMG p. 118)
    • No adverse effects associated with casting the spell are suffered by the reader. These requirements or penalties have already been fulfilled or suffered by the creator of the scroll (DMG p. 196)
    • +
    • Scroll Spell Failure +
        +
      • Wizards and Priests casting scrolls containing spells of a level too high for him to cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)
        + Wizards and Priests scroll spell failure is either Total Failure (nothing happens) or Reverse / Harmful Failure effect (DMG p. 196) +
      • +
      • Thieves casting scrolls have 25% failure chance. Failure is always a reverse of the effect (PHB p. 58)
      • +
      • Bards casting scrolls have 15% failure chance. Failure is always a reverse of the effect (PHB p. 61)
      • +
      • Dual/Multi-class thieves/mages uses the best failure chance. Failure follows the rules of the class the chance belongs to (Sage Advice #260 p. 23)
      • +
      +
    diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 4b587615ebc4..db3b891c2314 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -7,6 +7,7 @@

    Changes in

  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • Added V, S components to all Quest spells from Tome of Magic p. 12
  • +
  • Updated casting spells from scroll notes

  • diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html index 441245344b3a..13cb7198c118 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html @@ -1,18 +1,38 @@

      -
    • Wizards can use (read and cast from) wizard scrolls (PHB p. 42 / DMG p. 196)
    • -
    • Priest can use (read and cast from) priest scrolls (PHB p. 48 / DMG p. 196) +
    • All classes can read and cast Protection Scrolls (DMG p. 196)
      + Protection Scrolls, unless stated otherwise, have a Initiative Modifier of +3 (Sage Advice #152 p. 59) +
    • +
    • Classes
        -
      • Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)
      • -
      • Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)
      • -
      • Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)
      • +
      • Wizards can use (read and cast from) wizard spell scrolls (PHB p. 42 / DMG p. 196)
        + Wizards can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81) + Wizards can use spells from scrolls without any (Sage Advice #219. p. 81) +
      • +
      • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
        + Priests can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) + Priests can use spells from scrolls without any (Sage Advice #219. p. 81) +
      • +
      • Thieves can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 57)
      • +
      • Bards can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 61)
      • +
      • Druids cannot use priest scrolls unless specifically allowed for druids (PHB p. 52)
      • +
      • Paladins cannot cast spells from clerical or druidical scrolls (PHB p. 39 / DMG p. 196)
      • +
      • Rangers cannot use priest scrolls (PHB p. 39 / DMG p. 196)
    • -
    • 10th level Thieves can cast spells from scrolls with a 25% failure rate (PHB p. 57-58)
    • -
    • 10th level Bards can cast spells from scrolls with a 15% failure rate (PHB p. 61)
    • -
    • All classes can read and cast Protection Scrolls (DMG p. 196)
    • Scrolls have a read time equal to the inscribed spell's cast time (PHB p. 125 / DMG p. 196)
    • Scrolls are cast at the level at which they were inscribed (DMG p. 196)
    • -
    • Casting scrolls containing spells of a higher level than spell-user can cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)
    • Scrolls require no material components to cast (PHB p. 144 / DMG p. 118)
    • No adverse effects associated with casting the spell are suffered by the reader. These requirements or penalties have already been fulfilled or suffered by the creator of the scroll (DMG p. 196)
    • +
    • Scroll Spell Failure +
        +
      • Wizards and Priests casting scrolls containing spells of a level too high for him to cast incurs a 5% failure rate per level between the character's present level and the level at which the spell could be cast (DMG p. 196)
        + Wizards and Priests scroll spell failure is either Total Failure (nothing happens) or Reverse / Harmful Failure effect (DMG p. 196) +
      • +
      • Thieves casting scrolls have 25% failure chance. Failure is always a reverse of the effect (PHB p. 58)
      • +
      • Bards casting scrolls have 15% failure chance. Failure is always a reverse of the effect (PHB p. 61)
      • +
      • Dual/Multi-class thieves/mages uses the best failure chance. Failure follows the rules of the class the chance belongs to (Sage Advice #260 p. 23)
      • +
      +
    \ No newline at end of file From 31c59e5bcf0c7c7c7d84be18955ee450701a6b4d Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Wed, 17 May 2023 08:38:22 +0200 Subject: [PATCH 06/51] Updated that spell books does not need read magic. Updated dwarven endurance to cost 0 points --- ADnD_2E_Revised/2ESheet.html | 4 +++- ADnD_2E_Revised/html/changelog.html | 3 ++- ADnD_2E_Revised/html/tabs/character-tab/spells-tab.html | 1 + ADnD_2E_Revised/javascript/nonweaponProficiencies.js | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index e3a6a63609b9..b8e89a5a48f6 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -12,7 +12,8 @@

    Changes in

  • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
  • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
  • Added V, S components to all Quest spells from Tome of Magic p. 12
  • -
  • Updated casting spells from scroll notes
  • +
  • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
  • +
  • Updated spell learning notes to make it clear that read magic is not need to read spell books

  • @@ -11483,6 +11484,7 @@

    Powers List

    Learning new spells
      +
    • Wizards do not need to cast read magic to decipher spell books. The language of magic is a universal language (Sage Advice #175 p. 77)
    • Wizard scrolls require a read magic spell to decipher (PHB p. 144)
    • A wizard cannot learn a spell that is higher level than he can cast (PHB p. 107)
    • A check is made to see if a spell can be learned. If it fails, another check can be made after the wizard advances to the next level (provided the wizard still has access to the spell) (PHB p. 22)
    • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index db3b891c2314..e763001ba10a 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -7,7 +7,8 @@

      Changes in

    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
    • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
    • Added V, S components to all Quest spells from Tome of Magic p. 12
    • -
    • Updated casting spells from scroll notes
    • +
    • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
    • +
    • Updated spell learning notes to make it clear that read magic is not need to read spell books

    diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab.html index a0e385cbebab..315ac4bf8751 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab.html @@ -42,6 +42,7 @@

    Spells

    Learning new spells
      +
    • Wizards do not need to cast read magic to decipher spell books. The language of magic is a universal language (Sage Advice #175 p. 77)
    • Wizard scrolls require a read magic spell to decipher (PHB p. 144)
    • A wizard cannot learn a spell that is higher level than he can cast (PHB p. 107)
    • A check is made to see if a spell can be learned. If it fails, another check can be made after the wizard advances to the next level (provided the wizard still has access to the spell) (PHB p. 22)
    • diff --git a/ADnD_2E_Revised/javascript/nonweaponProficiencies.js b/ADnD_2E_Revised/javascript/nonweaponProficiencies.js index e1f26aab14ff..d2e0690f5b69 100644 --- a/ADnD_2E_Revised/javascript/nonweaponProficiencies.js +++ b/ADnD_2E_Revised/javascript/nonweaponProficiencies.js @@ -719,7 +719,7 @@ NONWEAPON_PROFICIENCIES_TABLE['Dwarf Runes (Dwarf)'].push({ }); NONWEAPON_PROFICIENCIES_TABLE['Endurance (Dwarf)'] = []; NONWEAPON_PROFICIENCIES_TABLE['Endurance (Dwarf)'].push({ - 'slots': 1, + 'slots': 0, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': '', From dfadf4fb1a39982b0a2395744305917f88847fe5 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 18 May 2023 20:55:10 +0200 Subject: [PATCH 07/51] Spelling errors --- ADnD_2E_Revised/2ESheet.html | 10 +++++----- .../html/tabs/character-tab/equipment-tab.html | 4 ++-- .../character-tab/spells-tab/casting-from-scrolls.html | 2 +- .../misc/nonweapon-proficiencies-overview.html | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index b8e89a5a48f6..4578da11b75d 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -11444,7 +11444,7 @@

      Powers List

      Wizards can use spells from scrolls without any (Sage Advice #219. p. 81)
    • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
      - Priests can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
      + Priests can use spells from scrolls outside their spheres (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
      Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) Priests can use spells from scrolls without any (Sage Advice #219. p. 81)
    • @@ -13357,11 +13357,11 @@

      Potions, Philters, Elixirs, and Poisons

      Potion info
        -
      • Potion simple initiaive modifer: +4, unless stated otherwise (PHB p. 125 / DMG p. 79)
      • +
      • Potion simple initiative modifier: +4, unless stated otherwise (PHB p. 125 / DMG p. 79)
      • Potion detailed initiative modifier (DMG p. 191):
        • Potion open and drink: +1
        • -
        • Potion takes effect after: 1d4+1 initiative modifer delay
        • +
        • Potion takes effect after: 1d4+1 initiative modifier delay
        • Magical oil poured over the body and smeared: 1d4+1
      • @@ -13440,7 +13440,7 @@

        Scrolls

        Wizards can use spells from scrolls without any (Sage Advice #219. p. 81)
      • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
        - Priests can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        + Priests can use spells from scrolls outside their spheres (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) Priests can use spells from scrolls without any (Sage Advice #219. p. 81)
      • @@ -43342,7 +43342,7 @@

        Monster Sheet specific

        }); NONWEAPON_PROFICIENCIES_TABLE['Endurance (Dwarf)'] = []; NONWEAPON_PROFICIENCIES_TABLE['Endurance (Dwarf)'].push({ - 'slots': 1, + 'slots': 0, 'abilityScore': '@{Constitution}', 'modifier': 0, 'classes': '', diff --git a/ADnD_2E_Revised/html/tabs/character-tab/equipment-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/equipment-tab.html index 9b06836cb5a6..4e7b49b286d3 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/equipment-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/equipment-tab.html @@ -402,11 +402,11 @@

        Potions, Philters, Elixirs, and Poisons

        Potion info
          -
        • Potion simple initiaive modifer: +4, unless stated otherwise (PHB p. 125 / DMG p. 79)
        • +
        • Potion simple initiative modifier: +4, unless stated otherwise (PHB p. 125 / DMG p. 79)
        • Potion detailed initiative modifier (DMG p. 191):
          • Potion open and drink: +1
          • -
          • Potion takes effect after: 1d4+1 initiative modifer delay
          • +
          • Potion takes effect after: 1d4+1 initiative modifier delay
          • Magical oil poured over the body and smeared: 1d4+1
        • diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html index 13cb7198c118..ea81e3e8d84a 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html @@ -10,7 +10,7 @@ Wizards can use spells from scrolls without any (Sage Advice #219. p. 81)
        • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
          - Priests can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
          + Priests can use spells from scrolls outside their spheres (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
          Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) Priests can use spells from scrolls without any (Sage Advice #219. p. 81)
        • diff --git a/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html b/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html index d4ad6d8f8ba8..b6636b35ede0 100644 --- a/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html +++ b/ADnD_2E_Revised/misc/nonweapon-proficiencies-overview.html @@ -929,7 +929,7 @@ Endurance (Dwarf) - 1 + 0 @{Constitution} 0 From 74b89c40ba7d8ed8fb21ae8450d60c79e0e5fe86 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 22 May 2023 09:57:05 +0200 Subject: [PATCH 08/51] Added sphere of influence from ToM to paladin, rangers, and druids --- ADnD_2E_Revised/2ESheet.html | 26 ++++++++++++++++--- ADnD_2E_Revised/html/changelog.html | 1 + .../html/components/datalists.html | 12 +++++++-- .../character-tab/spells-tab/priest-tab.html | 8 ++++++ 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 4578da11b75d..d95200bfda5e 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2690,7 +2690,7 @@

          Standard


          Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever

          -

          Thieves using the disguise nonweapon proficiency also should be permitted to wear armor not normally used by their class, to aid the deception

          +

          Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception

          @@ -2917,6 +2917,10 @@

          Standard

          Skills
        +
        + Ranger Armor information +

        The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather (AC 7) or lighter armor.

        +

    Skills & Powers / Dark Sun

    @@ -8737,6 +8741,14 @@

    Spell Levels

    +
    + Tome of Magic sphere suggestions +
      +
    • Paladins suggested to receive spells from the sphere of Law. Sage Advice #207 p. 69
    • +
    • Rangers suggested receive spells from the sphere of Travelers. Sage Advice #207 p. 69
    • +
    • Druids suggested to receive Major access to Time and Wards. Minor access to Travelers. Sage Advice #201 p. 45
    • +
    +

    @@ -21765,10 +21777,12 @@

    Monster Sheet specific

    + - + + @@ -21796,10 +21810,12 @@

    Monster Sheet specific

    + - + + @@ -21828,9 +21844,11 @@

    Monster Sheet specific

    + + @@ -21858,9 +21876,11 @@

    Monster Sheet specific

    + + diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index e763001ba10a..1cf5a774234b 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -9,6 +9,7 @@

    Changes in

  • Added V, S components to all Quest spells from Tome of Magic p. 12
  • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
  • Updated spell learning notes to make it clear that read magic is not need to read spell books
  • +
  • Added new Tome of Magic sphere suggestion to Paladins, Rangers, and Druids sphere of influence

  • diff --git a/ADnD_2E_Revised/html/components/datalists.html b/ADnD_2E_Revised/html/components/datalists.html index 45be5f3993e1..73e20136c99f 100644 --- a/ADnD_2E_Revised/html/components/datalists.html +++ b/ADnD_2E_Revised/html/components/datalists.html @@ -265,10 +265,12 @@ + - + + @@ -296,10 +298,12 @@ + - + + @@ -328,9 +332,11 @@ + + @@ -358,9 +364,11 @@ + + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html index 7d3f644e7fb3..863cc6dc17bd 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html @@ -38,6 +38,14 @@

    Spell Levels

    +
    + Tome of Magic sphere suggestions +
      +
    • Paladins suggested to receive spells from the sphere of Law. Sage Advice #207 p. 69
    • +
    • Rangers suggested receive spells from the sphere of Travelers. Sage Advice #207 p. 69
    • +
    • Druids suggested to receive Major access to Time and Wards. Minor access to Travelers. Sage Advice #201 p. 45
    • +
    +

    From 6a25c0f54b4126f60e5964619af93782f7988121 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 22 May 2023 10:05:05 +0200 Subject: [PATCH 09/51] Added level scaling for paladins and rangers --- ADnD_2E_Revised/2ESheet.html | 16 +++++++++++++--- ADnD_2E_Revised/html/components/datalists.html | 11 ++++++++++- .../character-tab/spells-tab/priest-tab.html | 2 +- .../character-tab/spells-tab/wizard-tab.html | 2 +- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index d95200bfda5e..63039b8f5e29 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -14,6 +14,7 @@

    Changes in

  • Added V, S components to all Quest spells from Tome of Magic p. 12
  • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
  • Updated spell learning notes to make it clear that read magic is not need to read spell books
  • +
  • Added new Tome of Magic sphere suggestion to Paladins, Rangers, and Druids sphere of influence

  • @@ -3887,7 +3888,7 @@

    Spell Levels

    Wizard caster level - +
    @@ -8719,7 +8720,7 @@

    Spell Levels

    Priest caster level - +
    @@ -21608,13 +21609,22 @@

    Monster Sheet specific

    - + + + + + + + + + + diff --git a/ADnD_2E_Revised/html/components/datalists.html b/ADnD_2E_Revised/html/components/datalists.html index 73e20136c99f..f35e057b7bcc 100644 --- a/ADnD_2E_Revised/html/components/datalists.html +++ b/ADnD_2E_Revised/html/components/datalists.html @@ -96,13 +96,22 @@ - + + + + + + + + + + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html index 863cc6dc17bd..22cc87a9088d 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html @@ -16,7 +16,7 @@

    Spell Levels

    Priest caster level - +
    diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/wizard-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/wizard-tab.html index bbed76a9eec4..85038bbcbd8f 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/wizard-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/wizard-tab.html @@ -24,7 +24,7 @@

    Spell Levels

    Wizard caster level - +
    From d9becae0a83e6eee64a44e909a58157b715b8720 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 22 May 2023 10:58:26 +0200 Subject: [PATCH 10/51] Added ranger skills amor adjustment tables. Luckily all these tables align with each other. For once TSR have been consistent with their writing! Haaliluja! --- ADnD_2E_Revised/2ESheet.html | 122 +++++++++++++++++- ADnD_2E_Revised/html/changelog.html | 3 + .../html/components/datalists.html | 6 +- .../html/tabs/character-tab/rogue-tab.html | 115 ++++++++++++++++- 4 files changed, 235 insertions(+), 11 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 63039b8f5e29..7261a78585de 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -15,6 +15,9 @@

    Changes in

  • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
  • Updated spell learning notes to make it clear that read magic is not need to read spell books
  • Added new Tome of Magic sphere suggestion to Paladins, Rangers, and Druids sphere of influence
  • +
  • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
  • +
  • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
  • +
  • Added Ranger skills (Hide in shadows, move silently) armor adjustments notes. Also added ranger to the allowed armors for the rogue armor autofill

  • @@ -2690,8 +2693,10 @@

    Standard


    -

    Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever

    -

    Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception

    +

    + Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    + Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception. +

    @@ -2920,7 +2925,112 @@

    Standard

    Ranger Armor information -

    The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather (AC 7) or lighter armor.

    +

    + The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather or lighter armor. (PHB p. 40). + This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7).
    + The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types. +

    + Ranger Skill Armor Adjustments +
    Skills
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%
    Leather
    Padded-20%-20%
    Studded Leather-20%-20%
    Ring Mail-30%-40%
    +
    +

    + If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, + or to use a ranger kit that allows for for heavier armor of AC 6 or less. Use the following modifiers. +

    + Ranger Skills Optional Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    Hide-20%-30%
    Brigandine-30%-40%
    Scale Mail-50%-60%
    Chain Mail-30%-40%
    Elven Chain-10%-10%
    Splint Mail-30%-40%
    Banded-50%-60%
    Bronze Plate-75%-80%
    Plate Mail-75%-80%
    Field Plate-95%-95%
    Full Plate-95%-95%
    @@ -21652,11 +21762,11 @@

    Monster Sheet specific

    - - + + - + diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 1cf5a774234b..360d9e6360f9 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -10,6 +10,9 @@

    Changes in

  • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
  • Updated spell learning notes to make it clear that read magic is not need to read spell books
  • Added new Tome of Magic sphere suggestion to Paladins, Rangers, and Druids sphere of influence
  • +
  • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
  • +
  • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
  • +
  • Added Ranger skills (Hide in shadows, move silently) armor adjustments notes. Also added ranger to the allowed armors for the rogue armor autofill

  • diff --git a/ADnD_2E_Revised/html/components/datalists.html b/ADnD_2E_Revised/html/components/datalists.html index f35e057b7bcc..11e6c6650ce4 100644 --- a/ADnD_2E_Revised/html/components/datalists.html +++ b/ADnD_2E_Revised/html/components/datalists.html @@ -139,11 +139,11 @@ - - + + - + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 905d23ae6208..6f5d153d8ac5 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -313,8 +313,10 @@

    Standard


    -

    Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever

    -

    Thieves using the disguise nonweapon proficiency also should be permitted to wear armor not normally used by their class, to aid the deception

    +

    + Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    + Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception. +

    @@ -541,6 +543,115 @@

    Standard

    Skills
    +
    + Ranger Armor information +

    + The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather or lighter armor. (PHB p. 40). + This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7).
    + The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types. +

    + Ranger Skill Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%
    Leather
    Padded-20%-20%
    Studded Leather-20%-20%
    Ring Mail-30%-40%
    +
    +

    + If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, + or to use a ranger kit that allows for for heavier armor of AC 6 or less. Use the following modifiers. +

    + Ranger Skills Optional Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    Hide-20%-30%
    Brigandine-30%-40%
    Scale Mail-50%-60%
    Chain Mail-30%-40%
    Elven Chain-10%-10%
    Splint Mail-30%-40%
    Banded-50%-60%
    Bronze Plate-75%-80%
    Plate Mail-75%-80%
    Field Plate-95%-95%
    Full Plate-95%-95%
    +

    Skills & Powers / Dark Sun

    From 95a29e0f009cc8df29ee04b9646ac3c2eecaf022 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 25 May 2023 11:43:18 +0200 Subject: [PATCH 11/51] Updated design of rogue skills --- ADnD_2E_Revised/2ESheet.html | 384 +++++++++--------- ADnD_2E_Revised/html/changelog.html | 3 + .../html/components/datalists.html | 4 + .../html/tabs/character-tab/rogue-tab.html | 296 ++++++-------- ADnD_2E_Revised/javascript/rogueArmor.js | 58 ++- ADnD_2E_Revised/javascript/sheetWorkers.js | 23 +- 6 files changed, 364 insertions(+), 404 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 7261a78585de..ddc75df5094e 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -18,6 +18,9 @@

    Changes in

  • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
  • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
  • Added Ranger skills (Hide in shadows, move silently) armor adjustments notes. Also added ranger to the allowed armors for the rogue armor autofill
  • +
  • Added %-sign to the roll template for Thieving skills
  • +
  • Redesigned Rogue skills to only have a single button for using the skill
  • +
  • Added additional context to Rogue skills when success or failure happens

  • @@ -2397,11 +2400,16 @@

    Standard

    - - - - - + + + + @@ -2409,216 +2417,160 @@

    Standard

    + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + +
    Leather ArmorNo ArmorHeavy ArmorRemaining: + + + + + +
    Skill Race Dex KitArmor Magic LevelTotalBonusTotalPenalty Total - - -
    Pick Pockets%%%%%%%%%%%%%%%%%%%
    Open Locks%%%%%%%%%%%%%%%%%%% + + +
    Find/Remove Traps%%%%%%%%%%%%%%%%%%% + + +
    Move Silently%%%%%%%%%%%
    %%%%%%%% + + +
    Hide in Shadows%%%%%%%%%%%%%%%%%%% + + +
    Detect Noise%%%%%%%%%%%%%%%%%%% + + +
    Climb Walls%%%%%%%%%%%%%%%%%%%
    Read Languages%%%%%%%%%%%%%%%%%%%
    Legend Lore%%%%%%%%%%%%%%%%%%%
    - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + + + + + + + + +
    Leather ArmorNo ArmorHeavy Armor
    Find/Remove TrapsBaseRaceDexKitMagicLevelTotalBonusTotalPenaltyTotal
    %%%%%%%%%%%%%%%%%%%
    @@ -3034,6 +2986,7 @@

    Standard

    +

    Skills & Powers / Dark Sun

    @@ -21762,6 +21715,8 @@

    Monster Sheet specific

    + + @@ -21784,6 +21739,8 @@

    Monster Sheet specific

    + + @@ -41996,9 +41953,27 @@

    Monster Sheet specific

    'category': ['Melee', 'Range'] }); //#endregion -const rogueArmor = {}; +const ROGUE_ARMOR = {}; // Thief armor -rogueArmor['Padded Armor'] = rogueArmor['Studded Leather'] = { +ROGUE_ARMOR['No Armor'] = { + 'Pick Pockets' : '5', + 'Open Locks' : '0', + 'Find/Remove Traps' : '0', + 'Move Silently' : '10', + 'Hide in Shadows' : '5', + 'Detect Noise' : '0', + 'Climb Walls' : '10', +} +ROGUE_ARMOR['Leather Armor'] = { + 'Pick Pockets' : '0', + 'Open Locks' : '0', + 'Find/Remove Traps' : '0', + 'Move Silently' : '0', + 'Hide in Shadows' : '0', + 'Detect Noise' : '0', + 'Climb Walls' : '0', +} +ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Pick Pockets' : '-30', 'Open Locks' : '-10', 'Find/Remove Traps': '-10', @@ -42007,7 +41982,7 @@

    Monster Sheet specific

    'Detect Noise' : '-10', 'Climb Walls' : '-30', }; -rogueArmor['Elven Chain Mail'] = { +ROGUE_ARMOR['Elven Chain Mail'] = { 'Pick Pockets' : '-20', 'Open Locks' : '-5', 'Find/Remove Traps': '-5', @@ -42016,38 +41991,46 @@

    Monster Sheet specific

    'Detect Noise' : '-5', 'Climb Walls' : '-20', }; -rogueArmor['Silenced Elven Chain Mail'] = { +ROGUE_ARMOR['Silenced Elven Chain Mail'] = { 'Pick Pockets' : '-25', 'Open Locks' : '-5', 'Find/Remove Traps': '-5', - 'Move Silently' : '', + 'Move Silently' : '0', 'Hide in Shadows' : '-10', - 'Detect Noise' : '', + 'Detect Noise' : '0', 'Climb Walls' : '-25', }; +// Bard/Ranger Armor +ROGUE_ARMOR['Ring Mail'] = { + 'Pick Pockets' : '-25', // Bard + 'Move Silently' : '-30', // Ranger + 'Hide in Shadows' : '-40', // Ranger + 'Detect Noise' : '-10', // Bard + 'Climb Walls' : '-25', // Bard +}; // Bard Armor -rogueArmor['Ring Mail'] = rogueArmor['Chain Mail'] = { +ROGUE_ARMOR['Chain Mail'] = { 'Pick Pockets' : '-25', 'Detect Noise' : '-10', 'Climb Walls' : '-25', }; -rogueArmor['Hide Armor'] = { +ROGUE_ARMOR['Hide Armor'] = { 'Pick Pockets' : '-30', 'Detect Noise' : '-5', 'Climb Walls' : '-30', }; -rogueArmor['Brigandine Armor'] = { +ROGUE_ARMOR['Brigandine Armor'] = { 'Pick Pockets' : '-20', 'Detect Noise' : '-10', 'Climb Walls' : '-25', }; -rogueArmor['Scale Mail'] = { +ROGUE_ARMOR['Scale Mail'] = { 'Pick Pockets' : '-25', 'Detect Noise' : '-15', 'Climb Walls' : '-40', }; // Disguise armor -rogueArmor['Hide Armor (Thief Disguise)'] = { +ROGUE_ARMOR['Hide Armor (Thief Disguise)'] = { 'Pick Pockets' : '-60', 'Open Locks' : '-50', 'Find/Remove Traps': '-50', @@ -42056,7 +42039,7 @@

    Monster Sheet specific

    'Detect Noise' : '-10', 'Climb Walls' : '-60', }; -rogueArmor['Ring Mail (Thief Disguise)'] = rogueArmor['Chain Mail (Thief Disguise)'] = { +ROGUE_ARMOR['Ring Mail (Thief Disguise)'] = ROGUE_ARMOR['Chain Mail (Thief Disguise)'] = { 'Pick Pockets' : '-40', 'Open Locks' : '-15', 'Find/Remove Traps': '-15', @@ -42065,7 +42048,7 @@

    Monster Sheet specific

    'Detect Noise' : '-20', 'Climb Walls' : '-40', }; -rogueArmor['Brigandine (Thief Disguise)'] = rogueArmor['Splint Mail (Disguise)'] = { +ROGUE_ARMOR['Brigandine (Thief Disguise)'] = ROGUE_ARMOR['Splint Mail (Disguise)'] = { 'Pick Pockets' : '-40', 'Open Locks' : '-15', 'Find/Remove Traps': '-25', @@ -42074,7 +42057,7 @@

    Monster Sheet specific

    'Detect Noise' : '-25', 'Climb Walls' : '-50', }; -rogueArmor['Scale Mail (Thief Disguise)'] = rogueArmor['Banded Armor (Disguise)'] = { +ROGUE_ARMOR['Scale Mail (Thief Disguise)'] = ROGUE_ARMOR['Banded Armor (Disguise)'] = { 'Pick Pockets' : '-50', 'Open Locks' : '-20', 'Find/Remove Traps': '-20', @@ -42083,7 +42066,7 @@

    Monster Sheet specific

    'Detect Noise' : '-30', 'Climb Walls' : '-90', }; -rogueArmor['Plate Mail (Disguise)'] = rogueArmor['Bronze Plate Mail (Disguise)'] = { +ROGUE_ARMOR['Plate Mail (Disguise)'] = ROGUE_ARMOR['Bronze Plate Mail (Disguise)'] = { 'Pick Pockets' : '-75', 'Open Locks' : '-40', 'Find/Remove Traps': '-40', @@ -42092,7 +42075,7 @@

    Monster Sheet specific

    'Detect Noise' : '-50', 'Climb Walls' : '-95', }; -rogueArmor['Field Plate (Disguise)'] = rogueArmor['Full Plate (Disguise)'] = { +ROGUE_ARMOR['Field Plate (Disguise)'] = ROGUE_ARMOR['Full Plate (Disguise)'] = { 'Pick Pockets' : '-95', 'Open Locks' : '-80', 'Find/Remove Traps': '-80', @@ -70173,12 +70156,9 @@

    Monster Sheet specific

    //#region Rogue skills // --- Start setup Rogue skills total --- // let rogueStandardSkills = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; -let rogueStandardColumns = ['b', 'r', 'd', 'k', 'm', 'l']; +let rogueStandardColumns = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; rogueStandardSkills.forEach(skill => { - setupStaticCalculateTotal(`${skill}t-hidden`, rogueStandardColumns.map(column => `${skill}${column}`)); - setupStaticCalculateTotal(`${skill}t`, [`${skill}t-hidden`], 95); - setupStaticCalculateTotal(`${skill}noarmort`, [`${skill}t-hidden`, `${skill}noarmorb`], 95); - setupStaticCalculateTotal(`${skill}armort`, [`${skill}t-hidden`, `${skill}armorp`], 95); + setupStaticCalculateTotal(`${skill}t`, rogueStandardColumns.map(column => `${skill}${column}`), 95); }); // Setup custom rogue skills total @@ -70190,18 +70170,18 @@

    Monster Sheet specific

    //Rogue armor modifier auto fill on('change:armorname', function(eventInfo) { - let armor = rogueArmor[eventInfo.newValue]; + let armor = ROGUE_ARMOR[eventInfo.newValue]; if (armor === undefined) return; let armorModifiers = { - 'pparmorp': armor['Pick Pockets'], - 'olarmorp': armor['Open Locks'] || '-0', - 'rtarmorp': armor['Find/Remove Traps'] || '-0', - 'msarmorp': armor['Move Silently'] || '-0', - 'hsarmorp': armor['Hide in Shadows'] || '-0', - 'dnarmorp': armor['Detect Noise'], - 'cwarmorp': armor['Climb Walls'], + 'ppa': armor['Pick Pockets'] || '0', + 'ola': armor['Open Locks'] || '0', + 'rta': armor['Find/Remove Traps'] || '0', + 'msa': armor['Move Silently'] || '0', + 'hsa': armor['Hide in Shadows'] || '0', + 'dna': armor['Detect Noise'] || '0', + 'cwa': armor['Climb Walls'] || '0', }; setAttrs(armorModifiers); }); diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 360d9e6360f9..a591e9799d09 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -13,6 +13,9 @@

    Changes in

  • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
  • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
  • Added Ranger skills (Hide in shadows, move silently) armor adjustments notes. Also added ranger to the allowed armors for the rogue armor autofill
  • +
  • Added %-sign to the roll template for Thieving skills
  • +
  • Redesigned Rogue skills to only have a single button for using the skill
  • +
  • Added additional context to Rogue skills when success or failure happens

  • diff --git a/ADnD_2E_Revised/html/components/datalists.html b/ADnD_2E_Revised/html/components/datalists.html index 11e6c6650ce4..98257c4576ba 100644 --- a/ADnD_2E_Revised/html/components/datalists.html +++ b/ADnD_2E_Revised/html/components/datalists.html @@ -139,6 +139,8 @@ + + @@ -161,6 +163,8 @@ + + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 6f5d153d8ac5..619456603bd6 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -17,11 +17,16 @@

    Standard

    - - - - - + + + + @@ -29,216 +34,160 @@

    Standard

    + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + +
    Leather ArmorNo ArmorHeavy ArmorRemaining: + + + + + +
    Skill Race Dex KitArmor Magic LevelTotalBonusTotalPenalty Total - - -
    Pick Pockets%%%%%%%%%%%%%%%%%%%
    Open Locks%%%%%%%%%%%%%%%%%%% + + +
    Find/Remove Traps%%%%%%%%%%%%%%%%%%% + + +
    Move Silently%%%%%%%%%%%
    %%%%%%%% + + +
    Hide in Shadows%%%%%%%%%%%%%%%%%%% + + +
    Detect Noise%%%%%%%%%%%%%%%%%%% + + +
    Climb Walls%%%%%%%%%%%%%%%%%%%
    Read Languages%%%%%%%%%%%%%%%%%%%
    Legend Lore%%%%%%%%%%%%%%%%%%%
    - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + + + + + + + + +
    Leather ArmorNo ArmorHeavy Armor
    Find/Remove TrapsBaseRaceDexKitMagicLevelTotalBonusTotalPenaltyTotal
    %%%%%%%%%%%%%%%%%%%
    @@ -654,6 +603,7 @@

    Standard

    +

    Skills & Powers / Dark Sun

    diff --git a/ADnD_2E_Revised/javascript/rogueArmor.js b/ADnD_2E_Revised/javascript/rogueArmor.js index 6ecde39dcf95..5a7a35abf955 100644 --- a/ADnD_2E_Revised/javascript/rogueArmor.js +++ b/ADnD_2E_Revised/javascript/rogueArmor.js @@ -1,6 +1,24 @@ -const rogueArmor = {}; +const ROGUE_ARMOR = {}; // Thief armor -rogueArmor['Padded Armor'] = rogueArmor['Studded Leather'] = { +ROGUE_ARMOR['No Armor'] = { + 'Pick Pockets' : '5', + 'Open Locks' : '0', + 'Find/Remove Traps' : '0', + 'Move Silently' : '10', + 'Hide in Shadows' : '5', + 'Detect Noise' : '0', + 'Climb Walls' : '10', +} +ROGUE_ARMOR['Leather Armor'] = { + 'Pick Pockets' : '0', + 'Open Locks' : '0', + 'Find/Remove Traps' : '0', + 'Move Silently' : '0', + 'Hide in Shadows' : '0', + 'Detect Noise' : '0', + 'Climb Walls' : '0', +} +ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Pick Pockets' : '-30', 'Open Locks' : '-10', 'Find/Remove Traps': '-10', @@ -9,7 +27,7 @@ rogueArmor['Padded Armor'] = rogueArmor['Studded Leather'] = { 'Detect Noise' : '-10', 'Climb Walls' : '-30', }; -rogueArmor['Elven Chain Mail'] = { +ROGUE_ARMOR['Elven Chain Mail'] = { 'Pick Pockets' : '-20', 'Open Locks' : '-5', 'Find/Remove Traps': '-5', @@ -18,38 +36,46 @@ rogueArmor['Elven Chain Mail'] = { 'Detect Noise' : '-5', 'Climb Walls' : '-20', }; -rogueArmor['Silenced Elven Chain Mail'] = { +ROGUE_ARMOR['Silenced Elven Chain Mail'] = { 'Pick Pockets' : '-25', 'Open Locks' : '-5', 'Find/Remove Traps': '-5', - 'Move Silently' : '', + 'Move Silently' : '0', 'Hide in Shadows' : '-10', - 'Detect Noise' : '', + 'Detect Noise' : '0', 'Climb Walls' : '-25', }; +// Bard/Ranger Armor +ROGUE_ARMOR['Ring Mail'] = { + 'Pick Pockets' : '-25', // Bard + 'Move Silently' : '-30', // Ranger + 'Hide in Shadows' : '-40', // Ranger + 'Detect Noise' : '-10', // Bard + 'Climb Walls' : '-25', // Bard +}; // Bard Armor -rogueArmor['Ring Mail'] = rogueArmor['Chain Mail'] = { +ROGUE_ARMOR['Chain Mail'] = { 'Pick Pockets' : '-25', 'Detect Noise' : '-10', 'Climb Walls' : '-25', }; -rogueArmor['Hide Armor'] = { +ROGUE_ARMOR['Hide Armor'] = { 'Pick Pockets' : '-30', 'Detect Noise' : '-5', 'Climb Walls' : '-30', }; -rogueArmor['Brigandine Armor'] = { +ROGUE_ARMOR['Brigandine Armor'] = { 'Pick Pockets' : '-20', 'Detect Noise' : '-10', 'Climb Walls' : '-25', }; -rogueArmor['Scale Mail'] = { +ROGUE_ARMOR['Scale Mail'] = { 'Pick Pockets' : '-25', 'Detect Noise' : '-15', 'Climb Walls' : '-40', }; // Disguise armor -rogueArmor['Hide Armor (Thief Disguise)'] = { +ROGUE_ARMOR['Hide Armor (Thief Disguise)'] = { 'Pick Pockets' : '-60', 'Open Locks' : '-50', 'Find/Remove Traps': '-50', @@ -58,7 +84,7 @@ rogueArmor['Hide Armor (Thief Disguise)'] = { 'Detect Noise' : '-10', 'Climb Walls' : '-60', }; -rogueArmor['Ring Mail (Thief Disguise)'] = rogueArmor['Chain Mail (Thief Disguise)'] = { +ROGUE_ARMOR['Ring Mail (Thief Disguise)'] = ROGUE_ARMOR['Chain Mail (Thief Disguise)'] = { 'Pick Pockets' : '-40', 'Open Locks' : '-15', 'Find/Remove Traps': '-15', @@ -67,7 +93,7 @@ rogueArmor['Ring Mail (Thief Disguise)'] = rogueArmor['Chain Mail (Thief Disguis 'Detect Noise' : '-20', 'Climb Walls' : '-40', }; -rogueArmor['Brigandine (Thief Disguise)'] = rogueArmor['Splint Mail (Disguise)'] = { +ROGUE_ARMOR['Brigandine (Thief Disguise)'] = ROGUE_ARMOR['Splint Mail (Disguise)'] = { 'Pick Pockets' : '-40', 'Open Locks' : '-15', 'Find/Remove Traps': '-25', @@ -76,7 +102,7 @@ rogueArmor['Brigandine (Thief Disguise)'] = rogueArmor['Splint Mail (Disguise)'] 'Detect Noise' : '-25', 'Climb Walls' : '-50', }; -rogueArmor['Scale Mail (Thief Disguise)'] = rogueArmor['Banded Armor (Disguise)'] = { +ROGUE_ARMOR['Scale Mail (Thief Disguise)'] = ROGUE_ARMOR['Banded Armor (Disguise)'] = { 'Pick Pockets' : '-50', 'Open Locks' : '-20', 'Find/Remove Traps': '-20', @@ -85,7 +111,7 @@ rogueArmor['Scale Mail (Thief Disguise)'] = rogueArmor['Banded Armor (Disguise)' 'Detect Noise' : '-30', 'Climb Walls' : '-90', }; -rogueArmor['Plate Mail (Disguise)'] = rogueArmor['Bronze Plate Mail (Disguise)'] = { +ROGUE_ARMOR['Plate Mail (Disguise)'] = ROGUE_ARMOR['Bronze Plate Mail (Disguise)'] = { 'Pick Pockets' : '-75', 'Open Locks' : '-40', 'Find/Remove Traps': '-40', @@ -94,7 +120,7 @@ rogueArmor['Plate Mail (Disguise)'] = rogueArmor['Bronze Plate Mail (Disguise)'] 'Detect Noise' : '-50', 'Climb Walls' : '-95', }; -rogueArmor['Field Plate (Disguise)'] = rogueArmor['Full Plate (Disguise)'] = { +ROGUE_ARMOR['Field Plate (Disguise)'] = ROGUE_ARMOR['Full Plate (Disguise)'] = { 'Pick Pockets' : '-95', 'Open Locks' : '-80', 'Find/Remove Traps': '-80', diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index e4abe9b99420..e5d0c3d01a06 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -1434,12 +1434,9 @@ setupSpellSlotsReset('reset-spent-slots-pow', null, null, powerSpellSections) //#region Rogue skills // --- Start setup Rogue skills total --- // let rogueStandardSkills = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; -let rogueStandardColumns = ['b', 'r', 'd', 'k', 'm', 'l']; +let rogueStandardColumns = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; rogueStandardSkills.forEach(skill => { - setupStaticCalculateTotal(`${skill}t-hidden`, rogueStandardColumns.map(column => `${skill}${column}`)); - setupStaticCalculateTotal(`${skill}t`, [`${skill}t-hidden`], 95); - setupStaticCalculateTotal(`${skill}noarmort`, [`${skill}t-hidden`, `${skill}noarmorb`], 95); - setupStaticCalculateTotal(`${skill}armort`, [`${skill}t-hidden`, `${skill}armorp`], 95); + setupStaticCalculateTotal(`${skill}t`, rogueStandardColumns.map(column => `${skill}${column}`), 95); }); // Setup custom rogue skills total @@ -1451,18 +1448,18 @@ setupRepeatingRowCalculateTotal('crarmort', ['crt-hidden', 'crarmorp'], 'customr //Rogue armor modifier auto fill on('change:armorname', function(eventInfo) { - let armor = rogueArmor[eventInfo.newValue]; + let armor = ROGUE_ARMOR[eventInfo.newValue]; if (armor === undefined) return; let armorModifiers = { - 'pparmorp': armor['Pick Pockets'], - 'olarmorp': armor['Open Locks'] || '-0', - 'rtarmorp': armor['Find/Remove Traps'] || '-0', - 'msarmorp': armor['Move Silently'] || '-0', - 'hsarmorp': armor['Hide in Shadows'] || '-0', - 'dnarmorp': armor['Detect Noise'], - 'cwarmorp': armor['Climb Walls'], + 'ppa': armor['Pick Pockets'] || '0', + 'ola': armor['Open Locks'] || '0', + 'rta': armor['Find/Remove Traps'] || '0', + 'msa': armor['Move Silently'] || '0', + 'hsa': armor['Hide in Shadows'] || '0', + 'dna': armor['Detect Noise'] || '0', + 'cwa': armor['Climb Walls'] || '0', }; setAttrs(armorModifiers); }); From cb44274733f68543287ec99e1061006d41890df4 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 25 May 2023 13:35:03 +0200 Subject: [PATCH 12/51] - Removed unused calculations for rogue skills - Added migration for old fields to new fields --- ADnD_2E_Revised/2ESheet.html | 67 ++++++++++++++-------- ADnD_2E_Revised/javascript/sheetWorkers.js | 30 +++------- ADnD_2E_Revised/javascript/version.js | 37 +++++++++++- 3 files changed, 88 insertions(+), 46 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index ddc75df5094e..e022a9ec235a 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -69111,7 +69111,7 @@

    Monster Sheet specific

    }); } -function setupRepeatingRowCalculateTotal(repeatingTotalField, repeatingFieldsToSum, repeatingName, maxValue) { +function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField, maxValue) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); let allFields = [...repeatingFieldsToSum]; allFields.push(repeatingTotalField); @@ -70155,17 +70155,12 @@

    Monster Sheet specific

    //#region Rogue skills // --- Start setup Rogue skills total --- // -let rogueStandardSkills = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; -let rogueStandardColumns = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; -rogueStandardSkills.forEach(skill => { - setupStaticCalculateTotal(`${skill}t`, rogueStandardColumns.map(column => `${skill}${column}`), 95); +const ROGUE_STANDARD_SKILLS = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; +const ROGUE_SKILL_COLUMNS = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; +ROGUE_STANDARD_SKILLS.forEach(skill => { + setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), 95); }); - -// Setup custom rogue skills total -setupRepeatingRowCalculateTotal('crt-hidden', rogueStandardColumns.map(column => `cr${column}`), 'customrogue'); -setupRepeatingRowCalculateTotal('crt', ['crt-hidden'], 'customrogue', 95); -setupRepeatingRowCalculateTotal('crnoarmort', ['crt-hidden', 'crnoarmorb'], 'customrogue', 95); -setupRepeatingRowCalculateTotal('crarmort', ['crt-hidden', 'crarmorp'], 'customrogue', 95); +setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt', 95); // --- End setup Rogue skills total --- // //Rogue armor modifier auto fill @@ -70186,18 +70181,9 @@

    Monster Sheet specific

    setAttrs(armorModifiers); }); //Rogue Custom Skills level sum -on('change:repeating_customrogue:crl remove:repeating_customrogue', function(){ - TAS.repeating('customrogue') - .attrs('newskill') - .fields('crl') - .reduce(function(m,r){ - m.crl+=(r.I.crl); - return m; - },{crl:0},function(m,r,a){ - a.newskill=m.crl; - }) - .execute(); +on('change:repeating_customrogue:crl remove:repeating_customrogue', function(){ + TAS.repeatingSimpleSum('customrogue', 'crl', 'newskill'); }); // --- End setup Rogue skills total --- // //#endregion @@ -71761,7 +71747,7 @@

    Monster Sheet specific

    // --- Version change start --- // const SHEET_NAME = 'AD&D 2E Revised'; -const SHEET_VERSION = '4.16.0'; +const SHEET_VERSION = '4.17.0'; on('sheet:opened', function(){ getAttrs(['character_sheet'],function(attrs){ @@ -71793,6 +71779,9 @@

    Monster Sheet specific

    if (oldSheetVersion.isBelowMigrate(4, 16, 0)) migrate4_16_0(); + + if (oldSheetVersion.isBelowMigrate(4, 17, 0)) + migrate4_17_0(); } }); }); @@ -71840,6 +71829,38 @@

    Monster Sheet specific

    } //#endregion +//#region version 4.17.0 +function migrate4_17_0() { + console.log('Migrate to v4.17.0'); + + TAS.repeating('customrogue') + .fields('cra','crarmorp') + .each(function (row) { + let armorValue = row.I['crarmorp']; + if (armorValue === 0) + return + + console.log(`Moving value ${armorValue} from crarmorp to cra`); + row.I['cra'] = armorValue; + }, function () { + getAttrs(ROGUE_SKILL_COLUMNS.map(s => s+'armorp'), function (values) { + let newValue = {}; + + for (let rogueSkill of ROGUE_SKILL_COLUMNS) { + let armorValue = values[rogueSkill+'armorp']; + let number = parseInt(armorValue) || 0; + if (number === 0) + continue; + + console.log(`Moving value ${number} from ${rogueSkill}armorp to ${rogueSkill}a`); + newValue[rogueSkill+'a'] = number; + } + setAttrs(newValue); + }); + }).execute() +} +//#endregion + //#region version 4.16.0 function migrate4_16_0() { console.log('Migrating to v4.16.0'); diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index e5d0c3d01a06..962b257cae33 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -389,7 +389,7 @@ const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { }); } -function setupRepeatingRowCalculateTotal(repeatingTotalField, repeatingFieldsToSum, repeatingName, maxValue) { +function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField, maxValue) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); let allFields = [...repeatingFieldsToSum]; allFields.push(repeatingTotalField); @@ -1433,17 +1433,12 @@ setupSpellSlotsReset('reset-spent-slots-pow', null, null, powerSpellSections) //#region Rogue skills // --- Start setup Rogue skills total --- // -let rogueStandardSkills = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; -let rogueStandardColumns = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; -rogueStandardSkills.forEach(skill => { - setupStaticCalculateTotal(`${skill}t`, rogueStandardColumns.map(column => `${skill}${column}`), 95); +const ROGUE_STANDARD_SKILLS = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; +const ROGUE_SKILL_COLUMNS = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; +ROGUE_STANDARD_SKILLS.forEach(skill => { + setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), 95); }); - -// Setup custom rogue skills total -setupRepeatingRowCalculateTotal('crt-hidden', rogueStandardColumns.map(column => `cr${column}`), 'customrogue'); -setupRepeatingRowCalculateTotal('crt', ['crt-hidden'], 'customrogue', 95); -setupRepeatingRowCalculateTotal('crnoarmort', ['crt-hidden', 'crnoarmorb'], 'customrogue', 95); -setupRepeatingRowCalculateTotal('crarmort', ['crt-hidden', 'crarmorp'], 'customrogue', 95); +setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt', 95); // --- End setup Rogue skills total --- // //Rogue armor modifier auto fill @@ -1464,18 +1459,9 @@ on('change:armorname', function(eventInfo) { setAttrs(armorModifiers); }); //Rogue Custom Skills level sum -on('change:repeating_customrogue:crl remove:repeating_customrogue', function(){ - TAS.repeating('customrogue') - .attrs('newskill') - .fields('crl') - .reduce(function(m,r){ - m.crl+=(r.I.crl); - return m; - },{crl:0},function(m,r,a){ - a.newskill=m.crl; - }) - .execute(); +on('change:repeating_customrogue:crl remove:repeating_customrogue', function(){ + TAS.repeatingSimpleSum('customrogue', 'crl', 'newskill'); }); // --- End setup Rogue skills total --- // //#endregion diff --git a/ADnD_2E_Revised/javascript/version.js b/ADnD_2E_Revised/javascript/version.js index ea8f3ab3429c..482bc9182e98 100644 --- a/ADnD_2E_Revised/javascript/version.js +++ b/ADnD_2E_Revised/javascript/version.js @@ -1,7 +1,7 @@ // --- Version change start --- // const SHEET_NAME = 'AD&D 2E Revised'; -const SHEET_VERSION = '4.16.0'; +const SHEET_VERSION = '4.17.0'; on('sheet:opened', function(){ getAttrs(['character_sheet'],function(attrs){ @@ -33,6 +33,9 @@ on('sheet:opened', function(){ if (oldSheetVersion.isBelowMigrate(4, 16, 0)) migrate4_16_0(); + + if (oldSheetVersion.isBelowMigrate(4, 17, 0)) + migrate4_17_0(); } }); }); @@ -80,6 +83,38 @@ function moveStaticToRepeating(section, fieldsToMove) { } //#endregion +//#region version 4.17.0 +function migrate4_17_0() { + console.log('Migrate to v4.17.0'); + + TAS.repeating('customrogue') + .fields('cra','crarmorp') + .each(function (row) { + let armorValue = row.I['crarmorp']; + if (armorValue === 0) + return + + console.log(`Moving value ${armorValue} from crarmorp to cra`); + row.I['cra'] = armorValue; + }, function () { + getAttrs(ROGUE_SKILL_COLUMNS.map(s => s+'armorp'), function (values) { + let newValue = {}; + + for (let rogueSkill of ROGUE_SKILL_COLUMNS) { + let armorValue = values[rogueSkill+'armorp']; + let number = parseInt(armorValue) || 0; + if (number === 0) + continue; + + console.log(`Moving value ${number} from ${rogueSkill}armorp to ${rogueSkill}a`); + newValue[rogueSkill+'a'] = number; + } + setAttrs(newValue); + }); + }).execute() +} +//#endregion + //#region version 4.16.0 function migrate4_16_0() { console.log('Migrating to v4.16.0'); From 6f4ab0495e747315255bda47901f0925fa585a59 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 25 May 2023 13:53:00 +0200 Subject: [PATCH 13/51] Fixed data migration for rogue armor penalties --- ADnD_2E_Revised/2ESheet.html | 5 ++--- ADnD_2E_Revised/javascript/version.js | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index e022a9ec235a..46dbe784a9d6 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -71843,10 +71843,9 @@

    Monster Sheet specific

    console.log(`Moving value ${armorValue} from crarmorp to cra`); row.I['cra'] = armorValue; }, function () { - getAttrs(ROGUE_SKILL_COLUMNS.map(s => s+'armorp'), function (values) { + getAttrs(ROGUE_STANDARD_SKILLS.map(s => s+'armorp'), function (values) { let newValue = {}; - - for (let rogueSkill of ROGUE_SKILL_COLUMNS) { + for (let rogueSkill of ROGUE_STANDARD_SKILLS) { let armorValue = values[rogueSkill+'armorp']; let number = parseInt(armorValue) || 0; if (number === 0) diff --git a/ADnD_2E_Revised/javascript/version.js b/ADnD_2E_Revised/javascript/version.js index 482bc9182e98..a6f9d8a11909 100644 --- a/ADnD_2E_Revised/javascript/version.js +++ b/ADnD_2E_Revised/javascript/version.js @@ -97,10 +97,9 @@ function migrate4_17_0() { console.log(`Moving value ${armorValue} from crarmorp to cra`); row.I['cra'] = armorValue; }, function () { - getAttrs(ROGUE_SKILL_COLUMNS.map(s => s+'armorp'), function (values) { + getAttrs(ROGUE_STANDARD_SKILLS.map(s => s+'armorp'), function (values) { let newValue = {}; - - for (let rogueSkill of ROGUE_SKILL_COLUMNS) { + for (let rogueSkill of ROGUE_STANDARD_SKILLS) { let armorValue = values[rogueSkill+'armorp']; let number = parseInt(armorValue) || 0; if (number === 0) From e078ecdddc1621dac422a20147e3df76c8836a4a Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Fri, 26 May 2023 12:35:52 +0200 Subject: [PATCH 14/51] Added notes that all outer plane creatures can be turned, not only undead --- ADnD_2E_Revised/2EStyle.css | 8 ++++++++ ADnD_2E_Revised/css/2EStyle-base.css | 8 ++++++++ ADnD_2E_Revised/html/changelog.html | 1 + .../html/tabs/character-tab/turn-undead-tab.html | 16 +++++++++------- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index 7401588c0a9c..36a75069ea97 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -684,6 +684,14 @@ table.sheet-padding-right-column2 td:nth-child(2) { margin-left: 10px; } +table.sheet-table-notes td:first-child { + text-align: right; + vertical-align: top; +} +table.sheet-table-notes td:nth-child(2) { + padding-left: 5px; +} + .sheet-note { line-height:1em; font-family: Arial, sans-serif; diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index b8a0dbe3c735..e3edbf453e00 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -684,6 +684,14 @@ table.sheet-padding-right-column2 td:nth-child(2) { margin-left: 10px; } +table.sheet-table-notes td:first-child { + text-align: right; + vertical-align: top; +} +table.sheet-table-notes td:nth-child(2) { + padding-left: 5px; +} + .sheet-note { line-height:1em; font-family: Arial, sans-serif; diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index a591e9799d09..454dbaadf3ad 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -16,6 +16,7 @@

    Changes in

  • Added %-sign to the roll template for Thieving skills
  • Redesigned Rogue skills to only have a single button for using the skill
  • Added additional context to Rogue skills when success or failure happens
  • +
  • Added correction to Turn Undead notes that all creatures, not only undead, dwelling on the Outer Planes can be turned as Special creatures

  • diff --git a/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html index 77748c2286d2..2c8bad3be1a7 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html @@ -507,19 +507,21 @@

    -

    +
    - - + + - - + + - - + +
    *An additional 2d4 creatures of this type are turned.*An additional 2d4 creatures of this type are turned.
    **Special creatures include unique undead, free-willed undead of the Negative Material Plane, certain Greater and Lesser Powers, and those undead that dwell in the Outer Planes.**Special creatures include unique undead, free-willed undead of the Negative Material Plane, certain Greater and Lesser Powers, and those creatures that dwell in the Outer Planes.
    Paladins turn undead as priests who are two levels lower.Paladins turn undead as priests who are two levels lower.
    +
    + PHB p. 137 / DMG p. 96 + Sage Advice #248 p. 22
    \ No newline at end of file From fa257edc0d5619f91a76d83d9c3a6d90e86ca5f0 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Fri, 26 May 2023 13:35:17 +0200 Subject: [PATCH 15/51] Removed dex modifier for escape bond and tunneling as S&P and DarkSun are not in agreement --- .../html/tabs/character-tab/rogue-tab.html | 1263 ++++++++--------- ADnD_2E_Revised/javascript/abilityScores.js | 2 - ADnD_2E_Revised/javascript/sheetWorkers.js | 2 - 3 files changed, 629 insertions(+), 638 deletions(-) diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 619456603bd6..314537d4dd83 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -14,524 +14,639 @@

    Rogue Skills


    Standard

    +
    +
    +

    Skills & Powers / Dark Sun

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Remaining: + + + + + +
    SkillBaseRaceDexKitArmorMagicLevelTotal
    Pick Pockets%%%%%%%%
    Open Locks%%%%%%%% + + +
    Find/Remove Traps%%%%%%%% + + +
    Move Silently%%%%%%%% + + +
    Hide in Shadows%%%%%%%% + + +
    Detect Noise%%%%%%%% + + +
    Climb Walls%%%%%%%%
    Read Languages%%%%%%%%
    Legend Lore%%%%%%%%
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Find/Remove Traps
    Detect Magic*%%%%%%%%
    Detect Illusion*%%%%%%%%
    Bribe*%%%%%%%%
    Tunneling*%%%%%%%%
    Escape Bonds*%%%%%%%%
    Forge Documents*%%%%%%%%
    AppraisalS&S%%%%%%%%
    +
    +
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
    Remaining: - - - - - -
    SkillBaseRaceDexKitArmorMagicLevelTotal
    Pick Pockets%%%%%%%%
    Open Locks%%%%%%%% - - -
    Find/Remove Traps%%%%%%%% - - -
    Move Silently%%%%%%%% - - -
    Hide in Shadows%%%%%%%% - - -
    Detect Noise%%%%%%%% - - -
    Climb Walls%%%%%%%%
    Read Languages%%%%%%%%
    Legend Lore%%%%%%%%
    Find/Remove Traps
    %%%%%%%%
    +
    + +
    + + + + + + + + + +
    * + These are not automatically updated based on dexterity or armor, as their source books do not agree on the modifiers.
    + Sources: Player's Option: Skills & Powers, Dark Sun: Dragon Kings, Dark Sun Revised: The Age of Heroes. +
    S&S + This is not automatically updated based on dexterity or armor.
    + Source: Sages & Specialists. +
    +
    + +
    +
    + Thief Armor information +

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    + Thieving Skill Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SkillNo
    Armor
    Padded Armor or
    Studded Leather
    Elven
    Chain Mail
    Silenced Elven
    Chain Mail
    Pick Pocket+5%-30%-20%-25%
    Open Locks-10%-5%-5%
    Find/Remove Traps-10%-5%-5%
    Move Silently+10%-20%-10%
    Hide in Shadows+5%-20%-10%-10%
    Detect Noise-10%-5%
    Climb Walls+10%-30%-20%-25%
    Read Languages
    -
    - - - - - - - - - - - - - - - - - - - - -
    Find/Remove Traps
    %%%%%%%%
    -

    -
    - Thief Armor information -

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    - Thieving Skill Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SkillNo
    Armor
    Padded Armor or
    Studded Leather
    Elven
    Chain Mail
    Silenced Elven
    Chain Mail
    Pick Pocket+5%-30%-20%-25%
    Open Locks-10%-5%-5%
    Find/Remove Traps-10%-5%-5%
    Move Silently+10%-20%-10%
    Hide in Shadows+5%-20%-10%-10%
    Detect Noise-10%-5%
    Climb Walls+10%-30%-20%-25%
    Read Languages
    -
    -

    - Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    - Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SkillsHide
    Amor
    Ring or
    Chain Mail
    Brigandine
    or Splint Mail
    Scale or
    Banded Mail
    Plate Mail or
    Bronze Plate Mail
    Field or
    Full Plate
    Pick Pockets-60%-40%-40%-50%-75%-95%
    Open Locks-50%-15%-15%-20%-40%-80%
    Find/Remove Traps-50%-15%-25%-20%-40%-80%
    Move Silently-30%-40%-40%-60%-80%-95%
    Hide in Shadows-20%-30%-30%-50%-75%-95%
    Hear Noise-10%-20%-25%-30%-50%-70%
    Climb Walls-60%-40%-50%-90%-95%-95%
    Read Languages
    -
    -
    - Bard Armor information -

    A bard can wear any armor up to, and including, chain mail, but cannot use a shield.

    -

    This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), Ring Mail (AC 7), Hide Armor (AC 6), Brigandine Armor (AC 6), Scale Mail (AC 6), Chain Mail (AC 5), including Elven Chain Mail (AC 5)

    - Barding Skill Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Type of
    Armor
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    None+5%+10%
    Leather Armor
    Padded Armor-30%-10%-30%
    Studded Leather-30%-10%-30%
    Ring Mail-25%-10%-25%
    Brigandine Armor-20%-10%-25%
    Scale Mail-25%-15%-40%
    Hide Armor-30%-5%-30%
    Chain Mail-25%-10%-25%
    Elven Chain Mail-20%-5%-20%
    -
    -

    - If your DM allows a bard to put on any form of armor normally disallowed to the class (as suggested by certain kits, for purposes of disguise, - out of necessity, or for the sake of entertainment), the penalties are identical to those for a thief in similar armor. -

    - Illegal Armor Barding Skill Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Armor
    Type
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Splint Mail-40%-25%-50%
    Banded Armor-50%-30%-90%
    Plate Mail-75%-50%-95%
    Bronze Plate-75%-50%-95%
    Field Plate-95%-70%-95%
    Full Plate-95%-70%-95%
    -
    -
    - Ranger Armor information -

    - The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather or lighter armor. (PHB p. 40). - This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7).
    - The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types. -

    - Ranger Skill Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%
    Leather
    Padded-20%-20%
    Studded Leather-20%-20%
    Ring Mail-30%-40%
    +

    + Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    + Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SkillsHide
    Amor
    Ring or
    Chain Mail
    Brigandine
    or Splint Mail
    Scale or
    Banded Mail
    Plate Mail or
    Bronze Plate Mail
    Field or
    Full Plate
    Pick Pockets-60%-40%-40%-50%-75%-95%
    Open Locks-50%-15%-15%-20%-40%-80%
    Find/Remove Traps-50%-15%-25%-20%-40%-80%
    Move Silently-30%-40%-40%-60%-80%-95%
    Hide in Shadows-20%-30%-30%-50%-75%-95%
    Hear Noise-10%-20%-25%-30%-50%-70%
    Climb Walls-60%-40%-50%-90%-95%-95%
    Read Languages
    +
    +
    + Bard Armor information +

    A bard can wear any armor up to, and including, chain mail, but cannot use a shield.

    +

    This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), Ring Mail (AC 7), Hide Armor (AC 6), Brigandine Armor (AC 6), Scale Mail (AC 6), Chain Mail (AC 5), including Elven Chain Mail (AC 5)

    + Barding Skill Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Type of
    Armor
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    None+5%+10%
    Leather Armor
    Padded Armor-30%-10%-30%
    Studded Leather-30%-10%-30%
    Ring Mail-25%-10%-25%
    Brigandine Armor-20%-10%-25%
    Scale Mail-25%-15%-40%
    Hide Armor-30%-5%-30%
    Chain Mail-25%-10%-25%
    Elven Chain Mail-20%-5%-20%
    +
    +

    + If your DM allows a bard to put on any form of armor normally disallowed to the class (as suggested by certain kits, for purposes of disguise, + out of necessity, or for the sake of entertainment), the penalties are identical to those for a thief in similar armor. +

    + Illegal Armor Barding Skill Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Armor
    Type
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Splint Mail-40%-25%-50%
    Banded Armor-50%-30%-90%
    Plate Mail-75%-50%-95%
    Bronze Plate-75%-50%-95%
    Field Plate-95%-70%-95%
    Full Plate-95%-70%-95%
    +
    +
    + Ranger Armor information +

    + The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather or lighter armor. (PHB p. 40). + This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7).
    + The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types. +

    + Ranger Skill Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%
    Leather
    Padded-20%-20%
    Studded Leather-20%-20%
    Ring Mail-30%-40%

    If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, @@ -601,125 +716,5 @@

    Standard

    - -
    - -

    Skills & Powers / Dark Sun

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SkillBaseRaceDexKitMagicArmor**LevelTotal
    Detect Magic*%%%%%%%%
    Detect Illusion*%%%%%%%%
    Bribe*%%%%%%%%
    Tunneling*%%%%%%%%
    Escape Bonds*%%%%%%%%
    Forge Documents*%%%%%%%%
    Appraise*%%%%%%%%
    -
    \ No newline at end of file diff --git a/ADnD_2E_Revised/javascript/abilityScores.js b/ADnD_2E_Revised/javascript/abilityScores.js index 4a9fc1bc57b8..0d9526c2bb22 100644 --- a/ADnD_2E_Revised/javascript/abilityScores.js +++ b/ADnD_2E_Revised/javascript/abilityScores.js @@ -67,8 +67,6 @@ dexterityTable['dex-findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-1 dexterityTable['dex-movesilently'] = ['0','0','0','0','0','0','0','0','0','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['dex-hideinshadows'] = ['0','0','0','0','0','0','0','0','0','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['dex-climbwalls'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+25','+25','+25']; -dexterityTable['dex-tunneling'] = ['0','0','0','0','0','0','0','0','0','-10','-5','-0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; -dexterityTable['dex-escapebonds'] = ['0','0','0','0','0','0','0','0','0','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['aim-pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; dexterityTable['aim-openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 962b257cae33..459771060d60 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -552,8 +552,6 @@ on('change:dexterity change:aim change:balance', function() { msd: dexterityTable['balance-movesilently'][balance] || dexterityTable['dex-movesilently'][dexterity], hsd: dexterityTable['dex-hideinshadows'][dexterity], cwd: standardRules ? '0' : dexterityTable['balance-climbwalls'][balance] || dexterityTable['dex-climbwalls'][dexterity], - tud: standardRules ? '0' : dexterityTable['dex-tunneling'][dexterity], - ebd: standardRules ? '0' : dexterityTable['dex-escapebonds'][dexterity], dexreact: dexterityTable['dexreact'][getLookupValue(balance, dexterity)], dexmissile: dexterityTable['dexmissile'][getLookupValue(aim, dexterity)], dexdefense: dexterityTable['dexdefense'][getLookupValue(balance, dexterity)], From 27f773a803a94c7025eb85af2798f88acbb62508 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 30 May 2023 09:49:56 +0200 Subject: [PATCH 16/51] - Updated dexterity modifers to thieving skills based on PHB, PO: Skills & Powers. - Simplified the logic for adding modifiers based on Dex. This is using the official errata by WoTC. - Added a bunch of notes explaining that thieving skills are different for Dark Sun. - Added notes for rangers that they can go to 99% - Added Leather Armor and No Armor to armor type datalist --- ADnD_2E_Revised/2ESheet.html | 1350 +++++++++-------- ADnD_2E_Revised/2EStyle.css | 44 +- ADnD_2E_Revised/css/2EStyle-base.css | 44 +- .../attributes-standard-tab.html | 2 +- .../html/tabs/character-tab/rogue-tab.html | 48 +- .../tabs/character-tab/turn-undead-tab.html | 19 +- ADnD_2E_Revised/javascript/abilityScores.js | 23 +- ADnD_2E_Revised/javascript/rogueArmor.js | 36 +- ADnD_2E_Revised/javascript/sheetWorkers.js | 30 +- 9 files changed, 835 insertions(+), 761 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 46dbe784a9d6..29732cfa5996 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -21,6 +21,7 @@

    Changes in

  • Added %-sign to the roll template for Thieving skills
  • Redesigned Rogue skills to only have a single button for using the skill
  • Added additional context to Rogue skills when success or failure happens
  • +
  • Added correction to Turn Undead notes that all creatures, not only undead, dwelling on the Outer Planes can be turned as Special creatures

  • @@ -1175,7 +1176,7 @@

    Ability Scores

    - + @@ -2397,524 +2398,651 @@

    Rogue Skills


    Standard

    +
    +
    +

    Skills & Powers / Dark Sun

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Remaining: + + + + + +
    SkillBaseRaceDexKitArmorMagicLevelTotal
    Pick Pockets%%%%%%%%
    Open Locks%%%%%%%% + + +
    Find/Remove Traps%%%%%%%% + + +
    Move SilentlyR%%%%%%%% + + +
    Hide in ShadowsR%%%%%%%% + + +
    Detect Noise%%%%%%%% + + +
    Climb Walls%%%%%%%%
    Read Languages%%%%%%%%
    Legend Lore%%%%%%%%
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Find/Remove Traps
    Detect Magic*%%%%%%%%
    Detect Illusion*%%%%%%%%
    Bribe*%%%%%%%%
    Tunneling*%%%%%%%%
    Escape Bonds*%%%%%%%%
    Forge Documents*%%%%%%%%
    AppraisalS&S%%%%%%%%
    +
    +
    - + + + + + - - - - + + + + + + + + + + +
    Find/Remove Traps
    Remaining: - - - - - - %%%%%%%%
    +
    + +
      +
    • + Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. +
        +
      • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
      • +
      +
    • +
    • + Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook (see tables below). +
    • +
    • + Thieving skills maximum skill is 95%, but Rangers have maximum skill at 99% for Hide in Shadows and Move Silently. +
    • +
    +
    +
      +
    • + These skills are from Player's Option: Skills & Powers, Dark Sun: Dragon Kings, and Dark Sun Revised: The Age of Heroes. +
        +
      • Dexterity and Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes.
      • +
      +
    • +
    • + + Ability score adjustment to the Appraisal skill is based on Intelligence instead of Dexterity. This is not autofilled by the sheet.
      + Source: Sages & Specialists, p. 28. +
      +
    • +
    +
    + +
    +
    + Thief Armor information +

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    + Thieving Skill Armor Adjustments + - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
    SkillBaseRaceDexKitArmorMagicLevelTotalSkillNo
    Armor
    Padded Armor or
    Studded Leather
    Elven
    Chain Mail
    Silenced Elven
    Chain Mail
    Pick Pockets%%%%%%%%Pick Pocket+5%-30%-20%-25%
    Open Locks%%%%%%%% - - - Open Locks-10%-5%-5%
    Find/Remove Traps%%%%%%%% - - - Find/Remove Traps-10%-5%-5%
    Move Silently%%%%%%%% - - -
    Move Silently+10%-20%-10%
    Hide in Shadows%%%%%%%% - - - Hide in Shadows+5%-20%-10%-10%
    Detect Noise%%%%%%%% - - - Detect Noise-10%-5%
    Climb Walls+10%-30%-20%-25%
    Read Languages
    +
    +

    + Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    + Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + + +
    SkillsHide
    Amor
    Ring or
    Chain Mail
    Brigandine
    or Splint Mail
    Scale or
    Banded Mail
    Plate Mail or
    Bronze Plate Mail
    Field or
    Full Plate
    Pick Pockets-60%-40%-40%-50%-75%-95%
    Open Locks-50%-15%-15%-20%-40%-80%
    Find/Remove Traps-50%-15%-25%-20%-40%-80%
    Move Silently-30%-40%-40%-60%-80%-95%
    Hide in Shadows-20%-30%-30%-50%-75%-95%
    Climb Walls%%%%%%%%Hear Noise-10%-20%-25%-30%-50%-70%
    Read Languages%%%%%%%%Climb Walls-60%-40%-50%-90%-95%-95%
    Legend Lore%%%%%%%%Read Languages
    +
    +
    + Bard Armor information +

    A bard can wear any armor up to, and including, chain mail, but cannot use a shield.

    +

    This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), Ring Mail (AC 7), Hide Armor (AC 6), Brigandine Armor (AC 6), Scale Mail (AC 6), Chain Mail (AC 5), including Elven Chain Mail (AC 5)

    + Barding Skill Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Type of
    Armor
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    None+5%+10%
    Leather Armor
    Padded Armor-30%-10%-30%
    Studded Leather-30%-10%-30%
    Ring Mail-25%-10%-25%
    Brigandine Armor-20%-10%-25%
    Scale Mail-25%-15%-40%
    Hide Armor-30%-5%-30%
    Chain Mail-25%-10%-25%
    Elven Chain Mail-20%-5%-20%
    -
    - - - - - - - - - - - - - - - - - - - - -
    Find/Remove Traps
    %%%%%%%%
    -

    -
    - Thief Armor information -

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    - Thieving Skill Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SkillNo
    Armor
    Padded Armor or
    Studded Leather
    Elven
    Chain Mail
    Silenced Elven
    Chain Mail
    Pick Pocket+5%-30%-20%-25%
    Open Locks-10%-5%-5%
    Find/Remove Traps-10%-5%-5%
    Move Silently+10%-20%-10%
    Hide in Shadows+5%-20%-10%-10%
    Detect Noise-10%-5%
    Climb Walls+10%-30%-20%-25%
    Read Languages
    -
    -

    - Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    - Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SkillsHide
    Amor
    Ring or
    Chain Mail
    Brigandine
    or Splint Mail
    Scale or
    Banded Mail
    Plate Mail or
    Bronze Plate Mail
    Field or
    Full Plate
    Pick Pockets-60%-40%-40%-50%-75%-95%
    Open Locks-50%-15%-15%-20%-40%-80%
    Find/Remove Traps-50%-15%-25%-20%-40%-80%
    Move Silently-30%-40%-40%-60%-80%-95%
    Hide in Shadows-20%-30%-30%-50%-75%-95%
    Hear Noise-10%-20%-25%-30%-50%-70%
    Climb Walls-60%-40%-50%-90%-95%-95%
    Read Languages
    -
    -
    - Bard Armor information -

    A bard can wear any armor up to, and including, chain mail, but cannot use a shield.

    -

    This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), Ring Mail (AC 7), Hide Armor (AC 6), Brigandine Armor (AC 6), Scale Mail (AC 6), Chain Mail (AC 5), including Elven Chain Mail (AC 5)

    - Barding Skill Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Type of
    Armor
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    None+5%+10%
    Leather Armor
    Padded Armor-30%-10%-30%
    Studded Leather-30%-10%-30%
    Ring Mail-25%-10%-25%
    Brigandine Armor-20%-10%-25%
    Scale Mail-25%-15%-40%
    Hide Armor-30%-5%-30%
    Chain Mail-25%-10%-25%
    Elven Chain Mail-20%-5%-20%
    -
    -

    - If your DM allows a bard to put on any form of armor normally disallowed to the class (as suggested by certain kits, for purposes of disguise, - out of necessity, or for the sake of entertainment), the penalties are identical to those for a thief in similar armor. -

    - Illegal Armor Barding Skill Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Armor
    Type
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Splint Mail-40%-25%-50%
    Banded Armor-50%-30%-90%
    Plate Mail-75%-50%-95%
    Bronze Plate-75%-50%-95%
    Field Plate-95%-70%-95%
    Full Plate-95%-70%-95%
    -
    -
    - Ranger Armor information -

    - The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather or lighter armor. (PHB p. 40). - This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7).
    - The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types. -

    - Ranger Skill Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%
    Leather
    Padded-20%-20%
    Studded Leather-20%-20%
    Ring Mail-30%-40%
    +

    + If your DM allows a bard to put on any form of armor normally disallowed to the class (as suggested by certain kits, for purposes of disguise, + out of necessity, or for the sake of entertainment), the penalties are identical to those for a thief in similar armor. +

    + Illegal Armor Barding Skill Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Armor
    Type
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Splint Mail-40%-25%-50%
    Banded Armor-50%-30%-90%
    Plate Mail-75%-50%-95%
    Bronze Plate-75%-50%-95%
    Field Plate-95%-70%-95%
    Full Plate-95%-70%-95%
    +
    +
    + Ranger Armor information +

    + The ranger can wear any armor, but several of his special abilities are usable only when he is wearing studded leather or lighter armor. (PHB p. 40). + This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7).
    + The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types. +

    + Ranger Skill Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%
    Leather
    Padded-20%-20%
    Studded Leather-20%-20%
    Ring Mail-30%-40%

    If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, @@ -2984,126 +3112,6 @@

    Standard

    - -
    - -

    Skills & Powers / Dark Sun

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    SkillBaseRaceDexKitMagicArmor**LevelTotal
    Detect Magic*%%%%%%%%
    Detect Illusion*%%%%%%%%
    Bribe*%%%%%%%%
    Tunneling*%%%%%%%%
    Escape Bonds*%%%%%%%%
    Forge Documents*%%%%%%%%
    Appraise*%%%%%%%%
    -
    @@ -3615,20 +3623,13 @@

    Skills & Powers / Dark Sun



    - - - - - - - - - - - - - -
    *An additional 2d4 creatures of this type are turned.
    **Special creatures include unique undead, free-willed undead of the Negative Material Plane, certain Greater and Lesser Powers, and those undead that dwell in the Outer Planes.
    Paladins turn undead as priests who are two levels lower.
    +
      +
    • An additional 2d4 creatures of this type are turned.
    • +
    • Special creatures include unique undead, free-willed undead of the Negative Material Plane, certain Greater and Lesser Powers, and those creatures that dwell in the Outer Planes.
    • +
    • Paladins turn undead as priests who are two levels lower.
    • +
    +
    + PHB p. 137 / DMG p. 96 + Sage Advice #248 p. 22
    @@ -33899,20 +33900,17 @@

    Monster Sheet specific

    dexterityTable['dexmissile'] = ['Error','-6','-4','-3','-2','-1','0','0','0','0','0','0','0','0','0','0','+1','+2','+2','+3','+3','+4','+4','+4','+5','+5']; dexterityTable['dexdefense'] = ['Error','+5','+5','+4','+3','+2','+1','0','0','0','0','0','0','0','0','-1','-2','-3','-4','-4','-4','-5','-5','-5','-6','-6']; -dexterityTable['dex-pickpocket'] = ['0','0','0','0','0','0','0','0','0','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; -dexterityTable['dex-openlocks'] = ['0','0','0','0','0','0','0','0','0','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+35','+35','+35','+35']; -dexterityTable['dex-findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+25','+25','+25']; -dexterityTable['dex-movesilently'] = ['0','0','0','0','0','0','0','0','0','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; -dexterityTable['dex-hideinshadows'] = ['0','0','0','0','0','0','0','0','0','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; -dexterityTable['dex-climbwalls'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+25','+25','+25']; -dexterityTable['dex-tunneling'] = ['0','0','0','0','0','0','0','0','0','-10','-5','-0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; -dexterityTable['dex-escapebonds'] = ['0','0','0','0','0','0','0','0','0','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; - -dexterityTable['aim-pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; -dexterityTable['aim-openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; +// Player's Handbook Premium Edition, extended by Player's Options: Skills & Powers, 2nd printing +dexterityTable['pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; +dexterityTable['openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; +dexterityTable['findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+20','+20','+20']; +dexterityTable['movesilently'] = ['0','0','0','-30','-30','-30','-25','-25','-20','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+15','+20','+20','+25','+25','+30']; +dexterityTable['hideinshadows'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; +dexterityTable['climbwalls'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; -dexterityTable['balance-movesilently'] = ['0','0','0','-30','-30','-30','-25','-25','-20','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+15','+20','+20','+25','+25','+30']; -dexterityTable['balance-climbwalls'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; +// Player's Option: Skills & Powers +dexterityTable['tunneling'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','-0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; +dexterityTable['escapebonds'] = ['0','0','0','-15','-15','-15','-15','-15','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['dexnotes'] = ['INVALID DEXTERITY','','','','','','','','','','','','','','','','','','','','','','','','','','']; @@ -41956,22 +41954,26 @@

    Monster Sheet specific

    const ROGUE_ARMOR = {}; // Thief armor ROGUE_ARMOR['No Armor'] = { - 'Pick Pockets' : '5', - 'Open Locks' : '0', - 'Find/Remove Traps' : '0', - 'Move Silently' : '10', - 'Hide in Shadows' : '5', - 'Detect Noise' : '0', - 'Climb Walls' : '10', + 'Pick Pockets' : '5', + 'Open Locks' : '0', + 'Find/Remove Traps': '0', + 'Move Silently' : '10', + 'Hide in Shadows' : '5', + 'Detect Noise' : '0', + 'Climb Walls' : '10', + 'Tunneling' : '10', + 'Escape bonds' : '5', } ROGUE_ARMOR['Leather Armor'] = { - 'Pick Pockets' : '0', - 'Open Locks' : '0', - 'Find/Remove Traps' : '0', - 'Move Silently' : '0', - 'Hide in Shadows' : '0', - 'Detect Noise' : '0', - 'Climb Walls' : '0', + 'Pick Pockets' : '0', + 'Open Locks' : '0', + 'Find/Remove Traps': '0', + 'Move Silently' : '0', + 'Hide in Shadows' : '0', + 'Detect Noise' : '0', + 'Climb Walls' : '0', + 'Tunneling' : '0', + 'Escape bonds' : '0', } ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Pick Pockets' : '-30', @@ -41981,6 +41983,8 @@

    Monster Sheet specific

    'Hide in Shadows' : '-20', 'Detect Noise' : '-10', 'Climb Walls' : '-30', + 'Tunneling' : '-10', + 'Escape bonds' : '-5', }; ROGUE_ARMOR['Elven Chain Mail'] = { 'Pick Pockets' : '-20', @@ -41990,6 +41994,8 @@

    Monster Sheet specific

    'Hide in Shadows' : '-10', 'Detect Noise' : '-5', 'Climb Walls' : '-20', + 'Tunneling' : '-5', + 'Escape bonds' : '-5', }; ROGUE_ARMOR['Silenced Elven Chain Mail'] = { 'Pick Pockets' : '-25', @@ -69249,36 +69255,36 @@

    Monster Sheet specific

    return; } - let aim = getLookupValue(aimRaw, ''); - let balance = getLookupValue(balanceRaw, ''); + let aim = getLookupValue(aimRaw, dexterity); + let balance = getLookupValue(balanceRaw, dexterity); let dexnotes; let dex2notes; let standardRules = false; if (aimRaw === '' && balanceRaw === '') { - dexnotes = ''; + dexnotes = dexterityTable['dexnotes'][dexterity]; dex2notes = ''; standardRules = true; } else { - dexnotes = aim === 0 ? 'INVALID AIM' : ''; - dex2notes = balance === 0 ? 'INVALID BALANCE' : ''; + dexnotes = aim === 0 ? 'INVALID AIM' : dexterityTable['dexnotes'][aim]; + dex2notes = balance === 0 ? 'INVALID BALANCE' : dexterityTable['dexnotes'][balance]; } assignAttributes(dexterity, aim, balance, dexnotes, dex2notes, standardRules); function assignAttributes(dexterity, aim, balance, dexnotes, dex2notes, standardRules) { setAttrs({ - ppd: dexterityTable['aim-pickpocket'][aim] || dexterityTable['dex-pickpocket'][dexterity], - old: dexterityTable['aim-openlocks'][aim] || dexterityTable['dex-openlocks'][dexterity], - rtd: dexterityTable['dex-findtraps'][dexterity], - msd: dexterityTable['balance-movesilently'][balance] || dexterityTable['dex-movesilently'][dexterity], - hsd: dexterityTable['dex-hideinshadows'][dexterity], - cwd: standardRules ? '0' : dexterityTable['balance-climbwalls'][balance] || dexterityTable['dex-climbwalls'][dexterity], - tud: standardRules ? '0' : dexterityTable['dex-tunneling'][dexterity], - ebd: standardRules ? '0' : dexterityTable['dex-escapebonds'][dexterity], - dexreact: dexterityTable['dexreact'][getLookupValue(balance, dexterity)], - dexmissile: dexterityTable['dexmissile'][getLookupValue(aim, dexterity)], - dexdefense: dexterityTable['dexdefense'][getLookupValue(balance, dexterity)], + ppd: dexterityTable['pickpocket'][aim], + old: dexterityTable['openlocks'][aim], + rtd: dexterityTable['findtraps'][aim], + msd: dexterityTable['movesilently'][balance], + hsd: dexterityTable['hideinshadows'][balance], + cwd: standardRules ? '0' : dexterityTable['climbwalls'][balance], + tud: dexterityTable['tunneling'][dexterity], + ebd: dexterityTable['escapebonds'][dexterity], + dexreact: dexterityTable['dexreact'][balance], + dexmissile: dexterityTable['dexmissile'][aim], + dexdefense: dexterityTable['dexdefense'][balance], dexnotes: dexnotes, dex2notes: dex2notes, }); diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index 36a75069ea97..82bcbfdf6626 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -684,14 +684,6 @@ table.sheet-padding-right-column2 td:nth-child(2) { margin-left: 10px; } -table.sheet-table-notes td:first-child { - text-align: right; - vertical-align: top; -} -table.sheet-table-notes td:nth-child(2) { - padding-left: 5px; -} - .sheet-note { line-height:1em; font-family: Arial, sans-serif; @@ -788,6 +780,42 @@ div.repcontainer div.repitem:first-child thead.sheet-show-first { content: "t"; } +ul.custom-list { + max-width: 650px; + margin-bottom: 0; +} + +ul.custom-list li span { + padding-left: 8px; /* Adjust the padding as needed */ + display: block; +} + +.bullet-disc::marker { + content: "•"; +} + +.bullet-star::marker { + content: "*"; +} + +.bullet-star-star::marker { + content: "**"; +} + +.bullet-cross::marker { + content: "†"; +} + +.bullet-r::marker { + content: "R"; + font-size: smaller; +} + +.bullet-s-and-s::marker { + content: "S&S"; + font-size: smaller; +} + div[data-groupname="repeating_weaponprofs"].editmode div.repitem > :nth-child(2), div[data-groupname="repeating_profs"].editmode div.repitem > :nth-child(2), div[data-groupname="repeating_langs"].editmode div.repitem > :nth-child(2), diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index e3edbf453e00..68b7f6fd63f7 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -684,14 +684,6 @@ table.sheet-padding-right-column2 td:nth-child(2) { margin-left: 10px; } -table.sheet-table-notes td:first-child { - text-align: right; - vertical-align: top; -} -table.sheet-table-notes td:nth-child(2) { - padding-left: 5px; -} - .sheet-note { line-height:1em; font-family: Arial, sans-serif; @@ -788,6 +780,42 @@ div.repcontainer div.repitem:first-child thead.sheet-show-first { content: "t"; } +ul.custom-list { + max-width: 650px; + margin-bottom: 0; +} + +ul.custom-list li span { + padding-left: 8px; /* Adjust the padding as needed */ + display: block; +} + +.bullet-disc::marker { + content: "•"; +} + +.bullet-star::marker { + content: "*"; +} + +.bullet-star-star::marker { + content: "**"; +} + +.bullet-cross::marker { + content: "†"; +} + +.bullet-r::marker { + content: "R"; + font-size: smaller; +} + +.bullet-s-and-s::marker { + content: "S&S"; + font-size: smaller; +} + div[data-groupname="repeating_weaponprofs"].editmode div.repitem > :nth-child(2), div[data-groupname="repeating_profs"].editmode div.repitem > :nth-child(2), div[data-groupname="repeating_langs"].editmode div.repitem > :nth-child(2), diff --git a/ADnD_2E_Revised/html/tabs/character-tab/attributes-tab/attributes-standard-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/attributes-tab/attributes-standard-tab.html index 99ee7e4155c0..b49884281df7 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/attributes-tab/attributes-standard-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/attributes-tab/attributes-standard-tab.html @@ -36,7 +36,7 @@ - + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 314537d4dd83..c6faa29f5b41 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -91,7 +91,7 @@

    Skills & Powers / Dark Sun

    - Move Silently + Move SilentlyR % % % @@ -106,7 +106,7 @@

    Skills & Powers / Dark Sun

    - Hide in Shadows + Hide in ShadowsR % % % @@ -287,23 +287,35 @@

    Skills & Powers / Dark Sun

    +
      +
    • + Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. +
        +
      • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
      • +
      +
    • +
    • + Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook (see tables below). +
    • +
    • + Thieving skills maximum skill is 95%, but Rangers have maximum skill at 99% for Hide in Shadows and Move Silently. +
    • +
    - - - - - - - - - -
    * - These are not automatically updated based on dexterity or armor, as their source books do not agree on the modifiers.
    - Sources: Player's Option: Skills & Powers, Dark Sun: Dragon Kings, Dark Sun Revised: The Age of Heroes. -
    S&S - This is not automatically updated based on dexterity or armor.
    - Source: Sages & Specialists. -
    +
      +
    • + These skills are from Player's Option: Skills & Powers, Dark Sun: Dragon Kings, and Dark Sun Revised: The Age of Heroes. +
        +
      • Dexterity and Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes.
      • +
      +
    • +
    • + + Ability score adjustment to the Appraisal skill is based on Intelligence instead of Dexterity. This is not autofilled by the sheet.
      + Source: Sages & Specialists, p. 28. +
      +
    • +

    diff --git a/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html index 2c8bad3be1a7..6f47bdc61096 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/turn-undead-tab.html @@ -507,20 +507,11 @@

    - - - - - - - - - - - - - -
    *An additional 2d4 creatures of this type are turned.
    **Special creatures include unique undead, free-willed undead of the Negative Material Plane, certain Greater and Lesser Powers, and those creatures that dwell in the Outer Planes.
    Paladins turn undead as priests who are two levels lower.
    +
      +
    • An additional 2d4 creatures of this type are turned.
    • +
    • Special creatures include unique undead, free-willed undead of the Negative Material Plane, certain Greater and Lesser Powers, and those creatures that dwell in the Outer Planes.
    • +
    • Paladins turn undead as priests who are two levels lower.
    • +

    PHB p. 137 / DMG p. 96 + Sage Advice #248 p. 22
    diff --git a/ADnD_2E_Revised/javascript/abilityScores.js b/ADnD_2E_Revised/javascript/abilityScores.js index 0d9526c2bb22..e45317f249ea 100644 --- a/ADnD_2E_Revised/javascript/abilityScores.js +++ b/ADnD_2E_Revised/javascript/abilityScores.js @@ -61,18 +61,17 @@ dexterityTable['dexreact'] = ['Error','-6','-4','-3','-2','-1','0','0','0','0',' dexterityTable['dexmissile'] = ['Error','-6','-4','-3','-2','-1','0','0','0','0','0','0','0','0','0','0','+1','+2','+2','+3','+3','+4','+4','+4','+5','+5']; dexterityTable['dexdefense'] = ['Error','+5','+5','+4','+3','+2','+1','0','0','0','0','0','0','0','0','-1','-2','-3','-4','-4','-4','-5','-5','-5','-6','-6']; -dexterityTable['dex-pickpocket'] = ['0','0','0','0','0','0','0','0','0','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; -dexterityTable['dex-openlocks'] = ['0','0','0','0','0','0','0','0','0','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+35','+35','+35','+35']; -dexterityTable['dex-findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+25','+25','+25']; -dexterityTable['dex-movesilently'] = ['0','0','0','0','0','0','0','0','0','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; -dexterityTable['dex-hideinshadows'] = ['0','0','0','0','0','0','0','0','0','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; -dexterityTable['dex-climbwalls'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+25','+25','+25']; - -dexterityTable['aim-pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; -dexterityTable['aim-openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; - -dexterityTable['balance-movesilently'] = ['0','0','0','-30','-30','-30','-25','-25','-20','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+15','+20','+20','+25','+25','+30']; -dexterityTable['balance-climbwalls'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; +// Player's Handbook Premium Edition, extended by Player's Options: Skills & Powers, 2nd printing +dexterityTable['pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; +dexterityTable['openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; +dexterityTable['findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+20','+20','+20']; +dexterityTable['movesilently'] = ['0','0','0','-30','-30','-30','-25','-25','-20','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+15','+20','+20','+25','+25','+30']; +dexterityTable['hideinshadows'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; +dexterityTable['climbwalls'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; + +// Player's Option: Skills & Powers +dexterityTable['tunneling'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','-0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; +dexterityTable['escapebonds'] = ['0','0','0','-15','-15','-15','-15','-15','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['dexnotes'] = ['INVALID DEXTERITY','','','','','','','','','','','','','','','','','','','','','','','','','','']; diff --git a/ADnD_2E_Revised/javascript/rogueArmor.js b/ADnD_2E_Revised/javascript/rogueArmor.js index 5a7a35abf955..7b90d4040345 100644 --- a/ADnD_2E_Revised/javascript/rogueArmor.js +++ b/ADnD_2E_Revised/javascript/rogueArmor.js @@ -1,22 +1,26 @@ const ROGUE_ARMOR = {}; // Thief armor ROGUE_ARMOR['No Armor'] = { - 'Pick Pockets' : '5', - 'Open Locks' : '0', - 'Find/Remove Traps' : '0', - 'Move Silently' : '10', - 'Hide in Shadows' : '5', - 'Detect Noise' : '0', - 'Climb Walls' : '10', + 'Pick Pockets' : '5', + 'Open Locks' : '0', + 'Find/Remove Traps': '0', + 'Move Silently' : '10', + 'Hide in Shadows' : '5', + 'Detect Noise' : '0', + 'Climb Walls' : '10', + 'Tunneling' : '10', + 'Escape bonds' : '5', } ROGUE_ARMOR['Leather Armor'] = { - 'Pick Pockets' : '0', - 'Open Locks' : '0', - 'Find/Remove Traps' : '0', - 'Move Silently' : '0', - 'Hide in Shadows' : '0', - 'Detect Noise' : '0', - 'Climb Walls' : '0', + 'Pick Pockets' : '0', + 'Open Locks' : '0', + 'Find/Remove Traps': '0', + 'Move Silently' : '0', + 'Hide in Shadows' : '0', + 'Detect Noise' : '0', + 'Climb Walls' : '0', + 'Tunneling' : '0', + 'Escape bonds' : '0', } ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Pick Pockets' : '-30', @@ -26,6 +30,8 @@ ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Hide in Shadows' : '-20', 'Detect Noise' : '-10', 'Climb Walls' : '-30', + 'Tunneling' : '-10', + 'Escape bonds' : '-5', }; ROGUE_ARMOR['Elven Chain Mail'] = { 'Pick Pockets' : '-20', @@ -35,6 +41,8 @@ ROGUE_ARMOR['Elven Chain Mail'] = { 'Hide in Shadows' : '-10', 'Detect Noise' : '-5', 'Climb Walls' : '-20', + 'Tunneling' : '-5', + 'Escape bonds' : '-5', }; ROGUE_ARMOR['Silenced Elven Chain Mail'] = { 'Pick Pockets' : '-25', diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 459771060d60..09c298732713 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -527,34 +527,36 @@ on('change:dexterity change:aim change:balance', function() { return; } - let aim = getLookupValue(aimRaw, ''); - let balance = getLookupValue(balanceRaw, ''); + let aim = getLookupValue(aimRaw, dexterity); + let balance = getLookupValue(balanceRaw, dexterity); let dexnotes; let dex2notes; let standardRules = false; if (aimRaw === '' && balanceRaw === '') { - dexnotes = ''; + dexnotes = dexterityTable['dexnotes'][dexterity]; dex2notes = ''; standardRules = true; } else { - dexnotes = aim === 0 ? 'INVALID AIM' : ''; - dex2notes = balance === 0 ? 'INVALID BALANCE' : ''; + dexnotes = aim === 0 ? 'INVALID AIM' : dexterityTable['dexnotes'][aim]; + dex2notes = balance === 0 ? 'INVALID BALANCE' : dexterityTable['dexnotes'][balance]; } assignAttributes(dexterity, aim, balance, dexnotes, dex2notes, standardRules); function assignAttributes(dexterity, aim, balance, dexnotes, dex2notes, standardRules) { setAttrs({ - ppd: dexterityTable['aim-pickpocket'][aim] || dexterityTable['dex-pickpocket'][dexterity], - old: dexterityTable['aim-openlocks'][aim] || dexterityTable['dex-openlocks'][dexterity], - rtd: dexterityTable['dex-findtraps'][dexterity], - msd: dexterityTable['balance-movesilently'][balance] || dexterityTable['dex-movesilently'][dexterity], - hsd: dexterityTable['dex-hideinshadows'][dexterity], - cwd: standardRules ? '0' : dexterityTable['balance-climbwalls'][balance] || dexterityTable['dex-climbwalls'][dexterity], - dexreact: dexterityTable['dexreact'][getLookupValue(balance, dexterity)], - dexmissile: dexterityTable['dexmissile'][getLookupValue(aim, dexterity)], - dexdefense: dexterityTable['dexdefense'][getLookupValue(balance, dexterity)], + ppd: dexterityTable['pickpocket'][aim], + old: dexterityTable['openlocks'][aim], + rtd: dexterityTable['findtraps'][aim], + msd: dexterityTable['movesilently'][balance], + hsd: dexterityTable['hideinshadows'][balance], + cwd: standardRules ? '0' : dexterityTable['climbwalls'][balance], + tud: dexterityTable['tunneling'][dexterity], + ebd: dexterityTable['escapebonds'][dexterity], + dexreact: dexterityTable['dexreact'][balance], + dexmissile: dexterityTable['dexmissile'][aim], + dexdefense: dexterityTable['dexdefense'][balance], dexnotes: dexnotes, dex2notes: dex2notes, }); From ddae42cc8d12ceeba6075aead27854eb644cf2e7 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 30 May 2023 09:50:38 +0200 Subject: [PATCH 17/51] Updated placeholder --- ADnD_2E_Revised/2ESheet.html | 4 ++-- ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 29732cfa5996..361c02c56882 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2412,8 +2412,8 @@

    Skills & Powers / Dark Sun

    - - + + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index c6faa29f5b41..47f1510f388f 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -28,8 +28,8 @@

    Skills & Powers / Dark Sun

    - - + + From 4a48bc1dc911af7121cbb2f747b17db7e1c63f9a Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Wed, 31 May 2023 08:30:54 +0200 Subject: [PATCH 18/51] - Added migration for rogue total points - Brought the new skills into the fold using sheet worker for update - Removed the "newskill" holder attribute as it is not needed when using TAS.reduce - Added toggle for rangers --- ADnD_2E_Revised/2ESheet.html | 110 +++++++++++++----- .../html/tabs/character-tab/rogue-tab.html | 59 +++++++--- ADnD_2E_Revised/javascript/sheetWorkers.js | 50 ++++++-- ADnD_2E_Revised/javascript/version.js | 1 + 4 files changed, 168 insertions(+), 52 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 361c02c56882..9f58fcd3af48 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2390,17 +2390,49 @@

    Rogue Skills

    S.P./D.S.

    - -    - - + + + + + + + +
    Backstab Multiplier
    + + + + + + + + + + + + + + +
    Thieving skills progression
    Macro / NumberTotal
    + + + + + + + +
    Are you a Ranger?R
    + +


    Standard

    -

    Skills & Powers / Dark Sun

    +

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2408,8 +2440,7 @@

    Skills & Powers / Dark Sun

    - + @@ -2584,7 +2615,7 @@

    Skills & Powers / Dark Sun

    - + @@ -2596,7 +2627,7 @@

    Skills & Powers / Dark Sun

    - + @@ -2608,7 +2639,7 @@

    Skills & Powers / Dark Sun

    - + @@ -2620,7 +2651,7 @@

    Skills & Powers / Dark Sun

    - + @@ -2632,7 +2663,7 @@

    Skills & Powers / Dark Sun

    - + @@ -2644,7 +2675,7 @@

    Skills & Powers / Dark Sun

    - +
    Remaining: - - + @@ -2572,7 +2603,7 @@

    Skills & Powers / Dark Sun

    % % %%%
    % % %%%
    % % %%%
    % % %%%
    % % %%%
    % % %%%
    % % %%%
    @@ -69099,15 +69130,25 @@

    Monster Sheet specific

    //#region Generic Setup functions const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { - let onChange = fieldsToSum.map(field => `change:${field}`).join(' '); + let fieldsToRead = structuredClone(fieldsToSum); + let maxIsField = typeof maxValue === 'string'; + if (maxIsField) { + fieldsToRead.push(maxValue); + } + + let onChange = fieldsToRead.map(field => `change:${field}`).join(' '); on(onChange, function () { - getAttrs(fieldsToSum, function (values) { + getAttrs(fieldsToRead, function (values) { let total = 0; fieldsToSum.forEach(field => { total += parseInt(values[field]) || 0; }); - if (!isNaN(maxValue)) + let maxValueInt = maxValue; + if (maxIsField) + maxValueInt = parseInt(values[maxValue]) + + if (!isNaN(maxValueInt)) total = Math.min(total, maxValue); setAttrs({ @@ -69590,7 +69631,7 @@

    Monster Sheet specific

    //#endregion const CALCULATION_FIELDS = [ - { formulaField: 'rogue-level-base'}, + { formulaField: 'rogue-level-base', calculatedField: 'rogue-level-total'}, { formulaField: 'level-wizard'}, { formulaField: 'level-priest'}, { formulaField: 'thac0-base', calculatedField: 'thac0-base-calc' }, @@ -70162,13 +70203,35 @@

    Monster Sheet specific

    //#region Rogue skills // --- Start setup Rogue skills total --- // const ROGUE_STANDARD_SKILLS = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; +const ROGUE_EXTRA_SKILLS = ['dm', 'di', 'br', 'tu', 'eb', 'fd', 'ap']; const ROGUE_SKILL_COLUMNS = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; -ROGUE_STANDARD_SKILLS.forEach(skill => { - setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), 95); +ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).forEach(skill => { + let maxValue = 95; + if (skill === 'ms' || skill === 'hs') + maxValue = 'rogue-ranger'; + setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), maxValue); }); setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt', 95); // --- End setup Rogue skills total --- // +//Rogue sum skill points +let rogueLevelAttributes = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).map(skill => skill+'l'); +on(`${rogueLevelAttributes.map(s => 'change:'+s).join(' ')} change:rogue-level-total change:repeating_customrogue:crl remove:repeating_customrogue`, function(){ + TAS.repeating('customrogue') + .attrs([...rogueLevelAttributes, 'all-thief-points-remain', 'rogue-level-total']) + .fields('crl') + .reduce(function (memo, row, attrSet, id, rowSet) { + memo += row.I['crl']; + return memo; + }, 0, function(memo, rowSet, attrSet) { + rogueLevelAttributes.forEach(attr => { + memo += attrSet.I[attr]; + }) + attrSet.I['all-thief-points-remain'] = attrSet.I['rogue-level-total'] - memo; + }) + .execute(); +}); + //Rogue armor modifier auto fill on('change:armorname', function(eventInfo) { let armor = ROGUE_ARMOR[eventInfo.newValue]; @@ -70186,12 +70249,6 @@

    Monster Sheet specific

    }; setAttrs(armorModifiers); }); -//Rogue Custom Skills level sum - -on('change:repeating_customrogue:crl remove:repeating_customrogue', function(){ - TAS.repeatingSimpleSum('customrogue', 'crl', 'newskill'); -}); -// --- End setup Rogue skills total --- // //#endregion //#region Weapons tab logic and autofil @@ -71839,6 +71896,7 @@

    Monster Sheet specific

    function migrate4_17_0() { console.log('Migrate to v4.17.0'); + calculateFormula('rogue-level-base', 'rogue-level-total'); TAS.repeating('customrogue') .fields('cra','crarmorp') .each(function (row) { diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 47f1510f388f..493d197e5ec6 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -6,17 +6,49 @@

    Rogue Skills

    S.P./D.S.

    - -    - - + + + + + + + +
    Backstab Multiplier
    + + + + + + + + + + + + + + +
    Thieving skills progression
    Macro / NumberTotal
    + + + + + + + +
    Are you a Ranger?R
    + +


    Standard

    -

    Skills & Powers / Dark Sun

    +

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -24,8 +56,7 @@

    Skills & Powers / Dark Sun

    - + @@ -200,7 +231,7 @@

    Skills & Powers / Dark Sun

    - + @@ -212,7 +243,7 @@

    Skills & Powers / Dark Sun

    - + @@ -224,7 +255,7 @@

    Skills & Powers / Dark Sun

    - + @@ -236,7 +267,7 @@

    Skills & Powers / Dark Sun

    - + @@ -248,7 +279,7 @@

    Skills & Powers / Dark Sun

    - + @@ -260,7 +291,7 @@

    Skills & Powers / Dark Sun

    - +
    Remaining: - - + @@ -188,7 +219,7 @@

    Skills & Powers / Dark Sun

    % % %%%
    % % %%%
    % % %%%
    % % %%%
    % % %%%
    % % %%%
    % % %%%
    diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 09c298732713..197da531f400 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -371,15 +371,25 @@ const repeatingCalculateRemainingRecursive = function (tail, accumulator, result //#region Generic Setup functions const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { - let onChange = fieldsToSum.map(field => `change:${field}`).join(' '); + let fieldsToRead = structuredClone(fieldsToSum); + let maxIsField = typeof maxValue === 'string'; + if (maxIsField) { + fieldsToRead.push(maxValue); + } + + let onChange = fieldsToRead.map(field => `change:${field}`).join(' '); on(onChange, function () { - getAttrs(fieldsToSum, function (values) { + getAttrs(fieldsToRead, function (values) { let total = 0; fieldsToSum.forEach(field => { total += parseInt(values[field]) || 0; }); - if (!isNaN(maxValue)) + let maxValueInt = maxValue; + if (maxIsField) + maxValueInt = parseInt(values[maxValue]) + + if (!isNaN(maxValueInt)) total = Math.min(total, maxValue); setAttrs({ @@ -862,7 +872,7 @@ on('clicked:opendoor-check', function (eventInfo){ //#endregion const CALCULATION_FIELDS = [ - { formulaField: 'rogue-level-base'}, + { formulaField: 'rogue-level-base', calculatedField: 'rogue-level-total'}, { formulaField: 'level-wizard'}, { formulaField: 'level-priest'}, { formulaField: 'thac0-base', calculatedField: 'thac0-base-calc' }, @@ -1434,13 +1444,35 @@ setupSpellSlotsReset('reset-spent-slots-pow', null, null, powerSpellSections) //#region Rogue skills // --- Start setup Rogue skills total --- // const ROGUE_STANDARD_SKILLS = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', 'ib']; +const ROGUE_EXTRA_SKILLS = ['dm', 'di', 'br', 'tu', 'eb', 'fd', 'ap']; const ROGUE_SKILL_COLUMNS = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; -ROGUE_STANDARD_SKILLS.forEach(skill => { - setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), 95); +ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).forEach(skill => { + let maxValue = 95; + if (skill === 'ms' || skill === 'hs') + maxValue = 'rogue-ranger'; + setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), maxValue); }); setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt', 95); // --- End setup Rogue skills total --- // +//Rogue sum skill points +let rogueLevelAttributes = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).map(skill => skill+'l'); +on(`${rogueLevelAttributes.map(s => 'change:'+s).join(' ')} change:rogue-level-total change:repeating_customrogue:crl remove:repeating_customrogue`, function(){ + TAS.repeating('customrogue') + .attrs([...rogueLevelAttributes, 'all-thief-points-remain', 'rogue-level-total']) + .fields('crl') + .reduce(function (memo, row, attrSet, id, rowSet) { + memo += row.I['crl']; + return memo; + }, 0, function(memo, rowSet, attrSet) { + rogueLevelAttributes.forEach(attr => { + memo += attrSet.I[attr]; + }) + attrSet.I['all-thief-points-remain'] = attrSet.I['rogue-level-total'] - memo; + }) + .execute(); +}); + //Rogue armor modifier auto fill on('change:armorname', function(eventInfo) { let armor = ROGUE_ARMOR[eventInfo.newValue]; @@ -1458,12 +1490,6 @@ on('change:armorname', function(eventInfo) { }; setAttrs(armorModifiers); }); -//Rogue Custom Skills level sum - -on('change:repeating_customrogue:crl remove:repeating_customrogue', function(){ - TAS.repeatingSimpleSum('customrogue', 'crl', 'newskill'); -}); -// --- End setup Rogue skills total --- // //#endregion //#region Weapons tab logic and autofil diff --git a/ADnD_2E_Revised/javascript/version.js b/ADnD_2E_Revised/javascript/version.js index a6f9d8a11909..f6854f23cef9 100644 --- a/ADnD_2E_Revised/javascript/version.js +++ b/ADnD_2E_Revised/javascript/version.js @@ -87,6 +87,7 @@ function moveStaticToRepeating(section, fieldsToMove) { function migrate4_17_0() { console.log('Migrate to v4.17.0'); + calculateFormula('rogue-level-base', 'rogue-level-total'); TAS.repeating('customrogue') .fields('cra','crarmorp') .each(function (row) { From e55e879b52419a31e0703a00667f1d7946164f48 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Wed, 31 May 2023 08:38:42 +0200 Subject: [PATCH 19/51] Fixed total calculation with ranger toggle --- ADnD_2E_Revised/2ESheet.html | 2 +- ADnD_2E_Revised/javascript/sheetWorkers.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 9f58fcd3af48..16418348282f 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -69149,7 +69149,7 @@

    Monster Sheet specific

    maxValueInt = parseInt(values[maxValue]) if (!isNaN(maxValueInt)) - total = Math.min(total, maxValue); + total = Math.min(total, maxValueInt); setAttrs({ [totalField]: total diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 197da531f400..99c2ba4fe2bd 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -390,7 +390,7 @@ const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { maxValueInt = parseInt(values[maxValue]) if (!isNaN(maxValueInt)) - total = Math.min(total, maxValue); + total = Math.min(total, maxValueInt); setAttrs({ [totalField]: total From d3daaf05b90e71e0ff94e995be0bf250a043b838 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 11:34:02 +0200 Subject: [PATCH 20/51] - Removed the maximum value from the sheet worker logic - Added maximum value to the actual roll - Added notes explaining maximum value - Added CRP button for Find/Remove traps - Added CRP button for Move silently and Hide in shadows - Updated the extra skills to use the roll template layout --- ADnD_2E_Revised/2ESheet.html | 137 +++++++++++------- ADnD_2E_Revised/2EStyle.css | 5 + ADnD_2E_Revised/css/2EStyle-base.css | 5 + .../html/tabs/character-tab/rogue-tab.html | 57 ++++---- ADnD_2E_Revised/javascript/sheetWorkers.js | 80 ++++++---- 5 files changed, 180 insertions(+), 104 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 16418348282f..1e0047948234 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2456,7 +2456,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    Armor Magic Level - Total + Total95 @@ -2469,7 +2469,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Open Locks @@ -2482,7 +2482,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + @@ -2497,12 +2497,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + @@ -2516,10 +2511,9 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + - + Hide in ShadowsR % @@ -2531,8 +2525,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + @@ -2546,7 +2539,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + @@ -2560,7 +2553,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Read Languages @@ -2572,7 +2565,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Legend Lore @@ -2584,7 +2577,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - +
    @@ -2604,7 +2597,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Detect Illusion* @@ -2616,7 +2609,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Bribe* @@ -2628,7 +2621,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Tunneling* @@ -2640,7 +2633,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Escape Bonds* @@ -2652,7 +2645,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Forge Documents* @@ -2664,7 +2657,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + AppraisalS&S @@ -2676,7 +2669,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - +
    @@ -2697,7 +2690,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + @@ -2712,8 +2705,18 @@

    Skills & Powers / Dark Sun / Sages & Specialists

  • Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook (see tables below).
  • +
  • + + Thieving skills maximum chance of success after all modifiers are applied (for race, dexterity, kit, armor, conditions, equipment, etc.) is 95%. The Complete Thief's Handbook p. 90.
    + This limit is applied when you click to roll the ability. +
    +
  • - Thieving skills maximum skill is 95%, but Rangers have maximum skill at 99% for Hide in Shadows and Move Silently. + + Ranger's chance to Hide in Shadows or Move Silently can never be more than 99%. The Complete Ranger's Handbook p. 11.
    + When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved. + This limit is applied when you click to roll the ability. +
  • @@ -69129,28 +69132,15 @@

    Monster Sheet specific

    //#endregion //#region Generic Setup functions -const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { - let fieldsToRead = structuredClone(fieldsToSum); - let maxIsField = typeof maxValue === 'string'; - if (maxIsField) { - fieldsToRead.push(maxValue); - } - - let onChange = fieldsToRead.map(field => `change:${field}`).join(' '); +const setupStaticCalculateTotal = function(totalField, fieldsToSum) { + let onChange = fieldsToSum.map(field => `change:${field}`).join(' '); on(onChange, function () { - getAttrs(fieldsToRead, function (values) { + getAttrs(fieldsToSum, function (values) { let total = 0; fieldsToSum.forEach(field => { total += parseInt(values[field]) || 0; }); - let maxValueInt = maxValue; - if (maxIsField) - maxValueInt = parseInt(values[maxValue]) - - if (!isNaN(maxValueInt)) - total = Math.min(total, maxValueInt); - setAttrs({ [totalField]: total }); @@ -69158,7 +69148,7 @@

    Monster Sheet specific

    }); } -function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField, maxValue) { +function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); let allFields = [...repeatingFieldsToSum]; allFields.push(repeatingTotalField); @@ -69176,9 +69166,6 @@

    Monster Sheet specific

    total += row.I[column]; }); - if (!isNaN(maxValue)) - total = Math.min(total, maxValue); - row[repeatingTotalField] = total; }) .execute(); @@ -70206,12 +70193,9 @@

    Monster Sheet specific

    const ROGUE_EXTRA_SKILLS = ['dm', 'di', 'br', 'tu', 'eb', 'fd', 'ap']; const ROGUE_SKILL_COLUMNS = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).forEach(skill => { - let maxValue = 95; - if (skill === 'ms' || skill === 'hs') - maxValue = 'rogue-ranger'; - setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), maxValue); + setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`)); }); -setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt', 95); +setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt'); // --- End setup Rogue skills total --- // //Rogue sum skill points @@ -70249,6 +70233,55 @@

    Monster Sheet specific

    }; setAttrs(armorModifiers); }); + +on('clicked:rt', function (eventInfo){ + getAttrs([''], async function (values) { + console.log(eventInfo); + let rollBuilder = new RollTemplateBuilder('2Echeck'); + rollBuilder.push('character=@{character_name}', 'checkroll=[[1d100cs<1cf>96]]'); + + let skill = await extractQueryResult(`?{Find or Removing Trap?|Find Traps|Remove Traps|Remove Invisible/Magical Traps}`); + if (skill === 'Find Traps') { + rollBuilder.push('checkvs=Find Traps\n(in @{armorname})', 'checktarget=[[{@{rtt}+(@{misc-mod}),95}kl1]]%', 'success=After [[1d10]] round(s) you find the trap and knows its general principle but not exact nature.', 'fail=After [[1d10]] round(s) you find nothing.\nYou can try again at next level.'); + } else if (skill === 'Remove Traps') { + rollBuilder.push('checkvs=Remove Traps\n(in @{armorname})', 'checktarget=[[{@{rtt}+(@{misc-mod}),95}kl1]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); + } else if (skill === 'Remove Invisible/Magical Traps') { + rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[floor({@{rtt}+(@{misc-mod}),95}kl1 / 2)]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); + } + + return printRoll(rollBuilder.string()); + }); +}); + +on('clicked:ms clicked:hs', function (eventInfo){ + getAttrs(['rogue-ranger'], async function (values) { + let skill = eventInfo.triggerName.replace('clicked:', ''); + let rollBuilder = new RollTemplateBuilder('2Echeck'); + rollBuilder.push('character=@{character_name}','checkroll=[[1d100cs<1cf>[[@{rogue-ranger}+1]] ]]'); + + if (skill ==='ms') { + rollBuilder.push('checkvs=Move Silently\n(in @{armorname})', 'success=You are silent. Movement rate reduced to 1/3 of normal. Opponents get -2 to surprise roll from silence and another -2 if you are unseen.', 'fail=You are not silent. Movement rate reduced to 1/3 of normal.'); + } else if (skill === 'hs') { + rollBuilder.push('checkvs=Hide in Shadows\n(in @{armorname})', 'success=You are hidden while remaining virtually motionless. (Small careful movements: drawing a weapon, uncork a potion, etc. is allowed)', 'fail=You are not hidden.'); + } + + // The player is a rogue, so no check for surroundings + if (values['rogue-ranger'] === "95") { + rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + await keepContextRoll(); + return printRoll(rollBuilder.string()); + } + + let surroundings = await extractQueryResult(`?{What are your surroundings?|Natural (woodland / forrest / plains),Natural|Non-natural (crypt / city street / indoor / underground),Non-natural}`); + if (surroundings === 'Natural') { + rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + } else { + rollBuilder.push(`checktarget=[[floor({@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1 / 2)]]%`); + } + + return printRoll(rollBuilder.string()); + }); +}); //#endregion //#region Weapons tab logic and autofil diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index 82bcbfdf6626..51345dc99624 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -806,6 +806,11 @@ ul.custom-list li span { content: "†"; } +.bullet-95::marker { + content: "95"; + font-size: smaller; +} + .bullet-r::marker { content: "R"; font-size: smaller; diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index 68b7f6fd63f7..da2ce38d0576 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -806,6 +806,11 @@ ul.custom-list li span { content: "†"; } +.bullet-95::marker { + content: "95"; + font-size: smaller; +} + .bullet-r::marker { content: "R"; font-size: smaller; diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 493d197e5ec6..754340c7950a 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -72,7 +72,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    Armor Magic Level - Total + Total95 @@ -85,7 +85,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Open Locks @@ -98,7 +98,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + @@ -113,12 +113,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + @@ -132,10 +127,9 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + - + Hide in ShadowsR % @@ -147,8 +141,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + @@ -162,7 +155,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + @@ -176,7 +169,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Read Languages @@ -188,7 +181,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Legend Lore @@ -200,7 +193,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - +
    @@ -220,7 +213,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Detect Illusion* @@ -232,7 +225,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Bribe* @@ -244,7 +237,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Tunneling* @@ -256,7 +249,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Escape Bonds* @@ -268,7 +261,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + Forge Documents* @@ -280,7 +273,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + AppraisalS&S @@ -292,7 +285,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - +
    @@ -313,7 +306,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + @@ -328,8 +321,18 @@

    Skills & Powers / Dark Sun / Sages & Specialists

  • Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook (see tables below).
  • +
  • + + Thieving skills maximum chance of success after all modifiers are applied (for race, dexterity, kit, armor, conditions, equipment, etc.) is 95%. The Complete Thief's Handbook p. 90.
    + This limit is applied when you click to roll the ability. +
    +
  • - Thieving skills maximum skill is 95%, but Rangers have maximum skill at 99% for Hide in Shadows and Move Silently. + + Ranger's chance to Hide in Shadows or Move Silently can never be more than 99%. The Complete Ranger's Handbook p. 11.
    + When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved. + This limit is applied when you click to roll the ability. +
  • diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 99c2ba4fe2bd..0df0bd86aa86 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -370,28 +370,15 @@ const repeatingCalculateRemainingRecursive = function (tail, accumulator, result //#endregion //#region Generic Setup functions -const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { - let fieldsToRead = structuredClone(fieldsToSum); - let maxIsField = typeof maxValue === 'string'; - if (maxIsField) { - fieldsToRead.push(maxValue); - } - - let onChange = fieldsToRead.map(field => `change:${field}`).join(' '); +const setupStaticCalculateTotal = function(totalField, fieldsToSum) { + let onChange = fieldsToSum.map(field => `change:${field}`).join(' '); on(onChange, function () { - getAttrs(fieldsToRead, function (values) { + getAttrs(fieldsToSum, function (values) { let total = 0; fieldsToSum.forEach(field => { total += parseInt(values[field]) || 0; }); - let maxValueInt = maxValue; - if (maxIsField) - maxValueInt = parseInt(values[maxValue]) - - if (!isNaN(maxValueInt)) - total = Math.min(total, maxValueInt); - setAttrs({ [totalField]: total }); @@ -399,7 +386,7 @@ const setupStaticCalculateTotal = function(totalField, fieldsToSum, maxValue) { }); } -function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField, maxValue) { +function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); let allFields = [...repeatingFieldsToSum]; allFields.push(repeatingTotalField); @@ -417,9 +404,6 @@ function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, re total += row.I[column]; }); - if (!isNaN(maxValue)) - total = Math.min(total, maxValue); - row[repeatingTotalField] = total; }) .execute(); @@ -1447,12 +1431,9 @@ const ROGUE_STANDARD_SKILLS = ['pp', 'ol', 'rt', 'ms', 'hs', 'dn', 'cw', 'rl', ' const ROGUE_EXTRA_SKILLS = ['dm', 'di', 'br', 'tu', 'eb', 'fd', 'ap']; const ROGUE_SKILL_COLUMNS = ['b', 'r', 'd', 'k', 'a', 'm', 'l']; ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).forEach(skill => { - let maxValue = 95; - if (skill === 'ms' || skill === 'hs') - maxValue = 'rogue-ranger'; - setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`), maxValue); + setupStaticCalculateTotal(`${skill}t`, ROGUE_SKILL_COLUMNS.map(column => `${skill}${column}`)); }); -setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt', 95); +setupRepeatingRowCalculateTotal('customrogue', ROGUE_SKILL_COLUMNS.map(column => `cr${column}`), 'crt'); // --- End setup Rogue skills total --- // //Rogue sum skill points @@ -1490,6 +1471,55 @@ on('change:armorname', function(eventInfo) { }; setAttrs(armorModifiers); }); + +on('clicked:rt', function (eventInfo){ + getAttrs([''], async function (values) { + console.log(eventInfo); + let rollBuilder = new RollTemplateBuilder('2Echeck'); + rollBuilder.push('character=@{character_name}', 'checkroll=[[1d100cs<1cf>96]]'); + + let skill = await extractQueryResult(`?{Find or Removing Trap?|Find Traps|Remove Traps|Remove Invisible/Magical Traps}`); + if (skill === 'Find Traps') { + rollBuilder.push('checkvs=Find Traps\n(in @{armorname})', 'checktarget=[[{@{rtt}+(@{misc-mod}),95}kl1]]%', 'success=After [[1d10]] round(s) you find the trap and knows its general principle but not exact nature.', 'fail=After [[1d10]] round(s) you find nothing.\nYou can try again at next level.'); + } else if (skill === 'Remove Traps') { + rollBuilder.push('checkvs=Remove Traps\n(in @{armorname})', 'checktarget=[[{@{rtt}+(@{misc-mod}),95}kl1]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); + } else if (skill === 'Remove Invisible/Magical Traps') { + rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[floor({@{rtt}+(@{misc-mod}),95}kl1 / 2)]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); + } + + return printRoll(rollBuilder.string()); + }); +}); + +on('clicked:ms clicked:hs', function (eventInfo){ + getAttrs(['rogue-ranger'], async function (values) { + let skill = eventInfo.triggerName.replace('clicked:', ''); + let rollBuilder = new RollTemplateBuilder('2Echeck'); + rollBuilder.push('character=@{character_name}','checkroll=[[1d100cs<1cf>[[@{rogue-ranger}+1]] ]]'); + + if (skill ==='ms') { + rollBuilder.push('checkvs=Move Silently\n(in @{armorname})', 'success=You are silent. Movement rate reduced to 1/3 of normal. Opponents get -2 to surprise roll from silence and another -2 if you are unseen.', 'fail=You are not silent. Movement rate reduced to 1/3 of normal.'); + } else if (skill === 'hs') { + rollBuilder.push('checkvs=Hide in Shadows\n(in @{armorname})', 'success=You are hidden while remaining virtually motionless. (Small careful movements: drawing a weapon, uncork a potion, etc. is allowed)', 'fail=You are not hidden.'); + } + + // The player is a rogue, so no check for surroundings + if (values['rogue-ranger'] === "95") { + rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + await keepContextRoll(); + return printRoll(rollBuilder.string()); + } + + let surroundings = await extractQueryResult(`?{What are your surroundings?|Natural (woodland / forrest / plains),Natural|Non-natural (crypt / city street / indoor / underground),Non-natural}`); + if (surroundings === 'Natural') { + rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + } else { + rollBuilder.push(`checktarget=[[floor({@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1 / 2)]]%`); + } + + return printRoll(rollBuilder.string()); + }); +}); //#endregion //#region Weapons tab logic and autofil From 81c411297ec9bda4513d973203cf833d44ed3bd7 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 14:02:47 +0200 Subject: [PATCH 21/51] used structured clone --- ADnD_2E_Revised/2ESheet.html | 2 +- ADnD_2E_Revised/javascript/sheetWorkers.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 1e0047948234..794e9e43aff1 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -71234,7 +71234,7 @@

    Monster Sheet specific

    return; } - let sectionsCopy = [...NONWEAPON_PROFICIENCY_SECTIONS]; + let sectionsCopy = structuredClone(NONWEAPON_PROFICIENCY_SECTIONS); getAttrs(['prof-slots-total-calc'], function (values) { let accumulator = values['prof-slots-total-calc']; repeatingCalculateRemainingRecursive(sectionsCopy, accumulator, 'prof-slots-remain'); diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 0df0bd86aa86..1a1e50584910 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -2472,7 +2472,7 @@ NONWEAPON_PROFICIENCY_SECTIONS.forEach(({section, nameField, slotsField, ability return; } - let sectionsCopy = [...NONWEAPON_PROFICIENCY_SECTIONS]; + let sectionsCopy = structuredClone(NONWEAPON_PROFICIENCY_SECTIONS); getAttrs(['prof-slots-total-calc'], function (values) { let accumulator = values['prof-slots-total-calc']; repeatingCalculateRemainingRecursive(sectionsCopy, accumulator, 'prof-slots-remain'); From f1d6f3fdc2e078428354b51f0653bd96601a1e99 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 15:17:44 +0200 Subject: [PATCH 22/51] more structured clone --- ADnD_2E_Revised/2ESheet.html | 10 ++++------ ADnD_2E_Revised/javascript/sheetWorkers.js | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 794e9e43aff1..2f8a9d7291a7 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -69150,7 +69150,7 @@

    Monster Sheet specific

    function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); - let allFields = [...repeatingFieldsToSum]; + let allFields = structuredClone(repeatingFieldsToSum); allFields.push(repeatingTotalField); on(`${onChange} remove:repeating_${repeatingName}`, function(eventInfo){ if (eventInfo.removedInfo) @@ -69699,7 +69699,7 @@

    Monster Sheet specific

    console.log(`Summing started by section ${repeatingName}. Fieldname ${fieldName}`); console.time('Summing time'); - let levelsCopy = [...sections]; + let levelsCopy = structuredClone(sections); let accumulator = 0; recursiveSpellSum(levelsCopy, accumulator, oldField, newField, resultFieldName); @@ -70340,10 +70340,8 @@

    Monster Sheet specific

    function combineBooks(activeObjects, comparer, isPlayersOptions) { // Copying fields from active object to avoid side effects being saved permanently - let copyActiveObjects = activeObjects.map(e => { - return {...e} - }); - let copyArray = [...copyActiveObjects]; + let copyActiveObjects = structuredClone(activeObjects); + let copyArray = [...copyActiveObjects]; // intentionally use shallow copy to keep references the same copyActiveObjects.forEach(activeObject => { copyArray.forEach((copyObject, i) => { diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 1a1e50584910..43b25964ddda 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -388,7 +388,7 @@ const setupStaticCalculateTotal = function(totalField, fieldsToSum) { function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); - let allFields = [...repeatingFieldsToSum]; + let allFields = structuredClone(repeatingFieldsToSum); allFields.push(repeatingTotalField); on(`${onChange} remove:repeating_${repeatingName}`, function(eventInfo){ if (eventInfo.removedInfo) @@ -937,7 +937,7 @@ function setupRepeatingSpellSumming(sections, oldField, newField, resultFieldNam console.log(`Summing started by section ${repeatingName}. Fieldname ${fieldName}`); console.time('Summing time'); - let levelsCopy = [...sections]; + let levelsCopy = structuredClone(sections); let accumulator = 0; recursiveSpellSum(levelsCopy, accumulator, oldField, newField, resultFieldName); @@ -1578,10 +1578,8 @@ async function selectVersion(foundObjects, values, comparer, objectName) { function combineBooks(activeObjects, comparer, isPlayersOptions) { // Copying fields from active object to avoid side effects being saved permanently - let copyActiveObjects = activeObjects.map(e => { - return {...e} - }); - let copyArray = [...copyActiveObjects]; + let copyActiveObjects = structuredClone(activeObjects); + let copyArray = [...copyActiveObjects]; // intentionally use shallow copy to keep references the same copyActiveObjects.forEach(activeObject => { copyArray.forEach((copyObject, i) => { From 047114069554ebf8c64a2b746d0256f28b272772 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 15:24:53 +0200 Subject: [PATCH 23/51] Optimized code --- ADnD_2E_Revised/2ESheet.html | 8 +++----- ADnD_2E_Revised/javascript/sheetWorkers.js | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 2f8a9d7291a7..e206ddfb0ca9 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -69150,14 +69150,12 @@

    Monster Sheet specific

    function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); - let allFields = structuredClone(repeatingFieldsToSum); - allFields.push(repeatingTotalField); on(`${onChange} remove:repeating_${repeatingName}`, function(eventInfo){ if (eventInfo.removedInfo) return; TAS.repeating(repeatingName) - .fields(allFields) + .fields([...repeatingFieldsToSum, repeatingTotalField]) .tap(function(rowSet) { let rowId = parseSourceAttribute(eventInfo).rowId; let row = rowSet[rowId]; @@ -69996,13 +69994,13 @@

    Monster Sheet specific

    {level: '2', sections: ['4', '5', '6', 'wiz2']}, {level: '3', sections: ['7', '8', '9', 'wiz3']}, {level: '4', sections: ['10', '11', '12', 'wiz4']}, - {level: '5', sections: ['70', '71', '72', 'wiz5']}, //... legacy naming convention + {level: '5', sections: ['70', '71', '72', 'wiz5']}, // legacy naming convention {level: '6', sections: ['13', '14', '15', 'wiz6']}, {level: '7', sections: ['16', '17', '18', 'wiz7']}, {level: '8', sections: ['19', '20', '21', 'wiz8']}, {level: '9', sections: ['22', '23', '24', 'wiz9']}, {level: '10', sections: ['25', '26', '27', 'wiz10']}, - {level: '11', sections: ['52', '53', '54', 'wiz11']}, //... legacy naming convention + {level: '11', sections: ['52', '53', '54', 'wiz11']}, // legacy naming convention {level: '12', sections: ['55', '56', '57', 'wiz12']}, {level: '13', sections: ['58', '59', '60', 'wiz13']}, {level: '14', sections: ['61', '62', '63', 'wiz14']}, diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 43b25964ddda..96266ffa0d76 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -388,14 +388,12 @@ const setupStaticCalculateTotal = function(totalField, fieldsToSum) { function setupRepeatingRowCalculateTotal(repeatingName, repeatingFieldsToSum, repeatingTotalField) { let onChange = repeatingFieldsToSum.map(field => `change:repeating_${repeatingName}:${field}`).join(' '); - let allFields = structuredClone(repeatingFieldsToSum); - allFields.push(repeatingTotalField); on(`${onChange} remove:repeating_${repeatingName}`, function(eventInfo){ if (eventInfo.removedInfo) return; TAS.repeating(repeatingName) - .fields(allFields) + .fields([...repeatingFieldsToSum, repeatingTotalField]) .tap(function(rowSet) { let rowId = parseSourceAttribute(eventInfo).rowId; let row = rowSet[rowId]; @@ -1234,13 +1232,13 @@ const WIZARD_SPELL_LEVELS_SECTIONS = [ {level: '2', sections: ['4', '5', '6', 'wiz2']}, {level: '3', sections: ['7', '8', '9', 'wiz3']}, {level: '4', sections: ['10', '11', '12', 'wiz4']}, - {level: '5', sections: ['70', '71', '72', 'wiz5']}, //... legacy naming convention + {level: '5', sections: ['70', '71', '72', 'wiz5']}, // legacy naming convention {level: '6', sections: ['13', '14', '15', 'wiz6']}, {level: '7', sections: ['16', '17', '18', 'wiz7']}, {level: '8', sections: ['19', '20', '21', 'wiz8']}, {level: '9', sections: ['22', '23', '24', 'wiz9']}, {level: '10', sections: ['25', '26', '27', 'wiz10']}, - {level: '11', sections: ['52', '53', '54', 'wiz11']}, //... legacy naming convention + {level: '11', sections: ['52', '53', '54', 'wiz11']}, // legacy naming convention {level: '12', sections: ['55', '56', '57', 'wiz12']}, {level: '13', sections: ['58', '59', '60', 'wiz13']}, {level: '14', sections: ['61', '62', '63', 'wiz14']}, From 63483f84eec05766bfee9caa63c00184106c3204 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 19:27:55 +0200 Subject: [PATCH 24/51] ensured that CRP buttons whisper to gm --- ADnD_2E_Revised/2ESheet.html | 6 +++--- ADnD_2E_Revised/javascript/sheetWorkers.js | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index e206ddfb0ca9..0661c65159ee 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -70247,7 +70247,7 @@

    Monster Sheet specific

    rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[floor({@{rtt}+(@{misc-mod}),95}kl1 / 2)]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); } - return printRoll(rollBuilder.string()); + return printRoll(`/w gm ${rollBuilder.string()}`); }); }); @@ -70267,7 +70267,7 @@

    Monster Sheet specific

    if (values['rogue-ranger'] === "95") { rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); await keepContextRoll(); - return printRoll(rollBuilder.string()); + return printRoll(`/w gm ${rollBuilder.string()}`); } let surroundings = await extractQueryResult(`?{What are your surroundings?|Natural (woodland / forrest / plains),Natural|Non-natural (crypt / city street / indoor / underground),Non-natural}`); @@ -70277,7 +70277,7 @@

    Monster Sheet specific

    rollBuilder.push(`checktarget=[[floor({@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1 / 2)]]%`); } - return printRoll(rollBuilder.string()); + return printRoll(`/w gm ${rollBuilder.string()}`); }); }); //#endregion diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 96266ffa0d76..a2616b9f3b45 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -1485,7 +1485,7 @@ on('clicked:rt', function (eventInfo){ rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[floor({@{rtt}+(@{misc-mod}),95}kl1 / 2)]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); } - return printRoll(rollBuilder.string()); + return printRoll(`/w gm ${rollBuilder.string()}`); }); }); @@ -1505,7 +1505,7 @@ on('clicked:ms clicked:hs', function (eventInfo){ if (values['rogue-ranger'] === "95") { rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); await keepContextRoll(); - return printRoll(rollBuilder.string()); + return printRoll(`/w gm ${rollBuilder.string()}`); } let surroundings = await extractQueryResult(`?{What are your surroundings?|Natural (woodland / forrest / plains),Natural|Non-natural (crypt / city street / indoor / underground),Non-natural}`); @@ -1515,7 +1515,7 @@ on('clicked:ms clicked:hs', function (eventInfo){ rollBuilder.push(`checktarget=[[floor({@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1 / 2)]]%`); } - return printRoll(rollBuilder.string()); + return printRoll(`/w gm ${rollBuilder.string()}`); }); }); //#endregion From d0c2d2196c8657660b646bc9cd41f7c3134ab519 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 20:31:29 +0200 Subject: [PATCH 25/51] Fixed rogue follower detect magic roll name. Now the roll button matches the pattern, both static and repeating --- ADnD_2E_Revised/html/tabs/character-tab/followers-tab.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/html/tabs/character-tab/followers-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/followers-tab.html index 4ec3b9398627..a722f1210f50 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/followers-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/followers-tab.html @@ -593,7 +593,7 @@

    Rogue Skills

    % % % - + @@ -874,7 +874,7 @@

    Rogue Skills

    % % % - + From 90bf9eb5a410f02ad96dc6980be902a87d7b2692 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 20:50:29 +0200 Subject: [PATCH 26/51] Added the buttons for rolling secretly --- ADnD_2E_Revised/2ESheet.html | 108 ++++++++++++++---- ADnD_2E_Revised/2EStyle.css | 5 +- ADnD_2E_Revised/css/2EStyle-base.css | 5 +- ADnD_2E_Revised/html/2ESheet-base.html | 4 +- .../html/tabs/character-tab/rogue-tab.html | 66 ++++++++--- .../html/tabs/sheet-settings-tab.html | 34 ++++-- .../html/visibility-attributes.html | 7 ++ 7 files changed, 178 insertions(+), 51 deletions(-) create mode 100644 ADnD_2E_Revised/html/visibility-attributes.html diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 0661c65159ee..ea17e471a355 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -55,6 +55,10 @@

    Changes in

    + + + +
    Info  @@ -2469,7 +2473,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Open Locks @@ -2483,7 +2490,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % - + @@ -2498,6 +2505,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % + @@ -2512,6 +2520,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % + @@ -2526,6 +2535,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % + @@ -2540,7 +2550,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % - + @@ -2553,7 +2563,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Read Languages @@ -2565,7 +2578,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Legend Lore @@ -2577,7 +2593,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + +
    @@ -2597,7 +2616,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Detect Illusion* @@ -2609,7 +2631,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Bribe* @@ -2621,7 +2646,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Tunneling* @@ -2633,7 +2661,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Escape Bonds* @@ -2645,7 +2676,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Forge Documents* @@ -2657,7 +2691,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + AppraisalS&S @@ -2669,7 +2706,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + +
    @@ -2690,7 +2730,9 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + @@ -16346,7 +16388,7 @@

    Rogue Skills

    % % % - + @@ -16797,7 +16839,7 @@

    Rogue Skills

    % % % - + @@ -21382,7 +21424,7 @@

    Ecology

    -

    General

    +

    General

    Select books to include autofill information from:

    @@ -21398,7 +21440,7 @@

    Select books to include autofill information from:

    @@ -21560,13 +21602,13 @@

    Optional rules for spells


    Spell tracking system

    AD&D 2E have different systems for tracking spells, three have been implemented: -
      +
      1. Spell Slots: The default system described in the Player's Handbook
      2. Spell Points: Introduced in Player's Option: Spells & Magic
      3. Arcs, Songs, Winds: Introduced in Forgotten Realms, Netheril: Empire of Magic
      4. -
    + - @@ -21575,7 +21617,8 @@

    Spell tracking system


    Miscellaneous modifier popup on rolls

    By default all rolls creates a popup asking for a 'Miscellaneous modifier' to capture when the DM says: 'Make an X-roll with +2'. - If your DM rarely asks for this, if you find the popup annoying, or if you would rather add any bonuses after the roll is made, this popup can be turned off

    + If your DM rarely asks for this, if you find the popup annoying, or if you would rather add any bonuses after the roll is made, this popup can be turned off. +



    -

    Character Sheet specific

    +

    Character Sheet specific

    +

    Thieving skills visibility

    +

    The thieving skills described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and is assumed to be rolled by the player. + Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. + Here you can choose how visible the various skills should be, choosing from 3 options: +

    +
      +
    1. All rolls are visible to the player: All thieving skills can be seen by both the player who made the roll and the DM.
    2. +
    3. By the book rolls visible to the player: Some skills can be seen by both the player who made the roll and the DM, while others can only be seen by the DM.
    4. +
    5. All rolls hidden from the player: All thieving skills can only be seen by the DM. The player will have to reason what the result was based on the DM's description of events.
    6. +
    +

    OBS: This option do not affect the custom thieving skills. Custom thieving skills are always visible to the player and DM.

    + +
    -

    Monster Sheet specific

    +

    Monster Sheet specific

    - - +insert_visibility-attributes.html insert_character-tab.html insert_monster-tab.html diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 754340c7950a..827fdac6d2f4 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -85,7 +85,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    - + @@ -99,7 +102,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -114,6 +117,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -128,6 +132,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -142,6 +147,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -156,7 +162,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -169,7 +175,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    - + @@ -181,7 +190,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    - + @@ -193,7 +205,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    - +
    - +
    % % % + + +
    Open Locks % - +
    % +
    % +
    % +
    % - +
    % % % + + +
    Read Languages % % % + + +
    Legend Lore % % % + + +
    @@ -213,7 +228,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Detect Illusion* @@ -225,7 +243,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Bribe* @@ -237,7 +258,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Tunneling* @@ -249,7 +273,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Escape Bonds* @@ -261,7 +288,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + Forge Documents* @@ -273,7 +303,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + + AppraisalS&S @@ -285,7 +318,10 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + +
    @@ -306,7 +342,9 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % % - + + + diff --git a/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html b/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html index ce800762e7bf..ccb6a376c871 100644 --- a/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html +++ b/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html @@ -1,5 +1,5 @@
    -

    General

    +

    General

    Select books to include autofill information from:

    @@ -15,7 +15,7 @@

    Select books to include autofill information from:

    @@ -177,13 +177,13 @@

    Optional rules for spells


    Spell tracking system

    AD&D 2E have different systems for tracking spells, three have been implemented: -
      +
      1. Spell Slots: The default system described in the Player's Handbook
      2. Spell Points: Introduced in Player's Option: Spells & Magic
      3. Arcs, Songs, Winds: Introduced in Forgotten Realms, Netheril: Empire of Magic
      4. -
    + - @@ -192,7 +192,8 @@

    Spell tracking system


    Miscellaneous modifier popup on rolls

    By default all rolls creates a popup asking for a 'Miscellaneous modifier' to capture when the DM says: 'Make an X-roll with +2'. - If your DM rarely asks for this, if you find the popup annoying, or if you would rather add any bonuses after the roll is made, this popup can be turned off

    + If your DM rarely asks for this, if you find the popup annoying, or if you would rather add any bonuses after the roll is made, this popup can be turned off. +



    -

    Character Sheet specific

    +

    Character Sheet specific

    +

    Thieving skills visibility

    +

    The thieving skills described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and is assumed to be rolled by the player. + Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. + Here you can choose how visible the various skills should be, choosing from 3 options: +

    +
      +
    1. All rolls are visible to the player: All thieving skills can be seen by both the player who made the roll and the DM.
    2. +
    3. By the book rolls visible to the player: Some skills can be seen by both the player who made the roll and the DM, while others can only be seen by the DM.
    4. +
    5. All rolls hidden from the player: All thieving skills can only be seen by the DM. The player will have to reason what the result was based on the DM's description of events.
    6. +
    +

    OBS: This option do not affect the custom thieving skills. Custom thieving skills are always visible to the player and DM.

    + +
    -

    Monster Sheet specific

    +

    Monster Sheet specific

    + + + + + + \ No newline at end of file From 818e1f4eae2b25429624a90a114e2a756a25eb29 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 23:46:27 +0200 Subject: [PATCH 27/51] - Added visibility toggle for all rogue buttons - Added logic for chat button for custom skills --- ADnD_2E_Revised/2ESheet.html | 91 +++++++++++-------- ADnD_2E_Revised/2EStyle.css | 9 +- ADnD_2E_Revised/css/2EStyle-base.css | 9 +- .../html/tabs/character-tab/rogue-tab.html | 67 +++++++------- .../html/tabs/sheet-settings-tab.html | 8 +- ADnD_2E_Revised/javascript/sheetWorkers.js | 16 +++- 6 files changed, 116 insertions(+), 84 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index ea17e471a355..2af51b103d6a 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2474,8 +2474,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2489,8 +2489,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2504,8 +2504,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2519,8 +2519,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2534,8 +2534,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2549,8 +2549,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2564,8 +2564,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2579,8 +2579,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    @@ -2594,8 +2594,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    - +
    % % - - + +
    % % - - + +
    % % - - + +
    % % - - + +
    % % - - + +
    % % - - + +
    % % - - + +
    % % - - + +
    % % - - + +
    @@ -2617,8 +2617,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2632,8 +2632,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2647,8 +2647,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2662,8 +2662,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2677,8 +2677,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2692,8 +2692,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2707,8 +2707,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -2731,7 +2731,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + + @@ -21628,20 +21629,20 @@

    Miscellaneous modifier popup on rolls


    Character Sheet specific

    Thieving skills visibility

    -

    The thieving skills described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and is assumed to be rolled by the player. +

    The thieving skills are described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and are assumed to be rolled by the player. Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. Here you can choose how visible the various skills should be, choosing from 3 options:

    1. All rolls are visible to the player: All thieving skills can be seen by both the player who made the roll and the DM.
    2. -
    3. By the book rolls visible to the player: Some skills can be seen by both the player who made the roll and the DM, while others can only be seen by the DM.
    4. +
    5. Roll visibility is by the book: Some skills can be seen by both the player who made the roll and the DM, while others can only be seen by the DM.
    6. All rolls hidden from the player: All thieving skills can only be seen by the DM. The player will have to reason what the result was based on the DM's description of events.
    -

    OBS: This option do not affect the custom thieving skills. Custom thieving skills are always visible to the player and DM.

    +

    Note: Custom thieving skills are shown to the player when visibility is by the book.


    @@ -70326,7 +70327,6 @@

    Monster Sheet specific

    // The player is a rogue, so no check for surroundings if (values['rogue-ranger'] === "95") { rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); - await keepContextRoll(); return printRoll(`/w gm ${rollBuilder.string()}`); } @@ -70340,6 +70340,21 @@

    Monster Sheet specific

    return printRoll(`/w gm ${rollBuilder.string()}`); }); }); + +on('clicked:repeating_customrogue:cr-dm', function (eventInfo) { + let parse = parseSourceAttribute(eventInfo); + let row = `repeating_customrogue_${parse.rowId}`; + getAttrs(['character_name'], async function (values) { + let rollBuilder = new RollTemplateBuilder('2Edefault'); + rollBuilder.push('subtitle=for @{character_name}', 'color=dark-purple'); + rollBuilder.push(`name=@{${values.character_name}|${row}_customskill}\n(in @{armorname})`); + rollBuilder.push(`[Secret by DM](~${values.character_name}|${row}_cr)=`); + rollBuilder.push(`desc=You try to use @{${values.character_name}|${row}_customskill}...`); + console.log(rollBuilder.string()); + + return printRoll(`/w gm ${rollBuilder.string()}`); + }); +}); //#endregion //#region Weapons tab logic and autofil diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index 6a08ffa98e44..d0b0111ab37b 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -751,9 +751,9 @@ input.sheet-show-spell-slots:checked ~ .sheet-tab-content .sheet-spell-slots.she input.sheet-show-spell-points:checked ~ .sheet-tab-content .sheet-spell-points.sheet-hidden, input.sheet-show-spell-arcs-winds:checked ~ .sheet-tab-content .sheet-spell-arcs-winds.sheet-hidden, input.sheet-show-spell-spheres-pri:checked ~ .sheet-spell-sphere-pri.sheet-hidden, -input.sheet-show-rogue-skill-player:checked ~ .sheet-rogue-skill-player.sheet-hidden, -input.sheet-show-rogue-skill-by-the-book:checked ~ .sheet-rogue-skill-by-the-book.sheet-hidden, -input.sheet-show-rogue-skill-dm:checked ~ .sheet-rogue-skill-dm.sheet-hidden { +input.sheet-show-rogue-skill-player:checked ~ .sheet-tab-content .sheet-rogue-skill-player.sheet-hidden, +input.sheet-show-rogue-skill-by-the-book:checked ~ .sheet-tab-content .sheet-rogue-skill-by-the-book.sheet-hidden, +input.sheet-show-rogue-skill-dm:checked ~ .sheet-tab-content .sheet-rogue-skill-dm.sheet-hidden { display: revert; } @@ -771,7 +771,8 @@ div.repcontainer div.repitem:first-child thead.sheet-show-first { } .sheet-action-button, -.sheet-action-button-roll { +.sheet-action-button-roll, +.btn.sheet-action-button-roll { height: 19px; font-size: 1.3em; padding: 2px 3px; diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index 95ba283ed03e..c0596c12337b 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -751,9 +751,9 @@ input.sheet-show-spell-slots:checked ~ .sheet-tab-content .sheet-spell-slots.she input.sheet-show-spell-points:checked ~ .sheet-tab-content .sheet-spell-points.sheet-hidden, input.sheet-show-spell-arcs-winds:checked ~ .sheet-tab-content .sheet-spell-arcs-winds.sheet-hidden, input.sheet-show-spell-spheres-pri:checked ~ .sheet-spell-sphere-pri.sheet-hidden, -input.sheet-show-rogue-skill-player:checked ~ .sheet-rogue-skill-player.sheet-hidden, -input.sheet-show-rogue-skill-by-the-book:checked ~ .sheet-rogue-skill-by-the-book.sheet-hidden, -input.sheet-show-rogue-skill-dm:checked ~ .sheet-rogue-skill-dm.sheet-hidden { +input.sheet-show-rogue-skill-player:checked ~ .sheet-tab-content .sheet-rogue-skill-player.sheet-hidden, +input.sheet-show-rogue-skill-by-the-book:checked ~ .sheet-tab-content .sheet-rogue-skill-by-the-book.sheet-hidden, +input.sheet-show-rogue-skill-dm:checked ~ .sheet-tab-content .sheet-rogue-skill-dm.sheet-hidden { display: revert; } @@ -771,7 +771,8 @@ div.repcontainer div.repitem:first-child thead.sheet-show-first { } .sheet-action-button, -.sheet-action-button-roll { +.sheet-action-button-roll, +.btn.sheet-action-button-roll { height: 19px; font-size: 1.3em; padding: 2px 3px; diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 827fdac6d2f4..e8150c52d4af 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -86,8 +86,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -101,8 +101,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -116,8 +116,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -131,8 +131,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -146,8 +146,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -161,8 +161,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -176,8 +176,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -191,8 +191,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -206,8 +206,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -229,8 +229,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -244,8 +244,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -259,8 +259,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -274,8 +274,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -289,8 +289,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -304,8 +304,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -319,8 +319,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - - + + @@ -343,7 +343,8 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + + diff --git a/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html b/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html index ccb6a376c871..76da18991eb1 100644 --- a/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html +++ b/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html @@ -203,20 +203,20 @@

    Miscellaneous modifier popup on rolls


    Character Sheet specific

    Thieving skills visibility

    -

    The thieving skills described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and is assumed to be rolled by the player. +

    The thieving skills are described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and are assumed to be rolled by the player. Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. Here you can choose how visible the various skills should be, choosing from 3 options:

    1. All rolls are visible to the player: All thieving skills can be seen by both the player who made the roll and the DM.
    2. -
    3. By the book rolls visible to the player: Some skills can be seen by both the player who made the roll and the DM, while others can only be seen by the DM.
    4. +
    5. Roll visibility is by the book: Some skills can be seen by both the player who made the roll and the DM, while others can only be seen by the DM.
    6. All rolls hidden from the player: All thieving skills can only be seen by the DM. The player will have to reason what the result was based on the DM's description of events.
    -

    OBS: This option do not affect the custom thieving skills. Custom thieving skills are always visible to the player and DM.

    +

    Note: Custom thieving skills are shown to the player when visibility is by the book.


    diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index a2616b9f3b45..8bacc8e2abae 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -1504,7 +1504,6 @@ on('clicked:ms clicked:hs', function (eventInfo){ // The player is a rogue, so no check for surroundings if (values['rogue-ranger'] === "95") { rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); - await keepContextRoll(); return printRoll(`/w gm ${rollBuilder.string()}`); } @@ -1518,6 +1517,21 @@ on('clicked:ms clicked:hs', function (eventInfo){ return printRoll(`/w gm ${rollBuilder.string()}`); }); }); + +on('clicked:repeating_customrogue:cr-dm', function (eventInfo) { + let parse = parseSourceAttribute(eventInfo); + let row = `repeating_customrogue_${parse.rowId}`; + getAttrs(['character_name'], async function (values) { + let rollBuilder = new RollTemplateBuilder('2Edefault'); + rollBuilder.push('subtitle=for @{character_name}', 'color=dark-purple'); + rollBuilder.push(`name=@{${values.character_name}|${row}_customskill}\n(in @{armorname})`); + rollBuilder.push(`[Secret by DM](~${values.character_name}|${row}_cr)=`); + rollBuilder.push(`desc=You try to use @{${values.character_name}|${row}_customskill}...`); + console.log(rollBuilder.string()); + + return printRoll(`/w gm ${rollBuilder.string()}`); + }); +}); //#endregion //#region Weapons tab logic and autofil From d95e177b016a778c4109967a9619dc09652b77a4 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 1 Jun 2023 23:53:53 +0200 Subject: [PATCH 28/51] Added setting to sheet.json --- ADnD_2E_Revised/2ESheet.html | 2 +- .../html/tabs/sheet-settings-tab.html | 2 +- ADnD_2E_Revised/sheet.json | 20 ++++++++++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 2af51b103d6a..6763bab4c27c 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -21628,7 +21628,7 @@

    Miscellaneous modifier popup on rolls



    Character Sheet specific

    -

    Thieving skills visibility

    +

    Thieving skill roll visibility

    The thieving skills are described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and are assumed to be rolled by the player. Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. Here you can choose how visible the various skills should be, choosing from 3 options: diff --git a/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html b/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html index 76da18991eb1..1631fa08217e 100644 --- a/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html +++ b/ADnD_2E_Revised/html/tabs/sheet-settings-tab.html @@ -202,7 +202,7 @@

    Miscellaneous modifier popup on rolls



    Character Sheet specific

    -

    Thieving skills visibility

    +

    Thieving skill roll visibility

    The thieving skills are described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and are assumed to be rolled by the player. Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. Here you can choose how visible the various skills should be, choosing from 3 options: diff --git a/ADnD_2E_Revised/sheet.json b/ADnD_2E_Revised/sheet.json index 8804e63a5d70..cf59caf2db12 100644 --- a/ADnD_2E_Revised/sheet.json +++ b/ADnD_2E_Revised/sheet.json @@ -237,7 +237,25 @@ "No popup|0" ], "default": "?{Misc. modifier?|0}", - "description": "By default all rolls creates a popup asking for a 'Miscellaneous modifier' to capture when the DM says: 'Make an X-roll with +2'. If your DM rarely asks for this, if you find the popup annoying, or if you would rather add any bonuses after the roll is made, this popup can be turned off" + "description": "By default all rolls creates a popup asking for a 'Miscellaneous modifier' to capture when the DM says: 'Make an X-roll with +2'. If your DM rarely asks for this, if you find the popup annoying, or if you would rather add any bonuses after the roll is made, this popup can be turned off." + }, + { + "displayname": " " + }, + { + "displayname": "*** Character Sheet ***" + }, + { + "attribute": "rogue-skill-visibility", + "displayname": "Thieving skill roll visibility", + "type": "select", + "options": [ + "All rolls are visible to the player|player", + "Roll visibility is by the book|by-the-book", + "All rolls are hidden from the player,|dm" + ], + "default": "player", + "description": "The thieving skills are described to be rolled in different ways. Some skills such as Pick Pockets, or Climb Walls have no description and are assumed to be rolled by the player. Other skills such as Move Silently or Hide in Shadows are supposed to be rolled by the DM in secret. Here you can choose how visible the various skills should be." }, { "displayname": " " From 2cdcbc4953fe1e7927ffdfdc883539d78954db5c Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Fri, 2 Jun 2023 20:07:45 +0200 Subject: [PATCH 29/51] Updated changelog and added crit and fumble to 2Echeck --- ADnD_2E_Revised/2ESheet.html | 157 ++++++++++++++---- ADnD_2E_Revised/html/changelog.html | 25 ++- .../html/components/rolltemplates.html | 36 +++- 3 files changed, 174 insertions(+), 44 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 6763bab4c27c..d1896fcdffa9 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -9,19 +9,30 @@

    Changes in

      -
    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
    • +
    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds
    • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
    • Added V, S components to all Quest spells from Tome of Magic p. 12
    • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
    • -
    • Updated spell learning notes to make it clear that read magic is not need to read spell books
    • +
    • Updated spell learning notes to make it clear that read magic is not need to read spell books
    • Added new Tome of Magic sphere suggestion to Paladins, Rangers, and Druids sphere of influence
    • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
    • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
    • -
    • Added Ranger skills (Hide in shadows, move silently) armor adjustments notes. Also added ranger to the allowed armors for the rogue armor autofill
    • -
    • Added %-sign to the roll template for Thieving skills
    • -
    • Redesigned Rogue skills to only have a single button for using the skill
    • -
    • Added additional context to Rogue skills when success or failure happens
    • -
    • Added correction to Turn Undead notes that all creatures, not only undead, dwelling on the Outer Planes can be turned as Special creatures
    • +
    • Added correction to Turn Undead notes that all creatures dwelling on the Outer Planes, not only undead, can be turned as Special creatures
    • +
    • Redesigned the rogue/thieving skills tab +
        +
      • All skills now have a single button for rolling them instead of 3
      • +
      • All base skills now have descriptive text for success and failure
      • +
      • Added %-sign to the roll template for Thieving skills
      • +
      • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
      • +
      • Find/Remove, when roll, ask for how it is used: Find, remove, remove magical
      • +
      • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
      • +
      • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
      • +
      • Added Ranger skills armor adjustments notes
      • +
      • Added ranger to the allowed armors for the rogue armor autofill
      • +
      • All skills from PO: Skills & Powers, Dark Sun, and Sages & Specialists now use Roll templates when rolled
      • +
      • Visibility setting have been added allowing for hidden rolls, so only the DM knows if the rogue made the check or not
      • +
      +

    @@ -32101,39 +32112,117 @@

    Monster Sheet specific

    {{checktarget}} {{#rollTotal() checkroll checktarget}} - - - Success! - {{#success}} -
    - {{success}} - {{/success}} - - + {{#rollWasCrit() checkroll}} + {{#crit}} + + + CRITICAL SUCCESS! + {{#crit}} +
    + {{crit}} + {{/crit}} + + + {{/crit}} + {{^crit}} + + + Success! + {{#success}} +
    + {{success}} + {{/success}} + + + {{/crit}} + {{/rollWasCrit() checkroll}} + {{#^rollWasCrit() checkroll}} + + + Success! + {{#success}} +
    + {{success}} + {{/success}} + + + {{/^rollWasCrit() checkroll}} {{/rollTotal() checkroll checktarget}} {{#rollLess() checkroll checktarget}} - - - Success! - {{#success}} -
    - {{success}} - {{/success}} - - + {{#rollWasCrit() checkroll}} + {{#crit}} + + + CRITICAL SUCCESS! + {{#crit}} +
    + {{crit}} + {{/crit}} + + + {{/crit}} + {{^crit}} + + + Success! + {{#success}} +
    + {{success}} + {{/success}} + + + {{/crit}} + {{/rollWasCrit() checkroll}} + {{#^rollWasCrit() checkroll}} + + + Success! + {{#success}} +
    + {{success}} + {{/success}} + + + {{/^rollWasCrit() checkroll}} {{/rollLess() checkroll checktarget}} {{#rollGreater() checkroll checktarget}} - - - Failed! - {{#fail}} -
    - {{fail}} - {{/fail}} - - + {{#rollWasFumble() checkroll}} + {{#fumble}} + + + FUMBLE! + {{#fumble}} +
    + {{fumble}} + {{/fumble}} + + + {{/fumble}} + {{^fumble}} + + + Failed! + {{#fail}} +
    + {{fail}} + {{/fail}} + + + {{/fumble}} + {{/rollWasFumble() checkroll}} + {{#^rollWasFumble() checkroll}} + + + Failed! + {{#fail}} +
    + {{fail}} + {{/fail}} + + + {{/^rollWasFumble() checkroll}} {{/rollGreater() checkroll checktarget}}
    diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 454dbaadf3ad..0f14983dd942 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -4,19 +4,30 @@

    Changes in

      -
    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds or less
    • +
    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds
    • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
    • Added V, S components to all Quest spells from Tome of Magic p. 12
    • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
    • -
    • Updated spell learning notes to make it clear that read magic is not need to read spell books
    • +
    • Updated spell learning notes to make it clear that read magic is not need to read spell books
    • Added new Tome of Magic sphere suggestion to Paladins, Rangers, and Druids sphere of influence
    • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
    • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
    • -
    • Added Ranger skills (Hide in shadows, move silently) armor adjustments notes. Also added ranger to the allowed armors for the rogue armor autofill
    • -
    • Added %-sign to the roll template for Thieving skills
    • -
    • Redesigned Rogue skills to only have a single button for using the skill
    • -
    • Added additional context to Rogue skills when success or failure happens
    • -
    • Added correction to Turn Undead notes that all creatures, not only undead, dwelling on the Outer Planes can be turned as Special creatures
    • +
    • Added correction to Turn Undead notes that all creatures dwelling on the Outer Planes, not only undead, can be turned as Special creatures
    • +
    • Redesigned the rogue/thieving skills tab +
        +
      • All skills now have a single button for rolling them instead of 3
      • +
      • All base skills now have descriptive text for success and failure
      • +
      • Added %-sign to the roll template for Thieving skills
      • +
      • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
      • +
      • Find/Remove, when roll, ask for how it is used: Find, remove, remove magical
      • +
      • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
      • +
      • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
      • +
      • Added Ranger skills armor adjustments notes
      • +
      • Added ranger to the allowed armors for the rogue armor autofill
      • +
      • All skills from PO: Skills & Powers, Dark Sun, and Sages & Specialists now use Roll templates when rolled
      • +
      • Visibility setting have been added allowing for hidden rolls, so only the DM knows if the rogue made the check or not
      • +
      +

    diff --git a/ADnD_2E_Revised/html/components/rolltemplates.html b/ADnD_2E_Revised/html/components/rolltemplates.html index 690ace0091f4..37bfb54b67c1 100644 --- a/ADnD_2E_Revised/html/components/rolltemplates.html +++ b/ADnD_2E_Revised/html/components/rolltemplates.html @@ -341,15 +341,45 @@ {{checktarget}} {{#rollTotal() checkroll checktarget}} - insert_check-result.html_(success,Success!,success) + {{#rollWasCrit() checkroll}} + {{#crit}} + insert_check-result.html_(success,CRITICAL SUCCESS!,crit) + {{/crit}} + {{^crit}} + insert_check-result.html_(success,Success!,success) + {{/crit}} + {{/rollWasCrit() checkroll}} + {{#^rollWasCrit() checkroll}} + insert_check-result.html_(success,Success!,success) + {{/^rollWasCrit() checkroll}} {{/rollTotal() checkroll checktarget}} {{#rollLess() checkroll checktarget}} - insert_check-result.html_(success,Success!,success) + {{#rollWasCrit() checkroll}} + {{#crit}} + insert_check-result.html_(success,CRITICAL SUCCESS!,crit) + {{/crit}} + {{^crit}} + insert_check-result.html_(success,Success!,success) + {{/crit}} + {{/rollWasCrit() checkroll}} + {{#^rollWasCrit() checkroll}} + insert_check-result.html_(success,Success!,success) + {{/^rollWasCrit() checkroll}} {{/rollLess() checkroll checktarget}} {{#rollGreater() checkroll checktarget}} - insert_check-result.html_(failure,Failed!,fail) + {{#rollWasFumble() checkroll}} + {{#fumble}} + insert_check-result.html_(failure,FUMBLE!,fumble) + {{/fumble}} + {{^fumble}} + insert_check-result.html_(failure,Failed!,fail) + {{/fumble}} + {{/rollWasFumble() checkroll}} + {{#^rollWasFumble() checkroll}} + insert_check-result.html_(failure,Failed!,fail) + {{/^rollWasFumble() checkroll}} {{/rollGreater() checkroll checktarget}}

    From f7372a7c0e48cc8e7d6859218434f72a83b60f80 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 5 Jun 2023 18:42:32 +0200 Subject: [PATCH 30/51] Updated change log --- ADnD_2E_Revised/2ESheet.html | 4 +++- ADnD_2E_Revised/html/changelog.html | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index d1896fcdffa9..de80fdab6191 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -11,6 +11,8 @@

    Changes in

    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds
    • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
    • +
    • Psionic Power - Life Detection refers to itself as a Power instead of a Devotion. Sage Advice #186
    • +
    • Endurance NWP for Dwarves is now free (cost 0 slots) instead of 1 as described in Complete Dwarves Handbook.
    • Added V, S components to all Quest spells from Tome of Magic p. 12
    • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
    • Updated spell learning notes to make it clear that read magic is not need to read spell books
    • @@ -24,7 +26,7 @@

      Changes in

    • All base skills now have descriptive text for success and failure
    • Added %-sign to the roll template for Thieving skills
    • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
    • -
    • Find/Remove, when roll, ask for how it is used: Find, remove, remove magical
    • +
    • Find/Remove Traps, when rolled, ask for how it is used: Find, remove, remove magical
    • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
    • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
    • Added Ranger skills armor adjustments notes
    • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 0f14983dd942..837226f2c75c 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -6,6 +6,8 @@

      Changes in

      • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds
      • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
      • +
      • Psionic Power - Life Detection refers to itself as a Power instead of a Devotion. Sage Advice #186
      • +
      • Endurance NWP for Dwarves is now free (cost 0 slots) instead of 1 as described in Complete Dwarves Handbook.
      • Added V, S components to all Quest spells from Tome of Magic p. 12
      • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
      • Updated spell learning notes to make it clear that read magic is not need to read spell books
      • @@ -19,7 +21,7 @@

        Changes in

      • All base skills now have descriptive text for success and failure
      • Added %-sign to the roll template for Thieving skills
      • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
      • -
      • Find/Remove, when roll, ask for how it is used: Find, remove, remove magical
      • +
      • Find/Remove Traps, when rolled, ask for how it is used: Find, remove, remove magical
      • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
      • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
      • Added Ranger skills armor adjustments notes
      • From f687e4216d69910b87f7ffde77775e454d2f8efc Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 6 Jun 2023 08:32:09 +0200 Subject: [PATCH 31/51] Updated changelog --- ADnD_2E_Revised/2ESheet.html | 1 + ADnD_2E_Revised/html/changelog.html | 1 + 2 files changed, 2 insertions(+) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index de80fdab6191..1967fcadaa70 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -20,6 +20,7 @@

        Changes in

      • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
      • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
      • Added correction to Turn Undead notes that all creatures dwelling on the Outer Planes, not only undead, can be turned as Special creatures
      • +
      • Fixed Follower->Rogue Detect Magic roll button attribute name. It now correctly matches the title of shown in the mouse over
      • Redesigned the rogue/thieving skills tab
        • All skills now have a single button for rolling them instead of 3
        • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 837226f2c75c..76d0a764ffb9 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -15,6 +15,7 @@

          Changes in

        • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
        • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
        • Added correction to Turn Undead notes that all creatures dwelling on the Outer Planes, not only undead, can be turned as Special creatures
        • +
        • Fixed Follower->Rogue Detect Magic roll button attribute name. It now correctly matches the title of shown in the mouse over
        • Redesigned the rogue/thieving skills tab
          • All skills now have a single button for rolling them instead of 3
          • From dc315fde23dd4c14caadab4e952b3e4d193668dd Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 6 Jun 2023 20:11:03 +0200 Subject: [PATCH 32/51] Added critical faulire optional rule to open locks --- ADnD_2E_Revised/2ESheet.html | 4 ++-- ADnD_2E_Revised/html/components/rolltemplates.html | 2 +- ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 1967fcadaa70..6a111ce7c1a8 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2503,7 +2503,7 @@

            Skills & Powers / Dark Sun / Sages & Specialists

            % % - + @@ -32195,7 +32195,7 @@

            Monster Sheet specific

            {{#fumble}} - FUMBLE! + CRITICAL FAILURE! {{#fumble}}
            {{fumble}} diff --git a/ADnD_2E_Revised/html/components/rolltemplates.html b/ADnD_2E_Revised/html/components/rolltemplates.html index 37bfb54b67c1..176fdfc3ca7c 100644 --- a/ADnD_2E_Revised/html/components/rolltemplates.html +++ b/ADnD_2E_Revised/html/components/rolltemplates.html @@ -371,7 +371,7 @@ {{#rollGreater() checkroll checktarget}} {{#rollWasFumble() checkroll}} {{#fumble}} - insert_check-result.html_(failure,FUMBLE!,fumble) + insert_check-result.html_(failure,CRITICAL FAILURE!,fumble) {{/fumble}} {{^fumble}} insert_check-result.html_(failure,Failed!,fail) diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index e8150c52d4af..73fde0da88f9 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -101,7 +101,7 @@

            Skills & Powers / Dark Sun / Sages & Specialists

            % % - + From d863b212712fcf95ff72c313ba0ec98b62368e6d Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 6 Jun 2023 20:14:13 +0200 Subject: [PATCH 33/51] updated changelog --- ADnD_2E_Revised/2ESheet.html | 2 +- ADnD_2E_Revised/html/changelog.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 6a111ce7c1a8..eee7542a9b31 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -27,7 +27,7 @@

            Changes in

          • All base skills now have descriptive text for success and failure
          • Added %-sign to the roll template for Thieving skills
          • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
          • -
          • Find/Remove Traps, when rolled, ask for how it is used: Find, remove, remove magical
          • +
          • Find/Remove Traps, when rolled, ask for how it is used: Find, remove normal, remove invisible/magical trap
          • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
          • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
          • Added Ranger skills armor adjustments notes
          • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 76d0a764ffb9..b4107f84354e 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -22,7 +22,7 @@

            Changes in

          • All base skills now have descriptive text for success and failure
          • Added %-sign to the roll template for Thieving skills
          • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
          • -
          • Find/Remove Traps, when rolled, ask for how it is used: Find, remove, remove magical
          • +
          • Find/Remove Traps, when rolled, ask for how it is used: Find, remove normal, remove invisible/magical trap
          • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
          • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
          • Added Ranger skills armor adjustments notes
          • From 4bf4591213f765c037889f1706c481835fb13571 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Wed, 7 Jun 2023 10:29:19 +0200 Subject: [PATCH 34/51] Updated changelog --- ADnD_2E_Revised/2ESheet.html | 2 +- ADnD_2E_Revised/html/changelog.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index eee7542a9b31..57725f635587 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -20,7 +20,7 @@

            Changes in

          • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
          • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
          • Added correction to Turn Undead notes that all creatures dwelling on the Outer Planes, not only undead, can be turned as Special creatures
          • -
          • Fixed Follower->Rogue Detect Magic roll button attribute name. It now correctly matches the title of shown in the mouse over
          • +
          • Fixed Follower->Rogue Detect Magic roll button attribute name. It now correctly matches the title of shown in the mouse over text
          • Redesigned the rogue/thieving skills tab
            • All skills now have a single button for rolling them instead of 3
            • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index b4107f84354e..7e62232e4790 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -15,7 +15,7 @@

              Changes in

            • Added Priest casting level scaling for Paladins ensuring they cast as first level priest at level 9, their max casting level is 9
            • Added Priest casting level scaling for Rangers ensuring they cast as first level priest at level 8, their max casting level is 9
            • Added correction to Turn Undead notes that all creatures dwelling on the Outer Planes, not only undead, can be turned as Special creatures
            • -
            • Fixed Follower->Rogue Detect Magic roll button attribute name. It now correctly matches the title of shown in the mouse over
            • +
            • Fixed Follower->Rogue Detect Magic roll button attribute name. It now correctly matches the title of shown in the mouse over text
            • Redesigned the rogue/thieving skills tab
              • All skills now have a single button for rolling them instead of 3
              • From e26028bac2b5a4210fb37a362e42cb8390dbc5a5 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 10:03:59 +0200 Subject: [PATCH 35/51] Added thieving skills dexterity modifiers table to the sheet for transparency. Still needs a bit of clean up --- ADnD_2E_Revised/2ESheet.html | 270 +++++++++++++++++- ADnD_2E_Revised/2EStyle.css | 23 +- ADnD_2E_Revised/build/buildPug.js | 4 + ADnD_2E_Revised/css/2EStyle-base.css | 23 +- .../html/tabs/character-tab/rogue-tab.html | 10 +- ...thieving-skills-dexterity-adjustments.html | 250 ++++++++++++++++ ADnD_2E_Revised/javascript/abilityScores.js | 7 +- ADnD_2E_Revised/javascript/rogueArmor.js | 4 + ADnD_2E_Revised/javascript/sheetWorkers.js | 3 + .../thievingSkillsDexterityAdjustments.pug | 75 +++++ 10 files changed, 656 insertions(+), 13 deletions(-) create mode 100644 ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html create mode 100644 ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 57725f635587..c290dcd3fe16 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2754,13 +2754,13 @@

                Skills & Powers / Dark Sun / Sages & Specialists

                • - Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. + Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. (see table below)
                  • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
                • - Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook (see tables below). + Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook, Player's Option: Skills & Powers, and Dungeon Master Option: High-Level Campaign (see tables below).
                • @@ -2768,7 +2768,7 @@

                  Skills & Powers / Dark Sun / Sages & Specialists

                  This limit is applied when you click to roll the ability.
                • -
                • +
                • Ranger's chance to Hide in Shadows or Move Silently can never be more than 99%. The Complete Ranger's Handbook p. 11.
                  When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved. @@ -2794,6 +2794,259 @@

                  Skills & Powers / Dark Sun / Sages & Specialists


    +
    + Thieving Skill Dexterity (Aim, Balance) Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Ability ScorePick
    PocketsA
    Open
    LocksA
    Find/Remove
    TrapsA
    Move
    SilentlyB
    Hide in
    ShadowsB
    Climb
    WallsB
    TunnelingDEscape
    BondsD
    3-30%-30%-10%-30%-10%-30%-10%-15%
    4-25%-25%-10%-30%-10%-25%-10%-15%
    5-25%-20%-10%-30%-10%-20%-10%-15%
    6-20%-20%-10%-25%-10%-20%-10%-15%
    7-20%-15%-10%-25%-10%-15%-10%-15%
    8-15%-15%-10%-20%-10%-15%-10%-15%
    9-15%-10%-10%-20%-10%-10%-10%-15%
    10-10%-5%-10%-15%-5%-10%-5%-10%
    11-5%0%-5%-10%0%-5%0%-5%
    120%0%0%-5%0%0%0%0%
    13-150%0%0%0%0%0%0%0%
    160%+5%0%0%0%0%0%0%
    17+5%+10%0%+5%+5%0%0%+5%
    18+10%+15%+5%+10%+10%+5%+5%+10%
    19+15%+20%+10%+15%+15%+10%+10%+15%
    20+20%+20%+15%+15%+20%+15%+15%+20%
    21+20%+25%+20%+20%+25%+20%+20%+25%
    22+25%+25%+20%+20%+30%+20%+30%+30%
    23+25%+30%+20%+25%+30%+25%+30%+30%
    24+30%+30%+20%+25%+30%+25%+30%+30%
    25+30%+35%+20%+30%+30%+30%+30%+30%

    +
      +
    • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
    • +
    • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
    • +
    • Tunneling and Escape Bonds are adjusted by Dexterity
    • +
    +
    Thief Armor information

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    @@ -34090,13 +34343,13 @@

    Monster Sheet specific

    // Player's Handbook Premium Edition, extended by Player's Options: Skills & Powers, 2nd printing dexterityTable['pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; dexterityTable['openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; -dexterityTable['findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+20','+20','+20']; +dexterityTable['findtraps'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+20','+20','+20']; dexterityTable['movesilently'] = ['0','0','0','-30','-30','-30','-25','-25','-20','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+15','+20','+20','+25','+25','+30']; dexterityTable['hideinshadows'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['climbwalls'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; // Player's Option: Skills & Powers -dexterityTable['tunneling'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','-0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; +dexterityTable['tunneling'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; dexterityTable['escapebonds'] = ['0','0','0','-15','-15','-15','-15','-15','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['dexnotes'] = ['INVALID DEXTERITY','','','','','','','','','','','','','','','','','','','','','','','','','','']; @@ -42150,6 +42403,7 @@

    Monster Sheet specific

    'Climb Walls' : '10', 'Tunneling' : '10', 'Escape bonds' : '5', + 'Bribe' : '-10', // DM Options: High-Level Campaigns } ROGUE_ARMOR['Leather Armor'] = { 'Pick Pockets' : '0', @@ -42161,6 +42415,7 @@

    Monster Sheet specific

    'Climb Walls' : '0', 'Tunneling' : '0', 'Escape bonds' : '0', + 'Bribe' : '0', // DM Options: High-Level Campaigns } ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Pick Pockets' : '-30', @@ -42172,6 +42427,7 @@

    Monster Sheet specific

    'Climb Walls' : '-30', 'Tunneling' : '-10', 'Escape bonds' : '-5', + 'Bribe' : '-5', // DM Options: High-Level Campaigns }; ROGUE_ARMOR['Elven Chain Mail'] = { 'Pick Pockets' : '-20', @@ -42183,6 +42439,7 @@

    Monster Sheet specific

    'Climb Walls' : '-20', 'Tunneling' : '-5', 'Escape bonds' : '-5', + 'Bribe' : '+5', // DM Options: High-Level Campaigns }; ROGUE_ARMOR['Silenced Elven Chain Mail'] = { 'Pick Pockets' : '-25', @@ -70381,6 +70638,9 @@

    Monster Sheet specific

    'hsa': armor['Hide in Shadows'] || '0', 'dna': armor['Detect Noise'] || '0', 'cwa': armor['Climb Walls'] || '0', + 'bra': armor['Bribe'] || '0', + 'tua': armor['Tunneling'] || '0', + 'eba': armor['Escape bonds'] || '0', }; setAttrs(armorModifiers); }); diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index d0b0111ab37b..4653d42089b3 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -616,6 +616,10 @@ table.sheet-centering-padding-5-column5 td:nth-child(5) { vertical-align: middle; } +table.sheet-left-align-column1 th:nth-child(1) { + text-align: left; +} + .sheet-centering-horizontal { text-align: center; } @@ -646,6 +650,8 @@ table.sheet-centering-padding-5-column4 td:nth-child(4), } .sheet-padding-right, +table.sheet-padding-right th, +table.sheet-padding-right td, table.sheet-padding-right-column1 th:nth-child(1), table.sheet-padding-right-column1 td:nth-child(1), table.sheet-padding-right-column2 th:nth-child(2), @@ -815,7 +821,22 @@ ul.custom-list li span { font-size: smaller; } -.bullet-r::marker { +.bullet-A::marker { + content: "A"; + font-size: smaller; +} + +.bullet-B::marker { + content: "B"; + font-size: smaller; +} + +.bullet-D::marker { + content: "D"; + font-size: smaller; +} + +.bullet-R::marker { content: "R"; font-size: smaller; } diff --git a/ADnD_2E_Revised/build/buildPug.js b/ADnD_2E_Revised/build/buildPug.js index 115e97ae1580..f23928aae97a 100644 --- a/ADnD_2E_Revised/build/buildPug.js +++ b/ADnD_2E_Revised/build/buildPug.js @@ -60,6 +60,7 @@ const nonWeaponProfsJs = require(path.join(jsFolder, 'nonweaponProficiencies.js' const talentsJs = require(path.join(jsFolder,'players-option-talents.js')); const traitsJs = require(path.join(jsFolder,'players-option-traits.js')); const disadvantagesJs = require(path.join(jsFolder,'players-option-disadvantages.js')); +const dexterityModifier = require(path.join(jsFolder,'abilityScores.js')) console.log('---- Generating HTML files ----'); writeFile(miscFolder, 'schools-overview.html', @@ -80,6 +81,9 @@ writeFile(path.join(htmlFolder,'shared'), 'wizard-spell-template.html', writeFile(path.join(htmlFolder,'shared'), 'priest-spell-template.html', pug.renderFile(path.join(pugFolder, 'spellTemplate.pug'), {pretty: true, isPriest: true}) ); +writeFile(path.join(htmlFolder,'tabs','character-tab','rogue-tab'), 'thieving-skills-dexterity-adjustments.html', + pug.renderFile(path.join(pugFolder, 'thievingSkillsDexterityAdjustments.pug'), {pretty: true, data: dexterityModifier}) +); let datalistHtml = ''; datalistHtml += pug.renderFile(path.join(pugFolder, 'spellsDatalists.pug'), {pretty: true, data: wizardSpellsJs}); diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index c0596c12337b..9ca964069932 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -616,6 +616,10 @@ table.sheet-centering-padding-5-column5 td:nth-child(5) { vertical-align: middle; } +table.sheet-left-align-column1 th:nth-child(1) { + text-align: left; +} + .sheet-centering-horizontal { text-align: center; } @@ -646,6 +650,8 @@ table.sheet-centering-padding-5-column4 td:nth-child(4), } .sheet-padding-right, +table.sheet-padding-right th, +table.sheet-padding-right td, table.sheet-padding-right-column1 th:nth-child(1), table.sheet-padding-right-column1 td:nth-child(1), table.sheet-padding-right-column2 th:nth-child(2), @@ -815,7 +821,22 @@ ul.custom-list li span { font-size: smaller; } -.bullet-r::marker { +.bullet-A::marker { + content: "A"; + font-size: smaller; +} + +.bullet-B::marker { + content: "B"; + font-size: smaller; +} + +.bullet-D::marker { + content: "D"; + font-size: smaller; +} + +.bullet-R::marker { content: "R"; font-size: smaller; } diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 73fde0da88f9..2fa06ee652df 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -352,13 +352,13 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    • - Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. + Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. (see table below)
      • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
    • - Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook (see tables below). + Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook, Player's Option: Skills & Powers, and Dungeon Master Option: High-Level Campaign (see tables below).
    • @@ -366,7 +366,7 @@

      Skills & Powers / Dark Sun / Sages & Specialists

      This limit is applied when you click to roll the ability.
    • -
    • +
    • Ranger's chance to Hide in Shadows or Move Silently can never be more than 99%. The Complete Ranger's Handbook p. 11.
      When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved. @@ -392,6 +392,10 @@

      Skills & Powers / Dark Sun / Sages & Specialists


    +
    + Thieving Skill Dexterity (Aim, Balance) Adjustments + insert_thieving-skills-dexterity-adjustments.html +
    Thief Armor information

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html new file mode 100644 index 000000000000..9bb9533c8358 --- /dev/null +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Ability ScorePick
    PocketsA
    Open
    LocksA
    Find/Remove
    TrapsA
    Move
    SilentlyB
    Hide in
    ShadowsB
    Climb
    WallsB
    TunnelingDEscape
    BondsD
    3-30%-30%-10%-30%-10%-30%-10%-15%
    4-25%-25%-10%-30%-10%-25%-10%-15%
    5-25%-20%-10%-30%-10%-20%-10%-15%
    6-20%-20%-10%-25%-10%-20%-10%-15%
    7-20%-15%-10%-25%-10%-15%-10%-15%
    8-15%-15%-10%-20%-10%-15%-10%-15%
    9-15%-10%-10%-20%-10%-10%-10%-15%
    10-10%-5%-10%-15%-5%-10%-5%-10%
    11-5%0%-5%-10%0%-5%0%-5%
    120%0%0%-5%0%0%0%0%
    13-150%0%0%0%0%0%0%0%
    160%+5%0%0%0%0%0%0%
    17+5%+10%0%+5%+5%0%0%+5%
    18+10%+15%+5%+10%+10%+5%+5%+10%
    19+15%+20%+10%+15%+15%+10%+10%+15%
    20+20%+20%+15%+15%+20%+15%+15%+20%
    21+20%+25%+20%+20%+25%+20%+20%+25%
    22+25%+25%+20%+20%+30%+20%+30%+30%
    23+25%+30%+20%+25%+30%+25%+30%+30%
    24+30%+30%+20%+25%+30%+25%+30%+30%
    25+30%+35%+20%+30%+30%+30%+30%+30%

    +
      +
    • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
    • +
    • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
    • +
    • Tunneling and Escape Bonds are adjusted by Dexterity
    • +
    \ No newline at end of file diff --git a/ADnD_2E_Revised/javascript/abilityScores.js b/ADnD_2E_Revised/javascript/abilityScores.js index e45317f249ea..5f7b5b2e9b18 100644 --- a/ADnD_2E_Revised/javascript/abilityScores.js +++ b/ADnD_2E_Revised/javascript/abilityScores.js @@ -64,13 +64,13 @@ dexterityTable['dexdefense'] = ['Error','+5','+5','+4','+3','+2','+1','0','0','0 // Player's Handbook Premium Edition, extended by Player's Options: Skills & Powers, 2nd printing dexterityTable['pickpocket'] = ['0','0','0','-30','-25','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; dexterityTable['openlocks'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30','+35']; -dexterityTable['findtraps'] = ['0','0','0','0','0','0','0','0','0','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+20','+20','+20']; +dexterityTable['findtraps'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+20','+20','+20']; dexterityTable['movesilently'] = ['0','0','0','-30','-30','-30','-25','-25','-20','-20','-15','-10','-5','0','0','0','0','+5','+10','+15','+15','+20','+20','+25','+25','+30']; dexterityTable['hideinshadows'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['climbwalls'] = ['0','0','0','-30','-25','-20','-20','-15','-15','-10','-10','-5','0','0','0','0','0','0','+5','+10','+15','+20','+20','+25','+25','+30','+30']; // Player's Option: Skills & Powers -dexterityTable['tunneling'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','-0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; +dexterityTable['tunneling'] = ['0','0','0','-10','-10','-10','-10','-10','-10','-10','-5','0','0','0','0','0','0','0','+5','+10','+15','+20','+30','+30','+30','+30']; dexterityTable['escapebonds'] = ['0','0','0','-15','-15','-15','-15','-15','-15','-15','-10','-5','0','0','0','0','0','+5','+10','+15','+20','+25','+30','+30','+30','+30']; dexterityTable['dexnotes'] = ['INVALID DEXTERITY','','','','','','','','','','','','','','','','','','','','','','','','','','']; @@ -114,4 +114,5 @@ charismaTable['chareact'] = ['Error','-7','-6','-5','-4','-3','-2','-1','0','0', charismaTable['chanotes'] = ['INVALID CHARISMA','','','','','','','','','','','','','','','','','','','','','','','','','','']; const ABILITY_MODIFIERS = [0,0,0,-5,-4,-3,-2,-1,0,0,0,0,0,0,1,2,3,4,5,5,5,5,5,5,5,5]; -/* ---- Attributes tables end ---- */ \ No newline at end of file +/* ---- Attributes tables end ---- */ +module.exports = dexterityTable; \ No newline at end of file diff --git a/ADnD_2E_Revised/javascript/rogueArmor.js b/ADnD_2E_Revised/javascript/rogueArmor.js index 7b90d4040345..33bbef984b11 100644 --- a/ADnD_2E_Revised/javascript/rogueArmor.js +++ b/ADnD_2E_Revised/javascript/rogueArmor.js @@ -10,6 +10,7 @@ ROGUE_ARMOR['No Armor'] = { 'Climb Walls' : '10', 'Tunneling' : '10', 'Escape bonds' : '5', + 'Bribe' : '-10', // DM Options: High-Level Campaigns } ROGUE_ARMOR['Leather Armor'] = { 'Pick Pockets' : '0', @@ -21,6 +22,7 @@ ROGUE_ARMOR['Leather Armor'] = { 'Climb Walls' : '0', 'Tunneling' : '0', 'Escape bonds' : '0', + 'Bribe' : '0', // DM Options: High-Level Campaigns } ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Pick Pockets' : '-30', @@ -32,6 +34,7 @@ ROGUE_ARMOR['Padded Armor'] = ROGUE_ARMOR['Studded Leather'] = { 'Climb Walls' : '-30', 'Tunneling' : '-10', 'Escape bonds' : '-5', + 'Bribe' : '-5', // DM Options: High-Level Campaigns }; ROGUE_ARMOR['Elven Chain Mail'] = { 'Pick Pockets' : '-20', @@ -43,6 +46,7 @@ ROGUE_ARMOR['Elven Chain Mail'] = { 'Climb Walls' : '-20', 'Tunneling' : '-5', 'Escape bonds' : '-5', + 'Bribe' : '+5', // DM Options: High-Level Campaigns }; ROGUE_ARMOR['Silenced Elven Chain Mail'] = { 'Pick Pockets' : '-25', diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 8bacc8e2abae..60b7f4270c47 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -1466,6 +1466,9 @@ on('change:armorname', function(eventInfo) { 'hsa': armor['Hide in Shadows'] || '0', 'dna': armor['Detect Noise'] || '0', 'cwa': armor['Climb Walls'] || '0', + 'bra': armor['Bribe'] || '0', + 'tua': armor['Tunneling'] || '0', + 'eba': armor['Escape bonds'] || '0', }; setAttrs(armorModifiers); }); diff --git a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug new file mode 100644 index 000000000000..c9b625bc9e7c --- /dev/null +++ b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug @@ -0,0 +1,75 @@ +- let i = 3; +table(class='sheet-centering-horizontal sheet-padding-right') + tr + th(style={'vertical-align': 'bottom'}) Ability Score + th + | Pick + br + | Pockets + sup A + th + | Open + br + | Locks + sup A + th + | Find/Remove + br + | Traps + sup A + th + | Move + br + | Silently + sup B + th + | Hide in + br + | Shadows + sup B + th + | Climb + br + | Walls + sup B + th(style={'vertical-align': 'bottom'}) Tunneling + sup D + th + | Escape + br + | Bonds + sup D + while i < 26 + if i === 13 || i === 14 + else if i === 15 + tr + th 13-15 + td #{data['pickpocket'][15]}% + td #{data['openlocks'][15]}% + td #{data['findtraps'][15]}% + td #{data['movesilently'][15]}% + td #{data['hideinshadows'][15]}% + td #{data['climbwalls'][15]}% + td #{data['tunneling'][15]}% + td #{data['escapebonds'][15]}% + else + tr + th= i + td #{data['pickpocket'][i]}% + td #{data['openlocks'][i]}% + td #{data['findtraps'][i]}% + td #{data['movesilently'][i]}% + td #{data['hideinshadows'][i]}% + td #{data['climbwalls'][i]}% + td #{data['tunneling'][i]}% + td #{data['escapebonds'][i]}% + - i++ + - i = 3 +br +ul(class='custom-list') + li(class='bullet-A') + span Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim + li(class='bullet-B') + span Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance + li(class='bullet-D') + span Tunneling and Escape Bonds are adjusted by Dexterity From e7f83ef3afa8eef704976f3a799c43ef79339135 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 10:08:14 +0200 Subject: [PATCH 36/51] renamed css class --- ADnD_2E_Revised/2EStyle.css | 2 +- ADnD_2E_Revised/css/2EStyle-base.css | 2 +- ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index 4653d42089b3..c570f582e6f6 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -841,7 +841,7 @@ ul.custom-list li span { font-size: smaller; } -.bullet-s-and-s::marker { +.bullet-S-and-S::marker { content: "S&S"; font-size: smaller; } diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index 9ca964069932..70371a4cc659 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -841,7 +841,7 @@ ul.custom-list li span { font-size: smaller; } -.bullet-s-and-s::marker { +.bullet-S-and-S::marker { content: "S&S"; font-size: smaller; } diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 2fa06ee652df..391de85ca661 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -382,7 +382,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

  • Dexterity and Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes.
  • -
  • +
  • Ability score adjustment to the Appraisal skill is based on Intelligence instead of Dexterity. This is not autofilled by the sheet.
    Source: Sages & Specialists, p. 28. From 599af7a4d2b489b32291097b8b6c1c04ae4e61e0 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 11:38:30 +0200 Subject: [PATCH 37/51] fixed css --- ADnD_2E_Revised/2ESheet.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index c290dcd3fe16..c57a57b46e72 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2784,7 +2784,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

  • Dexterity and Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes.
  • -
  • +
  • Ability score adjustment to the Appraisal skill is based on Intelligence instead of Dexterity. This is not autofilled by the sheet.
    Source: Sages & Specialists, p. 28. From e5f218e02ec93bf96f50450adfb261334594fcc2 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 19:33:15 +0200 Subject: [PATCH 38/51] Clean up the last TM bit of descriptions for thieving skills --- ADnD_2E_Revised/2ESheet.html | 515 +++++++++--------- ADnD_2E_Revised/2EStyle.css | 16 +- ADnD_2E_Revised/css/2EStyle-base.css | 16 +- .../html/tabs/character-tab/rogue-tab.html | 448 +++++++-------- ...thieving-skills-dexterity-adjustments.html | 67 +-- .../thievingSkillsDexterityAdjustments.pug | 43 +- 6 files changed, 571 insertions(+), 534 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index c57a57b46e72..45dfb977f5bf 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2755,9 +2755,6 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    • Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. (see table below) -
        -
      • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
      • -
    • Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook, Player's Option: Skills & Powers, and Dungeon Master Option: High-Level Campaign (see tables below). @@ -2771,7 +2768,7 @@

      Skills & Powers / Dark Sun / Sages & Specialists

    • Ranger's chance to Hide in Shadows or Move Silently can never be more than 99%. The Complete Ranger's Handbook p. 11.
      - When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved. + When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved.
      This limit is applied when you click to roll the ability.
    • @@ -2779,10 +2776,7 @@

      Skills & Powers / Dark Sun / Sages & Specialists

      • - These skills are from Player's Option: Skills & Powers, Dark Sun: Dragon Kings, and Dark Sun Revised: The Age of Heroes. -
          -
        • Dexterity and Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes.
        • -
        + These skills are from Player's Option: Skills & Powers, Dungeon Master Option: High-Level Campaign, Dark Sun: Dragon Kings, and Dark Sun Revised: The Age of Heroes.
      • @@ -2797,16 +2791,16 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        Thieving Skill Dexterity (Aim, Balance) Adjustments - +
        - + - + @@ -2900,56 +2894,56 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        - + - + - + - - - + + + - - - - + + + + - - - - - - - - + + + + + + + + - + - - - - - - + + + + + + - + - - + + @@ -3040,96 +3034,123 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        -
        Ability ScoreAbility Score Pick
        PocketsA
        Open
        LocksA
        Find/Remove
        TrapsA
        Move
        SilentlyB
        Hide in
        ShadowsB
        Climb
        WallsB
        TunnelingDTunnelingD Escape
        BondsD
        11 -5%0% -5% -10%0% -5%0% -5%
        120%0%0% -5%0%0%0%0%
        13-150%0%0%0%0%0%0%0%
        160% +5%0%0%0%0%0%0%
        17 +5% +10%0% +5% +5%0%0% +5%
        +30% +30%

        +
        • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
        • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
        • Tunneling and Escape Bonds are adjusted by Dexterity
        • -
        +
      • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
      • +

  • Thief Armor information

    A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

    Thieving Skill Armor Adjustments - +
    - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + +
    SkillNo
    Armor
    Padded Armor or
    Studded Leather
    Elven
    Chain Mail
    Silenced Elven
    Chain Mail
    SkillNo
    Armor
    Padded Armor or
    Studded Leather
    Elven
    Chain Mail
    Silenced Elven
    Chain Mail
    Pick Pocket+5%-30%-20%-25%+5%-30%-20%-25%
    Open Locks-10%-5%-5%-10%-5%-5%
    Find/Remove Traps-10%-5%-5%-10%-5%-5%
    Move Silently+10%-20%-10%+10%-20%-10%
    Hide in Shadows+5%-20%-10%-10%+5%-20%-10%-10%
    Detect Noise-10%-5%-10%-5%
    Climb Walls+10%-30%-20%-25%+10%-30%-20%-25%
    Read Languages
    Bribe*-10%+5%-5%
    Escape Bonds*+5%-5%-5%
    Tunneling*+10%-5%-10%
    +
      +
    • + Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes. +
    • +

    Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
    Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception.

    - +
    - - - - - - - + + + + + + + @@ -3177,7 +3198,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    - + @@ -3210,83 +3231,83 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    A bard can wear any armor up to, and including, chain mail, but cannot use a shield.

    This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), Ring Mail (AC 7), Hide Armor (AC 6), Brigandine Armor (AC 6), Scale Mail (AC 6), Chain Mail (AC 5), including Elven Chain Mail (AC 5)

    Barding Skill Armor Adjustments -
    SkillsHide
    Amor
    Ring or
    Chain Mail
    Brigandine
    or Splint Mail
    Scale or
    Banded Mail
    Plate Mail or
    Bronze Plate Mail
    Field or
    Full Plate
    SkillsHide
    Amor
    Ring or
    Chain Mail
    Brigandine
    or Splint Mail
    Scale or
    Banded Mail
    Plate Mail or
    Bronze Plate Mail
    Field or
    Full Plate
    Pick Pockets -95%
    Hear NoiseDetect Noise -10% -20% -25%
    +
    - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + +
    Type of
    Armor
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    None+5%+10%+5%+10%
    Leather Armor
    Padded Armor-30%-10%-30%-30%-10%-30%
    Studded Leather-30%-10%-30%-30%-10%-30%
    Ring Mail-25%-10%-25%-25%-10%-25%
    Brigandine Armor-20%-10%-25%-20%-10%-25%
    Scale Mail-25%-15%-40%-25%-15%-40%
    Hide Armor-30%-5%-30%-30%-5%-30%
    Chain Mail-25%-10%-25%-25%-10%-25%
    Elven Chain Mail-20%-5%-20%-20%-5%-20%

    @@ -3295,55 +3316,55 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    out of necessity, or for the sake of entertainment), the penalties are identical to those for a thief in similar armor.

    Illegal Armor Barding Skill Adjustments - +
    - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + +
    Armor
    Type
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Pick
    Pockets
    Detect
    Noise
    Climb
    Walls
    Read
    Languages
    Splint Mail-40%-25%-50%-40%-25%-50%
    Banded Armor-50%-30%-90%-50%-30%-90%
    Plate Mail-75%-50%-95%-75%-50%-95%
    Bronze Plate-75%-50%-95%-75%-50%-95%
    Field Plate-95%-70%-95%-95%-70%-95%
    Full Plate-95%-70%-95%-95%-70%-95%
    @@ -3355,107 +3376,107 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types.

    Ranger Skill Armor Adjustments - +
    - - - + + + - - + + - - - + + + - - - + + + - - + + - - + +
    ArmorHide in
    Shadows
    Move
    Silently
    ArmorHide in
    Shadows
    Move
    Silently
    None+5%+10%+5%+10%
    LeatherLeather Armor
    Padded-20%-20%Padded Armor-20%-20%
    Studded Leather-20%-20%-20%-20%
    Ring Mail-30%-40%-30%-40%
    -
    -

    - If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, - or to use a ranger kit that allows for for heavier armor of AC 6 or less. Use the following modifiers. -

    - Ranger Skills Optional Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ArmorHide in
    Shadows
    Move
    Silently
    Hide-20%-30%
    Brigandine-30%-40%
    Scale Mail-50%-60%
    Chain Mail-30%-40%
    Elven Chain-10%-10%
    Splint Mail-30%-40%
    Banded-50%-60%
    Bronze Plate-75%-80%
    Plate Mail-75%-80%
    Field Plate-95%-95%
    Full Plate-95%-95%
    -
    +
    +

    + If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, + or to use a ranger kit that allows for for heavier armor of AC 6 or less. Use the following modifiers. +

    + Ranger Skills Optional Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArmorHide in
    Shadows
    Move
    Silently
    Hide-20%-30%
    Brigandine-30%-40%
    Scale Mail-50%-60%
    Chain Mail-30%-40%
    Elven Chain-10%-10%
    Splint Mail-30%-40%
    Banded-50%-60%
    Bronze Plate-75%-80%
    Plate Mail-75%-80%
    Field Plate-95%-95%
    Full Plate-95%-95%
    +
    diff --git a/ADnD_2E_Revised/2EStyle.css b/ADnD_2E_Revised/2EStyle.css index c570f582e6f6..7fcaa11c65dc 100644 --- a/ADnD_2E_Revised/2EStyle.css +++ b/ADnD_2E_Revised/2EStyle.css @@ -616,18 +616,20 @@ table.sheet-centering-padding-5-column5 td:nth-child(5) { vertical-align: middle; } -table.sheet-left-align-column1 th:nth-child(1) { +table.sheet-rogue-info th, +table.sheet-rogue-info td { + text-align: center; + vertical-align: bottom; + padding-right: 8px; +} +table.sheet-rogue-info th:nth-child(1), +table.sheet-rogue-info td:nth-child(1) { text-align: left; } - -.sheet-centering-horizontal { +table.sheet-rogue-info-center-column1 th:nth-child(1) { text-align: center; } -.sheet-centering-vertical { - vertical-align: middle; -} - .sheet-table-center { margin-left: auto; margin-right: auto; diff --git a/ADnD_2E_Revised/css/2EStyle-base.css b/ADnD_2E_Revised/css/2EStyle-base.css index 70371a4cc659..05088042c981 100644 --- a/ADnD_2E_Revised/css/2EStyle-base.css +++ b/ADnD_2E_Revised/css/2EStyle-base.css @@ -616,18 +616,20 @@ table.sheet-centering-padding-5-column5 td:nth-child(5) { vertical-align: middle; } -table.sheet-left-align-column1 th:nth-child(1) { +table.sheet-rogue-info th, +table.sheet-rogue-info td { + text-align: center; + vertical-align: bottom; + padding-right: 8px; +} +table.sheet-rogue-info th:nth-child(1), +table.sheet-rogue-info td:nth-child(1) { text-align: left; } - -.sheet-centering-horizontal { +table.sheet-rogue-info-center-column1 th:nth-child(1) { text-align: center; } -.sheet-centering-vertical { - vertical-align: middle; -} - .sheet-table-center { margin-left: auto; margin-right: auto; diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 391de85ca661..bf347fcbeb2f 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -353,9 +353,6 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    • Autofill adjustments for Dexterity, Aim, and Balance are based on the Player's Handbook and Player's Option: Skills & Powers Second printing: February 1996. (see table below) -
        -
      • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
      • -
    • Autofill adjustments for Armor type are based on the Player's Handbook, Complete Thief's Handbook, Complete Bard's Handbook, Complete Ranger's Handbook, Player's Option: Skills & Powers, and Dungeon Master Option: High-Level Campaign (see tables below). @@ -369,7 +366,7 @@

      Skills & Powers / Dark Sun / Sages & Specialists

    • Ranger's chance to Hide in Shadows or Move Silently can never be more than 99%. The Complete Ranger's Handbook p. 11.
      - When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved. + When attempting to Hide in Shadows or Move Silently in non-natural surroundings (a crypt, city street, indoor, underground) the chance of success is halved.
      This limit is applied when you click to roll the ability.
    • @@ -377,10 +374,7 @@

      Skills & Powers / Dark Sun / Sages & Specialists

      • - These skills are from Player's Option: Skills & Powers, Dark Sun: Dragon Kings, and Dark Sun Revised: The Age of Heroes. -
          -
        • Dexterity and Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes.
        • -
        + These skills are from Player's Option: Skills & Powers, Dungeon Master Option: High-Level Campaign, Dark Sun: Dragon Kings, and Dark Sun Revised: The Age of Heroes.
      • @@ -400,85 +394,111 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        Thief Armor information

        A thief can wear Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), or Elven Chain Mail (AC 5)

        Thieving Skill Armor Adjustments - +
        - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + +
        SkillNo
        Armor
        Padded Armor or
        Studded Leather
        Elven
        Chain Mail
        Silenced Elven
        Chain Mail
        SkillNo
        Armor
        Padded Armor or
        Studded Leather
        Elven
        Chain Mail
        Silenced Elven
        Chain Mail
        Pick Pocket+5%-30%-20%-25%+5%-30%-20%-25%
        Open Locks-10%-5%-5%-10%-5%-5%
        Find/Remove Traps-10%-5%-5%-10%-5%-5%
        Move Silently+10%-20%-10%+10%-20%-10%
        Hide in Shadows+5%-20%-10%-10%+5%-20%-10%-10%
        Detect Noise-10%-5%-10%-5%
        Climb Walls+10%-30%-20%-25%+10%-30%-20%-25%
        Read Languages
        Bribe*-10%+5%-5%
        Escape Bonds*+5%-5%-5%
        Tunneling*+10%-5%-10%
        +
          +
        • + Armor type adjustments are different in some settings, like Dark Sun. If you play in such a setting, update these adjustments manually every time your Dexterity or Armor type changes. +
        • +

        Multi-classed demihumans or dual-classe humans, may have fighter or cleric as one of their classes, and my therefore be permitted any sort of armor whatsoever.
        Thieves using the disguise nonweapon proficiency should also be permitted to wear armor not normally used by their class, to aid the deception.

        - +
        - - - - - - - + + + + + + + @@ -526,7 +546,7 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        - + @@ -559,83 +579,83 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        A bard can wear any armor up to, and including, chain mail, but cannot use a shield.

        This includes Leather Armor (AC 8), Padded Armor (AC 8), Studded Leather (AC 7), Ring Mail (AC 7), Hide Armor (AC 6), Brigandine Armor (AC 6), Scale Mail (AC 6), Chain Mail (AC 5), including Elven Chain Mail (AC 5)

        Barding Skill Armor Adjustments -
        SkillsHide
        Amor
        Ring or
        Chain Mail
        Brigandine
        or Splint Mail
        Scale or
        Banded Mail
        Plate Mail or
        Bronze Plate Mail
        Field or
        Full Plate
        SkillsHide
        Amor
        Ring or
        Chain Mail
        Brigandine
        or Splint Mail
        Scale or
        Banded Mail
        Plate Mail or
        Bronze Plate Mail
        Field or
        Full Plate
        Pick Pockets -95%
        Hear NoiseDetect Noise -10% -20% -25%
        +
        - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + +
        Type of
        Armor
        Pick
        Pockets
        Detect
        Noise
        Climb
        Walls
        Read
        Languages
        Pick
        Pockets
        Detect
        Noise
        Climb
        Walls
        Read
        Languages
        None+5%+10%+5%+10%
        Leather Armor
        Padded Armor-30%-10%-30%-30%-10%-30%
        Studded Leather-30%-10%-30%-30%-10%-30%
        Ring Mail-25%-10%-25%-25%-10%-25%
        Brigandine Armor-20%-10%-25%-20%-10%-25%
        Scale Mail-25%-15%-40%-25%-15%-40%
        Hide Armor-30%-5%-30%-30%-5%-30%
        Chain Mail-25%-10%-25%-25%-10%-25%
        Elven Chain Mail-20%-5%-20%-20%-5%-20%

        @@ -644,55 +664,55 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        out of necessity, or for the sake of entertainment), the penalties are identical to those for a thief in similar armor.

        Illegal Armor Barding Skill Adjustments - +
        - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + +
        Armor
        Type
        Pick
        Pockets
        Detect
        Noise
        Climb
        Walls
        Read
        Languages
        Pick
        Pockets
        Detect
        Noise
        Climb
        Walls
        Read
        Languages
        Splint Mail-40%-25%-50%-40%-25%-50%
        Banded Armor-50%-30%-90%-50%-30%-90%
        Plate Mail-75%-50%-95%-75%-50%-95%
        Bronze Plate-75%-50%-95%-75%-50%-95%
        Field Plate-95%-70%-95%-95%-70%-95%
        Full Plate-95%-70%-95%-95%-70%-95%
        @@ -704,106 +724,106 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        The Complete Ranger's Handbook includes Ring Mail (AC 7) to the list of allowed armor types.

        Ranger Skill Armor Adjustments - +
        - - - + + + - - + + - - - + + + - - - + + + - - + + - - + +
        ArmorHide in
        Shadows
        Move
        Silently
        ArmorHide in
        Shadows
        Move
        Silently
        None+5%+10%+5%+10%
        LeatherLeather Armor
        Padded-20%-20%Padded Armor-20%-20%
        Studded Leather-20%-20%-20%-20%
        Ring Mail-30%-40%-30%-40%
        -
        -

        - If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, - or to use a ranger kit that allows for for heavier armor of AC 6 or less. Use the following modifiers. -

        - Ranger Skills Optional Armor Adjustments - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        ArmorHide in
        Shadows
        Move
        Silently
        Hide-20%-30%
        Brigandine-30%-40%
        Scale Mail-50%-60%
        Chain Mail-30%-40%
        Elven Chain-10%-10%
        Splint Mail-30%-40%
        Banded-50%-60%
        Bronze Plate-75%-80%
        Plate Mail-75%-80%
        Field Plate-95%-95%
        Full Plate-95%-95%
        - +
        +

        + If the DM allows rangers to wear any armor they like and still be able to hide in shadows and move silently, + or to use a ranger kit that allows for for heavier armor of AC 6 or less. Use the following modifiers. +

        + Ranger Skills Optional Armor Adjustments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ArmorHide in
        Shadows
        Move
        Silently
        Hide-20%-30%
        Brigandine-30%-40%
        Scale Mail-50%-60%
        Chain Mail-30%-40%
        Elven Chain-10%-10%
        Splint Mail-30%-40%
        Banded-50%-60%
        Bronze Plate-75%-80%
        Plate Mail-75%-80%
        Field Plate-95%-95%
        Full Plate-95%-95%
        +
    \ No newline at end of file diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html index 9bb9533c8358..be767429c889 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html @@ -1,14 +1,14 @@ - +
    - + - + @@ -102,56 +102,56 @@ - + - + - + - - - + + + - - - - + + + + - - - - - - - - + + + + + + + + - + - - - - - - + + + + + + - + - - + + @@ -242,9 +242,10 @@ -
    Ability ScoreAbility Score Pick
    PocketsA
    Open
    LocksA
    Find/Remove
    TrapsA
    Move
    SilentlyB
    Hide in
    ShadowsB
    Climb
    WallsB
    TunnelingDTunnelingD Escape
    BondsD
    11 -5%0% -5% -10%0% -5%0% -5%
    120%0%0% -5%0%0%0%0%
    13-150%0%0%0%0%0%0%0%
    160% +5%0%0%0%0%0%0%
    17 +5% +10%0% +5% +5%0%0% +5%
    +30% +30%

    +
    • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
    • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
    • Tunneling and Escape Bonds are adjusted by Dexterity
    • -
    \ No newline at end of file +
  • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
  • +
    \ No newline at end of file diff --git a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug index c9b625bc9e7c..c81a5ad6983c 100644 --- a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug +++ b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug @@ -1,7 +1,7 @@ - let i = 3; -table(class='sheet-centering-horizontal sheet-padding-right') +table(class='sheet-rogue-info sheet-rogue-info-center-column1') tr - th(style={'vertical-align': 'bottom'}) Ability Score + th Ability Score th | Pick br @@ -32,7 +32,7 @@ table(class='sheet-centering-horizontal sheet-padding-right') br | Walls sup B - th(style={'vertical-align': 'bottom'}) Tunneling + th Tunneling sup D th | Escape @@ -41,31 +41,20 @@ table(class='sheet-centering-horizontal sheet-padding-right') sup D while i < 26 if i === 13 || i === 14 - else if i === 15 - tr - th 13-15 - td #{data['pickpocket'][15]}% - td #{data['openlocks'][15]}% - td #{data['findtraps'][15]}% - td #{data['movesilently'][15]}% - td #{data['hideinshadows'][15]}% - td #{data['climbwalls'][15]}% - td #{data['tunneling'][15]}% - td #{data['escapebonds'][15]}% - else - tr - th= i - td #{data['pickpocket'][i]}% - td #{data['openlocks'][i]}% - td #{data['findtraps'][i]}% - td #{data['movesilently'][i]}% - td #{data['hideinshadows'][i]}% - td #{data['climbwalls'][i]}% - td #{data['tunneling'][i]}% - td #{data['escapebonds'][i]}% + - i++ + - continue + tr + th #{i === 15 ? '13-15' : i} + td= data['pickpocket'][i] === '0' ? '—' : data['pickpocket'][i]+'%' + td= data['openlocks'][i] === '0' ? '—' : data['openlocks'][i]+'%' + td= data['findtraps'][i] === '0' ? '—' : data['findtraps'][i]+'%' + td= data['movesilently'][i] === '0' ? '—' : data['movesilently'][i]+'%' + td= data['hideinshadows'][i] === '0' ? '—' : data['hideinshadows'][i]+'%' + td= data['climbwalls'][i] === '0' ? '—' : data['climbwalls'][i]+'%' + td= data['tunneling'][i] === '0' ? '—' : data['tunneling'][i]+'%' + td= data['escapebonds'][i] === '0' ? '—' : data['escapebonds'][i]+'%' - i++ - i = 3 -br ul(class='custom-list') li(class='bullet-A') span Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim @@ -73,3 +62,5 @@ ul(class='custom-list') span Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance li(class='bullet-D') span Tunneling and Escape Bonds are adjusted by Dexterity + li(class='bullet-disc') Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes. +br \ No newline at end of file From 41e88ad1bf9e10c651f00661c369876de7a474dc Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 19:52:25 +0200 Subject: [PATCH 39/51] Added missing span --- ADnD_2E_Revised/2ESheet.html | 2 +- .../rogue-tab/thieving-skills-dexterity-adjustments.html | 2 +- ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 45dfb977f5bf..3a4f5835318a 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -3039,7 +3039,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

  • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
  • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
  • Tunneling and Escape Bonds are adjusted by Dexterity
  • -
  • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
  • +
  • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.

  • diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html index be767429c889..c234022fcff1 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html @@ -247,5 +247,5 @@
  • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
  • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
  • Tunneling and Escape Bonds are adjusted by Dexterity
  • -
  • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.
  • +
  • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.

  • \ No newline at end of file diff --git a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug index c81a5ad6983c..2880f3239228 100644 --- a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug +++ b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug @@ -62,5 +62,6 @@ ul(class='custom-list') span Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance li(class='bullet-D') span Tunneling and Escape Bonds are adjusted by Dexterity - li(class='bullet-disc') Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes. + li(class='bullet-disc') + span Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes. br \ No newline at end of file From a13d3eddf833d7b266e8d867c1a9e7e1ca3c9583 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 19:54:16 +0200 Subject: [PATCH 40/51] updated change log --- ADnD_2E_Revised/2ESheet.html | 3 ++- ADnD_2E_Revised/html/changelog.html | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 3a4f5835318a..328d85a0ce12 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -29,7 +29,8 @@

    Changes in

  • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
  • Find/Remove Traps, when rolled, ask for how it is used: Find, remove normal, remove invisible/magical trap
  • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
  • -
  • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
  • +
  • If you are a Ranger, Move Silently and Hide in Shadows ask if you are in a non-natural surrounding and half your chance of success
  • +
  • Added Dexterity, Aim, Balance skills armor adjustments notes
  • Added Ranger skills armor adjustments notes
  • Added ranger to the allowed armors for the rogue armor autofill
  • All skills from PO: Skills & Powers, Dark Sun, and Sages & Specialists now use Roll templates when rolled
  • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index 7e62232e4790..eaf61843ffbd 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -24,7 +24,8 @@

    Changes in

  • All skills have gotten their calculations changed so that the misc modifier is included in the max 95% chance
  • Find/Remove Traps, when rolled, ask for how it is used: Find, remove normal, remove invisible/magical trap
  • Toggle to tell if you are a Ranger, allowing Move Silently and Hide in Shadows to max out at 99% instead of 95%
  • -
  • If you are a Ranger, MS and HiS ask if you are in a non-natural surrounding and half your chance of success
  • +
  • If you are a Ranger, Move Silently and Hide in Shadows ask if you are in a non-natural surrounding and half your chance of success
  • +
  • Added Dexterity, Aim, Balance skills armor adjustments notes
  • Added Ranger skills armor adjustments notes
  • Added ranger to the allowed armors for the rogue armor autofill
  • All skills from PO: Skills & Powers, Dark Sun, and Sages & Specialists now use Roll templates when rolled
  • From 6dd4f695de23865479e4d1af8dd82354e54c32d5 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 20:14:23 +0200 Subject: [PATCH 41/51] First parse for recalculating all the skills after the armor pieces have been moved --- ADnD_2E_Revised/2ESheet.html | 21 ++++++++++++++++++++- ADnD_2E_Revised/javascript/version.js | 21 ++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 328d85a0ce12..54a8eb901196 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -72398,7 +72398,26 @@

    Monster Sheet specific

    } setAttrs(newValue); }); - }).execute() + }) + .execute(function () { + let rogueSkills = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS); + let allRogueSkills = rogueSkills.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}c`)); + + getAttrs(allRogueSkills, function (values) { + let setValue = {}; + + rogueSkills.forEach(skill => { + setValue[`${skill}t`] = 0; + ROGUE_SKILL_COLUMNS.forEach(c => { + let skillNumber = parseInt(values[`${skill}c`]) || 0; + setValue[`${skill}t`] += skillNumber; + }); + console.log(`Updating ${skill}t to ${setValue[`${skill}t`]}`); + }); + + setAttrs(setValue); + }); + }); } //#endregion diff --git a/ADnD_2E_Revised/javascript/version.js b/ADnD_2E_Revised/javascript/version.js index f6854f23cef9..a27f50dd1ee8 100644 --- a/ADnD_2E_Revised/javascript/version.js +++ b/ADnD_2E_Revised/javascript/version.js @@ -111,7 +111,26 @@ function migrate4_17_0() { } setAttrs(newValue); }); - }).execute() + }) + .execute(function () { + let rogueSkills = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS); + let allRogueSkills = rogueSkills.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}c`)); + + getAttrs(allRogueSkills, function (values) { + let setValue = {}; + + rogueSkills.forEach(skill => { + setValue[`${skill}t`] = 0; + ROGUE_SKILL_COLUMNS.forEach(c => { + let skillNumber = parseInt(values[`${skill}c`]) || 0; + setValue[`${skill}t`] += skillNumber; + }); + console.log(`Updating ${skill}t to ${setValue[`${skill}t`]}`); + }); + + setAttrs(setValue); + }); + }); } //#endregion From 840f39ff10c818ceb25e4b3d60b2933ae57730bb Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Thu, 8 Jun 2023 20:37:43 +0200 Subject: [PATCH 42/51] Added the migration from old armor field to new armor field --- ADnD_2E_Revised/2ESheet.html | 43 ++++++++++++--------------- ADnD_2E_Revised/javascript/version.js | 43 ++++++++++++--------------- 2 files changed, 38 insertions(+), 48 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 54a8eb901196..574222c9747d 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -72373,9 +72373,9 @@

    Monster Sheet specific

    //#region version 4.17.0 function migrate4_17_0() { console.log('Migrate to v4.17.0'); - calculateFormula('rogue-level-base', 'rogue-level-total'); TAS.repeating('customrogue') + .attrs(ROGUE_STANDARD_SKILLS.flatMap(skill => [`${skill}armorp`, `${skill}a`])) .fields('cra','crarmorp') .each(function (row) { let armorValue = row.I['crarmorp']; @@ -72384,38 +72384,33 @@

    Monster Sheet specific

    console.log(`Moving value ${armorValue} from crarmorp to cra`); row.I['cra'] = armorValue; - }, function () { - getAttrs(ROGUE_STANDARD_SKILLS.map(s => s+'armorp'), function (values) { - let newValue = {}; - for (let rogueSkill of ROGUE_STANDARD_SKILLS) { - let armorValue = values[rogueSkill+'armorp']; - let number = parseInt(armorValue) || 0; - if (number === 0) - continue; - - console.log(`Moving value ${number} from ${rogueSkill}armorp to ${rogueSkill}a`); - newValue[rogueSkill+'a'] = number; - } - setAttrs(newValue); - }); + }, function (rowSet, attrSet) { + ROGUE_STANDARD_SKILLS.forEach(skill => { + let armorValue = attrSet.I[`${skill}armorp`]; + if (armorValue === 0) + return; + + attrSet.I[`${skill}a`] = armorValue; + console.log(`Moving value ${armorValue} from ${skill}armorp to ${skill}a`); + }) }) .execute(function () { - let rogueSkills = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS); - let allRogueSkills = rogueSkills.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}c`)); + let allRogueSkills = ROGUE_STANDARD_SKILLS.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}${c}`)); getAttrs(allRogueSkills, function (values) { - let setValue = {}; + let newValue = {}; - rogueSkills.forEach(skill => { - setValue[`${skill}t`] = 0; + ROGUE_STANDARD_SKILLS.forEach(skill => { + let totalField = `${skill}t`; + newValue[totalField] = 0; ROGUE_SKILL_COLUMNS.forEach(c => { - let skillNumber = parseInt(values[`${skill}c`]) || 0; - setValue[`${skill}t`] += skillNumber; + let skillNumber = parseInt(values[`${skill}${c}`]) || 0; + newValue[totalField] += skillNumber; }); - console.log(`Updating ${skill}t to ${setValue[`${skill}t`]}`); + console.log(`Updating ${totalField} to ${newValue[totalField]}`); }); - setAttrs(setValue); + setAttrs(newValue); }); }); } diff --git a/ADnD_2E_Revised/javascript/version.js b/ADnD_2E_Revised/javascript/version.js index a27f50dd1ee8..53f8d8d6dde9 100644 --- a/ADnD_2E_Revised/javascript/version.js +++ b/ADnD_2E_Revised/javascript/version.js @@ -86,9 +86,9 @@ function moveStaticToRepeating(section, fieldsToMove) { //#region version 4.17.0 function migrate4_17_0() { console.log('Migrate to v4.17.0'); - calculateFormula('rogue-level-base', 'rogue-level-total'); TAS.repeating('customrogue') + .attrs(ROGUE_STANDARD_SKILLS.flatMap(skill => [`${skill}armorp`, `${skill}a`])) .fields('cra','crarmorp') .each(function (row) { let armorValue = row.I['crarmorp']; @@ -97,38 +97,33 @@ function migrate4_17_0() { console.log(`Moving value ${armorValue} from crarmorp to cra`); row.I['cra'] = armorValue; - }, function () { - getAttrs(ROGUE_STANDARD_SKILLS.map(s => s+'armorp'), function (values) { - let newValue = {}; - for (let rogueSkill of ROGUE_STANDARD_SKILLS) { - let armorValue = values[rogueSkill+'armorp']; - let number = parseInt(armorValue) || 0; - if (number === 0) - continue; - - console.log(`Moving value ${number} from ${rogueSkill}armorp to ${rogueSkill}a`); - newValue[rogueSkill+'a'] = number; - } - setAttrs(newValue); - }); + }, function (rowSet, attrSet) { + ROGUE_STANDARD_SKILLS.forEach(skill => { + let armorValue = attrSet.I[`${skill}armorp`]; + if (armorValue === 0) + return; + + attrSet.I[`${skill}a`] = armorValue; + console.log(`Moving value ${armorValue} from ${skill}armorp to ${skill}a`); + }) }) .execute(function () { - let rogueSkills = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS); - let allRogueSkills = rogueSkills.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}c`)); + let allRogueSkills = ROGUE_STANDARD_SKILLS.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}${c}`)); getAttrs(allRogueSkills, function (values) { - let setValue = {}; + let newValue = {}; - rogueSkills.forEach(skill => { - setValue[`${skill}t`] = 0; + ROGUE_STANDARD_SKILLS.forEach(skill => { + let totalField = `${skill}t`; + newValue[totalField] = 0; ROGUE_SKILL_COLUMNS.forEach(c => { - let skillNumber = parseInt(values[`${skill}c`]) || 0; - setValue[`${skill}t`] += skillNumber; + let skillNumber = parseInt(values[`${skill}${c}`]) || 0; + newValue[totalField] += skillNumber; }); - console.log(`Updating ${skill}t to ${setValue[`${skill}t`]}`); + console.log(`Updating ${totalField} to ${newValue[totalField]}`); }); - setAttrs(setValue); + setAttrs(newValue); }); }); } From 532fc0e5048f0dc281ecaaf9e2e5cfa6c878fb3d Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Fri, 9 Jun 2023 09:51:25 +0200 Subject: [PATCH 43/51] Added extra skills version migration --- ADnD_2E_Revised/2ESheet.html | 13 ++++++++----- ADnD_2E_Revised/javascript/version.js | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 574222c9747d..406e232e9816 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -72395,19 +72395,22 @@

    Monster Sheet specific

    }) }) .execute(function () { - let allRogueSkills = ROGUE_STANDARD_SKILLS.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}${c}`)); + let allRogueSkills = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}${c}`)); getAttrs(allRogueSkills, function (values) { let newValue = {}; - ROGUE_STANDARD_SKILLS.forEach(skill => { + ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).forEach(skill => { let totalField = `${skill}t`; - newValue[totalField] = 0; + let total = 0; ROGUE_SKILL_COLUMNS.forEach(c => { let skillNumber = parseInt(values[`${skill}${c}`]) || 0; - newValue[totalField] += skillNumber; + total += skillNumber; }); - console.log(`Updating ${totalField} to ${newValue[totalField]}`); + if (total !== 0) { + console.log(`Updating ${totalField} to ${total}`); + newValue[totalField] = total; + } }); setAttrs(newValue); diff --git a/ADnD_2E_Revised/javascript/version.js b/ADnD_2E_Revised/javascript/version.js index 53f8d8d6dde9..3587df093f7d 100644 --- a/ADnD_2E_Revised/javascript/version.js +++ b/ADnD_2E_Revised/javascript/version.js @@ -108,19 +108,22 @@ function migrate4_17_0() { }) }) .execute(function () { - let allRogueSkills = ROGUE_STANDARD_SKILLS.flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}${c}`)); + let allRogueSkills = ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).flatMap(skill => ROGUE_SKILL_COLUMNS.map(c => `${skill}${c}`)); getAttrs(allRogueSkills, function (values) { let newValue = {}; - ROGUE_STANDARD_SKILLS.forEach(skill => { + ROGUE_STANDARD_SKILLS.concat(ROGUE_EXTRA_SKILLS).forEach(skill => { let totalField = `${skill}t`; - newValue[totalField] = 0; + let total = 0; ROGUE_SKILL_COLUMNS.forEach(c => { let skillNumber = parseInt(values[`${skill}${c}`]) || 0; - newValue[totalField] += skillNumber; + total += skillNumber; }); - console.log(`Updating ${totalField} to ${newValue[totalField]}`); + if (total !== 0) { + console.log(`Updating ${totalField} to ${total}`); + newValue[totalField] = total; + } }); setAttrs(newValue); From ceb163f457ade2e0b167adc9ce1054825a5f15c5 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Fri, 9 Jun 2023 12:54:13 +0200 Subject: [PATCH 44/51] Changed calculation to allow thieving skills to go over the maximum for Remove magical traps and Move silently, hide in shadows for rangers in non-natural environment --- ADnD_2E_Revised/2ESheet.html | 6 +++--- ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html | 2 +- ADnD_2E_Revised/javascript/sheetWorkers.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 406e232e9816..95ea78255bf2 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2504,7 +2504,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + @@ -70679,7 +70679,7 @@

    Monster Sheet specific

    } else if (skill === 'Remove Traps') { rollBuilder.push('checkvs=Remove Traps\n(in @{armorname})', 'checktarget=[[{@{rtt}+(@{misc-mod}),95}kl1]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); } else if (skill === 'Remove Invisible/Magical Traps') { - rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[floor({@{rtt}+(@{misc-mod}),95}kl1 / 2)]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); + rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[{floor((@{rtt}+(@{misc-mod}))/2),95}kl1]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); } return printRoll(`/w gm ${rollBuilder.string()}`); @@ -70708,7 +70708,7 @@

    Monster Sheet specific

    if (surroundings === 'Natural') { rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); } else { - rollBuilder.push(`checktarget=[[floor({@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1 / 2)]]%`); + rollBuilder.push(`checktarget=[[{floor((@{${skill}t}+(@{misc-mod}))/2),@{rogue-ranger}}kl1]]%`); } return printRoll(`/w gm ${rollBuilder.string()}`); diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index bf347fcbeb2f..0229f5f88408 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -101,7 +101,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 60b7f4270c47..0e333b6a356d 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -1485,7 +1485,7 @@ on('clicked:rt', function (eventInfo){ } else if (skill === 'Remove Traps') { rollBuilder.push('checkvs=Remove Traps\n(in @{armorname})', 'checktarget=[[{@{rtt}+(@{misc-mod}),95}kl1]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); } else if (skill === 'Remove Invisible/Magical Traps') { - rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[floor({@{rtt}+(@{misc-mod}),95}kl1 / 2)]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); + rollBuilder.push('checkvs=Remove Invisible/Magical Traps\n(in @{armorname})', 'checktarget=[[{floor((@{rtt}+(@{misc-mod}))/2),95}kl1]]%', 'success=After [[1d10]] round(s) you disarm the trap.', 'fail=After [[1d10]] round(s) the trap stays armed.\nYou can try again at next level.', 'fumble=After [[1d10]] round(s) the trap is accidentally triggered and you suffer the consequences!'); } return printRoll(`/w gm ${rollBuilder.string()}`); @@ -1514,7 +1514,7 @@ on('clicked:ms clicked:hs', function (eventInfo){ if (surroundings === 'Natural') { rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); } else { - rollBuilder.push(`checktarget=[[floor({@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1 / 2)]]%`); + rollBuilder.push(`checktarget=[[{floor((@{${skill}t}+(@{misc-mod}))/2),@{rogue-ranger}}kl1]]%`); } return printRoll(`/w gm ${rollBuilder.string()}`); From a8f6ec1f75f642fa997f2b3179cd94520efe76a5 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 12 Jun 2023 09:39:35 +0200 Subject: [PATCH 45/51] Corrected change log --- ADnD_2E_Revised/2ESheet.html | 2 +- ADnD_2E_Revised/html/changelog.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 95ea78255bf2..bb4bef7efdf5 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -11,7 +11,7 @@

    Changes in

    • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds
    • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
    • -
    • Psionic Power - Life Detection refers to itself as a Power instead of a Devotion. Sage Advice #186
    • +
    • Psionic Power - Life Draining refers to itself as a Power instead of a Devotion. Sage Advice #186
    • Endurance NWP for Dwarves is now free (cost 0 slots) instead of 1 as described in Complete Dwarves Handbook.
    • Added V, S components to all Quest spells from Tome of Magic p. 12
    • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
    • diff --git a/ADnD_2E_Revised/html/changelog.html b/ADnD_2E_Revised/html/changelog.html index eaf61843ffbd..ff016f3c5711 100644 --- a/ADnD_2E_Revised/html/changelog.html +++ b/ADnD_2E_Revised/html/changelog.html @@ -6,7 +6,7 @@

      Changes in

      • Psionic Power - Telekinesis no longer adds a modifier for lifting an item weighing exactly 3 pounds
      • Psionic Power - Telekinesis now shows the attack modifier based on the items weight
      • -
      • Psionic Power - Life Detection refers to itself as a Power instead of a Devotion. Sage Advice #186
      • +
      • Psionic Power - Life Draining refers to itself as a Power instead of a Devotion. Sage Advice #186
      • Endurance NWP for Dwarves is now free (cost 0 slots) instead of 1 as described in Complete Dwarves Handbook.
      • Added V, S components to all Quest spells from Tome of Magic p. 12
      • Updated casting spells from scroll notes clarifying that scrolls can be cast without restrictions
      • From cd7ec3e5bfcb1fe791be74b2ef56efa457df88be Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Mon, 12 Jun 2023 12:51:49 +0200 Subject: [PATCH 46/51] Added plusses for positive numbers for consistency --- ADnD_2E_Revised/2ESheet.html | 10 +++++----- ADnD_2E_Revised/javascript/rogueArmor.js | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index bb4bef7efdf5..484202553e2a 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -42416,15 +42416,15 @@

        Monster Sheet specific

        const ROGUE_ARMOR = {}; // Thief armor ROGUE_ARMOR['No Armor'] = { - 'Pick Pockets' : '5', + 'Pick Pockets' : '+5', 'Open Locks' : '0', 'Find/Remove Traps': '0', - 'Move Silently' : '10', + 'Move Silently' : '+10', 'Hide in Shadows' : '5', 'Detect Noise' : '0', - 'Climb Walls' : '10', - 'Tunneling' : '10', - 'Escape bonds' : '5', + 'Climb Walls' : '+10', + 'Tunneling' : '+10', + 'Escape bonds' : '+5', 'Bribe' : '-10', // DM Options: High-Level Campaigns } ROGUE_ARMOR['Leather Armor'] = { diff --git a/ADnD_2E_Revised/javascript/rogueArmor.js b/ADnD_2E_Revised/javascript/rogueArmor.js index 33bbef984b11..13c17c4e4ae1 100644 --- a/ADnD_2E_Revised/javascript/rogueArmor.js +++ b/ADnD_2E_Revised/javascript/rogueArmor.js @@ -1,15 +1,15 @@ const ROGUE_ARMOR = {}; // Thief armor ROGUE_ARMOR['No Armor'] = { - 'Pick Pockets' : '5', + 'Pick Pockets' : '+5', 'Open Locks' : '0', 'Find/Remove Traps': '0', - 'Move Silently' : '10', + 'Move Silently' : '+10', 'Hide in Shadows' : '5', 'Detect Noise' : '0', - 'Climb Walls' : '10', - 'Tunneling' : '10', - 'Escape bonds' : '5', + 'Climb Walls' : '+10', + 'Tunneling' : '+10', + 'Escape bonds' : '+5', 'Bribe' : '-10', // DM Options: High-Level Campaigns } ROGUE_ARMOR['Leather Armor'] = { From c7d479ee042ad0d3c9de093b6b888fa40b0b32d9 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 13 Jun 2023 19:42:27 +0200 Subject: [PATCH 47/51] Added note for climb walls and dexterity --- ADnD_2E_Revised/2ESheet.html | 6 +++++- .../rogue-tab/thieving-skills-dexterity-adjustments.html | 6 +++++- ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 484202553e2a..fb3d9121b912 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -3038,7 +3038,11 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
        • -
        • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
        • +
        • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance +
            +
          • Climb Walls do not get adjusted by Dexterity in the Player's Handbook and therefore will only be set if Aim or Balance has a value, indicating that Player's Option rules are used.
          • +
          +
        • Tunneling and Escape Bonds are adjusted by Dexterity
        • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.

        diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html index c234022fcff1..3f5c613e9e2e 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab/thieving-skills-dexterity-adjustments.html @@ -245,7 +245,11 @@
        • Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim
        • -
        • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance
        • +
        • Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance +
            +
          • Climb Walls do not get adjusted by Dexterity in the Player's Handbook and therefore will only be set if Aim or Balance has a value, indicating that Player's Option rules are used.
          • +
          +
        • Tunneling and Escape Bonds are adjusted by Dexterity
        • Some setting, like Dark Sun, have specific adjustments for Dexterity below 9 and above 19. If you play in such a setting, update these values manually every time your Dexterity changes.

        \ No newline at end of file diff --git a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug index 2880f3239228..0a63b1dc5be9 100644 --- a/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug +++ b/ADnD_2E_Revised/pug/thievingSkillsDexterityAdjustments.pug @@ -60,6 +60,8 @@ ul(class='custom-list') span Pick Pockets, Open Locks, Find/Remove Traps are adjusted by Dexterity/Aim li(class='bullet-B') span Move Silently, Hide in Shadows, Climb Walls are adjusted by Dexterity/Balance + ul + li Climb Walls do not get adjusted by Dexterity in the Player's Handbook and therefore will only be set if Aim or Balance has a value, indicating that Player's Option rules are used. li(class='bullet-D') span Tunneling and Escape Bonds are adjusted by Dexterity li(class='bullet-disc') From 0afb37cf32b6a64a1064f9e252bc55e5add8f8df Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 13 Jun 2023 20:09:15 +0200 Subject: [PATCH 48/51] Added the first errata to spells --- ADnD_2E_Revised/2ESheet.html | 2 ++ ADnD_2E_Revised/javascript/priestSpells.js | 2 +- ADnD_2E_Revised/javascript/psionicPowers.js | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index fb3d9121b912..83091e0b53ad 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -59549,6 +59549,7 @@

        Monster Sheet specific

        'materials': 'A bronze die.', 'reference': 'p. 69', 'book': 'Tome of Magic', + 'errata': 'Sage Advice #247 p. 20', 'damage': '', 'damage-type': '', 'healing': '', @@ -64841,6 +64842,7 @@

        Monster Sheet specific

        'prerequisites': 'none', 'reference': 'p. 52', 'book': 'The Complete Psionics Handbook', + 'errata': 'Deck of Psionic Powers #78 of 288\nSage Advice #186 p. 52', 'damage': '1d6 per round', 'damage-type': '', 'healing': 'Same as damage', diff --git a/ADnD_2E_Revised/javascript/priestSpells.js b/ADnD_2E_Revised/javascript/priestSpells.js index a27883a75dd8..9efe4f2b3e93 100644 --- a/ADnD_2E_Revised/javascript/priestSpells.js +++ b/ADnD_2E_Revised/javascript/priestSpells.js @@ -4350,7 +4350,6 @@ pri3['Moment Reading'] = { 'effect': 'This spell allows the priest to determine the “tenor of the now”—in other words, to learn the “force” that is most dominant at the time. To cast the spell, the priest generates a series of random numbers and then studies the pattern contained in that string of numbers. This pattern contains information about current conditions.\n In game terms, when this spell is cast, the DM communicates to the priest’s player a single word or short phrase (no more than five words) describing the “tone” of the situation. Examples of suitable “tones” are “imminent danger” (the DM knows a dragon is approaching the area); “peace and tranquility” (the woods in which the PCs camp may look threatening, but the area is actually free of evil influence); or “betrayal” (one of the PCs’ hirelings is actually a spy of their enemy). The DM can make this comment cryptic, but it should always be accurate and contain some useful information.\n This spell has no specified area of effect. The result of *moment reading* will always concern the priest and anyone else in his immediate vicinity, but the definition of “vicinity” will vary depending on the circumstances. For example, the tenor of the moment might be “severe danger” if the priest is entering the territory of a dragon who attacks interlopers on sight.\n The tenor of the moment is always personally applicable to the priest. For example, even if the priest is in a nation dangerously close to war with its neighbor, this condition will not appear in the tenor of the moment unless the priest is personally involved (if he’s currently in the direct path of an invading army, for instance).\n One casting of this spell tends to “taint” subsequent castings of the same spell unless they are separated by a minimum length of time. If a priest casts this spell twice within 12 hours, the second reading gives the same result as the first, regardless of the actual situation. If a second priest casts the spell within 12 hours of another priest’s use of the spell, he receives an accurate reading.' }; -// Updated by Sage Advice #247 pri3['Random Causality'] = { 'level': '3', 'school': 'Alteration', @@ -4364,6 +4363,7 @@ pri3['Random Causality'] = { 'materials': 'A bronze die.', 'reference': 'p. 69', 'book': 'Tome of Magic', + 'errata': 'Sage Advice #247 p. 20', 'damage': '', 'damage-type': '', 'healing': '', diff --git a/ADnD_2E_Revised/javascript/psionicPowers.js b/ADnD_2E_Revised/javascript/psionicPowers.js index 4a764970bf4f..814b8c556517 100644 --- a/ADnD_2E_Revised/javascript/psionicPowers.js +++ b/ADnD_2E_Revised/javascript/psionicPowers.js @@ -858,6 +858,7 @@ PSYCHOMETABOLIC['Science']['Life Draining'] = { 'prerequisites': 'none', 'reference': 'p. 52', 'book': 'The Complete Psionics Handbook', + 'errata': 'Deck of Psionic Powers #78 of 288\nSage Advice #186 p. 52', 'damage': '1d6 per round', 'damage-type': '', 'healing': 'Same as damage', From d144515407931d5295098a0af41ed00b48d7a2da Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Tue, 13 Jun 2023 20:16:37 +0200 Subject: [PATCH 49/51] Fixed missing word --- ADnD_2E_Revised/2ESheet.html | 3 +-- .../html/tabs/character-tab/spells-tab/priest-tab.html | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 83091e0b53ad..a4dd5a0945ae 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -9180,7 +9180,7 @@

        Spell Levels

        Tome of Magic sphere suggestions
        • Paladins suggested to receive spells from the sphere of Law. Sage Advice #207 p. 69
        • -
        • Rangers suggested receive spells from the sphere of Travelers. Sage Advice #207 p. 69
        • +
        • Rangers suggested to receive spells from the sphere of Travelers. Sage Advice #207 p. 69
        • Druids suggested to receive Major access to Time and Wards. Minor access to Travelers. Sage Advice #201 p. 45
    @@ -59535,7 +59535,6 @@

    Monster Sheet specific

    'effect': 'This spell allows the priest to determine the “tenor of the now”—in other words, to learn the “force” that is most dominant at the time. To cast the spell, the priest generates a series of random numbers and then studies the pattern contained in that string of numbers. This pattern contains information about current conditions.\n In game terms, when this spell is cast, the DM communicates to the priest’s player a single word or short phrase (no more than five words) describing the “tone” of the situation. Examples of suitable “tones” are “imminent danger” (the DM knows a dragon is approaching the area); “peace and tranquility” (the woods in which the PCs camp may look threatening, but the area is actually free of evil influence); or “betrayal” (one of the PCs’ hirelings is actually a spy of their enemy). The DM can make this comment cryptic, but it should always be accurate and contain some useful information.\n This spell has no specified area of effect. The result of *moment reading* will always concern the priest and anyone else in his immediate vicinity, but the definition of “vicinity” will vary depending on the circumstances. For example, the tenor of the moment might be “severe danger” if the priest is entering the territory of a dragon who attacks interlopers on sight.\n The tenor of the moment is always personally applicable to the priest. For example, even if the priest is in a nation dangerously close to war with its neighbor, this condition will not appear in the tenor of the moment unless the priest is personally involved (if he’s currently in the direct path of an invading army, for instance).\n One casting of this spell tends to “taint” subsequent castings of the same spell unless they are separated by a minimum length of time. If a priest casts this spell twice within 12 hours, the second reading gives the same result as the first, regardless of the actual situation. If a second priest casts the spell within 12 hours of another priest’s use of the spell, he receives an accurate reading.' }; -// Updated by Sage Advice #247 pri3['Random Causality'] = { 'level': '3', 'school': 'Alteration', diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html index 22cc87a9088d..dd03d8b794cf 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/priest-tab.html @@ -42,7 +42,7 @@

    Spell Levels

    Tome of Magic sphere suggestions
    • Paladins suggested to receive spells from the sphere of Law. Sage Advice #207 p. 69
    • -
    • Rangers suggested receive spells from the sphere of Travelers. Sage Advice #207 p. 69
    • +
    • Rangers suggested to receive spells from the sphere of Travelers. Sage Advice #207 p. 69
    • Druids suggested to receive Major access to Time and Wards. Minor access to Travelers. Sage Advice #201 p. 45
    From ae9fe518b845020b21fb5247617da61815589dc8 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Wed, 14 Jun 2023 10:10:32 +0200 Subject: [PATCH 50/51] Added surrounding and detection to skills --- ADnD_2E_Revised/2ESheet.html | 13 ++++++++----- ADnD_2E_Revised/javascript/sheetWorkers.js | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index a4dd5a0945ae..414f819859a3 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -70698,22 +70698,25 @@

    Monster Sheet specific

    rollBuilder.push('character=@{character_name}','checkroll=[[1d100cs<1cf>[[@{rogue-ranger}+1]] ]]'); if (skill ==='ms') { - rollBuilder.push('checkvs=Move Silently\n(in @{armorname})', 'success=You are silent. Movement rate reduced to 1/3 of normal. Opponents get -2 to surprise roll from silence and another -2 if you are unseen.', 'fail=You are not silent. Movement rate reduced to 1/3 of normal.'); + rollBuilder.push('success=You are silent. Movement rate reduced to 1/3 of normal. Opponents get -2 to surprise roll from silence and another -2 if you are unseen.', 'fail=You are not silent. Movement rate reduced to 1/3 of normal.'); } else if (skill === 'hs') { - rollBuilder.push('checkvs=Hide in Shadows\n(in @{armorname})', 'success=You are hidden while remaining virtually motionless. (Small careful movements: drawing a weapon, uncork a potion, etc. is allowed)', 'fail=You are not hidden.'); + rollBuilder.push('success=You are hidden while remaining virtually motionless. (Small careful movements: drawing a weapon, uncork a potion, etc. is allowed). You cannot be detected by Infravision. Magic that reveal invisible objects can reveal you.', 'fail=You are not hidden.'); } // The player is a rogue, so no check for surroundings if (values['rogue-ranger'] === "95") { - rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + let skillName = skill === 'ms' ? 'checkvs=Move Silently\n(in @{armorname})' : 'checkvs=Hide in Shadows\n(in @{armorname})'; + rollBuilder.push(skillName, `checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); return printRoll(`/w gm ${rollBuilder.string()}`); } let surroundings = await extractQueryResult(`?{What are your surroundings?|Natural (woodland / forrest / plains),Natural|Non-natural (crypt / city street / indoor / underground),Non-natural}`); + let displaySurrounding = `*${surroundings} surroundings*`; + let skillName = skill === 'ms' ? `checkvs=Move Silently\n${displaySurrounding}\n(in @{armorname})` : `checkvs=Hide in Shadows\n${displaySurrounding}\n(in @{armorname})`; if (surroundings === 'Natural') { - rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + rollBuilder.push(skillName, `checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); } else { - rollBuilder.push(`checktarget=[[{floor((@{${skill}t}+(@{misc-mod}))/2),@{rogue-ranger}}kl1]]%`); + rollBuilder.push(skillName, `checktarget=[[{floor((@{${skill}t}+(@{misc-mod}))/2),@{rogue-ranger}}kl1]]%`); } return printRoll(`/w gm ${rollBuilder.string()}`); diff --git a/ADnD_2E_Revised/javascript/sheetWorkers.js b/ADnD_2E_Revised/javascript/sheetWorkers.js index 0e333b6a356d..40d654b578cf 100644 --- a/ADnD_2E_Revised/javascript/sheetWorkers.js +++ b/ADnD_2E_Revised/javascript/sheetWorkers.js @@ -1499,22 +1499,25 @@ on('clicked:ms clicked:hs', function (eventInfo){ rollBuilder.push('character=@{character_name}','checkroll=[[1d100cs<1cf>[[@{rogue-ranger}+1]] ]]'); if (skill ==='ms') { - rollBuilder.push('checkvs=Move Silently\n(in @{armorname})', 'success=You are silent. Movement rate reduced to 1/3 of normal. Opponents get -2 to surprise roll from silence and another -2 if you are unseen.', 'fail=You are not silent. Movement rate reduced to 1/3 of normal.'); + rollBuilder.push('success=You are silent. Movement rate reduced to 1/3 of normal. Opponents get -2 to surprise roll from silence and another -2 if you are unseen.', 'fail=You are not silent. Movement rate reduced to 1/3 of normal.'); } else if (skill === 'hs') { - rollBuilder.push('checkvs=Hide in Shadows\n(in @{armorname})', 'success=You are hidden while remaining virtually motionless. (Small careful movements: drawing a weapon, uncork a potion, etc. is allowed)', 'fail=You are not hidden.'); + rollBuilder.push('success=You are hidden while remaining virtually motionless. (Small careful movements: drawing a weapon, uncork a potion, etc. is allowed). You cannot be detected by Infravision. Magic that reveal invisible objects can reveal you.', 'fail=You are not hidden.'); } // The player is a rogue, so no check for surroundings if (values['rogue-ranger'] === "95") { - rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + let skillName = skill === 'ms' ? 'checkvs=Move Silently\n(in @{armorname})' : 'checkvs=Hide in Shadows\n(in @{armorname})'; + rollBuilder.push(skillName, `checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); return printRoll(`/w gm ${rollBuilder.string()}`); } let surroundings = await extractQueryResult(`?{What are your surroundings?|Natural (woodland / forrest / plains),Natural|Non-natural (crypt / city street / indoor / underground),Non-natural}`); + let displaySurrounding = `*${surroundings} surroundings*`; + let skillName = skill === 'ms' ? `checkvs=Move Silently\n${displaySurrounding}\n(in @{armorname})` : `checkvs=Hide in Shadows\n${displaySurrounding}\n(in @{armorname})`; if (surroundings === 'Natural') { - rollBuilder.push(`checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); + rollBuilder.push(skillName, `checktarget=[[{@{${skill}t}+(@{misc-mod}),@{rogue-ranger}}kl1]]%`); } else { - rollBuilder.push(`checktarget=[[{floor((@{${skill}t}+(@{misc-mod}))/2),@{rogue-ranger}}kl1]]%`); + rollBuilder.push(skillName, `checktarget=[[{floor((@{${skill}t}+(@{misc-mod}))/2),@{rogue-ranger}}kl1]]%`); } return printRoll(`/w gm ${rollBuilder.string()}`); From 8b43ee08db4793e68e6ad0fe343bc418da806927 Mon Sep 17 00:00:00 2001 From: Peter Bjerg Lidegaard Date: Wed, 14 Jun 2023 11:27:02 +0200 Subject: [PATCH 51/51] Last corrections --- ADnD_2E_Revised/2ESheet.html | 18 +++++++++--------- .../html/tabs/character-tab/rogue-tab.html | 2 +- .../spells-tab/casting-from-scrolls.html | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ADnD_2E_Revised/2ESheet.html b/ADnD_2E_Revised/2ESheet.html index 414f819859a3..aee96bc10341 100644 --- a/ADnD_2E_Revised/2ESheet.html +++ b/ADnD_2E_Revised/2ESheet.html @@ -2564,7 +2564,7 @@

    Skills & Powers / Dark Sun / Sages & Specialists

    % % - + @@ -11887,13 +11887,13 @@

    Powers List

    • Wizards can use (read and cast from) wizard spell scrolls (PHB p. 42 / DMG p. 196)
      Wizards can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
      - Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81) - Wizards can use spells from scrolls without any (Sage Advice #219. p. 81) + Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81)
      + Wizards can use spells from scrolls without any restrictions (Sage Advice #219. p. 81)
    • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
      Priests can use spells from scrolls outside their spheres (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
      - Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) - Priests can use spells from scrolls without any (Sage Advice #219. p. 81) + Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81)
      + Priests can use spells from scrolls without any restrictions (Sage Advice #219. p. 81)
    • Thieves can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 57)
    • Bards can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 61)
    • @@ -13883,13 +13883,13 @@

      Scrolls

      • Wizards can use (read and cast from) wizard spell scrolls (PHB p. 42 / DMG p. 196)
        Wizards can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        - Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81) - Wizards can use spells from scrolls without any (Sage Advice #219. p. 81) + Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81)
        + Wizards can use spells from scrolls without any restrictions (Sage Advice #219. p. 81)
      • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
        Priests can use spells from scrolls outside their spheres (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
        - Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) - Priests can use spells from scrolls without any (Sage Advice #219. p. 81) + Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81)
        + Priests can use spells from scrolls without any restrictions (Sage Advice #219. p. 81)
      • Thieves can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 57)
      • Bards can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 61)
      • diff --git a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html index 0229f5f88408..7a9e4148c1e5 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/rogue-tab.html @@ -161,7 +161,7 @@

        Skills & Powers / Dark Sun / Sages & Specialists

        % % - + diff --git a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html index ea81e3e8d84a..ac69b907ea90 100644 --- a/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html +++ b/ADnD_2E_Revised/html/tabs/character-tab/spells-tab/casting-from-scrolls.html @@ -6,13 +6,13 @@
        • Wizards can use (read and cast from) wizard spell scrolls (PHB p. 42 / DMG p. 196)
          Wizards can use spells from scrolls outside their schools (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
          - Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81) - Wizards can use spells from scrolls without any (Sage Advice #219. p. 81) + Wizards can use spells from scrolls that are higher level than the wizard's Intelligence normally allows (Sage Advice #219. p. 81)
          + Wizards can use spells from scrolls without any restrictions (Sage Advice #219. p. 81)
        • Priests can use (read and cast from) priest spell scrolls (PHB p. 48 / DMG p. 196)
          Priests can use spells from scrolls outside their spheres (Sage Advice #152 p. 14, Sage Advice #217 p. 84)
          - Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81) - Priests can use spells from scrolls without any (Sage Advice #219. p. 81) + Priests can use spells from scrolls that are higher level than the priest's Wisdom normally allows (Sage Advice #219. p. 81)
          + Priests can use spells from scrolls without any restrictions (Sage Advice #219. p. 81)
        • Thieves can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 57)
        • Bards can use (read and cast from) wizard and priest spell scrolls at 10th level (PHB p. 61)