1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-13 10:45:57 +00:00

Finished the monster stat block, using hr's as element modifiers, kinda weird.

This commit is contained in:
Scott Tolksdorf
2015-12-19 18:26:35 -05:00
parent 11b2f9dd53
commit ad569f04d8
8 changed files with 3610 additions and 53 deletions

View File

@@ -36,6 +36,22 @@ var Icons = [
snippet : Snippets.statBlock,
tooltip : 'Monster Stat Block'
},
{
icon : 'fa-table',
snippet : "",
tooltip : "Class Table"
},
{
icon : 'fa-code',
snippet : "```\n```",
tooltip : "Column Break"
},
{
icon : 'fa-file-o',
snippet : "\\page",
tooltip : "New Page"
},
]

View File

@@ -18,16 +18,19 @@ module.exports = {
"As a paladin, you gain the following class features.",
"",
"#### Hit Points",
"**Hit Dice:** 1d10 per paladin level <br>",
"**Hit Points at 1st Level:** 10 + your Constitution modifier <br>",
"**Hit Points at Higher Levels:** 1d10 (or 6) + your Constituion modifier per paladin level after 1st",
"___",
"- **Hit Dice:** 1d10 per paladin level",
"- **Hit Points at 1st Level:** 10 + your Constitution modifier",
"- **Hit Points at Higher Levels:** 1d10 (or 6) + your Constituion modifier per paladin level after 1st",
"",
"#### Proficiencies",
"**Armor:** All armor, Shields <br>",
"**Weapons:** Simple Weapons, martial weapons <br>",
"**Tools:** None <br><br>",
"**Saving Throws:** Wisdom, Charisma <br>",
"**Skills:** Choose two from Athletics, Insight, Intimidation, Medicine, Persuasion, and Religion",
"___",
"- **Armor:** All armor, Shields",
"- **Weapons:** Simple Weapons, martial weapons",
"- **Tools:** None <br>",
"___",
"- **Saving Throws:** Wisdom, Charisma",
"- **Skills:** Choose two from Athletics, Insight, Intimidation, Medicine, Persuasion, and Religion",
"",
"#### Equipment",
"You start with the following equipment, in addition to the equipment granted by your background:",
@@ -39,11 +42,13 @@ module.exports = {
spell : [
"#### Continual Flame",
"*2nd-level evocation* <br>",
"**Casting Time:** 1 action <br>",
"**Range:** Touch <br>",
"**Components:** V, S, M (ruby dust worth 50gp, which the spell consumes) <br>",
"**Duration:** Until dispelled <br><br>",
"*2nd-level evocation*",
"___",
"- **Casting Time:** 1 action",
"- **Range:** Touch",
"- **Components:** V, S, M (ruby dust worth 50gp, which the spell consumes)",
"- **Duration:** Until dispelled",
"",
"A flame, equivalent in brightness to a torch, springs from from an object that you touch. ",
"The effect look like a regular flame, but it creates no heat and doesn't use oxygen. ",
"A *continual flame* can be covered or hidden but not smothered or quenched."
@@ -75,16 +80,30 @@ module.exports = {
].join('\n'),
statBlock :[
"## Warhorse",
"*Large beast, unaligned*",
"",
"---",
"|STR|DEX|CON|INT|WIS|CHA|",
"|:---:|:---:|:---:|:---:|:---:|:---:|:---:|",
"|18 (+4)|18 (+4)|18 (+4)|18 (+4)|18 (+4)|18 (+4)|",
"---",
"***Trampling Charge*** Does a thing yo",
"___",
"> ## Warhorse",
">*Large beast, unaligned*",
"> ___",
"> - **Armor Class** 18 (natural armor)",
"> - **Hit Points** 33 (6d8 + 6)",
"> - **Speed** 25ft",
">___",
">|STR|DEX|CON|INT|WIS|CHA|",
">|:---:|:---:|:---:|:---:|:---:|:---:|:---:|",
">|18 (+4)|18 (+4)|18 (+4)|18 (+4)|18 (+4)|18 (+4)|",
">___",
"> - **Damage Immunities** poison, psychic",
"> - **Condition Immunities** blinded, charmed, deafened, exhaustion, frightened, paralyzed, petrified, poisoned",
"> - **Languages** None",
"> - **Challenge** 1 (200 XP)",
"> ___",
"> ***Pack Tactics.*** These guys work together. Like super well, you don't even know.",
">",
"> ***False Appearance. *** While the armor reamin motionless, it is indistinguishable from a normal suit of armor.",
"> ### Actions",
"> ***Multiattack.*** The armor makes two two melee attacks.",
">",
"> ***Slam.*** *Melee Weapon Attack:* +4 to hit, reach 5ft., one target. *Hit* 5 (1d6 + 2) ",
].join('\n')

View File

@@ -12,8 +12,8 @@ var Phb = React.createClass({
},
renderPages : function(){
return _.map(this.props.text.split('\page'), (pageText, index) => {
return <div className='phb' dangerouslySetInnerHTML={{__html:Markdown(this.props.text)}} key={index} />
return _.map(this.props.text.split('\\page'), (pageText, index) => {
return <div className='phb' dangerouslySetInnerHTML={{__html:Markdown(pageText)}} key={index} />
})
},

View File

@@ -25,10 +25,12 @@
font-family : ScalaSans;
src : url('/assets/naturalCrit/homebrew/assets/Scaly Sans.otf');
}
/*
@font-face {
font-family : ScalaSansBold;
src : url('/assets/naturalCrit/homebrew/assets/Scala Sans Bold.ttf');
}
*/
@font-face {
font-family : ScalaSansSmallCaps;
src : url('/assets/naturalCrit/homebrew/assets/Scala Sans SmallCaps.ttf');
@@ -54,21 +56,26 @@
padding : 1.0cm 1.7cm;
column-count : 2;
column-fill : auto;
column-gap : 1cm;
column-width : 8cm;
background-image : url('/assets/naturalCrit/homebrew/assets/PHB-background.png');
-webkit-column-count : 2;
-moz-column-count : 2;
-webkit-column-width : 8cm;
-moz-column-width : 8cm;
column-gap : 1cm;
-webkit-column-gap : 1cm;
text-rendering : optimizeLegibility;
p,ul{
p,ul,blockquote{
-webkit-column-break-inside : avoid;
-moz-column-break-inside : avoid;
-o-column-break-inside : avoid;
-ms-column-break-inside : avoid;
column-break-inside : avoid;
}
p,ul{
strong{
font-family : BookInsanityBold;
em{
@@ -97,6 +104,12 @@
list-style-position : inside;
list-style-type : disc;
}
hr+table{
-webkit-column-span : all;
column-span : all;
}
table{
width : 100%;
margin-bottom : 1em;
@@ -117,38 +130,152 @@
}
}
}
hr{
visibility: hidden;
//border : none;
margin: 0px;
}
//Fancy List of things
hr+ul{
list-style-type: none;
text-indent: -1em;
padding-left: 1em;
//margin-top: -0.5em;
margin-bottom: 0.5em;
}
//Column Break
pre{
visibility: hidden;
-webkit-column-break-after: always;
}
//Monster Stat block
hr+blockquote{
position : relative;
background-color: #FDF1DC;
border : none;
h2{
margin-bottom: 0px;
&+p{
padding-bottom: 0px;
}
}
h3{
font-family: ScalaSans;
font-weight: 400;
border-bottom: 1px solid @header;
}
ul{
list-style-type: none;
font-family: ScalaSans;
color : @header;
font-size: 10pt;
text-indent: -1em;
padding-left: 1em;
strong{
font-family: ScalaSans;
font-weight: 800;
}
}
hr+table{
-webkit-column-span : 1;
column-span : 1;
}
table{
color : @header;
}
p+p{
margin-top : 0em;
text-indent : 0em;
padding-bottom: 0.5em;
}
//Maybe move this to be built in
hr{
visibility: visible;
margin: 8px 0px;
border-color : transparent;
position: relative;
@height : 3px;
&:after, &:before{
content : "";
position: absolute;
width: 100%;
height: @height;
left: 0px;
}
&:before{
top : -@height;
background: linear-gradient(to right top, @horizontalRule 40%, transparent 50%)
}
&:after{
top: 0px;
background: linear-gradient(to right bottom, @horizontalRule 40%, transparent 50%)
}
}
//Borders
&:after, &:before{
content : "";
position: absolute;
background-color : #E69A28;
border: 1px solid black;
height : 4px;
width : 100%;
padding : 0px 3px;
}
&:before{
top : 0px;
left : -3px;
}
&:after{
bottom : 0px;
left : -3px;
}
}
//Note
blockquote{
box-sizing : border-box;
margin-bottom : 1em;
padding : 5px 10px;
background-color : @green;
font-family : ScalaSans;
box-sizing: border-box;
padding : 5px 10px;
border-top : 2px black solid;
border-bottom : 2px black solid;
box-shadow: 1px 4px 14px #888;
margin-bottom: 1em;
box-shadow : 1px 4px 14px #888;
p{
font-family : ScalaSans;
font-size: 10pt;
line-height: 1.1em;
font-size : 10pt;
line-height : 1.1em;
em{
font-family : ScalaSans;
font-style: italic;
font-style : italic;
}
strong{
font-weight: 800;
font-weight : 800;
font-family : ScalaSans;
em{
font-weight: 800;
font-style: italic;
font-style : italic;
font-weight : 800;
}
}
}
}
pre{
}
h1,h2,h3,h4{
margin-top : 0.2em;
margin-bottom : 0.2em;
@@ -166,7 +293,7 @@
margin-top : 20px;
margin-bottom : 10px;
font-family : Solbera;
font-size : 5em;
font-size : 4.5em;
}
}
}
@@ -178,8 +305,8 @@
border-bottom : 2px solid @headerUnderline;
}
h4{
margin-bottom : 0.00em;
font-size : 12pt;
margin-bottom: 0.00em;
}
h5{
margin-bottom : 0.2em;

View File

@@ -16,10 +16,12 @@
"jsoneditor": "^4.2.1",
"lodash": "^3.10.1",
"marked": "^0.3.5",
"mongoose": "^4.3.3",
"pico-flux": "^1.1.0",
"pico-router": "^1.0.0",
"react": "^0.14.2",
"react-dom": "^0.14.2",
"shortid": "^2.2.4",
"vitreum": "^3.1.1"
}
}

0
server/homebrew.api.js Normal file
View File

18
server/homebrew.model.js Normal file
View File

@@ -0,0 +1,18 @@
var mongoose = require('mongoose');
var shortid = require('shortid');
var HomebrewSchema = mongoose.Schema({
shareId : {type : String, default: shortid.generate},
editId : {type : String, default: shortid.generate},
text : {type : String, default : ""},
created : { type: Date, default: Date.now },
});
var Homebrew = mongoose.model('Homebrew', HomebrewSchema);
module.exports = {
schema : HomebrewSchema,
model : Homebrew,
}

File diff suppressed because it is too large Load Diff