diff --git a/AD&D 2E Revised/2ESheet.html b/AD&D 2E Revised/2ESheet.html index 4e690fcff2..08e24ff679 100644 --- a/AD&D 2E Revised/2ESheet.html +++ b/AD&D 2E Revised/2ESheet.html @@ -9,17 +9,33 @@

Changes in


-

The Monster Sheet, Variants repeating section has been deleted

-

- - -

-

No data has been deleted only the HTML. If you use this section, please let me know so that I can restore it, and thereby give you access to your data.

-

The removal will be made permanent in on the 1st of October 2021 so you have approximately one month to speak up!

-

If the section stays removed, the following features will be added afterwards to the Monster Sheet

+

Monster Sheet

+

Player Sheet

+ +

General sheet changes

+
@@ -3358,14 +3374,26 @@

Proficiencies, Languages, Skills, and Talents

- +
+
-

Weapon Proficiencies

-
-

Total Weapon proficiency slots:

- + + + + + + + + + + + + + + +
Weapon Proficiencies
Macro / NumberTotal slots


@@ -3430,10 +3458,21 @@
-

Nonweapon Proficiencies

-
-

Total Nonweapon proficiency slots:

- + + + + + + + + + + + + + + +
Nonweapon Proficiencies
Macro / NumberTotal slots


@@ -17099,7 +17138,7 @@

Name:

- + @@ -17113,7 +17152,7 @@

Frequency:

- +

Organization:

@@ -17129,7 +17168,7 @@

Intelligence:

- +

Treasure:

@@ -17160,7 +17199,7 @@ ± | - + @@ -17213,11 +17252,11 @@

Size:

- +

Morale:

- +

XP Value:

@@ -17226,9 +17265,9 @@
- +
- + @@ -17243,6 +17282,210 @@

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
Attack / Weapon# of
Attack
THAC0DamageSpecial AttackSpeed
+
+
+
+
+ Monster wizard spells + + + + + + + +
Wizard caster level
+
+
+
+ + + + + + + + +
Spell name:Casting time:
+ + + + + +
Cast / Memorized: /
+ + + + + +
Spell Points / Arc Used: /
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Level:School:Compoenets:
Range:Area of Effect:Duration:
Damage:Damage type:Saving throw:
Healing:Materials:Book reference:
+ + + + + +
+ +
+ +
+
+
+
+
+
+
+
+ Monster priest spells + + + + + + + +
Priest caster level
+
+
+
+ + + + + + + + +
Spell name:Casting time:
+ + + + + +
Cast / Memorized: /
+ + + + + +
Spell Points / Wind Used: /
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Sphere: + + + School:Compoenets:
Range:Area of Effect:Duration:
Damage:Damage type:Saving throw:
Healing:Materials:Book reference:
+ + + + + +
+ +
+ +
+
+
+
+
+
+
+ @@ -17280,190 +17523,6 @@

Ecology

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -18242,6 +18301,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18453,26 +18836,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -18485,14 +19051,29 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -26432,6 +27013,14 @@ wizardSpells['wiz6'] = wiz6; wizardSpells['wiz7'] = wiz7; wizardSpells['wiz8'] = wiz8; wizardSpells['wiz9'] = wiz9; + +const wizmonster = {}; +for (const [_, section] of Object.entries(wizardSpells)) { + for (const [spellName, spell] of Object.entries(section)) { + wizmonster[spellName] = spell; + } +} +wizardSpells['wizmonster'] = wizmonster; /* ---- Wizard spells end ---- */ /* ---- Priest spells start ---- */ @@ -29581,6 +30170,14 @@ priestSpells['pri4'] = pri4; priestSpells['pri5'] = pri5; priestSpells['pri6'] = pri6; priestSpells['pri7'] = pri7; + +const primonster = {}; +for (const [_, section] of Object.entries(priestSpells)) { + for (const [spellName, spell] of Object.entries(section)) { + primonster[spellName] = spell; + } +} +priestSpells['primonster'] = primonster; /* ---- Priest spells end ---- */ // --- ALL SHEET WORKERS START --- // @@ -30399,6 +30996,7 @@ wizardSpellLevelsSections.forEach(spellLevel => { setupAutoFillSpellInfo(lastSection, wizardSpells); } }); +setupAutoFillSpellInfo("wizmonster", wizardSpells); priestSpellLevelsSections.forEach(spellLevel => { let prefix = `spell-priest-level${spellLevel.level}`; @@ -30415,6 +31013,7 @@ priestSpellLevelsSections.forEach(spellLevel => { setupAddPriestSpell(lastSection); } }); +setupAutoFillSpellInfo("primonster", priestSpells); // --- End setup Spell Slots --- // // --- Start setup Spell Points, Arc, and Wind --- // @@ -30518,7 +31117,7 @@ on('change:nonprof-penalty', function (eventInfo) { }); }) -function getWeaponWithBonus(weaponName) { +function getWeaponWithBonus(weaponName, isMonster) { if (!weaponName) return undefined; @@ -30527,26 +31126,40 @@ function getWeaponWithBonus(weaponName) { if (baseWeapon) { return { ...baseWeapon, - bonus: '0' + 'bonus' : '0' }; } - let match = weaponName.match(/\s*\+[0-9]+\s*/); + let match = weaponName.match(/\s*\+([0-9])+\s*/); if (!match) return undefined; let baseWeaponName = weaponName.replace(match[0], ' ').trim(); baseWeapon = weapons[baseWeaponName]; - let bonusString = match[0].trim().replace('+', ''); - let bonus = parseInt(bonusString) - if (!baseWeapon || isNaN(bonus)) + if (!baseWeapon) return undefined; + let bonusString = match[1]; + let bonus = parseInt(bonusString) + if (isNaN(bonus)) + return undefined; + + if (bonus < 1) + return { + ...baseWeapon, + 'bonus' : '0' + }; + let weaponWithBonus = { ...baseWeapon, - 'speed' : Math.max(baseWeapon['speed'] - bonus, 1), + 'speed' : Math.max(baseWeapon['speed'] - bonus, 0), 'bonus' : `+${bonus}` } + if (isMonster) { + weaponWithBonus['small-medium'] += `+${bonus}` + weaponWithBonus['thac0'] = `@{monsterthac0}-${bonus}` + } + return weaponWithBonus; } @@ -30673,6 +31286,22 @@ followerWeapons.forEach(fw => { setupFollowerWeaponsAutoFill(fw.repeating, fw.sections) }); +// Monster weapons +on('change:repeating_monsterweapons:weaponname', function(eventInfo){ + let weapon = getWeaponWithBonus(eventInfo.newValue, true); + if (weapon === undefined) + return; + + let weaponInfo = { + [`repeating_monsterweapons_attacknum`] : weapon['rof'] || '1', + [`repeating_monsterweapons_ThAC0`] : weapon['thac0'] || '@{monsterthac0}', + [`repeating_monsterweapons_damsm`] : weapon['small-medium'], + [`repeating_monsterweapons_weapspeed`] : weapon['speed'], + }; + + setAttrs(weaponInfo); +}); + //Weapon proficiency slots on('change:repeating_weaponprofs:weapprofnum remove:repeating_weaponprofs', function(eventInfo) { if (doEarlyReturn(eventInfo, ['weapprofnum'])) @@ -30760,7 +31389,7 @@ gemSections.forEach(i => { // --- Version change start --- // const sheetName = 'AD&D 2E Revised'; -const sheetVersion = '4.1.4'; +const sheetVersion = '4.2.0'; on('sheet:opened', function(){ getAttrs(['character_sheet'],function(attrs){ diff --git a/AD&D 2E Revised/build/combine.ps1 b/AD&D 2E Revised/build/combine.ps1 index da10c74c8b..58eee03758 100644 --- a/AD&D 2E Revised/build/combine.ps1 +++ b/AD&D 2E Revised/build/combine.ps1 @@ -30,6 +30,7 @@ $inserts | ForEach-Object { $replace = $replaceConstant -f $i; $rawContent = $rawContent.Replace($replace, $replaces[$i]) } + $rawContent = $rawContent -replace "\#REPLACE\d+\#", "" $regex = "^" + [Regex]::Escape($_.Line) + "$" $content = $content -replace $regex, $rawContent diff --git a/AD&D 2E Revised/futureIdeas.txt b/AD&D 2E Revised/futureIdeas.txt index 61a74460f0..86b003fa92 100644 --- a/AD&D 2E Revised/futureIdeas.txt +++ b/AD&D 2E Revised/futureIdeas.txt @@ -1,19 +1,24 @@ -- Armor Class repeating section -- Armor Class detailed breakdown -- Armor class Slashing/Piercing/Bludgeoning +Monster sheet +- More attacks and damage +- Remove repeating variant section +- Spells for monsters + +Player sheet +- Cleanup curreny gems and layout +- Make gems and equipment more responsive +- Make spell imports more generic, to avoid fewer copy-paste errors + +Possible NPC sheet +- Follower sheet, collapse spells for Animals/Familiars +- Add top level button to jump directly to the Follower sheet +- More detailed weapons and such for npcs +- Remove repeating NPC sections? - Structured spell book, which fields for total pages, pages used, and remaining pages. -- Multiple spell books -- A roll button for the number of pages needed -- A roll button for the number of days to write it into the book -Monster sheet -- More attacks and damage -- Remove repeating variant section -- Spells for monsters - -Possible NPC sheet -- Follower sheet, collapse spells for Animals/Familiars -- Add top level button to jump directly to the Follower sheet -- More detailed weapons and such for npcs -- Remove repeating NPC sections? \ No newline at end of file +- Armor Class repeating section +- Armor Class detailed breakdown +- Armor class Slashing/Piercing/Bludgeoning \ No newline at end of file diff --git a/AD&D 2E Revised/html/2ESheet-base.html b/AD&D 2E Revised/html/2ESheet-base.html index 4ff3c5bc38..b94037148c 100644 --- a/AD&D 2E Revised/html/2ESheet-base.html +++ b/AD&D 2E Revised/html/2ESheet-base.html @@ -9,17 +9,33 @@

Changes in


-

The Monster Sheet, Variants repeating section has been deleted

-

- - -

-

No data has been deleted only the HTML. If you use this section, please let me know so that I can restore it, and thereby give you access to your data.

-

The removal will be made permanent in on the 1st of October 2021 so you have approximately one month to speak up!

-

If the section stays removed, the following features will be added afterwards to the Monster Sheet

+

Monster Sheet

    -
  • Repeating Weapons / attack table allowing for adding more attacks to a monster
  • -
  • Repeating spells, allowing monsters to use the full list of spells, currently available to players. This also include rolling spells secretly as the DM, so that players cannot see what spell you are using
  • +
  • Repeating Weapons / attack table allowing for adding more attacks to a monster. +
      +
    • Attacks can be public or private via general switch
    • +
    • Weapons auto fill like for players. Magical weapons adds bonus to ThAC0, Damage and Speed
    • +
    • Only S/M damage is listed for weapons as it is most likely that monsters will his players that are small / medium
    • +
    +
  • +
  • Repeating spells, allowing monsters to use the full list of spells, currently available to players. This also include rolling spells secretly as the DM, so that players cannot see what spell you are using. +
      +
    • Spells can be public or private via general switch
    • +
    +
  • +
  • Added datalist for Monster Frequency
  • +
  • Added datalist for Monster Intelligence
  • +
  • Added datalist for Monster Size
  • +
  • Added datalist for Monster Morale
  • +
  • Added the first User option for the sheet. Now GMs can define the default value for if monster attacks should be public or private
  • +
+

Player Sheet

+
    +
  • New styling for proficiency slots calculation. Now the total amount of slots can easier be verified
  • +
+

General sheet changes

+
    +
  • All magical weapons now reduce speed down to a minimum of 0 instead of 1. The rule was found in the PHB (p. 127)

@@ -3358,14 +3374,26 @@

Proficiencies, Languages, Skills, and Talents

- +
+
-

Weapon Proficiencies

-
-

Total Weapon proficiency slots:

- +
+ + + + + + + + + + + + + +
Weapon Proficiencies
Macro / NumberTotal slots


@@ -3430,10 +3458,21 @@
-

Nonweapon Proficiencies

-
-

Total Nonweapon proficiency slots:

- + + + + + + + + + + + + + + +
Nonweapon Proficiencies
Macro / NumberTotal slots


@@ -15355,7 +15394,7 @@

Name:

- + @@ -15369,7 +15408,7 @@

Frequency:

- +

Organization:

@@ -15385,7 +15424,7 @@

Intelligence:

- +

Treasure:

@@ -15416,7 +15455,7 @@ ± | - + @@ -15469,11 +15508,11 @@

Size:

- +

Morale:

- +

XP Value:

@@ -15482,9 +15521,9 @@
- +
- + @@ -15499,6 +15538,63 @@

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
Attack / Weapon# of
Attack
THAC0DamageSpecial AttackSpeed
+
+
+
+
+ Monster wizard spells + + + + + + + +
Wizard caster level
+ insert_wizard-spell-template.html_wizmonster_@{wtype} +
+
+
+ Monster priest spells + + + + + + + +
Priest caster level
+ insert_priest-spell-template.html_primonster_@{wtype} +
+
+ @@ -15536,190 +15632,6 @@

Ecology

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - insert_datalists.html diff --git a/AD&D 2E Revised/html/datalists.html b/AD&D 2E Revised/html/datalists.html index ff0dc3817b..1aa83f3add 100644 --- a/AD&D 2E Revised/html/datalists.html +++ b/AD&D 2E Revised/html/datalists.html @@ -774,6 +774,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -985,26 +1309,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -1017,12 +1524,27 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AD&D 2E Revised/html/priest-spell-template.html b/AD&D 2E Revised/html/priest-spell-template.html index e6598526a0..58336222a4 100644 --- a/AD&D 2E Revised/html/priest-spell-template.html +++ b/AD&D 2E Revised/html/priest-spell-template.html @@ -66,7 +66,7 @@

- +
diff --git a/AD&D 2E Revised/html/wizard-spell-template.html b/AD&D 2E Revised/html/wizard-spell-template.html index 7aa5839680..99618b044a 100644 --- a/AD&D 2E Revised/html/wizard-spell-template.html +++ b/AD&D 2E Revised/html/wizard-spell-template.html @@ -63,7 +63,7 @@
- + diff --git a/AD&D 2E Revised/img/background-parchment_paper_seamless_pattern.jpg b/AD&D 2E Revised/img/background-parchment_paper_seamless_pattern.jpg new file mode 100644 index 0000000000..64ad4e99df Binary files /dev/null and b/AD&D 2E Revised/img/background-parchment_paper_seamless_pattern.jpg differ diff --git a/AD&D 2E Revised/img/rolltemplate-ac.png b/AD&D 2E Revised/img/rolltemplate-ac.png new file mode 100644 index 0000000000..17e767ddad Binary files /dev/null and b/AD&D 2E Revised/img/rolltemplate-ac.png differ diff --git a/AD&D 2E Revised/img/rolltemplate-crit.png b/AD&D 2E Revised/img/rolltemplate-crit.png new file mode 100644 index 0000000000..16b75c5655 Binary files /dev/null and b/AD&D 2E Revised/img/rolltemplate-crit.png differ diff --git a/AD&D 2E Revised/img/rolltemplate-scatter-diagram.png b/AD&D 2E Revised/img/rolltemplate-scatter-diagram.png new file mode 100644 index 0000000000..7e86c63811 Binary files /dev/null and b/AD&D 2E Revised/img/rolltemplate-scatter-diagram.png differ diff --git a/AD&D 2E Revised/img/sheet-logo.png b/AD&D 2E Revised/img/sheet-logo.png new file mode 100644 index 0000000000..ad0178e060 Binary files /dev/null and b/AD&D 2E Revised/img/sheet-logo.png differ diff --git a/AD&D 2E Revised/javascript/priestSpells.js b/AD&D 2E Revised/javascript/priestSpells.js index 25018ae55a..568b2f354b 100644 --- a/AD&D 2E Revised/javascript/priestSpells.js +++ b/AD&D 2E Revised/javascript/priestSpells.js @@ -3145,4 +3145,12 @@ priestSpells['pri4'] = pri4; priestSpells['pri5'] = pri5; priestSpells['pri6'] = pri6; priestSpells['pri7'] = pri7; + +const primonster = {}; +for (const [_, section] of Object.entries(priestSpells)) { + for (const [spellName, spell] of Object.entries(section)) { + primonster[spellName] = spell; + } +} +priestSpells['primonster'] = primonster; /* ---- Priest spells end ---- */ \ No newline at end of file diff --git a/AD&D 2E Revised/javascript/sheetWorkers.js b/AD&D 2E Revised/javascript/sheetWorkers.js index 678f02f758..66cff355e8 100644 --- a/AD&D 2E Revised/javascript/sheetWorkers.js +++ b/AD&D 2E Revised/javascript/sheetWorkers.js @@ -814,6 +814,7 @@ wizardSpellLevelsSections.forEach(spellLevel => { setupAutoFillSpellInfo(lastSection, wizardSpells); } }); +setupAutoFillSpellInfo("wizmonster", wizardSpells); priestSpellLevelsSections.forEach(spellLevel => { let prefix = `spell-priest-level${spellLevel.level}`; @@ -830,6 +831,7 @@ priestSpellLevelsSections.forEach(spellLevel => { setupAddPriestSpell(lastSection); } }); +setupAutoFillSpellInfo("primonster", priestSpells); // --- End setup Spell Slots --- // // --- Start setup Spell Points, Arc, and Wind --- // @@ -933,7 +935,7 @@ on('change:nonprof-penalty', function (eventInfo) { }); }) -function getWeaponWithBonus(weaponName) { +function getWeaponWithBonus(weaponName, isMonster) { if (!weaponName) return undefined; @@ -942,26 +944,40 @@ function getWeaponWithBonus(weaponName) { if (baseWeapon) { return { ...baseWeapon, - bonus: '0' + 'bonus' : '0' }; } - let match = weaponName.match(/\s*\+[0-9]+\s*/); + let match = weaponName.match(/\s*\+([0-9])+\s*/); if (!match) return undefined; let baseWeaponName = weaponName.replace(match[0], ' ').trim(); baseWeapon = weapons[baseWeaponName]; - let bonusString = match[0].trim().replace('+', ''); - let bonus = parseInt(bonusString) - if (!baseWeapon || isNaN(bonus)) + if (!baseWeapon) return undefined; + let bonusString = match[1]; + let bonus = parseInt(bonusString) + if (isNaN(bonus)) + return undefined; + + if (bonus < 1) + return { + ...baseWeapon, + 'bonus' : '0' + }; + let weaponWithBonus = { ...baseWeapon, - 'speed' : Math.max(baseWeapon['speed'] - bonus, 1), + 'speed' : Math.max(baseWeapon['speed'] - bonus, 0), 'bonus' : `+${bonus}` } + if (isMonster) { + weaponWithBonus['small-medium'] += `+${bonus}` + weaponWithBonus['thac0'] = `@{monsterthac0}-${bonus}` + } + return weaponWithBonus; } @@ -1088,6 +1104,22 @@ followerWeapons.forEach(fw => { setupFollowerWeaponsAutoFill(fw.repeating, fw.sections) }); +// Monster weapons +on('change:repeating_monsterweapons:weaponname', function(eventInfo){ + let weapon = getWeaponWithBonus(eventInfo.newValue, true); + if (weapon === undefined) + return; + + let weaponInfo = { + [`repeating_monsterweapons_attacknum`] : weapon['rof'] || '1', + [`repeating_monsterweapons_ThAC0`] : weapon['thac0'] || '@{monsterthac0}', + [`repeating_monsterweapons_damsm`] : weapon['small-medium'], + [`repeating_monsterweapons_weapspeed`] : weapon['speed'], + }; + + setAttrs(weaponInfo); +}); + //Weapon proficiency slots on('change:repeating_weaponprofs:weapprofnum remove:repeating_weaponprofs', function(eventInfo) { if (doEarlyReturn(eventInfo, ['weapprofnum'])) diff --git a/AD&D 2E Revised/javascript/version.js b/AD&D 2E Revised/javascript/version.js index 5ea0280ebb..55c200e116 100644 --- a/AD&D 2E Revised/javascript/version.js +++ b/AD&D 2E Revised/javascript/version.js @@ -1,7 +1,7 @@ // --- Version change start --- // const sheetName = 'AD&D 2E Revised'; -const sheetVersion = '4.1.4'; +const sheetVersion = '4.2.0'; on('sheet:opened', function(){ getAttrs(['character_sheet'],function(attrs){ diff --git a/AD&D 2E Revised/javascript/wizardSpells.js b/AD&D 2E Revised/javascript/wizardSpells.js index 9973e603bd..ffafb4354d 100644 --- a/AD&D 2E Revised/javascript/wizardSpells.js +++ b/AD&D 2E Revised/javascript/wizardSpells.js @@ -5341,4 +5341,12 @@ wizardSpells['wiz6'] = wiz6; wizardSpells['wiz7'] = wiz7; wizardSpells['wiz8'] = wiz8; wizardSpells['wiz9'] = wiz9; + +const wizmonster = {}; +for (const [_, section] of Object.entries(wizardSpells)) { + for (const [spellName, spell] of Object.entries(section)) { + wizmonster[spellName] = spell; + } +} +wizardSpells['wizmonster'] = wizmonster; /* ---- Wizard spells end ---- */ diff --git a/AD&D 2E Revised/sheet.json b/AD&D 2E Revised/sheet.json index 4ee90ebfdb..763133703a 100644 --- a/AD&D 2E Revised/sheet.json +++ b/AD&D 2E Revised/sheet.json @@ -5,5 +5,18 @@ "preview": "2EPreview.png", "roll20userid": "2569950, 5062881", "instructions": "#Message from current Author Peter B.(2020)\rThe sheet has been updated with more options for players to choose between rule sets such as the standard rule set from the Player's Handbook and the additional material from the Player's Option.\rTo follow current development or for any future development request please write a post on https://app.roll20.net/forum/post/9311682/official-ad-and-d-2e-revised-update-thread.\rThe full change log is always available at https://wiki.roll20.net/ADnD_2nd_Edition_Character_sheet#Changelog\r\r#Message from Original Author Seth (2017)\rThis sheet supports Advanced Dungeons and Dragons 2nd Edition Revised for both Player Characters and Monsters. This sheet has full integration for macro support within many fields of the sheet. Many fields are now auto-calculating fields. Please update these trackers by changing a quantity value and then changing it back.", - "legacy": false + "legacy": false, + "useroptions": [ + { + "attribute": "wtype", + "displayname": "Should Monster attacks be public to players or private (Only send to the GM)?", + "type": "select", + "options": [ + "Public|@{character_name}", + "To GM|/w gm @{character_name}" + ], + "default": "", + "description": "By default all monster attacks are public. These attacks include the static buttons ThAC0, Attack 1-3, Special attack. It also include the repeating buttons Hit, Damage, Special damage, and Spell. To GM rolls will send the mentioned buttons only to yourself and the GM. Thus is a GM clicks the button, only the GM can see it." + } + ] }