diff --git a/themes/Legacy/5ePHB/snippets/classfeature.gen.js b/themes/Legacy/5ePHB/snippets/classfeature.gen.js
index e6e18e754..e2407ff03 100644
--- a/themes/Legacy/5ePHB/snippets/classfeature.gen.js
+++ b/themes/Legacy/5ePHB/snippets/classfeature.gen.js
@@ -8,6 +8,7 @@ module.exports = function(classname){
classname = classname.toLowerCase();
const hitDie = _.sample([4, 6, 8, 10, 12]);
+ const spellSkill = _.sample(['Wisdom', 'Charisma', 'Intelligence']);
const abilityList = ['Strength', 'Dexerity', 'Constitution', 'Wisdom', 'Charisma', 'Intelligence'];
const skillList = ['Acrobatics ', 'Animal Handling', 'Arcana', 'Athletics', 'Deception', 'History', 'Insight', 'Intimidation', 'Investigation', 'Medicine', 'Nature', 'Perception', 'Performance', 'Persuasion', 'Religion', 'Sleight of Hand', 'Stealth', 'Survival'];
@@ -26,12 +27,21 @@ module.exports = function(classname){
'___',
`- **Armor:** ${_.sampleSize(['Light armor', 'Medium armor', 'Heavy armor', 'Shields'], _.random(0, 3)).join(', ') || 'None'}`,
`- **Weapons:** ${_.sampleSize(['Squeegee', 'Rubber Chicken', 'Simple weapons', 'Martial weapons'], _.random(0, 2)).join(', ') || 'None'}`,
- `- **Tools:** ${_.sampleSize(['Artian\'s tools', 'one musical instrument', 'Thieve\'s tools'], _.random(0, 2)).join(', ') || 'None'}`,
+ `- **Tools:** ${_.sampleSize(['Artisan\'s tools', 'one musical instrument', 'Thieves\' tools'], _.random(0, 2)).join(', ') || 'None'}`,
'',
'___',
`- **Saving Throws:** ${_.sampleSize(abilityList, 2).join(', ')}`,
`- **Skills:** Choose two from ${_.sampleSize(skillList, _.random(4, 6)).join(', ')}`,
'',
+ '#### Spellcasting Ability',
+ '',
+ `
`,
+ '___',
+ `- **Spell save DC** = ${_.sample([6, 8, 10])} + your proficiency bonus + your ${spellSkill} modifier`,
+ '',
+ `- **Spell attack modifier** = your proficiency bonus + your ${spellSkill} modifier`,
+ `
`,
+ '',
'#### Equipment',
'You start with the following equipment, in addition to the equipment granted by your background:',
'- *(a)* a martial weapon and a shield or *(b)* two martial weapons',
diff --git a/themes/V3/5ePHB/snippets/classfeature.gen.js b/themes/V3/5ePHB/snippets/classfeature.gen.js
index 7e2e7e858..353ed33a9 100644
--- a/themes/V3/5ePHB/snippets/classfeature.gen.js
+++ b/themes/V3/5ePHB/snippets/classfeature.gen.js
@@ -9,6 +9,7 @@ module.exports = function(classname){
classname = classname.toLowerCase();
const hitDie = _.sample([4, 6, 8, 10, 12]);
+ const spellSkill = _.sample(['Wisdom', 'Charisma', 'Intelligence']);
const abilityList = ['Strength', 'Dexerity', 'Constitution', 'Wisdom', 'Charisma', 'Intelligence'];
const skillList = ['Acrobatics', 'Animal Handling', 'Arcana', 'Athletics', 'Deception', 'History', 'Insight', 'Intimidation', 'Investigation', 'Medicine', 'Nature', 'Perception', 'Performance', 'Persuasion', 'Religion', 'Sleight of Hand', 'Stealth', 'Survival'];
@@ -18,25 +19,24 @@ module.exports = function(classname){
## Class Features
As a ${classname}, you gain the following class features
#### Hit Points
-
**Hit Dice:** :: 1d${hitDie} per ${classname} level
**Hit Points at 1st Level:** :: ${hitDie} + your Constitution modifier
**Hit Points at Higher Levels:** :: 1d${hitDie} (or ${hitDie/2 + 1}) + your Constitution modifier per ${classname} level after 1st
-
#### Proficiencies
-
**Armor:** :: ${_.sampleSize(['Light armor', 'Medium armor', 'Heavy armor', 'Shields'], _.random(0, 3)).join(', ') || 'None'}
**Weapons:** :: ${_.sampleSize(['Squeegee', 'Rubber Chicken', 'Simple weapons', 'Martial weapons'], _.random(0, 2)).join(', ') || 'None'}
- **Tools:** :: ${_.sampleSize(['Artian\'s tools', 'one musical instrument', 'Thieve\'s tools'], _.random(0, 2)).join(', ') || 'None'}
-
+ **Tools:** :: ${_.sampleSize(['Artisan\'s tools', 'one musical instrument', 'Thieves\' tools'], _.random(0, 2)).join(', ') || 'None'}
**Saving Throws:** :: ${_.sampleSize(abilityList, 2).join(', ')}
**Skills:** :: Choose two from ${_.sampleSize(skillList, _.random(4, 6)).join(', ')}
-
+ #### Spellcasting Ability
+ {{text-align:center
+ **Spell save DC**:: = ${_.sample([6, 8, 10])} + your proficiency bonus + your ${spellSkill} modifier
+ **Spell attack modifier**:: = your proficiency bonus + your ${spellSkill} modifier
+ }}
#### Equipment
You start with the following equipment, in addition to the equipment granted by your background:
- *(a)* a martial weapon and a shield or *(b)* two martial weapons
- *(a)* five javelins or *(b)* any simple melee weapon
- ${_.sample(['10 lint fluffs', '1 button', 'a cherished lost sock'])}
-
`;
};
diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less
index 8bcbed30e..a2b269b35 100644
--- a/themes/V3/5ePHB/style.less
+++ b/themes/V3/5ePHB/style.less
@@ -608,8 +608,8 @@ body {
white-space : nowrap;
}
&.frame {
- margin-top : 0.66cm;
- margin-bottom : 1.05cm;
+ margin-top : 0.7cm;
+ margin-bottom : 0.9cm;
margin-left : -0.1cm;
margin-right : -0.1cm;
width : calc(100% + 0.2cm);
@@ -617,11 +617,14 @@ body {
background-color : white;
border : initial;
border-style : solid;
- border-image-outset : 0.55cm 0.3cm;
+ border-image-outset : 0.4cm 0.3cm;
border-image-repeat : stretch;
border-image-slice : 200;
border-image-source : @frameBorderImage;
border-image-width : 47px;
+ &.wide:first-child {
+ margin-top: 0.12cm;
+ }
}
&.decoration {
transform-style : preserve-3d;
@@ -629,22 +632,25 @@ body {
position:relative;
}
&.decoration::before {
- content :'';
- position : absolute;
- background-image : @classTableDecoration;
- background-size : contain;
- background-repeat : space;
- width : 7.75cm;
- height : calc(100% + 3.3cm);
- top : 50%;
- left : 50%;
- transform : translateY(-50%) translateX(-50%) translateZ(-1px);
- filter : drop-shadow(0px 0px 1px #C8C5C080)
+ content :'';
+ position : absolute;
+ background-image : @classTableDecoration,
+ @classTableDecoration;
+ background-size : contain, contain;
+ background-repeat : no-repeat, no-repeat;
+ background-position : top, bottom;
+ width : 7.75cm;
+ height : calc(100% + 3.3cm);
+ top : 50%;
+ left : 50%;
+ transform : translateY(-50%) translateX(-50%);
+ filter : drop-shadow(0px 0px 1px #C8C5C080);
+ z-index : -1;
}
&.decoration.wide::before {
- width : calc(100% + 3.3cm);
- height : 7.75cm;
- top : calc(50% + 0.4cm);
+ width : calc(100% + 3.3cm);
+ height : 7.75cm;
+ background-position : left, right;
}
h5 + table{
margin-top : 0.2cm;