0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-24 18:32:41 +00:00

Part cover first draft

This commit is contained in:
Victor Losada Hernandez
2023-01-31 17:11:46 +01:00
parent 85b3741df8
commit 5cc654a908
8 changed files with 108 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ const ClassTableGen = require('./snippets/classtable.gen.js');
const MonsterBlockGen = require('./snippets/monsterblock.gen.js');
const ClassFeatureGen = require('./snippets/classfeature.gen.js');
const CoverPageGen = require('./snippets/coverpage.gen.js');
const PartCoverPageGen = require('./snippets/partcoverpage.gen.js');
const TableOfContentsGen = require('./snippets/tableOfContents.gen.js');
const dedent = require('dedent-tabs').default;
@@ -173,6 +174,11 @@ module.exports = [
icon : 'fas fa-file-word',
gen : CoverPageGen,
},
{
name : 'Part Cover Page',
icon : 'fas fa-file-alt',
gen : PartCoverPageGen,
},
{
name : 'Magic Item',
icon : 'fas fa-hat-wizard',

View File

@@ -0,0 +1,53 @@
const _ = require('lodash');
var titles = [
'Introduction to the World of DnD',
'Creating Your Character',
'The Rules of the Game',
'Combat and Combat Strategies',
'Magic and Spellcasting',
'Adventuring and Exploration',
'Dungeon Delving',
'Campaign Building and World Building',
'DM Techniques and Tips',
'Appendix: Reference Material',
'Monsters and Creatures',
'Equipment and Treasure',
'Non-Player Characters (NPCs)',
'Experience and Leveling',
'Races and Classes',
'Skills and Abilities',
'Alignment and Moral Choices',
'Player-vs-Player Conflict',
'Game Mastering 101',
'Running a Successful Campaign',
'Worldbuilding and Lore',
'Designing Encounters and Adventures',
'Managing Players and their Expectations',
'Factions and Political Intrigue',
'Adventure Hooks and Plot Ideas',
'Building a Campaign Setting',
'Handling Rules Disputes',
'Running Large-Scale Battles',
'Designing Unique Magic Systems',
'Developing and Using NPCs',
'Crafting Memorable Quests',
'Improvising When Things Don\'t Go as Planned',
'Managing Session Flow and Pacing',
'Building a World That Feels Alive'
];
module.exports = ()=>{
return `
{{partCover
# PART X
## ${_.sample(titles)}
![Background](https://i.imgur.com/dpg5qPT.png)
}}
{{pageNumber,auto}}
{{footnote PART X | SECTION NAME}}
\\page`;
};

View File

@@ -795,4 +795,44 @@
.page h1 + *{
margin-top : 0;
}
//*****************************
// * PART COVER
// *****************************/
.page .partCover {
background-image: @partCoverHeader;
background-repeat: no-repeat;
position: absolute;
background-size: 100%;
inset: 0;
img {
position: absolute;
inset: 0;
height:100%;
mask-image: @partCoverMask;
mask-size: 816px;
-webkit-mask-image: @partCoverMask;
-webkit-mask-size: 816px;
}
h1 {
text-align: center;
text-transform: uppercase;
font-size: 80px;
font-family: NodestoCapsCondensed;
font-variant: small-caps;
max-width: 7ch;
text-overflow: clip;
white-space: nowrap;
overflow: hidden;
margin-inline: auto;
}
h2 {
text-align: center;
font-family: MartelSansBlack;
font-size: 18px;
position: relative;
max-width: 18ch;
margin-inline: auto;
margin-top: -5px;
}
}
}

View File

@@ -10,6 +10,8 @@
@monsterBorderImage : url('/assets/monsterBorderFancy.png');
@codeBorderImage : url('/assets/codeBorder.png');
@classTableDecoration : url('/assets/classTableDecoration.png');
@partCoverHeader : url('/assets/partCoverHeader.png');
@partCoverMask : url('/assets/partCoverMask.png');
// Watercolor Images
@watercolor1 : url('/assets/watercolor/watercolor1.png');

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

View File

@@ -106,3 +106,10 @@
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: MartelSansBlack;
src: url('../../../fonts/5e/Martel Sans Black.woff2');
font-weight: bold;
font-style: normal;
}