ICON v0.4
- Wrote readme and json file, made a tipee, and generally got the sheet ready for live use on roll20 - Added lots of new CSS stylization to make it all look pretty - Fixed fill left bug by reverting to older style involving spans - Added action roll macro - Stylized the roll templates - Added all json translations in english - Changed appearance of roll buttons - Added action rolls using conditionals in roll template
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
article#journal.journal.paper-background.nav-display
|
||||
section#auto-fit.wide-gap
|
||||
section#auto-fit
|
||||
include shared/sections/_xp.pug
|
||||
include shared/sections/_dust.pug
|
||||
section#auto-fit
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
article#narrative.narrative.paper-background.nav-display
|
||||
section#auto-fit.wide-gap
|
||||
section#auto-fit
|
||||
include narrative/sections/_resources.pug
|
||||
.span-all.center
|
||||
p(class='mono')|Known Bug: Please double click the diamonds to select your current Effort / Strain.
|
||||
section#auto-fill
|
||||
include narrative/sections/_actions.pug
|
||||
include narrative/sections/_bond.pug
|
||||
|
||||
@@ -17,7 +17,7 @@ section#ambitions.ambitions.span-2.long-2
|
||||
.flex-box.row.justify-end
|
||||
.flex-box.col.no-gap
|
||||
+select-label({
|
||||
label:'size:',
|
||||
label:'size',
|
||||
inputObj:{name:'clock-size'},
|
||||
divObj:{class:'dropdown stat', style:'width:100px; margin:0px;'},
|
||||
spanObj:{class:'capitalize smallcaps', style:'width:50px;'}
|
||||
@@ -46,13 +46,17 @@ section#ambitions.ambitions.span-2.long-2
|
||||
+radio({name:`ac-${val}`, class:`clock-radio clock-${num}`, value:`${num}`})
|
||||
div.clock-face
|
||||
.flex-box.row.center
|
||||
+textarea({name:'notes', class:'textarea-6 ambition fixed', 'data-i18n-placeholder':`write about your ${name} goals, projects, or desires here`})
|
||||
+button({name:'quote', type:'roll', class:'quote'})
|
||||
+textarea({name:'notes', class:'textarea-6 ambition fixed', 'data-i18n-placeholder':`${name} ambition desc`})
|
||||
if name === 'personal'
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=personal ambition}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{text=@{notes}}}"})
|
||||
else
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=group ambition}} {{character_name=@{group_name}}} {{text=@{notes}}}"})
|
||||
.hide-note
|
||||
p(class='bold capitalize', 'data-i18n'='ambition action roll:')
|
||||
p(class='bold capitalize', 'data-i18n'='ambition action roll')
|
||||
+checkbox({class:'collapse', value:'0', name:'collapse-ambition'})
|
||||
.notes.expanded
|
||||
p(class='indent bullet', 'data-i18n'="1-3 = ambition advances by one segment")
|
||||
p(class='indent bullet', 'data-i18n'="4-5 = ambition advances by two segments")
|
||||
p(class='indent bullet', 'data-i18n'="6 = ambition advances by three segments")
|
||||
p(class='indent bullet', 'data-i18n'="you may also spend 2 dust to advance by one segment")
|
||||
p(class='indent bullet', 'data-i18n'="ambition reminder line 1")
|
||||
p(class='indent bullet', 'data-i18n'="ambition reminder line 2")
|
||||
p(class='indent bullet', 'data-i18n'="ambition reminder line 3")
|
||||
p(class='indent bullet', 'data-i18n'="ambition reminder line 4")
|
||||
p('data-i18n'="ambition reminder line 0")
|
||||
@@ -1,9 +1,9 @@
|
||||
section#notes.notes.span-2
|
||||
h1(data-i18n='notes')
|
||||
.flex-box
|
||||
+textarea({name:'bond notes', class:'textarea-3', 'data-i18n-placeholder':'write anything you want here'})
|
||||
+button({name:'quote', type:'roll', class:'quote'})
|
||||
+textarea({name:'notes', class:'textarea-3', 'data-i18n-placeholder':'write anything you want here'})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=additional notes}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{text=@{notes}}}"})
|
||||
+fieldset({name:'additional-notes'})
|
||||
.flex-box
|
||||
+textarea({name:'notes', class:'textarea-4', 'data-i18n-placeholder':'write any additional notes here'})
|
||||
+button({name:'quote', type:'roll', class:'quote'})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=additional notes}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{text=@{notes}}}"})
|
||||
@@ -17,29 +17,48 @@ section#actions.actions
|
||||
h1(data-i18n='actions')
|
||||
each name in actions
|
||||
.flex-box.space-around
|
||||
+roller({name, trigger:{triggeredFuncs:['iconRoll']}})
|
||||
+input({name, value:`${name}`, class:'action-label uppercase bigger', 'aria-level':3, data_i18n:`${name}`, type:'label', readonly:true})
|
||||
//- +number({name:`${name}_dice`, readonly:'true', class:'autocalc', value:`(@{${name}-dots}+@{${name}-knack}-@{${name}-burden})`, 'aria-level':5})
|
||||
+fillLeft({
|
||||
radioObj:{name:`${name}_dice`},
|
||||
divObj:{class:'action-radio'},
|
||||
valueArray:[0,1,2,3,4]
|
||||
+button({name:`roll ${name}`, type:'roll', class:'roll-d6',
|
||||
value:`&{template:icon} {{name=${name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{roll_name=Action Roll}} {{hidden-calc=[[(@{${name}_dice}@{curses})]]}} {{action-roll0=[[(@{${name}_dice}@{curses})d6kh1sd]]}} {{action-roll1=[[2d6kl1sd]]}}`
|
||||
})
|
||||
+span({style:'width:20px; height:20px'})
|
||||
+checkbox({name:`${name}-knack`, value:'1', class:'checkbox magenta tick'})
|
||||
+span({style:'width:20px; height:20px'})
|
||||
+checkbox({name:`${name}-burden`, value:'1', class:'checkbox'})
|
||||
+input({name, value:`${name}`, class:'action-label uppercase bigger', 'aria-level':3, data_i18n:`${name}`, type:'label', readonly:true})
|
||||
+number({name:`${name} dice`, disabled:'true', class:'autocalc', value:`(@{${name}_dots}+@{${name}_knack}-@{${name}_burden})`, 'aria-level':5})
|
||||
.action-dots.center
|
||||
each num in [0,1,2,3,4]
|
||||
if num === 0
|
||||
+input({name:`${name} dots`, type:'radio', class:'fill-left dots radio-zero', value:`${num}`, checked:'true'})
|
||||
span
|
||||
else
|
||||
+input({name:`${name} dots`, type:'radio', class:'fill-left dots', value:`${num}`})
|
||||
span
|
||||
.action-checkboxes
|
||||
+checkbox({name:`${name} knack`, value:'1', class:'checkbox magenta up'})
|
||||
.action-checkboxes
|
||||
+checkbox({name:`${name} burden`, value:'1', class:'checkbox black down'})
|
||||
+fieldset({name:'action'})
|
||||
.flex-box.space-around
|
||||
+roller({name:'custom', trigger:{triggeredFuncs:['iconRoll']}})
|
||||
+text({name:'name', class:'action-label uppercase bigger', 'aria-level':3, 'data-i18n-placeholder':'custom'})
|
||||
//- +number({name:'dice', disabled:'true', class:'autocalc', value:'(@{dots}+@{knack}-@{burden})', 'aria-level':5})
|
||||
+fillLeft({
|
||||
radioObj:{name:'dots'},
|
||||
divObj:{class:'action-radio'},
|
||||
valueArray:[0,1,2,3,4]
|
||||
+button({name:`roll`, type:'roll', class:'roll-d6',
|
||||
value:'&{template:icon} {{name=@{name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{roll_name=Action Roll}} {{hidden-calc=[[(@{dice}@{curses})]]}} {{action-roll0=[[(@{dice}@{curses})d6kh1sd]]}} {{action-roll1=[[2d6kl1sd]]}}'
|
||||
})
|
||||
+span({style:'width:20px; height:20px'})
|
||||
+checkbox({name:'knack', value:'1', class:'checkbox magenta tick'})
|
||||
+span({style:'width:20px; height:20px'})
|
||||
+checkbox({name:'burden', value:'1', class:'checkbox'})
|
||||
+text({name:'name', class:'action-label uppercase bigger', 'aria-level':3, 'data-i18n-placeholder':'custom'})
|
||||
+number({name:'dice', disabled:'true', class:'autocalc', value:'(@{dots}+@{knack}-@{burden})', 'aria-level':5})
|
||||
.action-dots.center
|
||||
each num in [0,1,2,3,4]
|
||||
if num === 0
|
||||
+input({name:'dots', type:'radio', class:'fill-left dots radio-zero', value:`${num}`, checked:'true'})
|
||||
span
|
||||
else
|
||||
+input({name:'dots', type:'radio', class:'fill-left dots', value:`${num}`})
|
||||
span
|
||||
.action-checkboxes
|
||||
+checkbox({name:'knack', value:'1', class:'checkbox magenta up'})
|
||||
.action-checkboxes
|
||||
+checkbox({name:'burden', value:'1', class:'checkbox black down'})
|
||||
.hide-note
|
||||
p(class='bold capitalize', 'data-i18n'='fortune action roll')
|
||||
+checkbox({class:'collapse', value:'0', name:'collapse-ambition'})
|
||||
.notes.expanded
|
||||
p('data-i18n'="fortune reminder line 0")
|
||||
p(class='indent bullet', 'data-i18n'="fortune reminder line 1")
|
||||
p(class='indent bullet', 'data-i18n'="fortune reminder line 2")
|
||||
p(class='indent bullet', 'data-i18n'="fortune reminder line 3")
|
||||
p(class='indent bullet', 'data-i18n'="fortune reminder line 4")
|
||||
@@ -13,4 +13,7 @@ section#bond.bond
|
||||
p(class='bold capitalize', 'data-i18n'='additional notes')
|
||||
+checkbox({class:'collapse', value:'0', name:'collapse-bond'})
|
||||
.notes.expanded
|
||||
+textarea({name:'bond notes', class:'textarea-3', 'data-i18n-placeholder':'write anything you want here'})
|
||||
.flex-box
|
||||
+textarea({name:'notes', class:'textarea-3', 'data-i18n-placeholder':'write anything you want here'})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=additional notes}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{text=@{notes}}}"})
|
||||
p('data-i18n'="you can find more notes in the journal tab")
|
||||
|
||||
@@ -5,7 +5,7 @@ section#burdens.burdens
|
||||
.flex-box.col.center
|
||||
+text({name:'name', class:'burden underlined capitalize short-text', 'data-i18n-placeholder':'burden'})
|
||||
+select-label({
|
||||
label:'size:',
|
||||
label:'size',
|
||||
inputObj:{name:'clock-size'},
|
||||
divObj:{class:'dropdown stat', style:'width:100px'},
|
||||
spanObj:{class:'capitalize smallcaps', style:'width:50px'}
|
||||
|
||||
@@ -13,16 +13,16 @@ section#powers.powers.long-2
|
||||
h3(data-i18n=`${name}s`)
|
||||
+fieldset({name})
|
||||
.flex-box.underlined
|
||||
+text({name:'name', class:'h3-style-input power'})
|
||||
+text({name:'name', class:'h3-style-input power', 'data-i18n-placeholder':'power'})
|
||||
+number({name:'uses', class:`${name}`, placeholder:'⬧'})
|
||||
+select({name:'type', class:`${name} type`})
|
||||
+option({value:'na', 'data-i18n':'NA', selected})
|
||||
+option({value:'scene', 'data-i18n':'per scene'})
|
||||
+option({value:'session', 'data-i18n':'per session'})
|
||||
+option({value:'', 'data-i18n':'NA', selected})
|
||||
+option({value:'/ scene', 'data-i18n':'per scene'})
|
||||
+option({value:'/ session', 'data-i18n':'per session'})
|
||||
+option({value:'passive', 'data-i18n':'passive'})
|
||||
+option({value:'effort', 'data-i18n':'effort'})
|
||||
+option({value:'strain', 'data-i18n':'strain'})
|
||||
+button({name:'quote', type:'roll', class:'quote'})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=@{name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{summary=@{uses} @{type}}} {{effect=@{effect}}}"})
|
||||
if name === 'power'
|
||||
.flex-box
|
||||
+textarea({name:'effect', class:'textarea-4', 'data-i18n-placeholder':'power placeholder'})
|
||||
|
||||
@@ -9,10 +9,75 @@ each name in resource
|
||||
+section({class:`${name} half-gap boxed well-padded`, id:'resource'})
|
||||
.flex-box.center
|
||||
+input-label({label:`${name}`,
|
||||
inputObj:{name, type:'number', value:'0', readonly:true, style:'width:20%;'},
|
||||
inputObj:{name, class:'bigger', type:'number', value:'0', readonly:true, style:'width:20%;'},
|
||||
spanObj:{role:'heading', class:'bigger', 'aria-level':3}
|
||||
})
|
||||
+select({name:`${name}_max`, class:'dropdown stat resource', style:'width:40%;'})
|
||||
.flex-box.resource
|
||||
if name === 'effort'
|
||||
+hidden({name:`${name}_max`, class:'resource-switch', value:'3'})
|
||||
else
|
||||
+hidden({name:`${name}_max`, class:'resource-switch', value:'5'})
|
||||
if name === 'effort'
|
||||
.resource_2.center
|
||||
each num in [0,1,2]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds', value:`${num}`})
|
||||
span
|
||||
.resource_3.center
|
||||
each num in [0,1,2,3]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds', value:`${num}`})
|
||||
span
|
||||
.resource_4.center
|
||||
each num in [0,1,2,3,4]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds', value:`${num}`})
|
||||
span
|
||||
.resource_5.center
|
||||
each num in [0,1,2,3,4,5]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds', value:`${num}`})
|
||||
span
|
||||
.resource_6.center
|
||||
each num in [0,1,2,3,4,5,6]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds resource-small', value:`${num}`})
|
||||
span
|
||||
if name === 'strain'
|
||||
.resource_7.center
|
||||
each num in [0,1,2,3,4,5,6,7]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds resource-small radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds resource-smaller', value:`${num}`})
|
||||
span
|
||||
.resource_8.center
|
||||
each num in [0,1,2,3,4,5,6,7,8]
|
||||
if num === 0
|
||||
+input({name, type:'radio', class:'fill-left diamonds resource-smaller radio-zero', value:`${num}`})
|
||||
span
|
||||
else
|
||||
+input({name, type:'radio', class:'fill-left diamonds resource-smallerer', value:`${num}`})
|
||||
span
|
||||
.flex-box.center
|
||||
+label({name:`${name} size`, class:'input-label capitalize status', 'data-i18n':`max ${name}`, 'aria-label':5})
|
||||
+select({name:`${name}_max`, class:'dropdown stat resource underlined', style:'width:40%;'})
|
||||
if name === 'effort'
|
||||
each val in [2,3,4,5,6]
|
||||
if val === 3
|
||||
@@ -25,61 +90,12 @@ each name in resource
|
||||
option(value=`${val}`, selected=true) #{val}
|
||||
else
|
||||
option(value=`${val}`) #{val}
|
||||
.flex-box.resource
|
||||
if name === 'effort'
|
||||
+hidden({name:`${name}_max`, class:'resource-switch', value:'3'})
|
||||
else
|
||||
+hidden({name:`${name}_max`, class:'resource-switch', value:'5'})
|
||||
if name === 'effort'
|
||||
+div({class:`${name} resource_2`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2]
|
||||
})
|
||||
+div({class:`${name} resource_3`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2,3]
|
||||
})
|
||||
+div({class:`${name} resource_4`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2,3,4]
|
||||
})
|
||||
+div({class:`${name} resource_5`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2,3,4,5]
|
||||
})
|
||||
+div({class:`${name} resource_6`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2,3,4,5,6]
|
||||
})
|
||||
if name === 'strain'
|
||||
+div({class:`${name} resource_7`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2,3,4,5,6,7]
|
||||
})
|
||||
+div({class:`${name} resource_8`})
|
||||
+fillLeft({
|
||||
radioObj:{name},
|
||||
divObj:{class:'resource-radio'},
|
||||
valueArray:[0,1,2,3,4,5,6,7,8]
|
||||
})
|
||||
.flex-box.center
|
||||
if name === 'effort'
|
||||
.flex-box
|
||||
+label({name:'exhausted-label', class:'input-label capitalize', 'data-i18n':'exhausted', 'aria-label':5})
|
||||
+checkbox({name:'exhausted'})
|
||||
+label({name:'exhausted-label', class:'input-label uppercase status', 'data-i18n':'exhausted', 'aria-label':5})
|
||||
+checkbox({name:'exhausted', class:'checkbox orange cross', value:'1'})
|
||||
else
|
||||
.flex-box
|
||||
+label({name:'broken-label', class:'input-label capitalize', 'data-i18n':'broken', 'aria-label':5})
|
||||
+checkbox({name:'broken'})
|
||||
+label({name:'broken-label', class:'input-label uppercase status', 'data-i18n':'broken', 'aria-label':5})
|
||||
+checkbox({name:'broken', class:'checkbox black cross', value:'1'})
|
||||
@@ -5,18 +5,20 @@ section#add-abilities.add-abilities.long-2
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+div({class:'flex-box color-receiver center', style:'height:39px!important;'})
|
||||
span(style='width:39px!important; height:39px!important;').center
|
||||
+button({name:'quote', class:'quote center', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+button({name:'use', class:'roll-d20 center col',
|
||||
value:"&{template:icon} {{name=@{name}}} {{character_name=@{class} Ability}} {{summary=@{info-b}}} {{info=@{info-a} ⬧ @{info-c}}} {{effect=@{effects}}}"
|
||||
})
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+text({name:'name', class:'h3-style-input color-receiver center job-h1-receiver', 'data-i18n-placeholder':'ability'})
|
||||
.color-selector
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+select({name:'class', class:'color-selector color-receiver', style:'height:39px; width:100%;'})
|
||||
+option({value:'general', 'data-i18n':'general'})
|
||||
+option({value:'stalwart', 'data-i18n':'stalwart'})
|
||||
+option({value:'vagabond', 'data-i18n':'vagabond'})
|
||||
+option({value:'mendicant', 'data-i18n':'mendicant'})
|
||||
+option({value:'wright', 'data-i18n':'wright'})
|
||||
+option({value:'inactive', 'data-i18n':'inactive', selected:true})
|
||||
+option({value:'unique', 'data-i18n':'unique'})
|
||||
+option({value:'heavy', 'data-i18n':'heavy'})
|
||||
+option({value:'skirmisher', 'data-i18n':'skirmisher'})
|
||||
+option({value:'leader', 'data-i18n':'leader'})
|
||||
+option({value:'artillery', 'data-i18n':'artillery'})
|
||||
+option({value:'mob', 'data-i18n':'mob', selected:true})
|
||||
.grid___3col.half-gap.center
|
||||
+text({name:'info-a', class:'ability-info underlined capitalize right'})
|
||||
+text({name:'info-b', class:'ability-info underlined capitalize center', placeholder:'⬧'})
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
section#clocks.clocks
|
||||
h1(data-i18n='clocks')
|
||||
+fieldset({name:'general-clock'})
|
||||
.flex-box.row.justify-end
|
||||
.grid__2col
|
||||
.flex-box.col.no-gap
|
||||
+select-label({
|
||||
label:'size:',
|
||||
label:'size',
|
||||
inputObj:{name:'size'},
|
||||
divObj:{class:'dropdown stat', style:'width:100px; margin:0px;'},
|
||||
spanObj:{class:'capitalize smallcaps', style:'width:50px;'}
|
||||
@@ -32,6 +32,9 @@ section#clocks.clocks
|
||||
each num in [0,1,4,6,8,11,12,13,16,18,20,23]
|
||||
+radio({name:`gc-${val}`, class:`clock-radio clock-${num}`, value:`${num}`})
|
||||
div.clock-face
|
||||
.flex-box.row.center
|
||||
+textarea({name:'notes', class:'textarea-6 ambition fixed', 'data-i18n-placeholder':'write any notes about this clock'})
|
||||
+button({name:'quote', type:'roll', class:'quote'})
|
||||
.flex-box.col.no-gap
|
||||
.flex-box.row.center.span-all
|
||||
+text({name:'name', class:'h3-style-input center', 'data-i18n-placeholder':'clock name', 'aria-level':3})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote relative', value:"&{template:icon} {{name=@{name} clock}} {{character_name=Size @{size}}} {{text=@{notes}}}", style:'left:-4px;'})
|
||||
.flex-box.row.center
|
||||
+textarea({name:'notes', class:'textarea-6 ambition fixed', 'data-i18n-placeholder':'write any notes about this clock', style:'width:100%;'})
|
||||
@@ -14,8 +14,8 @@
|
||||
];
|
||||
-
|
||||
|
||||
section#npcs.npcs.span-all
|
||||
h1(data-i18n='foes / allies')
|
||||
section#npcs.npcs.span-all.top-margin
|
||||
h1(data-i18n='foes_allies')
|
||||
.repcol.npc
|
||||
+fieldset({name:'npc'})
|
||||
.grid__3col.no-gap
|
||||
@@ -27,7 +27,7 @@ section#npcs.npcs.span-all
|
||||
option(value="3")|Ⅲ
|
||||
option(value="4")|Ⅳ
|
||||
+hidden({name:'class', class:'color-control', value:'mob'})
|
||||
+text({name:'name', class:'h3-style-input color-receiver center job-h1-receiver', 'data-i18n-placeholder':'npc / summon / foe'})
|
||||
+text({name:'name', class:'h3-style-input color-receiver center job-h1-receiver', 'data-i18n-placeholder':'npc_summon_foe'})
|
||||
.color-selector
|
||||
+hidden({name:'class', class:'color-control', value:'mob'})
|
||||
+select({name:'class', class:'color-selector color-receiver', style:'height:39px; width:100%;'})
|
||||
@@ -54,33 +54,43 @@ section#npcs.npcs.span-all
|
||||
+label({class:'input-label', style:'height:26px;'})
|
||||
+span({class:'smallcaps input-label__text', 'data-i18n':`${name}`, role:'heading', 'aria-level':5})
|
||||
+select({name:'damage', class:'input-label__input underlined chapter-select damage-die'})
|
||||
+option({value:'4'})|d4
|
||||
+option({value:'6', selected:true})|d6
|
||||
+option({value:'2'})|d2
|
||||
+option({value:'4', selected:true})|d4
|
||||
+option({value:'6'})|d6
|
||||
+option({value:'8'})|d8
|
||||
+option({value:'10'})|d10
|
||||
+option({value:'12'})|d12
|
||||
else
|
||||
+input-label({
|
||||
label:`${name}`,
|
||||
inputObj:{name, class:'info-label underlined', type:'number', style:'min-width:80px;'},
|
||||
inputObj:{name, class:'info-label underlined', type:'number', style:'min-width:80px;', value:'1'},
|
||||
spanObj:{role:'heading', 'aria-level':5, class:'smallcaps'},
|
||||
divObj:{style:'width:50%;'}
|
||||
})
|
||||
+textarea({name:'description', class:'serif emph textarea-3', 'data-i18n-placeholder':'creature description / powers', spellcheck:'false'})
|
||||
+textarea({name:'description', class:'serif emph textarea-3', 'data-i18n-placeholder':'creature description or powers', spellcheck:'false'})
|
||||
.grid___3col.half-gap.center
|
||||
+text({name:'info-a', class:'ability-info underlined capitalize right'})
|
||||
+text({name:'info-b', class:'ability-info underlined capitalize center', placeholder:'⬧'})
|
||||
+text({name:'info-c', class:'ability-info underlined capitalize left'})
|
||||
+textarea({name:'abilities', class:'textarea-4', 'data-i18n-placeholder':'ability text'})
|
||||
.grid__4col.half-gap
|
||||
.grid__2col
|
||||
p(class="capitalize mono bold relative", 'data-i18n'="whisper", style="left: 15px; bottom: -5px;")
|
||||
+checkbox({name:'whisper', class:'checkbox whisper orange tick', value:'/w gm'})
|
||||
+button({name:'quote', class:'relative smallcaps die', style:'bottom:3px;', type:'roll', role:'heading', 'aria-level':4,'data-i18n':'quote',
|
||||
value:'@{whisper} &{template:icon} {{name=@{name}}} {{character_name=@{class} (Ch. @{chapter})}} {{description=@{description}}} {{summary=@{info-b}}} {{info=@{info-a} ⬧ @{info-c}}} {{effect=@{abilities}}} {{talent=@{additional}}}'
|
||||
})
|
||||
+button({name:'save', class:'relative smallcaps die', style:'bottom:3px;', type:'roll', role:'heading', 'aria-level':4,'data-i18n':'save',
|
||||
value:'@{whisper} &{template:icon} {{name=@{name}}} {{character_name=@{class} (Ch. @{chapter})}} {{roll_name=Save}} {{roll=[[1d20@{boons}]]}} {{target=@{save_target}}}'
|
||||
})
|
||||
+button({name:'attack', class:'relative smallcaps die', style:'bottom:3px;', type:'roll', role:'heading', 'aria-level':4,'data-i18n':'attack',
|
||||
value:'@{whisper} &{template:icon} {{name=@{name}}} {{character_name=@{class} (Ch. @{chapter})}} {{roll_name=Attack}} {{roll=[[1d20@{boons}]]}} {{range=[[?{Range|1}]]}} {{damage=[[?{Light / Heavy|Light,1d@{damage}+@{fray}|Heavy,@{ratio_heavy}d@{damage}+@{fray}}]]}} {{bonus_damage=[[0]]}} {{crit_damage=[[1d@{damage}]]}} {{miss_damage=[[@{fray}]]}}'
|
||||
})
|
||||
+collapse
|
||||
.grid__4col.half-gap.notes.expanded
|
||||
.flex-box.boxed.well-padded.center.span-3
|
||||
.grid__2col.half-gap.notes.expanded
|
||||
.flex-box.boxed.well-padded.center.span-2
|
||||
+textarea({name:'additional', class:'textarea-4', 'data-i18n-placeholder':'additional notes or abilities'})
|
||||
.grid__3col.center
|
||||
.grid__2col.center
|
||||
+number({name:'number', class:'h3-style-input underlined'})
|
||||
p(class='colon')
|
||||
+text({name:'resource', class:'h3-style-input underlined short-text', style:'min-width:40px;'})
|
||||
+button({name:'quote', class:'quote span-3', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+button({name:'save', type:'roll', role:'heading', 'aria-level':4,'data-i18n':'save',
|
||||
value:'&{template:icon} {{name=save}} {{character_name=@{name} (Ch. @{chapter})}} {{roll=[[1d20?{Boons / Curses|NA,+0|+2D,+2d6kh1|+1D,+1d6|−1D,-1d6|−2D,-2d6kh1}]]}} {{target=@{save_target}}}'
|
||||
})
|
||||
+text({name:'resource', class:'h3-style-input underlined short-text', style:'min-width:40px;'})
|
||||
@@ -1,28 +1,59 @@
|
||||
section#sheet-settings.sheet-settings
|
||||
section#sheet-settings.sheet-settings.top-margin
|
||||
h1(data-i18n='sheet settings')
|
||||
+input-label({label:'camp name',
|
||||
inputObj:{name:'camp name', class:'underlined capitalize', type:'text', value:'camp', 'data-i18n-placeholder':'camp'},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
+input-label({label:'maxhp%',
|
||||
inputObj:{name:'ratio_max_hp', class:'underlined', type:'number', value:'4', trigger:{affects:['hp_max','vigor_max','bloodied']}},
|
||||
spanObj:{role:'heading', class:'mono smallcaps', 'aria-level':5}
|
||||
+input-label({label:'tactics boons_curses prompt',
|
||||
inputObj:{name:'boons', class:'underlined', type:'text', value:'?{Boons / Curses|NA,+0|+2D,+2d6kh1|+1D,+1d6|−1D,-1d6|−2D,-2d6kh1}', 'data-i18n-placeholder':'?{Boons / Curses|NA,+0|+2D,+2d6kh1|+1D,+1d6|−1D,-1d6|−2D,-2d6kh1}'},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
+input-label({label:'bloodied%',
|
||||
inputObj:{name:'ratio_bloodied', class:'underlined', type:'number', value:'0.5', trigger:{affects:['bloodied']}},
|
||||
spanObj:{role:'heading', class:'mono smallcaps', 'aria-level':5}
|
||||
p(class='mono macro', style='top:0px;')|@{boons}
|
||||
+hidden({name:'curses', type:'text', value:'?{Boons / Curses|NA,+0|+2D,+2|+1D,+1|−1D,-1|−2D,-2}'})
|
||||
//- +input-label({label:'narrative boons_curses prompt',
|
||||
//- inputObj:{name:'curses', class:'underlined', type:'text', value:'?{Boons / Curses|NA,+0|+2D,+2|+1D,+1|−1D,-1|−2D,-2}', 'data-i18n-placeholder':'?{Boons / Curses|NA,+0|+2D,+2d6kh1|+1D,+1d6|−1D,-1d6|−2D,-2d6kh1}'},
|
||||
//- spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
//- })
|
||||
//- p(class='mono macro', style='top:0px;')|@{curses}
|
||||
section#auto-fit.wide-gap
|
||||
.flex-box.span-2
|
||||
+input-label({label:'maxhp%',
|
||||
inputObj:{name:'ratio_max_hp', class:'underlined', type:'number', value:'4', trigger:{affects:['hp_max','vigor_max','bloodied']}},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
p(class='mono macro')|@{ratio_max_hp}
|
||||
.flex-box.span-2
|
||||
+input-label({label:'heavy%',
|
||||
inputObj:{name:'ratio_heavy', class:'underlined', type:'number', value:'2'},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
p(class='mono macro')|@{ratio_heavy}
|
||||
.flex-box.span-2
|
||||
+input-label({label:'bloodied%',
|
||||
inputObj:{name:'ratio_bloodied', class:'underlined', type:'number', value:'0.5', trigger:{affects:['bloodied']}},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
p(class='mono macro')|@{ratio_bloodied}
|
||||
.flex-box.span-2
|
||||
+input-label({label:'dash%',
|
||||
inputObj:{name:'ratio_dash', class:'underlined', type:'number', value:'0.5', trigger:{affects:['dash']}},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
p(class='mono macro')|@{ratio_dash}
|
||||
.flex-box.span-2
|
||||
+input-label({label:'save target',
|
||||
inputObj:{name:'save_target', class:'underlined', type:'number', value:'10'},
|
||||
spanObj:{role:'heading', class:'capitalize', 'aria-level':5}
|
||||
})
|
||||
p(class='mono macro')|@{save_target}
|
||||
hr
|
||||
section#sheet-links.sheet-links.top-margin
|
||||
.grid__3col
|
||||
+button({name:'github', class:'relative serif uppercase die', style:'bottom:3px;', type:'roll', role:'heading', 'aria-level':5,'data-i18n':'report an issue',
|
||||
value:'&{template:icon} {{name=github}} {{character_name=Sheet by Seraaron}} {{roll_name=Report an issue}} {{roll=[Click here!](https://github.com/Roll20/roll20-character-sheets/blob/master/Burning%20Wheel/readme.md)}}'
|
||||
})
|
||||
+input-label({label:'heavy%',
|
||||
inputObj:{name:'ratio_attack_hvy', class:'underlined', type:'number', value:'2'},
|
||||
spanObj:{role:'heading', class:'mono smallcaps', 'aria-level':5}
|
||||
})
|
||||
+input-label({label:'save_target',
|
||||
inputObj:{name:'save_target', class:'underlined', type:'number', value:'10'},
|
||||
spanObj:{role:'heading', class:'mono smallcaps', 'aria-level':5}
|
||||
})
|
||||
//- //- p(data-i18n='maxhp%', class='bold mono capitalize')
|
||||
//- //- +number({name:'max_hp_ratio', class:'mono', value:'4', trigger:{affects:['hp_max','vigor_max','bloodied']}})
|
||||
//- p(data-i18n='bloodied%', class='bold mono capitalize')
|
||||
//- +number({name:'bloodied_ratio', class:'mono', value:'0.5', trigger:{affects:['bloodied']}})
|
||||
//- p(data-i18n='heavy%', class='bold mono capitalize')
|
||||
//- +number({name:'attack_hvy_ratio', class:'mono', value:'2'})
|
||||
.flex-box
|
||||
p(class='mono bold center')|Sheet v0.4 for ICON v1.45
|
||||
+button({name:'tipee', class:'relative serif uppercase die', style:'bottom:3px;', type:'roll', role:'heading', 'aria-level':5,'data-i18n':'send a tip',
|
||||
value:'&{template:icon} {{name=tipeee}} {{character_name=Sheet by Seraaron}} {{roll_name=Send me a tip}} {{roll=[Click here!](https://en.tipeee.com/seraaron/)}}'
|
||||
})
|
||||
@@ -2,9 +2,9 @@ section#ideals.ideals
|
||||
h1(data-i18n='ideals')
|
||||
+fieldset({name:'ideal'})
|
||||
.flex-box
|
||||
+checkbox({name:'check', class:'magenta'})
|
||||
+checkbox({name:'check', class:'checkbox magenta tick', value:'1'})
|
||||
+textarea({name:'notes', class:'textarea-3', 'data-i18n-placeholder':'write your ideal here'})
|
||||
+button({name:'quote', type:'roll', class:'quote'})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=ideal}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{text=@{notes}}}"})
|
||||
.hide-note
|
||||
p(class='bold', 'data-i18n'='xp reminder title')
|
||||
+checkbox({class:'collapse', value:'0', name:'collapse-ideals'})
|
||||
|
||||
@@ -4,8 +4,8 @@ section#reminders.reminders
|
||||
+collapse
|
||||
.notes.expanded
|
||||
h3(data-i18n='interludes')
|
||||
p(class='indent bullet', 'data-i18n'="clear all strain")
|
||||
p(class='indent bullet', 'data-i18n'="regain all effort")
|
||||
p(class='indent bullet', 'data-i18n'="regain all hp")
|
||||
p(class='indent bullet', 'data-i18n'="spend any xp")
|
||||
p(class='indent bullet', 'data-i18n'="interlude reminder line 1")
|
||||
p(class='indent bullet', 'data-i18n'="interlude reminder line 2")
|
||||
p(class='indent bullet', 'data-i18n'="interlude reminder line 3")
|
||||
p(class='indent bullet', 'data-i18n'="interlude reminder line 4")
|
||||
p(class='center smaller', 'data-i18n'="rules reminders info line 0")
|
||||
@@ -1,8 +1,13 @@
|
||||
.flex-box.center.well-padded.boxed
|
||||
+input-label({
|
||||
label:'xp',
|
||||
inputObj:{name:'xp', class:'info-label center xp', type:'number', value:'0'},
|
||||
inputObj:{name:'xp', class:'info-label center xp bigger', type:'number', value:'0', style:'width:100%;'},
|
||||
spanObj:{role:'heading', class:'xp', 'aria-level':3}
|
||||
})
|
||||
+number({name:'xp_max', class:'xp', value:'15'})
|
||||
+number({name:'xp interval', class:'xp', value:'5'})
|
||||
+number({name:'xp_max', class:'underlined number', value:'15', trigger:{affects:['xp_interval']}})
|
||||
//- each val in [9,12,15,18,21,24]
|
||||
//- if val === 15
|
||||
//- option(value=`${val}`, selected=true) #{val}
|
||||
//- else
|
||||
//- option(value=`${val}`) #{val}
|
||||
+number({name:'xp interval', readonly:true, class:'', value:'5', trigger:{calculation:'calcInterval'}})
|
||||
@@ -28,7 +28,10 @@ section#jobclass.class
|
||||
spanObj:{role:'heading', 'aria-level':3, class:'normal'}
|
||||
})
|
||||
+textarea({name:'special mechanic desc', class:'textarea-4', 'data-i18n-placeholder':'special mechanic desc'})
|
||||
.grid__3col.boxed.well-padded.center
|
||||
+number({name:'class resource', class:'h3-style-input'})
|
||||
p(class='colon')
|
||||
+text({name:'class resource name', class:'h3-style-input'})
|
||||
.hide-note
|
||||
p(class='bold capitalize', 'data-i18n'='class resource')
|
||||
+checkbox({class:'collapse', value:'1', name:'collapse-ambition'})
|
||||
.grid__3col.notes.expanded.boxed.well-padded.center
|
||||
+number({name:'class resource', class:'h3-style-input', placeholder:'0'})
|
||||
p(class='colon')
|
||||
+text({name:'class resource name', class:'h3-style-input', 'data-i18n-placeholder':'resource'})
|
||||
@@ -5,7 +5,9 @@ section#abilities.abilities.long-2
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+div({class:'flex-box color-receiver center', style:'height:39px!important;'})
|
||||
span(style='width:39px!important; height:39px!important;').center
|
||||
+button({name:'quote', class:'quote center', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+button({name:'use', class:'roll-d20 center col',
|
||||
value:"&{template:icon} {{name=@{name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{summary=@{info-b}}} {{info=@{info-a} ⬧ @{info-c}}} {{description=@{flavor}}} {{effect=@{effects}}} {{talent=@{talent_effect}}} {{mastery_name=@{mastery_name}}} {{mastery=@{mastery_effect}}}"
|
||||
})
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+text({name:'name', class:'h3-style-input color-receiver center job-h1-receiver', 'data-i18n-placeholder':'ability'})
|
||||
.color-selector
|
||||
@@ -25,11 +27,11 @@ section#abilities.abilities.long-2
|
||||
+textarea({name:'effects', class:'small textarea-4', 'data-i18n-placeholder':'ability effects'})
|
||||
+collapse
|
||||
.grid__4col.half-gap.notes.expanded
|
||||
span(style='width:40px;')
|
||||
+checkbox({name:'talent 1', class:'talent talent-1'})
|
||||
+checkbox({name:'talent 2', class:'talent talent-2'})
|
||||
h5(data-i18n='talents', class='smallcaps', style='position:relative;left:-50%;')
|
||||
+checkbox({name:'mastery'})
|
||||
span(style='width:45px;')
|
||||
+checkbox({name:'talent 1', class:'checkbox talent I', value:'1'})
|
||||
+checkbox({name:'talent 2', class:'checkbox talent II', value:'2'})
|
||||
h5(data-i18n='talent', class='smallcaps', style='position:relative;left:-50%;')
|
||||
+checkbox({name:'mastery', class:'checkbox magenta star', value:'1'})
|
||||
+text({name:'mastery name', class:'h3-style-input small short-text center', 'data-i18n-placeholder':'mastery name'})
|
||||
.flex-box.boxed.center.span-2
|
||||
+textarea({name:'talent effect', class:'small textarea-1', 'data-i18n-placeholder':'talent effect'})
|
||||
@@ -44,7 +46,7 @@ section#abilities.abilities.long-2
|
||||
p(class='indent bullet', 'data-i18n'="basic abilities reminder line 1")
|
||||
p(class='indent bullet', 'data-i18n'="basic abilities reminder line 2")
|
||||
p(class='indent bullet', 'data-i18n'="basic abilities reminder line 3")
|
||||
p(class='indent bullet', 'data-i18n'="basic abilities reminder line 3")
|
||||
p(class='indent bullet', 'data-i18n'="basic abilities reminder line 4")
|
||||
section#limits.limits
|
||||
h1(data-i18n='limit break')
|
||||
+fieldset({name:'limits'})
|
||||
@@ -52,7 +54,9 @@ section#limits.limits
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+div({class:'flex-box color-receiver center', style:'height:39px!important;'})
|
||||
span(style='width:39px!important; height:39px!important;').center
|
||||
+button({name:'quote', class:'quote center', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+button({name:'use', class:'roll-d20 center col', type:'roll',
|
||||
value:"&{template:icon} {{name=@{name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{summary=@{info-b}}} {{info=@{info-a} ⬧ @{info-c}}} {{description=@{flavor}}} {{effect=@{effects}}} {{mastery_name=@{mastery_name}}} {{mastery=@{mastery_effect}}}"
|
||||
})
|
||||
+hidden({name:'class', class:'color-control', value:'inactive'})
|
||||
+text({name:'name', class:'h3-style-input color-receiver center job-h1-receiver', 'data-i18n-placeholder':'limit'})
|
||||
.color-selector
|
||||
@@ -71,25 +75,19 @@ section#limits.limits
|
||||
+textarea({name:'flavor', class:'serif emph small textarea-1', 'data-i18n-placeholder':'ability flavor', spellcheck:'false'})
|
||||
+textarea({name:'effects', class:'small textarea-4', 'data-i18n-placeholder':'ability effects'})
|
||||
+collapse
|
||||
.grid__4col.half-gap.notes.expanded
|
||||
span(style='width:40px;')
|
||||
+checkbox({name:'talent 1', class:'talent talent-1'})
|
||||
+checkbox({name:'talent 2', class:'talent talent-2'})
|
||||
h5(data-i18n='talents', class='smallcaps', style='position:relative;left:-50%;')
|
||||
+checkbox({name:'mastery'})
|
||||
+text({name:'mastery name', class:'h3-style-input small short-text center', 'data-i18n-placeholder':'mastery name'})
|
||||
.flex-box.boxed.center.span-2
|
||||
+textarea({name:'talent effect', class:'small textarea-1', 'data-i18n-placeholder':'talent effect'})
|
||||
.grid__2col.half-gap.notes.expanded
|
||||
+checkbox({name:'mastery', class:'checkbox magenta star', value:'1'})
|
||||
+text({name:'mastery name', class:'h3-style-input small short-text center', 'data-i18n-placeholder':'mastery name', style:'width:130%; position:relative; left:-30%;'})
|
||||
.flex-box.boxed.center.span-2
|
||||
+textarea({name:'mastery effect', class:'small textarea-1', 'data-i18n-placeholder':'mastery effect'})
|
||||
.resolve.hide-note
|
||||
.flex-box.row
|
||||
+input-label({label:'personal resolve',
|
||||
inputObj:{name:'personal resolve', type:'number', class:'underlined'},
|
||||
inputObj:{name:'resolve personal', type:'number', class:'underlined'},
|
||||
spanObj:{role:'heading', 'aria-level':5, class:'normal'}
|
||||
})
|
||||
+input-label({label:'party resolve',
|
||||
inputObj:{name:'party resolve', type:'number', class:'underlined'},
|
||||
inputObj:{name:'resolve party', type:'number', class:'underlined'},
|
||||
spanObj:{role:'heading', 'aria-level':5, class:'normal'}
|
||||
})
|
||||
+checkbox({class:'collapse', value:'0', name:'collapse-limits'})
|
||||
|
||||
@@ -1,11 +1,22 @@
|
||||
#stats.half-gap.boxed.well-padded
|
||||
h3(data-i18n='attacks', class='span-all')
|
||||
.grid__2col.span-all.no-gap
|
||||
span.center
|
||||
h5(data-i18n='melee')
|
||||
+button({name:'attack melee', class:'roll-d20', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
span.center
|
||||
h5(data-i18n='ranged')
|
||||
span.center
|
||||
+button({name:'attack ranged', class:'roll-d20', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+number({name:'range', value:'2'})
|
||||
.center
|
||||
.flex-box.center
|
||||
+input({name:'weapon melee', class:'center uppercase h3-style-input', value:'melee', type:'text', 'data-i18n-placeholder':'melee weapon', 'aria-level':5, style:'width:100%;'})
|
||||
+button({name:'attack melee', class:'roll-d20', type:'roll', role:'heading',
|
||||
value:"&{template:icon} {{name=@{weapon_melee} Attack}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{roll_name=Attack Roll}} {{roll=[[1d20@{boons}[BOONS]]]}} {{range=[[1]]}} {{damage=[[?{Light / Heavy|Light,1d@{damage-die}+@{fray}|Heavy,@{ratio_heavy}d@{damage-die}+@{fray}}]]}} {{bonus_damage=[Crit.](`/r 1d@{damage-die}) [[0]]}} {{crit_damage=[[1d@{damage-die}]]}} {{miss_damage=[Fray](`/r @{fray}) [[@{fray}]]}}"
|
||||
})
|
||||
.center
|
||||
.flex-box.center
|
||||
+input({name:'weapon ranged', class:'center uppercase h3-style-input', value:'ranged', type:'text', 'data-i18n-placeholder':'ranged weapon', 'aria-level':5, style:'width:100%;'})
|
||||
.flex-box.center
|
||||
+button({name:'attack ranged', class:'roll-d20', type:'roll', role:'heading',
|
||||
value:"&{template:icon} {{name=@{weapon_ranged} Attack}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{roll_name=Attack Roll}} {{roll=[[1d20@{boons}[BOONS]]]}} {{range=[[@{range}]]}} {{damage=[[?{Light / Heavy|Light,1d@{damage-die}+@{fray}|Heavy,@{ratio_heavy}d@{damage-die}+@{fray}}]]}} {{bonus_damage=[Crit.](`/r 1d@{damage-die}) [[0]]}} {{crit_damage=[[1d@{damage-die}]]}} {{miss_damage=[Fray](`/r @{fray}) [[@{fray}]]}}"
|
||||
})
|
||||
+input({name:'range', type:'number', value:'2', class:'number underlined'})
|
||||
.center
|
||||
h4(data-i18n='saving throw', class='span-all')
|
||||
.center
|
||||
+button({name:'save', class:'roll-d20', type:'roll', role:'heading',
|
||||
value:'&{template:icon} {{name=save}} {{character_name=@{character_name}}} {{roll=[[1d20@{boons}[BOONS]]]}} {{target=@{save_target}}}'
|
||||
})
|
||||
|
||||
@@ -1,24 +1,23 @@
|
||||
#stats.half-gap.boxed.well-padded
|
||||
span(class='center')
|
||||
.center.span-all
|
||||
h3(data-i18n='hp')
|
||||
.flex-box.center
|
||||
+hidden({name:'bloodied', class:'bloodied-control', trigger:{calculation:'calcBloodied'}, type:'number'})
|
||||
+input({name:'hp', class:'underlined bloodied-receiver bigger', trigger:{affects:['bloodied']}, type:'number'})
|
||||
+number({name:'hp_max', class:'bigger', value:'24', readonly:true, trigger:{calculation:['calcHP']}})
|
||||
span(class='center')
|
||||
//- +roller({name:'saving throw', role:'heading', 'aria-level':4,'data-i18n':'saving throw', trigger:{listenerFunc:'rollGeneric'}})
|
||||
+button({name:'save', type:'roll', role:'heading', 'aria-level':4,'data-i18n':'save',
|
||||
value:'&{template:icon} {{name=save}} {{character_name=@{character_name}}} {{roll=[[1d20?{Boons / Curses|NA,+0|+2D,+2d6kh1|+1D,+1d6|−1D,-1d6|−2D,-2d6kh1}]]}} {{target=@{save_target}}}'
|
||||
})
|
||||
span(class='center span-2')
|
||||
+input-label({label:'wounds',
|
||||
inputObj:{name:'wounds', class:'underlined', type:'number', value:'0', readonly:true, trigger:{affects:['hp_max','vigor_max']}},
|
||||
spanObj:{role:'heading', class:'smallcaps bigger', 'aria-level':5}
|
||||
})
|
||||
.center.span-all
|
||||
.flex-box.center
|
||||
+fillLeft({
|
||||
radioObj:{name:'wounds'},
|
||||
divObj:{class:'wound-radio span-2'},
|
||||
valueArray:[0,1,2,3,4]
|
||||
+input-label({label:'wounds',
|
||||
inputObj:{name:'wounds', class:'center bigger', type:'number', value:'0', readonly:true, trigger:{affects:['hp_max','vigor_max']}},
|
||||
spanObj:{role:'heading', class:'smallcaps bigger', 'aria-level':5},
|
||||
divObj:{class:'center'}
|
||||
})
|
||||
.flex-box.center
|
||||
each num in [0,1,2,3,4]
|
||||
if num === 0
|
||||
+input({name:'wounds', type:'radio', class:'fill-left dots gore radio-zero', value:`${num}`, checked:'true'})
|
||||
span
|
||||
else
|
||||
+input({name:'wounds', type:'radio', class:'fill-left dots gore', value:`${num}`})
|
||||
span
|
||||
p(class='center bold', 'data-i18n'="rules reminder wounds")
|
||||
@@ -25,16 +25,16 @@ section#relics.relics.long-2
|
||||
+collapse
|
||||
.grid__3col.half-gap.notes.expanded
|
||||
.flex-box.boxed.well-padded.center
|
||||
+label({name:'aspected', class:'info-label emph capitalize', 'data-i18n':'aspected', 'aria-label':5})
|
||||
+checkbox({name:'aspected'})
|
||||
+label({name:'aspected', class:'info-label mono capitalize', 'data-i18n':'aspected', 'aria-label':5})
|
||||
+checkbox({name:'aspected', class:'checkbox magenta tick relative', value:'1', style:'top:-5px;'})
|
||||
.flex-box.boxed.well-padded.center
|
||||
+input-label({
|
||||
label:'infused dust',
|
||||
inputObj:{name:'infused dust', class:'ability-info dust', type:'number'},
|
||||
inputObj:{name:'infused dust', class:'ability-info dust underlined', type:'number'},
|
||||
spanObj:{role:'heading', 'aria-level':5}
|
||||
})
|
||||
.well-padded.center
|
||||
+button({name:'quote', class:'quote', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=@{name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{summary=Level @{level} @{class} Relic}} {{description=@{flavor}}} {{effect=@{effects}}}"})
|
||||
h3(data-i18n='trophies')
|
||||
+fieldset({name:'trophies'})
|
||||
.flex-box.underlined
|
||||
@@ -47,8 +47,8 @@ section#relics.relics.long-2
|
||||
+option({value:'expeditions', 'data-i18n':'expeditions'})
|
||||
+option({value:'unlimited', 'data-i18n':'unlimited'})
|
||||
+option({value:'passive', 'data-i18n':'passive'})
|
||||
+button({name:'quote', class:'quote', type:'roll', trigger:{listenerFunc:'initiateRoll'}})
|
||||
+textarea({name:'effect', class:'textarea-3', 'data-i18n-placeholder':'trophy efffect'})
|
||||
+button({name:'quote', type:'roll', class:'roll-quote', value:"&{template:icon} {{name=@{name}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{summary=@{uses} @{type}}} {{effect=@{effect}}}"})
|
||||
+textarea({name:'effect', class:'textarea-3', 'data-i18n-placeholder':'trophy effect'})
|
||||
.flex-box.center.well-padded.boxed
|
||||
+input-label({
|
||||
label:'dust',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
span(class='center')
|
||||
+input-label({label:'vitality',
|
||||
inputObj:{name:'vitality', class:'underlined bigger', type:'number', value:'6', trigger:{affects:['hp_max','vigor_max','bloodied']}},
|
||||
spanObj:{role:'heading', 'aria-level':3}
|
||||
spanObj:{role:'heading', 'aria-level':3, 'data-i18n':'vit'}
|
||||
})
|
||||
+input-label({label:'vigor',
|
||||
inputObj:{name:'vigor', class:'underlined', type:'number', value:'0', trigger:{calculation:'calcHP'}},
|
||||
@@ -12,7 +12,7 @@
|
||||
span(class='center')
|
||||
+input-label({label:'defense',
|
||||
inputObj:{name:'defense', class:'underlined bigger', type:'number', value:'5'},
|
||||
spanObj:{role:'heading', 'aria-level':3}
|
||||
spanObj:{role:'heading', 'aria-level':3, 'data-i18n':'def'}
|
||||
})
|
||||
+input-label({label:'armor',
|
||||
inputObj:{name:'armor', class:'underlined', type:'number', value:'0'},
|
||||
@@ -20,17 +20,18 @@
|
||||
})
|
||||
span(class='center')
|
||||
+input-label({label:'speed',
|
||||
inputObj:{name:'speed', class:'underlined bigger', type:'number', value:'4'},
|
||||
spanObj:{role:'heading', 'aria-level':3}
|
||||
inputObj:{name:'speed', class:'underlined bigger', type:'number', value:'4', trigger:{affects:['dash']}},
|
||||
spanObj:{role:'heading', 'aria-level':3, 'data-i18n':'spd'}
|
||||
})
|
||||
+input-label({label:'dash',
|
||||
inputObj:{name:'dash', class:'underlined', type:'number', value:'2'},
|
||||
inputObj:{name:'dash', type:'number', readonly:true, value:'2', trigger:{calculation:'calcDash'}},
|
||||
spanObj:{role:'heading', 'aria-level':5}
|
||||
})
|
||||
span(class='center')
|
||||
+label({class:'input-label'})
|
||||
+span({class:'input-label__text', 'data-i18n':'damage', role:'heading', 'aria-level':3})
|
||||
+select({name:'damage-die', class:'input-label__input damage-die underlined big', style:'text-overflow:initial;'})
|
||||
+span({class:'input-label__text', 'data-i18n':'dmg', role:'heading', 'aria-level':3})
|
||||
+select({name:'damage-die', class:'input-label__input damage-die underlined big', style:'text-overflow:initial; max-width:50px;'})
|
||||
+option({value:'2'})|d2
|
||||
+option({value:'4'})|d4
|
||||
+option({value:'6', selected:true})|d6
|
||||
+option({value:'8'})|d8
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 30 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
@@ -74,7 +74,7 @@
|
||||
const calcBloodied = function({attributes}){
|
||||
let returnValue;
|
||||
let hp_max = attributes.vitality * attributes.ratio_max_hp;
|
||||
let bloodied_hp = hp_max * attributes.ratio_bloodied;
|
||||
let bloodied_hp = Math.ceil(hp_max * attributes.ratio_bloodied);
|
||||
switch(true){ //We're looking for the first expression that returns true;
|
||||
case (attributes.hp <= bloodied_hp):
|
||||
returnValue = 1;
|
||||
@@ -87,6 +87,16 @@
|
||||
}
|
||||
k.registerFuncs({calcBloodied});
|
||||
|
||||
const calcDash = function({attributes}){
|
||||
return Math.ceil(attributes.speed * attributes.ratio_dash);
|
||||
};
|
||||
k.registerFuncs({calcDash});
|
||||
|
||||
const calcInterval = function({attributes}){
|
||||
return Math.ceil(attributes.xp_max / 3);
|
||||
};
|
||||
k.registerFuncs({calcInterval});
|
||||
|
||||
// const calcPlusOne = function({attributes}){
|
||||
// return attributes.number + 1;
|
||||
// }
|
||||
|
||||
@@ -52,7 +52,7 @@ section {
|
||||
|
||||
#stats {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
||||
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
|
||||
&.npc {
|
||||
grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
|
||||
}
|
||||
@@ -66,4 +66,8 @@ section {
|
||||
div.burdens {
|
||||
min-width: 120px;
|
||||
column-gap: 2px;
|
||||
}
|
||||
|
||||
.top-margin {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
@@ -15,16 +15,12 @@ html{
|
||||
@extend %defaultStyles;
|
||||
}
|
||||
}
|
||||
// removes the roll20 logo from all buttons
|
||||
// .ui-dialog .charsheet button[type=roll]:before {
|
||||
// content: "";
|
||||
// }
|
||||
|
||||
//- Spaceholder darkmode colors. We'll want to adjust these to a better dark mode pallette before release.
|
||||
.sheet-darkmode .ui-dialog,
|
||||
.sheet-rolltemplate-darkmode{
|
||||
--borderColor: var(--off-white); //Our dark mode border color
|
||||
--fontColor: var(--white); //Our dark mode font color
|
||||
--borderColor: var(--grey); //Our dark mode border color
|
||||
--fontColor: var(--off-white); //Our dark mode font color
|
||||
--invertedFontColor: var(--black); //Our dark mode inverted font color
|
||||
--placeholderFontColor: var(--grey-lt); //Our dark mode placeholder font color
|
||||
--backColor: var(--half-black); //Our dark mode background color
|
||||
@@ -34,17 +30,16 @@ html{
|
||||
--selectedColor: var(--orange); //Our dark mode font color for items that are currently active
|
||||
--disableBackground: var(--grey-dk);
|
||||
--buttonColor: var(--magenta);
|
||||
--hoverColor: var(--magenta-lt);
|
||||
--clickColor: var(--orange);
|
||||
--hoverColor: var(--orange);
|
||||
--clickColor: var(--magenta-lt);
|
||||
--r20white: rgb(31, 31, 31);
|
||||
--r20black: white;
|
||||
|
||||
//--shadowColor:
|
||||
--disableShadow:0px 0 7px 0px #161616 inset;
|
||||
--buttonColor:#2e2e2e;
|
||||
--hoverColor:#2e2e2e;
|
||||
--clickColor:black;
|
||||
|
||||
//Images
|
||||
--paper-background:url("https://i.imgur.com/vb8bLma.jpg"); // dark mode paper background
|
||||
--paper-background:url("https://i.imgur.com/AWF88wB.jpg"); // dark mode paper background
|
||||
--icon-logo:url("https://i.imgur.com/2klK40m.png"); // dark mode logo
|
||||
|
||||
.sheetform{
|
||||
@@ -53,6 +48,12 @@ html{
|
||||
img{
|
||||
filter: brightness(.8) contrast(1.2);
|
||||
}
|
||||
|
||||
// darker class colors
|
||||
--red: var(--red-dk);
|
||||
--yellow: var(--yellow-dk);
|
||||
--green: var(--green-dk);
|
||||
--blue: var(--blue-dk);
|
||||
}
|
||||
|
||||
//the declarations for styles specifically applying to our main element.
|
||||
@@ -188,6 +189,10 @@ html{
|
||||
display:none !important;
|
||||
}
|
||||
}
|
||||
|
||||
input[type="number"]:read-only {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
// debugging borders
|
||||
// div {
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
@use '_mixinsandplaceholders';
|
||||
|
||||
input[type="label"] {
|
||||
.action-label {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
@use '_mixinsandplaceholders';
|
||||
|
||||
input[type="label"] {
|
||||
.action-label {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
label.status {
|
||||
position: relative;
|
||||
bottom: -4px;
|
||||
}
|
||||
|
||||
// removes the roll20 logo from all buttons
|
||||
.ui-dialog .charsheet button[type=roll]::before {
|
||||
content: "";
|
||||
font-size: 1rem;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
button[type=roll] {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
background-color: transparent !important;
|
||||
display: inline-block;
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
|
||||
color: var(--fontColor);
|
||||
|
||||
&:hover {
|
||||
color: var(--hoverColor) !important;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: var(--clickColor) !important;
|
||||
border: none !important;
|
||||
-webkit-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
&.col {
|
||||
color: var(--white);
|
||||
position: relative;
|
||||
top: 8px;
|
||||
left: -15px;
|
||||
}
|
||||
&.col:hover {
|
||||
color: var(--white) !important;
|
||||
}
|
||||
&.col:active {
|
||||
color: var(--black) !important;
|
||||
}
|
||||
|
||||
&.roll-quote::before {
|
||||
font-family: "Pictos" !important;
|
||||
content:"w" !important;
|
||||
font-size: 1.5rem !important;
|
||||
position: relative;
|
||||
left: 0px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
&.roll-quote::after {
|
||||
font-family: "Pictos" !important;
|
||||
content:"." !important;
|
||||
font-size: 0.8rem !important;
|
||||
position: relative;
|
||||
left: -22px;
|
||||
bottom: 5px;
|
||||
color: var(--invertedFontColor);
|
||||
z-index: 6;
|
||||
}
|
||||
|
||||
&.roll-d6::before {
|
||||
font-family: "dicefontd6" !important;
|
||||
content:"l" !important;
|
||||
font-size: 1.5rem !important;
|
||||
position: relative;
|
||||
bottom: -3px;
|
||||
}
|
||||
|
||||
&.roll-d6:hover::before {
|
||||
content: "L" !important;
|
||||
}
|
||||
|
||||
&.roll-d20::before {
|
||||
font-family: "dicefontd20" !important;
|
||||
content:"t" !important;
|
||||
font-size: 2rem !important;
|
||||
position: relative;
|
||||
left: -3px;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
&.roll-d20:hover::before {
|
||||
content: "T" !important;
|
||||
}
|
||||
|
||||
&.die::after {
|
||||
font-family: "dicefontd20" !important;
|
||||
content:"0" !important;
|
||||
font-size: 0.8rem;
|
||||
position: relative;
|
||||
left:-1px;
|
||||
top:-9px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
@@ -2,33 +2,33 @@
|
||||
|
||||
//- Color palette variables
|
||||
%color-palette {
|
||||
--white: white;
|
||||
--off-white: rgb(243, 240, 237);
|
||||
--grey-lt: rgb(217, 217, 217);
|
||||
--white: rgb(245, 245, 245);
|
||||
--off-white: rgb(236, 232, 227);
|
||||
--grey-lt: rgb(201, 201, 201);
|
||||
--grey: rgb(145, 145, 145);
|
||||
--off-grey: rgb(143, 143, 157);
|
||||
--off-grey: rgb(136, 153, 155);
|
||||
--grey-dk: rgb(102, 102, 102);
|
||||
--off-black: rgb(15, 13, 12);
|
||||
--black: black;
|
||||
--half-white: rgba(255, 255, 255, 0.5);
|
||||
--half-black: rgba(0, 0, 0, 0.5);
|
||||
--off-black: rgb(31, 27, 25);
|
||||
--black: rgb(20, 20, 20);
|
||||
--half-white: rgba(245, 245, 245, 0.5);
|
||||
--half-black: rgba(20, 20, 20, 0.5);
|
||||
--half-grey: rgba(145, 145, 145, 0.5);
|
||||
--purple: rgb(156, 70, 255);
|
||||
--magenta-lt: rgb(242, 130, 255);
|
||||
--magenta: rgb(201, 85, 239);
|
||||
--magenta-dk: rgb(136, 57, 162);
|
||||
--red-lt: rgb(255, 150, 140);
|
||||
--red-lt: rgb(243, 126, 115);
|
||||
--red: rgb(237, 34, 11);
|
||||
--red-dk: rgb(160, 23, 7);
|
||||
--red-dk: rgb(172, 24, 8);
|
||||
--yellow-lt: rgb(255, 217, 49);
|
||||
--yellow: rgb(253, 173, 0);
|
||||
--yellow-dk: rgb(176, 120, 0);
|
||||
--yellow: rgb(253, 194, 0);
|
||||
--yellow-dk: rgb(221, 169, 0);
|
||||
--green-lt: rgb(136, 249, 78);
|
||||
--green: rgb(96, 216, 54);
|
||||
--green-dk: rgb(62, 139, 34);
|
||||
--green-dk: rgb(63, 167, 26);
|
||||
--blue-lt: rgb(76, 220, 253);
|
||||
--blue: rgb(0, 161, 255);
|
||||
--blue-dk: rgb(0, 112, 178);
|
||||
--blue-dk: rgb(6, 131, 204);
|
||||
--orange: rgb(230, 140, 44);
|
||||
}
|
||||
|
||||
@@ -75,6 +75,10 @@
|
||||
font-size: 0.8rem !important;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
//- And styling for items that need the roll20 'pictos' fonts
|
||||
%pictos {
|
||||
font-family: 'pictos' !important;
|
||||
@@ -115,7 +119,7 @@
|
||||
border: 1px solid var(--borderColor);
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
background-color: var(--invertedFontColor);
|
||||
background-color: var(--backColor);
|
||||
}
|
||||
|
||||
//- Placeholder that allows us to easily set a square aspect ratio
|
||||
@@ -155,36 +159,36 @@
|
||||
border-width: 0;
|
||||
backdrop-filter: blur(1px);
|
||||
overflow: hidden;
|
||||
|
||||
// transition:{
|
||||
// property:box-shadow,backdrop-filter,background-color;
|
||||
// duration:200ms;
|
||||
// timing-function:ease-out;
|
||||
// };
|
||||
|
||||
&:is(:hover, :focus) {
|
||||
background-color: var(--hoverColor);
|
||||
box-shadow: 0 4px 6px black;
|
||||
backdrop-filter: blur(2px);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: var(--clickColor);
|
||||
box-shadow: 0 1px 2px black;
|
||||
backdrop-filter: blur(0px);
|
||||
}
|
||||
}
|
||||
// // transition:{
|
||||
// // property:box-shadow,backdrop-filter,background-color;
|
||||
// // duration:200ms;
|
||||
// // timing-function:ease-out;
|
||||
// // };
|
||||
|
||||
//- Styling for our dice buttons
|
||||
%die-button {
|
||||
@extend %base-button;
|
||||
line-height: 14px;
|
||||
/*height to vertically center a $double dicefontd10*/
|
||||
font-size: 2rem;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
padding: 5px 3px 7px;
|
||||
}
|
||||
// &:is(:hover, :focus) {
|
||||
// background-color: var(--hoverColor);
|
||||
// box-shadow: 0 4px 6px black;
|
||||
// backdrop-filter: blur(2px);
|
||||
// }
|
||||
|
||||
// &:active {
|
||||
// background-color: var(--clickColor);
|
||||
// box-shadow: 0 1px 2px black;
|
||||
// backdrop-filter: blur(0px);
|
||||
// }
|
||||
// }
|
||||
|
||||
// //- Styling for our dice buttons
|
||||
// %die-button {
|
||||
// @extend %base-button;
|
||||
// line-height: 14px;
|
||||
// /*height to vertically center a $double dicefontd10*/
|
||||
// font-size: 2rem;
|
||||
// font-weight: normal;
|
||||
// font-style: normal;
|
||||
// padding: 5px 3px 7px;
|
||||
// }
|
||||
|
||||
//- styling for buttons that have standard text in them
|
||||
%text-button {
|
||||
@@ -234,7 +238,7 @@
|
||||
|
||||
&:before {
|
||||
content: 'l';
|
||||
font-family: dicefontd6;
|
||||
font-family: "dicefontd6";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,8 +459,10 @@
|
||||
--selectedColor: var(--orange); //Our default font color for items that are currently active
|
||||
--disableBackground: var(--grey-lt);
|
||||
--buttonColor: var(--magenta);
|
||||
--hoverColor: var(--magenta-lt);
|
||||
--clickColor: var(--orange);
|
||||
--hoverColor: var(--orange);
|
||||
--clickColor: var(--magenta-lt);
|
||||
--r20white: white;
|
||||
--r20black: rgb(31, 31, 31);
|
||||
}
|
||||
|
||||
%defaultStyles {
|
||||
@@ -664,7 +670,6 @@
|
||||
span[name],
|
||||
input,
|
||||
textarea,
|
||||
button,
|
||||
select {
|
||||
font-family: var(--basicFont);
|
||||
--fontWght: 700;
|
||||
@@ -950,20 +955,31 @@
|
||||
-webkit-appearance: none;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
right: 1px;
|
||||
top: 0px;
|
||||
border: 0px solid var(--borderColor);
|
||||
border-radius: 0;
|
||||
right: 2px;
|
||||
top: 2px;
|
||||
border: none;
|
||||
color: var(--selectedColor);
|
||||
text-transform: none;
|
||||
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
|
||||
-ms-transform: scale(1.2); /* IE 9 */
|
||||
-webkit-transform: scale(1.2); /* Chrome, Safari, Opera */
|
||||
transform: scale(1.2);
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-border-radius: 50%;
|
||||
-webkit-border-radius: 50%;
|
||||
border-radius: 50%;
|
||||
|
||||
&:after {
|
||||
content: 'i';
|
||||
font-family: pictos;
|
||||
font-family: "Pictos";
|
||||
position: relative;
|
||||
left: 2px;
|
||||
bottom: 2px;
|
||||
text-shadow: 1px 1px 3px white;
|
||||
}
|
||||
|
||||
&:checked {
|
||||
@@ -1001,7 +1017,7 @@
|
||||
|
||||
.repcontainer {
|
||||
display: grid;
|
||||
gap: var(--grid-gap);
|
||||
gap: var(--half-gap);
|
||||
}
|
||||
|
||||
.repeating-container {
|
||||
@@ -1023,18 +1039,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
.repcontrol-button--add {
|
||||
.repcontrol-button--add,
|
||||
.repcontrol-button__add {
|
||||
justify-self: start;
|
||||
|
||||
background-color: var(--invertedBackColor) !important;
|
||||
&:before {
|
||||
font-family: pictos;
|
||||
content: '&';
|
||||
}
|
||||
}
|
||||
|
||||
.repcontrol-button--edit {
|
||||
.repcontrol-button--edit,
|
||||
.repcontrol-button__edit {
|
||||
justify-self: end;
|
||||
|
||||
background-color: var(--invertedBackColor) !important;
|
||||
&:before {
|
||||
font-family: pictos;
|
||||
content: 'p';
|
||||
@@ -1053,29 +1071,6 @@
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.fill-left{
|
||||
display:flex;
|
||||
align-self:center;
|
||||
box-sizing:border-box;
|
||||
}
|
||||
.fill-left__radio{
|
||||
appearance:none;
|
||||
-webkit-appearance:none;
|
||||
order: 1;
|
||||
background-color:var(--backColor);
|
||||
width:20px;
|
||||
height:20px;
|
||||
cursor:pointer;
|
||||
z-index: 1;
|
||||
|
||||
accent-color: var(--purple);
|
||||
|
||||
&:checked ~ .fill-left__radio{
|
||||
order: 3;
|
||||
background-color:grey;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.0rem;
|
||||
width: 96%;
|
||||
@@ -1090,15 +1085,21 @@
|
||||
position: relative;
|
||||
left: 20px;
|
||||
}
|
||||
&.colon {
|
||||
font-family: var(--titleFont);
|
||||
font-size: 1.1rem;
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
&::after{content: '\003A';} /* CSS colon : entity \003A : html : */
|
||||
}
|
||||
&.macro {
|
||||
position: relative;
|
||||
bottom: -8px;
|
||||
left: 5px;
|
||||
}
|
||||
}
|
||||
p.colon {
|
||||
font-family: var(--titleFont);
|
||||
font-size: 1.1rem;
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
&::after{content: '\003A';} /* CSS colon : entity \003A : html : */
|
||||
}
|
||||
|
||||
|
||||
.auto-expand {
|
||||
overflow: hidden; /* hides overflow that is caused by the span */
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
ul.nav-tabs.nav{
|
||||
position:sticky;
|
||||
top:0;
|
||||
background-color:var(--backColor);
|
||||
background-color: var(--r20white);
|
||||
z-index:9999;
|
||||
margin-bottom:0px;
|
||||
}
|
||||
@@ -14,7 +14,7 @@ ul.nav-tabs.nav{
|
||||
gap: var(--tiny-gap);
|
||||
position:sticky;
|
||||
top:40px;
|
||||
background-color: var(--backColor);
|
||||
background-color: var(--r20white);
|
||||
padding: var(--tiny-gap) 0 0;
|
||||
margin-bottom: var(--big-gap);
|
||||
border-bottom: 1px solid #dddddd;
|
||||
|
||||
@@ -1,39 +1,417 @@
|
||||
@use '_mixinsandplaceholders';
|
||||
|
||||
// .fill-left {
|
||||
// display: flex;
|
||||
// margin: 2rem;
|
||||
// gap: 10px;
|
||||
.action-dots {
|
||||
width: 40%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
/* Hide actual radio */
|
||||
input[type="radio"].fill-left {
|
||||
opacity: 0;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
left: 9px;
|
||||
margin: -10px;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
|
||||
/* Fake radio */
|
||||
&.dots + span::before {
|
||||
margin-right: 4px;
|
||||
border: solid 2px var(--borderColor);
|
||||
line-height: 18px;
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background-color: var(--purple);
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
font-size: 24px;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-border-radius: 50%;
|
||||
-webkit-border-radius: 50%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
/* Remove dot from all radios _after_ selected one */
|
||||
&.dots:checked ~ input[type="radio"] + span::before {
|
||||
background-color: transparent;
|
||||
border-color: var(--invertedBackColor);
|
||||
}
|
||||
|
||||
&.dots:not(:checked):hover ~ input[type="radio"] + span::before {
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
&.diamonds + span::before {
|
||||
margin-right: 6px;
|
||||
border: solid 2px var(--borderColor);
|
||||
line-height: 16px;
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background-color: var(--orange);
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
font-size: 24px;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-border-radius: 10%;
|
||||
-webkit-border-radius: 10%;
|
||||
border-radius: 10%;
|
||||
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
&.diamonds:checked ~ input[type="radio"] + span::before {
|
||||
background-color: transparent;
|
||||
border-color: var(--invertedBackColor);
|
||||
}
|
||||
|
||||
&.diamonds:not(:checked):hover ~ input[type="radio"] + span::before {
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
&.radio-zero:hover + span::before {
|
||||
background-color: transparent;
|
||||
font-family: "Pictos";
|
||||
content: "*";
|
||||
color: var(--fontColor);
|
||||
position: relative;
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
&.diamonds.radio-zero:hover + span::before {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
&.gore + span::before {
|
||||
background-color: var(--red-dk);
|
||||
}
|
||||
|
||||
&.gore:not(.radio-zero):checked + span::after {
|
||||
font-family: "Pictos";
|
||||
content: "Y";
|
||||
width: 0px;
|
||||
position: relative;
|
||||
color: var(--fontColor);
|
||||
top: -7px;
|
||||
left: -4px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
&.gore:not(:checked):hover ~ input[type="radio"] + span::before {
|
||||
border-color: var(--red-lt);
|
||||
}
|
||||
|
||||
&.gore:not(:checked):hover ~ input[type="radio"] + span::after {
|
||||
color: var(--red-lt);
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
&.resource-small + span::before {
|
||||
width: 13px !important;
|
||||
height: 13px !important;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
&.resource-smaller + span::before {
|
||||
width: 11px !important;
|
||||
height: 11px !important;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
&.resource-smallerer + span::before {
|
||||
width: 9px !important;
|
||||
height: 9px !important;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
.action-checkboxes {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
input[type="checkbox"].checkbox {
|
||||
-moz-appearance:none;
|
||||
-webkit-appearance:none;
|
||||
-o-appearance:none;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-border-radius: 10%;
|
||||
-webkit-border-radius: 10%;
|
||||
border-radius: 10%;
|
||||
|
||||
margin: 2px;
|
||||
width: 20px !important;
|
||||
height: 20px !important;
|
||||
border: 2px solid var(--invertedBackColor) !important;
|
||||
background-color: transparent;
|
||||
|
||||
&:checked {
|
||||
border: 2px solid var(--borderColor) !important;
|
||||
color: var(--invertedFontColor);
|
||||
}
|
||||
|
||||
&.up:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "{";
|
||||
position: relative;
|
||||
left: 2px;
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
&.down:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "}";
|
||||
position: relative;
|
||||
left: 2px;
|
||||
top: -3px;
|
||||
}
|
||||
|
||||
&.tick:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "3";
|
||||
position: relative;
|
||||
left: 1px;
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
&.cross:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "*";
|
||||
position: relative;
|
||||
left: 1.5px;
|
||||
top: -2.5px;
|
||||
}
|
||||
|
||||
&.star {
|
||||
-moz-border-radius: 50%;
|
||||
-webkit-border-radius: 50%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
&.star:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "S";
|
||||
font-size: 1.1rem;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
&.talent {
|
||||
width: 20px !important;
|
||||
margin: 0px !important;
|
||||
font-family: var(--serifFont);
|
||||
}
|
||||
|
||||
&.I:checked::after {
|
||||
content:"I";
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
top: -5px;
|
||||
left: 4px
|
||||
}
|
||||
|
||||
&.II:checked::after {
|
||||
content:"II";
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
top: -5px;
|
||||
left: 1px
|
||||
}
|
||||
|
||||
&.magenta:checked {
|
||||
background-color: var(--magenta) !important;
|
||||
}
|
||||
|
||||
&.magenta:hover {
|
||||
background-color: var(--magenta) !important;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
&.orange:checked {
|
||||
background-color: var(--orange) !important;
|
||||
}
|
||||
|
||||
&.orange:hover {
|
||||
background-color: var(--orange) !important;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
&.black:checked {
|
||||
background-color: var(--r20black) !important;
|
||||
}
|
||||
|
||||
&.black:hover {
|
||||
background-color: var(--invertedBackColor) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// .action-dots {
|
||||
// width: 50%;
|
||||
// display: inline-grid;
|
||||
// grid-template-columns: auto auto auto auto auto auto auto auto auto auto;
|
||||
// }
|
||||
|
||||
// .fill-left__radio {
|
||||
// order: 1;
|
||||
// border: 1px solid black;
|
||||
// border-radius: 50%;
|
||||
// background: grey;
|
||||
// height: 2rem;
|
||||
// width: 2rem;
|
||||
// appearance: none;
|
||||
// -webkit-appearance: none;
|
||||
// cursor: pointer;
|
||||
// z-index: 1;
|
||||
// input[type="radio"].fill-left {
|
||||
// // -webkit-appearance: none;
|
||||
// // opacity: 0;
|
||||
// position: relative;
|
||||
// left: 1rem;
|
||||
// cursor: pointer;
|
||||
// z-index: 1;
|
||||
// font-weight: normal !important;
|
||||
// // margin: 3px;
|
||||
// // padding: 0.1em;
|
||||
|
||||
// &+ span::before {
|
||||
// border: solid 2px var(--off-black) !important;
|
||||
// line-height: 1.1rem;
|
||||
// text-align: middle;
|
||||
// display: inline-block;
|
||||
// vertical-align: middle;
|
||||
|
||||
// -moz-box-shadow: 0 0 0px var(--black);
|
||||
// -webkit-box-shadow: 0 0 0px var(--black);
|
||||
// box-shadow: 0 0 0px var(--black);
|
||||
|
||||
// content: "";
|
||||
// color: var(--white);
|
||||
// font-size: 20px;
|
||||
// background: transparent;
|
||||
// background-color: var(--purple);
|
||||
// width: 1.1rem;
|
||||
// height: 1.1rem;
|
||||
// z-index: 11;
|
||||
|
||||
// -webkit-font-smoothing: antialiased;
|
||||
// -moz-border-radius: 50%;
|
||||
// -webkit-border-radius: 50%;
|
||||
// border-radius: 50%;
|
||||
// padding: 0.1rem;
|
||||
// }
|
||||
|
||||
// &:hover ~ input[type="radio"] + span::before {
|
||||
// content: "";
|
||||
// background-color: var(--magenta);
|
||||
// opacity: 0.5;
|
||||
// }
|
||||
|
||||
// &:checked::before ~ input[type="radio"] + span::before {
|
||||
// content: "";
|
||||
// background: transparent;
|
||||
// background-color: none;
|
||||
// }
|
||||
// }
|
||||
|
||||
// .fill-left__radio:checked {
|
||||
// opacity: 0;
|
||||
// z-index: 0;
|
||||
// position: absolute;
|
||||
// input[type="radio"].cb-rad-sml + span::before {
|
||||
// line-height: 14px !important;
|
||||
// width: 14px !important;
|
||||
// height: 14px !important;
|
||||
// font-size: 16px !important;
|
||||
// }
|
||||
|
||||
// .fill-left__radio:checked ~ .fill-left__radio {
|
||||
// order: 3;
|
||||
// background-color: transparent;
|
||||
// input[type="radio"].cb-rad-smlr + span::before {
|
||||
// line-height: 12px !important;
|
||||
// width: 12px !important;
|
||||
// height: 12px !important;
|
||||
// font-size: 15px !important;
|
||||
// }
|
||||
|
||||
// .fill-left__radio.radio-clearer {
|
||||
// order: 2;
|
||||
// background-color: black;
|
||||
// }
|
||||
input.radio-zero {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
input.radio-zero:checked + span::before {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
input.radio-zero:hover + span::before {
|
||||
opacity: 0.25;
|
||||
font-size: 25px;
|
||||
font-family: "Pictos";
|
||||
content: "*";
|
||||
background: none;
|
||||
background-color: none !important;
|
||||
border-color: transparent !important;
|
||||
color: var(--black);
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
input.radio-zero + span::before {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
// display: flex;
|
||||
// align-self: center;
|
||||
// // opacity: 0;
|
||||
// // -webkit-appearance: none;
|
||||
// // position: absolute;
|
||||
// cursor: pointer;
|
||||
// width: 2rem;
|
||||
// height: 2rem;
|
||||
|
||||
// &.dots + span::before {
|
||||
// position: relative;
|
||||
// border: solid 2px var(--borderColor);
|
||||
// line-height: 1rem;
|
||||
// text-align: middle;
|
||||
// display: inline-block;
|
||||
// vertical-align: middle;
|
||||
|
||||
// -moz-box-shadow: 0 0 0px var(--borderColor);
|
||||
// -webkit-box-shadow: 0 0 0px var(--borderColor);
|
||||
// box-shadow: 0 0 0px var(--borderColor);
|
||||
|
||||
// // font-family: "Pictos";
|
||||
// content: "";
|
||||
// color: var(--invertedFontColor);
|
||||
// font-size: 1px;
|
||||
// background: transparent;
|
||||
// background-color: var(--purple);
|
||||
// width: 1rem;
|
||||
// height: 1rem;
|
||||
// z-index: 11;
|
||||
|
||||
// -webkit-font-smoothing: antialiased;
|
||||
// -moz-border-radius: 50%;
|
||||
// -webkit-border-radius: 50%;
|
||||
// border-radius: 50%;
|
||||
// padding: 3px;
|
||||
// }
|
||||
|
||||
// &.dots + span:hover {
|
||||
// background: transparent;
|
||||
// background-color: var(--magenta);
|
||||
// }
|
||||
|
||||
// &.dots:checked ~ input[type="radio"] + span::before {
|
||||
// content: "";
|
||||
// background: transparent;
|
||||
// background-color: none;
|
||||
// }
|
||||
|
||||
// &.radio-clearer:hover + span::before {
|
||||
// font-family: "pictos";
|
||||
// opacity: 0.25;
|
||||
// font-size: 1rem;
|
||||
// content: "*";
|
||||
// background: none;
|
||||
// background-color: none;
|
||||
// border-color: transparent;
|
||||
// color: var(--fontColor);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
@each $value in 2,3,4,5,6,7,8 {
|
||||
@@ -45,15 +423,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
input[type=checkbox].magenta {
|
||||
accent-color: var(--magenta);
|
||||
}
|
||||
|
||||
|
||||
// .resource-radio {
|
||||
// // -webkit-appearance: none;
|
||||
// position: absolute;
|
||||
// // opacity: 0;
|
||||
// position: absolute;
|
||||
// width: 18px;
|
||||
// height: 18px;
|
||||
// cursor: pointer;
|
||||
@@ -62,23 +436,24 @@ input[type=checkbox].magenta {
|
||||
// margin: 3px;
|
||||
// padding: 0.5em;
|
||||
|
||||
// CHECKBOX RADIO
|
||||
// &span::before {
|
||||
// border: solid 2px var(--cp-off-black);
|
||||
// border: solid 2px var(--off-black);
|
||||
// line-height: 18px;
|
||||
// text-align: middle;
|
||||
// display: inline-block;
|
||||
// vertical-align: middle;
|
||||
|
||||
// -moz-box-shadow: 0 0 0px var(--cp-black);
|
||||
// -webkit-box-shadow: 0 0 0px var(--cp-black);
|
||||
// box-shadow: 0 0 0px var(--cp-black);
|
||||
// -moz-box-shadow: 0 0 0px var(--black);
|
||||
// -webkit-box-shadow: 0 0 0px var(--black);
|
||||
// box-shadow: 0 0 0px var(--black);
|
||||
|
||||
// font-family: "Pictos";
|
||||
// content: "3";
|
||||
// color: var(--cp-white);
|
||||
// color: var(--white);
|
||||
// font-size: 20px;
|
||||
// background: transparent;
|
||||
// background-color: var(--cp-purple);
|
||||
// background-color: var(--purple);
|
||||
// width: 18px;
|
||||
// height: 18px;
|
||||
// z-index: 11;
|
||||
@@ -92,11 +467,11 @@ input[type=checkbox].magenta {
|
||||
|
||||
// &:hover ~ input[type="radio"] + span::before {
|
||||
// content: "";
|
||||
// background-color: var(--cp-purple-half);
|
||||
// background-color: var(--purple-half);
|
||||
|
||||
// font-family: "Pictos";
|
||||
// content: "*";
|
||||
// color: var(--cp-white);
|
||||
// color: var(--white);
|
||||
// }
|
||||
|
||||
// &:checked::before ~ input[type="radio"] + span::before {
|
||||
@@ -136,7 +511,7 @@ input[type=checkbox].magenta {
|
||||
// background: none;
|
||||
// background-color: none;
|
||||
// border-color: transparent;
|
||||
// color: var(--cp-black);
|
||||
// color: var(--black);
|
||||
// top: 2px;
|
||||
// left: 2px;
|
||||
// }
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
//- Any 'inlinerollresults' should be styled as well
|
||||
@use '_mixinsandplaceholders';
|
||||
|
||||
.by, .message,
|
||||
.sheet-by, .sheet-message,
|
||||
.em, .strong {
|
||||
color:var(--fontColor);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon {
|
||||
@extend %universalVariables;
|
||||
@extend %defaultStyles;
|
||||
@@ -19,13 +25,14 @@
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-darkmode {
|
||||
--critColor:green;
|
||||
--fumbleColor:red;
|
||||
--importantColor:#00ADA2;
|
||||
--headerBackColor:#2e2e2e;
|
||||
--critColor: var(--green-lt);
|
||||
--fumbleColor: var(--red-lt);
|
||||
--importantColor: var(--blue-lt);
|
||||
--headerBackColor: var(--grey-dk);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon {
|
||||
text-justify: inter-word;
|
||||
padding-bottom:var(--grid-gap);
|
||||
//If the template is output with the chat avatar being displayed, give the chat avatar some more room so that we don't overlap it.
|
||||
&:not(:first-child){
|
||||
@@ -33,7 +40,8 @@
|
||||
}
|
||||
.sheet-header{
|
||||
display:grid;
|
||||
background-image: linear-gradient(90deg, transparent, var(--headerBackColor) var(--big-gap) calc(100% - var(--big-gap)), transparent);
|
||||
border: 1px solid var(--borderColor);
|
||||
background-color: var(--headerBackColor);
|
||||
padding: var(--half-gap);
|
||||
margin-inline: calc(var(--half-gap) * -1);
|
||||
h3{
|
||||
@@ -95,6 +103,7 @@
|
||||
gap:var(--half-gap);
|
||||
justify-content: space-between;
|
||||
align-items:center;
|
||||
line-height: 27px;
|
||||
}
|
||||
//Our areas that we expect longer content to exist in will have a border on the top to help visually separate them.
|
||||
.sheet-template-row--text{
|
||||
@@ -108,11 +117,14 @@
|
||||
max-height:20rem;
|
||||
overflow-y:auto;
|
||||
white-space: pre-wrap;
|
||||
color:var(--fontColor);
|
||||
}
|
||||
|
||||
//Styling for links in our roll template. This will override the in your face styling of the default Roll20 ability and API command buttons.
|
||||
a{
|
||||
padding:0;
|
||||
position: relative;
|
||||
left: -10px;
|
||||
padding:2px;
|
||||
//For links that are not ability/API command buttons, we want to decorate them as a standard link.
|
||||
&:not([href^="!"]),
|
||||
&:not([href^="~"]){
|
||||
@@ -137,7 +149,8 @@
|
||||
//We want our inline rolls to visually pop so that they are easily identifiable
|
||||
font-size:1.25em;
|
||||
position: relative;
|
||||
left:-10px;
|
||||
color:var(--fontColor);
|
||||
|
||||
//We'll be looking at computed values in the javascript, but if we send a placeholder value to chat, we don't want to display the hover tooltip for it because it will not give any useful information.
|
||||
&[title*="[computed value]"],
|
||||
&[original-title*="[computed value]"]{
|
||||
@@ -164,5 +177,9 @@
|
||||
color: var(--importantColor);
|
||||
}
|
||||
}
|
||||
|
||||
.sheet-result > .inlinerollresult {
|
||||
left:-8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,13 +68,26 @@ input.dust {
|
||||
}
|
||||
}
|
||||
|
||||
span.xp {
|
||||
color: var(--purple) !important;
|
||||
padding: 5px !important;
|
||||
}
|
||||
|
||||
input.xp {
|
||||
height: 40px !important;
|
||||
width: 100% !important;
|
||||
font-size: 1.4rem !important;
|
||||
color: var(--fontColor) !important;
|
||||
text-shadow: 0 0 2px var(--purple);
|
||||
}
|
||||
|
||||
.color-receiver {
|
||||
background-color: var(--magenta);
|
||||
// fallback color, for if the hidden 'color-control' input is not placed before the selector
|
||||
}
|
||||
|
||||
select.color-receiver {
|
||||
color: var(--invertedFontColor) !important;
|
||||
color: var(--white) !important;
|
||||
border-radius: 0px !important;
|
||||
}
|
||||
|
||||
@@ -148,4 +161,9 @@ div.wealth {
|
||||
input.ability-info {
|
||||
width: 32% !important;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
select.type {
|
||||
margin-bottom: 0px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 260 KiB |
@@ -0,0 +1,57 @@
|
||||
# ICON RPG Character Sheet for Roll20
|
||||
|
||||
Welcome to the full documentation for this unoffocial ICON character sheet.
|
||||
|
||||
This sheet is designed for use with the [ICON](https://massif-press.itch.io/icon) system by Massif Press. This is an unofficial sheet made with the aid of Scott C's [K-scaffold](https://kurohyou.github.io/Roll20-Snippets/index.html?v=1.1). Almost all of the core functionality of the game, as of version 1.45, is accessible via this sheet.
|
||||
Rules reminders are built in and can be hidden or show by clicking orange 'i' in the top right of each section.
|
||||
The sheet is also flexible enough to hopefully allow for homebrew rules and custom features.
|
||||
I hope you enjoy!
|
||||
|
||||

|
||||
|
||||
[report a bug](https://github.com/Seraaron/roll20-character-sheets/issues)
|
||||
|
||||
### Fonts
|
||||
Note that this sheet makes use of GOOGLE fonts via
|
||||
```
|
||||
@import url("https://fonts.googleapis.com/css?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700|Jost:ital,wght@0,400;0,700;1,400;1,700|PT+Mono|PT+Sans+Caption:wght@400;700|PT+Serif+Caption&display=swap");
|
||||
```
|
||||
These should be imported automatically by your browser, but in the event that they aren't you can download and install them yourself here:
|
||||
- [Jost](https://fonts.google.com/specimen/Jost)
|
||||
- [Atkinson Hyperlegible](https://fonts.google.com/specimen/Atkinson+Hyperlegible)
|
||||
- [PT Mono](https://fonts.google.com/specimen/PT+Mono), [PT Sans Caption](https://fonts.google.com/specimen/PT+Sans+Caption), & [PT Serif Caption](https://fonts.google.com/specimen/PT+Serif+Caption)
|
||||
|
||||
## Changelog
|
||||
### v0.4 LIVE (23-01-14)
|
||||
- Wrote this readme, and the json file, made a [tipee](https://en.tipeee.com/seraaron/), and generally got the sheet ready for live use on roll20
|
||||
- Added lots of new CSS stylization to make it all look pretty
|
||||
- Fixed fill left bug by reverting to older style involving spans
|
||||
- Added action roll macro
|
||||
- Stylized the roll templates
|
||||
- Added all json translations in english
|
||||
- Changed appearance of roll buttons
|
||||
- Added action rolls using conditionals in roll template
|
||||
|
||||
### v0.3 BETA (23-01-14)
|
||||
- Added preliminary darkmode functionality
|
||||
- Added preliminary roll template / macro functionality
|
||||
- Partially fixed tab impersistence
|
||||
- Fixed burden column scale
|
||||
- Added 'roster' tab for foes & allies
|
||||
- Added camp fixtures
|
||||
- Fixed collapse checkbox global
|
||||
- Fixed custom action names resetting
|
||||
- Added ability info boxes
|
||||
|
||||
### v0.2 ALPHA (22-12-14)
|
||||
- Filled in the tactics, roster, and journal sections
|
||||
- Fixed burden column scale (bug) and made them a rep. segment
|
||||
- Begun work on sheetworkers
|
||||
- Too many other changes to mention
|
||||
- (suffice to say the sheet is basically whole at this point, if unfinished)
|
||||
|
||||
### v0.1 PRE (22-12-05)
|
||||
- Initial commit
|
||||
- Mostly functional narrative and journal tabs (sans roll macros and sheetworkers)
|
||||
- Tactics, Roster, and Settings tabs have headers as scaffolding but no major functionality
|
||||
- Very likely to change destructively soon, this is just a 'save point' commit
|
||||
@@ -7,56 +7,85 @@
|
||||
+characterLink
|
||||
+templateConditionalDisplay('roll')
|
||||
.template-row
|
||||
+templateConditionalDisplay('roll_name')
|
||||
h5 {{roll_name}}
|
||||
+templateConditionalDisplay('roll_name','invert')
|
||||
h5(data-i18n='roll')
|
||||
span.description
|
||||
.template-col
|
||||
+templateConditionalDisplay('roll_name')
|
||||
h5 {{roll_name}}
|
||||
+templateConditionalDisplay('roll_name','invert')
|
||||
h5(data-i18n='roll')
|
||||
.template-col.sheet-center.sheet-result
|
||||
|{{roll}}
|
||||
+templateConditionalDisplay('target')
|
||||
span(data-i18n='vs')
|
||||
|{{target}}
|
||||
+templateConditionalDisplay('target')
|
||||
+rollBetween({values:'computed::result 1 1'})
|
||||
.template-row.template-row--summary
|
||||
span(data-i18n='success').capitalize.result-display-true
|
||||
+rollBetween({values:'computed::result 0 0'})
|
||||
.template-row.template-row--summary
|
||||
span(data-i18n='failure').capitalize.result-display-false
|
||||
+templateConditionalDisplay('damage')
|
||||
|**{{target}}**
|
||||
+templateConditionalDisplay('hidden-calc')
|
||||
.template-row
|
||||
+templateConditionalDisplay('damage_type')
|
||||
h5 {{roll_name}}
|
||||
+templateConditionalDisplay('damage_type','invert')
|
||||
h5(data-i18n='damage')
|
||||
span.description {{damage}}
|
||||
.template-col
|
||||
h5(data-i18n='action roll')
|
||||
//- This is checking wheter you have zero dice or not, and changes accordingly
|
||||
.template-col.sheet-center.sheet-result
|
||||
|{{#rollGreater() hidden-calc 0}}{{action-roll0}}{{/rollGreater() hidden-calc 0}}
|
||||
|{{#rollLess() hidden-calc 1}}{{action-roll1}}{{/rollLess() hidden-calc 1}}
|
||||
+templateConditionalDisplay('range')
|
||||
.template-row
|
||||
h5(data-i18n='range')
|
||||
span.description {{range}}
|
||||
+templateConditionalDisplay('traits')
|
||||
.template-col
|
||||
h5(data-i18n='range').capitalize
|
||||
.template-col.sheet-center.sheet-result
|
||||
|{{range}}
|
||||
+templateConditionalDisplay('damage')
|
||||
.template-row
|
||||
h5(data-i18n='traits')
|
||||
span.description {{traits}}
|
||||
+templateConditionalDisplay('aspects')
|
||||
.template-row
|
||||
h5(data-i18n='aspects')
|
||||
span.description {{aspects}}
|
||||
.template-col
|
||||
h5(data-i18n='damage').capitalize
|
||||
.template-col.sheet-center.sheet-result
|
||||
|{{damage}}
|
||||
.template-row--summary
|
||||
+templateConditionalDisplay('bonus_damage')
|
||||
.template-row
|
||||
.template-col.sheet-center
|
||||
h5(data-i18n='bonus dmg')
|
||||
.template-col.sheet-center.sheet-result
|
||||
|{{#rollGreater() roll 19}}{{crit_damage}}{{/rollGreater() roll 19}}
|
||||
|{{#rollLess() roll 20}}{{bonus_damage}}{{/rollLess() roll 20}}
|
||||
+templateConditionalDisplay('miss_damage')
|
||||
.template-row
|
||||
.template-col.sheet-center
|
||||
h5(data-i18n='miss dmg')
|
||||
.template-col.sheet-center.sheet-result
|
||||
|{{miss_damage}}
|
||||
+templateConditionalDisplay('text')
|
||||
.template-row.template-row--text
|
||||
span.description {{text}}
|
||||
+templateConditionalDisplay('summary')
|
||||
.template-row.template-row--summary
|
||||
.template-col.sheet-center
|
||||
h5|{{summary}}
|
||||
+templateConditionalDisplay('info')
|
||||
.template-row.template-row--summary
|
||||
.template-col.sheet-center
|
||||
h5|{{info}}
|
||||
+templateConditionalDisplay('description')
|
||||
.template-row.template-row--text
|
||||
h5(data-i18n='description')
|
||||
span.description {{description}}
|
||||
span.description
|
||||
|*{{description}}*
|
||||
+templateConditionalDisplay('effect')
|
||||
.template-row.template-row--text
|
||||
h5(data-i18n='effect')
|
||||
span.description {{effect}}
|
||||
each num in [1,2,3]
|
||||
+templateConditionalDisplay(`effect_${num}`)
|
||||
.template-row.template-row--text
|
||||
h5(data-i18n=`effect ${num}`)
|
||||
span.description {{effect_#{num}}}
|
||||
span.description
|
||||
|**{{effect}}**
|
||||
+templateConditionalDisplay('talent')
|
||||
.template-row
|
||||
.template-col
|
||||
h4(data-i18n='talent')
|
||||
|{{talent}}
|
||||
+templateConditionalDisplay('mastery')
|
||||
.template-row
|
||||
.template-col
|
||||
+templateConditionalDisplay('mastery_name')
|
||||
h4 {{mastery_name}}
|
||||
|{{mastery}}
|
||||
+templateConditionalDisplay('mastery_name','invert')
|
||||
h4(data-i18n='mastery')
|
||||
|{{mastery}}
|
||||
//- This template will be user extensible. User defined field/value combos will be displayed using the same format as other rows
|
||||
+allProps({values:'character_name character_id name roll_name roll damage damage_type effect effect_1 effect_2 effect_3 description range traits aspects target result'})
|
||||
+allProps({values:'character_name character_id name roll_name roll target action-roll0 action-roll1 hidden-calc damage range bonus_damage crit_damage miss_damage effect description text talent mastery_name mastery sheet-result progress max summary info'})
|
||||
.template-row.template-row--text
|
||||
h5 {{key}}
|
||||
span.description {{value}}
|
||||
@@ -1,9 +1,10 @@
|
||||
{
|
||||
"html": "system.html",
|
||||
"css": "style.css",
|
||||
"css": "system.css",
|
||||
"authors": "Seraaron, Scott Casey",
|
||||
"roll20userid": "459831",
|
||||
"preview": ".jpg",
|
||||
"instructions": "",
|
||||
"roll20userid": "147454, 459831",
|
||||
"preview": "preview.jpg",
|
||||
"tipee":"https://en.tipeee.com/seraaron/",
|
||||
"instructions": "This sheet is designed for use with the [ICON](https://massif-press.itch.io/icon) system by Massif Press. This is an unofficial sheet made with the aid of Scott C's [K-scaffold](https://kurohyou.github.io/Roll20-Snippets/index.html?v=1.1). Almost all of the core functionality of the game, as of version 1.45, is accessible via this sheet.\nRules reminders are built in and can be hidden or show by clicking orange 'i' in the top right of each section.\nThe sheet is also flexible enough to hopefully allow for homebrew rules and custom features.\nI hope you enjoy!\n\nRead the [full documentation](https://github.com/Seraaron/roll20-character-sheets/blob/master/ICON%20RPG%20%5BMassifPress%5D/readme.md) or [report a bug](https://github.com/Seraaron/roll20-character-sheets/issues)",
|
||||
"legacy": false
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,32 +1,32 @@
|
||||
@import url("https://fonts.googleapis.com/css?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700|Jost:ital,wght@0,400;0,700;1,400;1,700|PT+Mono|PT+Sans+Caption:wght@400;700|PT+Serif+Caption&display=swap");
|
||||
.sheet-rolltemplate-icon, .ui-dialog {
|
||||
--white: white;
|
||||
--off-white: rgb(243, 240, 237);
|
||||
--grey-lt: rgb(217, 217, 217);
|
||||
--white: rgb(245, 245, 245);
|
||||
--off-white: rgb(236, 232, 227);
|
||||
--grey-lt: rgb(201, 201, 201);
|
||||
--grey: rgb(145, 145, 145);
|
||||
--off-grey: rgb(143, 143, 157);
|
||||
--off-grey: rgb(136, 153, 155);
|
||||
--grey-dk: rgb(102, 102, 102);
|
||||
--off-black: rgb(15, 13, 12);
|
||||
--black: black;
|
||||
--half-white: rgba(255, 255, 255, 0.5);
|
||||
--half-black: rgba(0, 0, 0, 0.5);
|
||||
--off-black: rgb(31, 27, 25);
|
||||
--black: rgb(20, 20, 20);
|
||||
--half-white: rgba(245, 245, 245, 0.5);
|
||||
--half-black: rgba(20, 20, 20, 0.5);
|
||||
--half-grey: rgba(145, 145, 145, 0.5);
|
||||
--purple: rgb(156, 70, 255);
|
||||
--magenta-lt: rgb(242, 130, 255);
|
||||
--magenta: rgb(201, 85, 239);
|
||||
--magenta-dk: rgb(136, 57, 162);
|
||||
--red-lt: rgb(255, 150, 140);
|
||||
--red-lt: rgb(243, 126, 115);
|
||||
--red: rgb(237, 34, 11);
|
||||
--red-dk: rgb(160, 23, 7);
|
||||
--red-dk: rgb(172, 24, 8);
|
||||
--yellow-lt: rgb(255, 217, 49);
|
||||
--yellow: rgb(253, 173, 0);
|
||||
--yellow-dk: rgb(176, 120, 0);
|
||||
--yellow: rgb(253, 194, 0);
|
||||
--yellow-dk: rgb(221, 169, 0);
|
||||
--green-lt: rgb(136, 249, 78);
|
||||
--green: rgb(96, 216, 54);
|
||||
--green-dk: rgb(62, 139, 34);
|
||||
--green-dk: rgb(63, 167, 26);
|
||||
--blue-lt: rgb(76, 220, 253);
|
||||
--blue: rgb(0, 161, 255);
|
||||
--blue-dk: rgb(0, 112, 178);
|
||||
--blue-dk: rgb(6, 131, 204);
|
||||
--orange: rgb(230, 140, 44);
|
||||
}
|
||||
|
||||
@@ -70,6 +70,10 @@
|
||||
font-size: 0.8rem !important;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon .sheet-pictos, .ui-dialog .tab-content .charsheet .sheet-pictos,
|
||||
.sheet-rolltemplate-icon .pictos,
|
||||
.ui-dialog .tab-content .charsheet .pictos {
|
||||
@@ -112,7 +116,7 @@
|
||||
border-radius: 5px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
background-color: var(--invertedFontColor);
|
||||
background-color: var(--backColor);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon .ratio1-1, .ui-dialog .tab-content .charsheet .ratio1-1,
|
||||
@@ -155,20 +159,6 @@
|
||||
backdrop-filter: blur(1px);
|
||||
overflow: hidden;
|
||||
}
|
||||
.sheet-rolltemplate-icon .repcontrol-button:is(:hover, :focus), .ui-dialog .tab-content .charsheet .repcontrol-button:is(:hover, :focus) {
|
||||
background-color: var(--hoverColor);
|
||||
-webkit-box-shadow: 0 4px 6px black;
|
||||
box-shadow: 0 4px 6px black;
|
||||
-webkit-backdrop-filter: blur(2px);
|
||||
backdrop-filter: blur(2px);
|
||||
}
|
||||
.sheet-rolltemplate-icon .repcontrol-button:active, .ui-dialog .tab-content .charsheet .repcontrol-button:active {
|
||||
background-color: var(--clickColor);
|
||||
-webkit-box-shadow: 0 1px 2px black;
|
||||
box-shadow: 0 1px 2px black;
|
||||
-webkit-backdrop-filter: blur(0px);
|
||||
backdrop-filter: blur(0px);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon .repcontrol-button, .ui-dialog .tab-content .charsheet .repcontrol-button {
|
||||
padding: 5px 7px;
|
||||
@@ -467,8 +457,10 @@
|
||||
--selectedColor: var(--orange);
|
||||
--disableBackground: var(--grey-lt);
|
||||
--buttonColor: var(--magenta);
|
||||
--hoverColor: var(--magenta-lt);
|
||||
--clickColor: var(--orange);
|
||||
--hoverColor: var(--orange);
|
||||
--clickColor: var(--magenta-lt);
|
||||
--r20white: white;
|
||||
--r20black: rgb(31, 31, 31);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon, .ui-dialog .tab-content .charsheet {
|
||||
@@ -704,8 +696,6 @@
|
||||
.ui-dialog .tab-content .charsheet input,
|
||||
.sheet-rolltemplate-icon textarea,
|
||||
.ui-dialog .tab-content .charsheet textarea,
|
||||
.sheet-rolltemplate-icon button,
|
||||
.ui-dialog .tab-content .charsheet button,
|
||||
.sheet-rolltemplate-icon select,
|
||||
.ui-dialog .tab-content .charsheet select {
|
||||
font-family: var(--basicFont);
|
||||
@@ -923,18 +913,25 @@
|
||||
-webkit-appearance: none;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
right: 1px;
|
||||
top: 0px;
|
||||
border: 0px solid var(--borderColor);
|
||||
border-radius: 0;
|
||||
right: 2px;
|
||||
top: 2px;
|
||||
border: none;
|
||||
color: var(--selectedColor);
|
||||
text-transform: none; /* IE 9 */
|
||||
text-transform: none;
|
||||
height: 18px;
|
||||
width: 18px; /* IE 9 */
|
||||
-webkit-transform: scale(1.2); /* Chrome, Safari, Opera */
|
||||
transform: scale(1.2);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.sheet-rolltemplate-icon .repitem .collapse:after, .ui-dialog .tab-content .charsheet .repitem .collapse:after, .sheet-rolltemplate-icon .hide-note .collapse:after, .ui-dialog .tab-content .charsheet .hide-note .collapse:after {
|
||||
content: "i";
|
||||
font-family: pictos;
|
||||
font-family: "Pictos";
|
||||
position: relative;
|
||||
left: 2px;
|
||||
bottom: 2px;
|
||||
text-shadow: 1px 1px 3px white;
|
||||
}
|
||||
.sheet-rolltemplate-icon .repitem .collapse:checked, .ui-dialog .tab-content .charsheet .repitem .collapse:checked, .sheet-rolltemplate-icon .hide-note .collapse:checked, .ui-dialog .tab-content .charsheet .hide-note .collapse:checked {
|
||||
background-color: transparent;
|
||||
@@ -962,7 +959,7 @@
|
||||
.sheet-rolltemplate-icon .repcontainer, .ui-dialog .tab-content .charsheet .repcontainer {
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
gap: var(--grid-gap);
|
||||
gap: var(--half-gap);
|
||||
}
|
||||
.sheet-rolltemplate-icon .repeating-container:is(:hover, :focus-within, :focus) .repcontrol-button, .ui-dialog .tab-content .charsheet .repeating-container:is(:hover, :focus-within, :focus) .repcontrol-button {
|
||||
opacity: 1;
|
||||
@@ -979,19 +976,29 @@
|
||||
.sheet-rolltemplate-icon .repcontrol-button ~ .repcontrol, .ui-dialog .tab-content .charsheet .repcontrol-button ~ .repcontrol {
|
||||
display: none;
|
||||
}
|
||||
.sheet-rolltemplate-icon .repcontrol-button--add, .ui-dialog .tab-content .charsheet .repcontrol-button--add {
|
||||
.sheet-rolltemplate-icon .repcontrol-button--add, .ui-dialog .tab-content .charsheet .repcontrol-button--add,
|
||||
.sheet-rolltemplate-icon .repcontrol-button__add,
|
||||
.ui-dialog .tab-content .charsheet .repcontrol-button__add {
|
||||
-ms-grid-column-align: start;
|
||||
justify-self: start;
|
||||
background-color: var(--invertedBackColor) !important;
|
||||
}
|
||||
.sheet-rolltemplate-icon .repcontrol-button--add:before, .ui-dialog .tab-content .charsheet .repcontrol-button--add:before {
|
||||
.sheet-rolltemplate-icon .repcontrol-button--add:before, .ui-dialog .tab-content .charsheet .repcontrol-button--add:before,
|
||||
.sheet-rolltemplate-icon .repcontrol-button__add:before,
|
||||
.ui-dialog .tab-content .charsheet .repcontrol-button__add:before {
|
||||
font-family: pictos;
|
||||
content: "&";
|
||||
}
|
||||
.sheet-rolltemplate-icon .repcontrol-button--edit, .ui-dialog .tab-content .charsheet .repcontrol-button--edit {
|
||||
.sheet-rolltemplate-icon .repcontrol-button--edit, .ui-dialog .tab-content .charsheet .repcontrol-button--edit,
|
||||
.sheet-rolltemplate-icon .repcontrol-button__edit,
|
||||
.ui-dialog .tab-content .charsheet .repcontrol-button__edit {
|
||||
-ms-grid-column-align: end;
|
||||
justify-self: end;
|
||||
background-color: var(--invertedBackColor) !important;
|
||||
}
|
||||
.sheet-rolltemplate-icon .repcontrol-button--edit:before, .ui-dialog .tab-content .charsheet .repcontrol-button--edit:before {
|
||||
.sheet-rolltemplate-icon .repcontrol-button--edit:before, .ui-dialog .tab-content .charsheet .repcontrol-button--edit:before,
|
||||
.sheet-rolltemplate-icon .repcontrol-button__edit:before,
|
||||
.ui-dialog .tab-content .charsheet .repcontrol-button__edit:before {
|
||||
font-family: pictos;
|
||||
content: "p";
|
||||
}
|
||||
@@ -1006,36 +1013,6 @@
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
.sheet-rolltemplate-icon .fill-left, .ui-dialog .tab-content .charsheet .fill-left {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-item-align: center;
|
||||
-ms-grid-row-align: center;
|
||||
align-self: center;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.sheet-rolltemplate-icon .fill-left__radio, .ui-dialog .tab-content .charsheet .fill-left__radio {
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-ms-flex-order: 1;
|
||||
order: 1;
|
||||
background-color: var(--backColor);
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
accent-color: var(--purple);
|
||||
}
|
||||
.sheet-rolltemplate-icon .fill-left__radio:checked ~ .fill-left__radio, .ui-dialog .tab-content .charsheet .fill-left__radio:checked ~ .fill-left__radio {
|
||||
-webkit-box-ordinal-group: 4;
|
||||
-ms-flex-order: 3;
|
||||
order: 3;
|
||||
background-color: grey;
|
||||
}
|
||||
.sheet-rolltemplate-icon p, .ui-dialog .tab-content .charsheet p {
|
||||
font-size: 1rem;
|
||||
width: 96%;
|
||||
@@ -1062,6 +1039,11 @@
|
||||
.sheet-rolltemplate-icon p.colon::after, .ui-dialog .tab-content .charsheet p.colon::after {
|
||||
content: ":";
|
||||
}
|
||||
.sheet-rolltemplate-icon p.macro, .ui-dialog .tab-content .charsheet p.macro {
|
||||
position: relative;
|
||||
bottom: -8px;
|
||||
left: 5px;
|
||||
}
|
||||
.sheet-rolltemplate-icon .auto-expand, .ui-dialog .tab-content .charsheet .auto-expand {
|
||||
overflow: hidden; /* hides overflow that is caused by the span */
|
||||
position: relative; /* Allows the input's absolute positioning to be relative to this parent div */
|
||||
@@ -1095,8 +1077,8 @@ html {
|
||||
}
|
||||
.sheet-darkmode .ui-dialog,
|
||||
.sheet-rolltemplate-darkmode {
|
||||
--borderColor: var(--off-white);
|
||||
--fontColor: var(--white);
|
||||
--borderColor: var(--grey);
|
||||
--fontColor: var(--off-white);
|
||||
--invertedFontColor: var(--black);
|
||||
--placeholderFontColor: var(--grey-lt);
|
||||
--backColor: var(--half-black);
|
||||
@@ -1106,14 +1088,17 @@ html {
|
||||
--selectedColor: var(--orange);
|
||||
--disableBackground: var(--grey-dk);
|
||||
--buttonColor: var(--magenta);
|
||||
--hoverColor: var(--magenta-lt);
|
||||
--clickColor: var(--orange);
|
||||
--hoverColor: var(--orange);
|
||||
--clickColor: var(--magenta-lt);
|
||||
--r20white: rgb(31, 31, 31);
|
||||
--r20black: white;
|
||||
--disableShadow:0px 0 7px 0px #161616 inset;
|
||||
--buttonColor:#2e2e2e;
|
||||
--hoverColor:#2e2e2e;
|
||||
--clickColor:black;
|
||||
--paper-background:url("https://i.imgur.com/vb8bLma.jpg");
|
||||
--paper-background:url("https://i.imgur.com/AWF88wB.jpg");
|
||||
--icon-logo:url("https://i.imgur.com/2klK40m.png");
|
||||
--red: var(--red-dk);
|
||||
--yellow: var(--yellow-dk);
|
||||
--green: var(--green-dk);
|
||||
--blue: var(--blue-dk);
|
||||
}
|
||||
.sheet-darkmode .ui-dialog .sheetform,
|
||||
.sheet-rolltemplate-darkmode .sheetform {
|
||||
@@ -1260,11 +1245,17 @@ html {
|
||||
#main .sheet-nav__tab.inactive {
|
||||
display: none !important;
|
||||
}
|
||||
#main input[type=number]:-moz-read-only {
|
||||
opacity: 0.8;
|
||||
}
|
||||
#main input[type=number]:read-only {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
ul.nav-tabs.nav {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: var(--backColor);
|
||||
background-color: var(--r20white);
|
||||
z-index: 9999;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
@@ -1281,7 +1272,7 @@ ul.nav-tabs.nav {
|
||||
gap: var(--tiny-gap);
|
||||
position: sticky;
|
||||
top: 40px;
|
||||
background-color: var(--backColor);
|
||||
background-color: var(--r20white);
|
||||
padding: var(--tiny-gap) 0 0;
|
||||
margin-bottom: var(--big-gap);
|
||||
border-bottom: 1px solid #dddddd;
|
||||
@@ -1407,6 +1398,100 @@ input[type=label] .action-label {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
label.status {
|
||||
position: relative;
|
||||
bottom: -4px;
|
||||
}
|
||||
|
||||
.ui-dialog .charsheet button[type=roll]::before {
|
||||
content: "";
|
||||
font-size: 1rem;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
button[type=roll] {
|
||||
border: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
background-color: transparent !important;
|
||||
display: inline-block;
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
color: var(--fontColor);
|
||||
}
|
||||
button[type=roll]:hover {
|
||||
color: var(--hoverColor) !important;
|
||||
}
|
||||
button[type=roll]:active {
|
||||
color: var(--clickColor) !important;
|
||||
border: none !important;
|
||||
-webkit-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
button[type=roll].col {
|
||||
color: var(--white);
|
||||
position: relative;
|
||||
top: 8px;
|
||||
left: -15px;
|
||||
}
|
||||
button[type=roll].col:hover {
|
||||
color: var(--white) !important;
|
||||
}
|
||||
button[type=roll].col:active {
|
||||
color: var(--black) !important;
|
||||
}
|
||||
button[type=roll].roll-quote::before {
|
||||
font-family: "Pictos" !important;
|
||||
content: "w" !important;
|
||||
font-size: 1.5rem !important;
|
||||
position: relative;
|
||||
left: 0px;
|
||||
z-index: 5;
|
||||
}
|
||||
button[type=roll].roll-quote::after {
|
||||
font-family: "Pictos" !important;
|
||||
content: "." !important;
|
||||
font-size: 0.8rem !important;
|
||||
position: relative;
|
||||
left: -22px;
|
||||
bottom: 5px;
|
||||
color: var(--invertedFontColor);
|
||||
z-index: 6;
|
||||
}
|
||||
button[type=roll].roll-d6::before {
|
||||
font-family: "dicefontd6" !important;
|
||||
content: "l" !important;
|
||||
font-size: 1.5rem !important;
|
||||
position: relative;
|
||||
bottom: -3px;
|
||||
}
|
||||
button[type=roll].roll-d6:hover::before {
|
||||
content: "L" !important;
|
||||
}
|
||||
button[type=roll].roll-d20::before {
|
||||
font-family: "dicefontd20" !important;
|
||||
content: "t" !important;
|
||||
font-size: 2rem !important;
|
||||
position: relative;
|
||||
left: -3px;
|
||||
bottom: 0px;
|
||||
}
|
||||
button[type=roll].roll-d20:hover::before {
|
||||
content: "T" !important;
|
||||
}
|
||||
button[type=roll].die::after {
|
||||
font-family: "dicefontd20" !important;
|
||||
content: "0" !important;
|
||||
font-size: 0.8rem;
|
||||
position: relative;
|
||||
left: -1px;
|
||||
top: -9px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#auto-fill {
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
@@ -1464,7 +1549,7 @@ section {
|
||||
#stats {
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
||||
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
|
||||
}
|
||||
#stats.npc {
|
||||
grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
|
||||
@@ -1477,6 +1562,10 @@ div.burdens {
|
||||
column-gap: 2px;
|
||||
}
|
||||
|
||||
.top-margin {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.clock div.clock_4 {
|
||||
display: none;
|
||||
}
|
||||
@@ -1898,6 +1987,258 @@ div.burdens {
|
||||
background-color: rgb(156, 70, 255);
|
||||
}
|
||||
|
||||
.action-dots {
|
||||
width: 40%;
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Hide actual radio */
|
||||
input[type=radio].fill-left {
|
||||
opacity: 0;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
left: 9px;
|
||||
margin: -10px;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
/* Fake radio */
|
||||
/* Remove dot from all radios _after_ selected one */
|
||||
}
|
||||
input[type=radio].fill-left.dots + span::before {
|
||||
margin-right: 4px;
|
||||
border: solid 2px var(--borderColor);
|
||||
line-height: 18px;
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background-color: var(--purple);
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
font-size: 24px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
border-radius: 50%;
|
||||
}
|
||||
input[type=radio].fill-left.dots:checked ~ input[type=radio] + span::before {
|
||||
background-color: transparent;
|
||||
border-color: var(--invertedBackColor);
|
||||
}
|
||||
input[type=radio].fill-left.dots:not(:checked):hover ~ input[type=radio] + span::before {
|
||||
opacity: 0.25;
|
||||
}
|
||||
input[type=radio].fill-left.diamonds + span::before {
|
||||
margin-right: 6px;
|
||||
border: solid 2px var(--borderColor);
|
||||
line-height: 16px;
|
||||
display: inline-block;
|
||||
content: "";
|
||||
background-color: var(--orange);
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
font-size: 24px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
border-radius: 10%;
|
||||
-webkit-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
input[type=radio].fill-left.diamonds:checked ~ input[type=radio] + span::before {
|
||||
background-color: transparent;
|
||||
border-color: var(--invertedBackColor);
|
||||
}
|
||||
input[type=radio].fill-left.diamonds:not(:checked):hover ~ input[type=radio] + span::before {
|
||||
opacity: 0.25;
|
||||
}
|
||||
input[type=radio].fill-left.radio-zero:hover + span::before {
|
||||
background-color: transparent;
|
||||
font-family: "Pictos";
|
||||
content: "*";
|
||||
color: var(--fontColor);
|
||||
position: relative;
|
||||
top: -2px;
|
||||
}
|
||||
input[type=radio].fill-left.diamonds.radio-zero:hover + span::before {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
input[type=radio].fill-left.gore + span::before {
|
||||
background-color: var(--red-dk);
|
||||
}
|
||||
input[type=radio].fill-left.gore:not(.radio-zero):checked + span::after {
|
||||
font-family: "Pictos";
|
||||
content: "Y";
|
||||
width: 0px;
|
||||
position: relative;
|
||||
color: var(--fontColor);
|
||||
top: -7px;
|
||||
left: -4px;
|
||||
margin: 0px;
|
||||
}
|
||||
input[type=radio].fill-left.gore:not(:checked):hover ~ input[type=radio] + span::before {
|
||||
border-color: var(--red-lt);
|
||||
}
|
||||
input[type=radio].fill-left.gore:not(:checked):hover ~ input[type=radio] + span::after {
|
||||
color: var(--red-lt);
|
||||
opacity: 0.4;
|
||||
}
|
||||
input[type=radio].fill-left.resource-small + span::before {
|
||||
width: 13px !important;
|
||||
height: 13px !important;
|
||||
font-size: 20px;
|
||||
}
|
||||
input[type=radio].fill-left.resource-smaller + span::before {
|
||||
width: 11px !important;
|
||||
height: 11px !important;
|
||||
font-size: 16px;
|
||||
}
|
||||
input[type=radio].fill-left.resource-smallerer + span::before {
|
||||
width: 9px !important;
|
||||
height: 9px !important;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.action-checkboxes {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
input[type=checkbox].checkbox {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-o-appearance: none;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
border-radius: 10%;
|
||||
margin: 2px;
|
||||
width: 20px !important;
|
||||
height: 20px !important;
|
||||
border: 2px solid var(--invertedBackColor) !important;
|
||||
background-color: transparent;
|
||||
}
|
||||
input[type=checkbox].checkbox:checked {
|
||||
border: 2px solid var(--borderColor) !important;
|
||||
color: var(--invertedFontColor);
|
||||
}
|
||||
input[type=checkbox].checkbox.up:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "{";
|
||||
position: relative;
|
||||
left: 2px;
|
||||
top: -2px;
|
||||
}
|
||||
input[type=checkbox].checkbox.down:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "}";
|
||||
position: relative;
|
||||
left: 2px;
|
||||
top: -3px;
|
||||
}
|
||||
input[type=checkbox].checkbox.tick:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "3";
|
||||
position: relative;
|
||||
left: 1px;
|
||||
top: -2px;
|
||||
}
|
||||
input[type=checkbox].checkbox.cross:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "*";
|
||||
position: relative;
|
||||
left: 1.5px;
|
||||
top: -2.5px;
|
||||
}
|
||||
input[type=checkbox].checkbox.star {
|
||||
border-radius: 50%;
|
||||
}
|
||||
input[type=checkbox].checkbox.star:checked::after {
|
||||
font-family: "Pictos";
|
||||
content: "S";
|
||||
font-size: 1.1rem;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
top: -5px;
|
||||
}
|
||||
input[type=checkbox].checkbox.talent {
|
||||
width: 20px !important;
|
||||
margin: 0px !important;
|
||||
font-family: var(--serifFont);
|
||||
}
|
||||
input[type=checkbox].checkbox.I:checked::after {
|
||||
content: "I";
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
top: -5px;
|
||||
left: 4px;
|
||||
}
|
||||
input[type=checkbox].checkbox.II:checked::after {
|
||||
content: "II";
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
top: -5px;
|
||||
left: 1px;
|
||||
}
|
||||
input[type=checkbox].checkbox.magenta:checked {
|
||||
background-color: var(--magenta) !important;
|
||||
}
|
||||
input[type=checkbox].checkbox.magenta:hover {
|
||||
background-color: var(--magenta) !important;
|
||||
opacity: 0.5;
|
||||
}
|
||||
input[type=checkbox].checkbox.orange:checked {
|
||||
background-color: var(--orange) !important;
|
||||
}
|
||||
input[type=checkbox].checkbox.orange:hover {
|
||||
background-color: var(--orange) !important;
|
||||
opacity: 0.5;
|
||||
}
|
||||
input[type=checkbox].checkbox.black:checked {
|
||||
background-color: var(--r20black) !important;
|
||||
}
|
||||
input[type=checkbox].checkbox.black:hover {
|
||||
background-color: var(--invertedBackColor) !important;
|
||||
}
|
||||
|
||||
input.radio-zero {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
input.radio-zero:checked + span::before {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
input.radio-zero:hover + span::before {
|
||||
opacity: 0.25;
|
||||
font-size: 25px;
|
||||
font-family: "Pictos";
|
||||
content: "*";
|
||||
background: none;
|
||||
background-color: none !important;
|
||||
border-color: transparent !important;
|
||||
color: var(--black);
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
input.radio-zero + span::before {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.resource div.resource_2 {
|
||||
display: none;
|
||||
}
|
||||
@@ -1954,10 +2295,6 @@ div.burdens {
|
||||
display: block;
|
||||
}
|
||||
|
||||
input[type=checkbox].magenta {
|
||||
accent-color: var(--magenta);
|
||||
}
|
||||
|
||||
.input-label {
|
||||
width: auto;
|
||||
}
|
||||
@@ -2028,12 +2365,25 @@ input.dust.ability-info {
|
||||
font-size: 1rem !important;
|
||||
}
|
||||
|
||||
span.xp {
|
||||
color: var(--purple) !important;
|
||||
padding: 5px !important;
|
||||
}
|
||||
|
||||
input.xp {
|
||||
height: 40px !important;
|
||||
width: 100% !important;
|
||||
font-size: 1.4rem !important;
|
||||
color: var(--fontColor) !important;
|
||||
text-shadow: 0 0 2px var(--purple);
|
||||
}
|
||||
|
||||
.color-receiver {
|
||||
background-color: var(--magenta);
|
||||
}
|
||||
|
||||
select.color-receiver {
|
||||
color: var(--invertedFontColor) !important;
|
||||
color: var(--white) !important;
|
||||
border-radius: 0px !important;
|
||||
}
|
||||
|
||||
@@ -2113,6 +2463,17 @@ input.ability-info {
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
select.type {
|
||||
margin-bottom: 0px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.by, .message,
|
||||
.sheet-by, .sheet-message,
|
||||
.em, .strong {
|
||||
color: var(--fontColor);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon {
|
||||
--templateFontSize: 16px;
|
||||
--critColor: var(--magenta);
|
||||
@@ -2122,13 +2483,14 @@ input.ability-info {
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-darkmode {
|
||||
--critColor:green;
|
||||
--fumbleColor:red;
|
||||
--importantColor:#00ADA2;
|
||||
--headerBackColor:#2e2e2e;
|
||||
--critColor: var(--green-lt);
|
||||
--fumbleColor: var(--red-lt);
|
||||
--importantColor: var(--blue-lt);
|
||||
--headerBackColor: var(--grey-dk);
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-icon {
|
||||
text-justify: inter-word;
|
||||
padding-bottom: var(--grid-gap);
|
||||
}
|
||||
.sheet-rolltemplate-icon:not(:first-child) {
|
||||
@@ -2137,8 +2499,8 @@ input.ability-info {
|
||||
.sheet-rolltemplate-icon .sheet-header {
|
||||
display: -ms-grid;
|
||||
display: grid;
|
||||
background-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(var(--headerBackColor)), to(transparent));
|
||||
background-image: linear-gradient(90deg, transparent, var(--headerBackColor) var(--big-gap) calc(100% - var(--big-gap)), transparent);
|
||||
border: 1px solid var(--borderColor);
|
||||
background-color: var(--headerBackColor);
|
||||
padding: var(--half-gap);
|
||||
margin-inline: calc(var(--half-gap) * -1);
|
||||
}
|
||||
@@ -2201,6 +2563,7 @@ input.ability-info {
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
line-height: 27px;
|
||||
}
|
||||
.sheet-rolltemplate-icon .sheet-template .sheet-template-row--text {
|
||||
border-top: 2px solid var(--fontColor);
|
||||
@@ -2214,9 +2577,12 @@ input.ability-info {
|
||||
max-height: 20rem;
|
||||
overflow-y: auto;
|
||||
white-space: pre-wrap;
|
||||
color: var(--fontColor);
|
||||
}
|
||||
.sheet-rolltemplate-icon .sheet-template a {
|
||||
padding: 0;
|
||||
position: relative;
|
||||
left: -10px;
|
||||
padding: 2px;
|
||||
}
|
||||
.sheet-rolltemplate-icon .sheet-template a:not([href^="!"]), .sheet-rolltemplate-icon .sheet-template a:not([href^="~"]) {
|
||||
color: var(--fontColor);
|
||||
@@ -2233,7 +2599,7 @@ input.ability-info {
|
||||
.sheet-rolltemplate-icon .sheet-template .inlinerollresult {
|
||||
font-size: 1.25em;
|
||||
position: relative;
|
||||
left: -10px;
|
||||
color: var(--fontColor);
|
||||
}
|
||||
.sheet-rolltemplate-icon .sheet-template .inlinerollresult[title*="[computed value]"], .sheet-rolltemplate-icon .sheet-template .inlinerollresult[original-title*="[computed value]"] {
|
||||
pointer-events: none;
|
||||
@@ -2251,4 +2617,7 @@ input.ability-info {
|
||||
}
|
||||
.sheet-rolltemplate-icon .sheet-template .inlinerollresult.importantroll {
|
||||
color: var(--importantColor);
|
||||
}
|
||||
.sheet-rolltemplate-icon .sheet-template .sheet-result > .inlinerollresult {
|
||||
left: -8px;
|
||||
}
|
||||
+590
-446
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
||||
@use 'mixins/scss/_generalsetup';
|
||||
@use 'mixins/scss/_nav';
|
||||
@use 'mixins/scss/_headers';
|
||||
@use 'mixins/scss/_labels';
|
||||
@use 'mixins/scss/_labelsandbuttons';
|
||||
@use 'mixins/scss/_articlesandsections';
|
||||
@use 'mixins/scss/_clocks';
|
||||
@use 'mixins/scss/_radiosandcheckboxes';
|
||||
|
||||
@@ -27,13 +27,16 @@
|
||||
"culture":"culture",
|
||||
"level":"lv.",
|
||||
"chapter":"ch.",
|
||||
"brief character description":"Brief character description...",
|
||||
"actions":"actions",
|
||||
"size:":"size:",
|
||||
"action roll":"action roll",
|
||||
"size":"size:",
|
||||
"max effort":"max effort:",
|
||||
"max strain":"max strain:",
|
||||
"effort:":"effort",
|
||||
"exhausted":"exhausted:",
|
||||
"strain:":"strain",
|
||||
"broken":"broken:",
|
||||
"whisper":"whisper:",
|
||||
"NA":"—",
|
||||
"INF":"∞",
|
||||
"per scene":"/ scene",
|
||||
@@ -42,6 +45,10 @@
|
||||
"unlimited":"unlimited",
|
||||
"effort":"effort",
|
||||
"strain":"strain",
|
||||
"uses":"uses",
|
||||
"combats":"combats",
|
||||
"expeditions":"expeditions",
|
||||
"brief character description":"Brief character description...",
|
||||
"bond flavor text or description":"Bond flavor text / Full character description...",
|
||||
"special ability":"special ability",
|
||||
"your special bond ability":"Your special bond ability or other unique quality...",
|
||||
@@ -49,50 +56,126 @@
|
||||
"regain effort when":"Regain Effort when...",
|
||||
"additional notes":"additional notes:",
|
||||
"write anything you want here":"Write anything you want here...",
|
||||
"powers":"powers",
|
||||
"write any additional notes here":"Write any additional notes here... (Note: quoted text can be stylized to be **bold** or *italic*)",
|
||||
"you can find more notes in the journal tab":"You can find more notes in the 'Journal' tab. You can style notes quoted to chat with **bold** and *italics*.",
|
||||
"power placeholder":"Powers give you the ability to do something without rolling, or boost your existing actions or abilities...",
|
||||
"gambits":"gambits",
|
||||
"gambit placeholder":"Gambits are Powers from other Bonds. You can only learn a gambit after earning FOUR Powers from your own Bond first...",
|
||||
"powers":"powers",
|
||||
"power":"power",
|
||||
"gambits":"gambits",
|
||||
"gambit":"gambit",
|
||||
"hp":"HP",
|
||||
"hp_max":"max HP",
|
||||
"divider":"/",
|
||||
"wounds":"wounds",
|
||||
"vitality":"vit",
|
||||
"vitality":"vitality",
|
||||
"vit":"vit",
|
||||
"vigor":"vigor",
|
||||
"defense":"def",
|
||||
"defense":"defense",
|
||||
"def":"def",
|
||||
"armor":"armor",
|
||||
"speed":"spd",
|
||||
"speed":"speed",
|
||||
"spd":"spd",
|
||||
"dash":"dash",
|
||||
"damage":"dmg",
|
||||
"damage":"damage",
|
||||
"dmg":"dmg",
|
||||
"fray":"fray",
|
||||
"saving throw":"save roll:",
|
||||
"save":"save",
|
||||
"quote":"quote",
|
||||
"attack":"attack",
|
||||
"range":"range",
|
||||
"rng":"rng",
|
||||
"ranged":"ranged",
|
||||
"melee":"melee",
|
||||
"light":"light",
|
||||
"critical":"critical",
|
||||
"bonus dmg":"bonus dmg.",
|
||||
"bonus":"bonus",
|
||||
"miss dmg":"miss dmg.",
|
||||
"miss":"miss",
|
||||
"attacks":"attacks",
|
||||
"talents":"talents",
|
||||
"traits":"traits",
|
||||
"trait":"trait",
|
||||
"relics":"relics",
|
||||
"trophies":"trophies",
|
||||
"abilities":"abilities",
|
||||
"additional abilities":"additional abilities",
|
||||
"limit break":"limit break",
|
||||
"mastery name":"mastery",
|
||||
"special mechanic":"special mechanic:",
|
||||
"primary job flavor text":"Primary job flavor text...",
|
||||
"job gambit desc":"Gambit reminder text...",
|
||||
"class notes desc":"Write any notes about your class here...",
|
||||
"special mechanic desc":"Describe your special mechanic here...",
|
||||
"secondary jobs":"secondary jobs",
|
||||
"trait description":"Describe your trait here...",
|
||||
"write about your kin":"Write about your kin / species here...",
|
||||
"write about your culture":"Write about your culture / religion here...",
|
||||
"relic":"relic",
|
||||
"trophy":"trophy",
|
||||
"relic flavor":"Relic flavor text / Describe your relic here...",
|
||||
"relic effects":"Write about your Relic's powers and effects...",
|
||||
"trophy effect":"Write what your trophy does...",
|
||||
"aspected":"aspected:",
|
||||
"infused dust":"infused:",
|
||||
"xp":"XP",
|
||||
"dust":"dust",
|
||||
"ideals":"ideals",
|
||||
"level up reminder line 0":"Once a character's XP bar is full, clear it and mark a level up.",
|
||||
"level up reminder line 1":"At every interval, unlock a new Ability or Talent.",
|
||||
"additional resource":"Additional currency",
|
||||
"ideals":"ideals",
|
||||
"write your ideal here":"Write an Ideal here...",
|
||||
"write your ideal here":"Write an ideal, belief, or oath here...",
|
||||
"xp reminder title":"Check at the end of a session:",
|
||||
"xp reminder line 0":"+1 XP if you ticked one Ideal / +2 XP if you ticked two or more.",
|
||||
"xp reminder line 1":"+1 XP if you overcame a Challenge / +2 XP for multiple Challenges.",
|
||||
"xp reminder line 2":"+1-3 XP for completing a Personal Ambition / +1 XP per Group Ambition.",
|
||||
"xp reminder line 3":"+1 XP if you invoked one of your Burdens at least once.",
|
||||
"personal ambition desc":"Write about your personal goals, projects, or desires here...",
|
||||
"group ambition desc":"Write about your group's goals, projects, or desires here...",
|
||||
"ambition action roll":"ambition action roll:",
|
||||
"ambition reminder line 0":"You may also spend 2 Dust to advance by one segment during downtime.",
|
||||
"ambition reminder line 1":"1-3 = Ambition advances by one segment.",
|
||||
"ambition reminder line 2":"4-5 = Ambition advances by two segments.",
|
||||
"ambition reminder line 3":"6 = Ambition advances by three segments.",
|
||||
"ambition reminder line 4":"6,6 = Ambition advances by five segments!",
|
||||
"fortune action roll":"fortune rolls:",
|
||||
"fortune reminder line 0":"Trying to accomplish a task with low-stakes or unclear consequences, but a roll still feels necessary? Pick an Action based on what you're trying to do and roll as normal, but with the following outcomes:",
|
||||
"fortune reminder line 1":"1-3 = Poor result.",
|
||||
"fortune reminder line 2":"4-5 = Average result.",
|
||||
"fortune reminder line 3":"6 = Good result.",
|
||||
"fortune reminder line 4":"6,6 = Excellent result!",
|
||||
"ambitions":"ambitions",
|
||||
"group name":"group name:",
|
||||
"describe your camp":"Describe your camp / ship / fortress here...",
|
||||
"fixtures":"fixtures",
|
||||
"fixture":"fixture name",
|
||||
"fixture description":"Describe your fixture here...",
|
||||
"fixture effects":"Write what the fixture does...",
|
||||
"upgrade effects":"Write about any upgrades you've made...",
|
||||
"purchase cost":"purchase cost",
|
||||
"upgrade cost":"upgrade cost",
|
||||
"total invested":"total invested",
|
||||
"burdens":"burdens",
|
||||
"burden":"burden",
|
||||
"notes":"notes",
|
||||
"possessions":"possessions",
|
||||
"class resource":"class resource:",
|
||||
"resource":"resource",
|
||||
"resources":"resources",
|
||||
"reminders":"reminders",
|
||||
"first burden":"first burden",
|
||||
"second burden":"second burden",
|
||||
"third burden":"third burden",
|
||||
"foes_allies":"foes / allies",
|
||||
"npc_summon_foe":"npc / summon / foe",
|
||||
"creature description or powers":"Creature's description / powers...",
|
||||
"ability text":"Creature's abilities and effects...",
|
||||
"additional notes or abilities":"Any additional abilities, notes, or effects...",
|
||||
"write any notes about this clock":"A general-purpose clock, use this to track anything you like. Write about it here...",
|
||||
"clocks":"clocks",
|
||||
"-1d":"-1",
|
||||
"possessions textarea":"List anything else you're carrying here / Describe some other propetry you own...",
|
||||
"rules reminder wounds":"−25% Max HP per Wound",
|
||||
"burdens reminder title":"Healing burdens:",
|
||||
"burdens reminder line 0":"Each Burden afflicts TWO Actions that have one or more dice. Use the black checkboxes to mark these actions.",
|
||||
@@ -100,11 +183,42 @@
|
||||
"burdens reminder line 2":"You can forgo your own healing to help someone else advance a segment by ONE extra step.",
|
||||
"burdens reminder line 3":"You may also spend 2 Dust to advance your healing by one segment.",
|
||||
"burdens reminder line 4":"Lift the burden (and the respective penalties) when the last segment would be filled.",
|
||||
"personal resolve":"personal resolve:",
|
||||
"party resolve":"party resolve:",
|
||||
"limit break reminder line 0":"Limit Breaks cost Resolve, and can only be used ONCE per combat encounter.",
|
||||
"limit break reminder line 1":"Party Resolve increases by 1 at the start of EACH ROUND in combat, and depletes to 0 when combat ends.",
|
||||
"limit break reminder line 2":"Personal Resolve is gained at a rate of 1 after EVERY combat, and resets to 0 when you camp.",
|
||||
"limit break reminder line 3":"When you spend Resolve to use a Limit Break, you can use any combination of party or personal, but you MUST get your group's permission to use the party pool.",
|
||||
"ability flavor":"Write flavor text, or 'On Hit' and 'Miss' effects here... You can calculate [[1d@{damage-die}+@{fray}]].",
|
||||
"ability effects":"Write the ability's main or additional effects here... You can also make an inline attack roll with [[1d20@{boons}]].",
|
||||
"talent effect":"Write the ability's talent effects here...",
|
||||
"talent":"talent",
|
||||
"mastery effect":"Write the ability's mastery effects here...",
|
||||
"mastery":"mastery",
|
||||
"basic abilities":"Basic Abilities:",
|
||||
"basic abilities reminder line 0":"DASH (1 action): Dash half your Speed, rounded up.",
|
||||
"basic abilities reminder line 1":"INTERACT (1 action): Interact with something on the map that takes more than a few moments.",
|
||||
"basic abilities reminder line 2":"RESCUE (1 action): Help an adjacent defeated ally. They end the incapacitated state and heal to full HP, minus any wounds.",
|
||||
"basic abilities reminder line 3":"BASIC ATTACK (1-2 actions): Make a basic light or heavy attack.",
|
||||
"basic abilities reminder line 4":"WHACK! (1 action): Kick, punch, or throw a stone. Deals 1 damage to any character within 3 spaces, no roll required.",
|
||||
"interludes":"interludes",
|
||||
"interlude reminder line 1":"Clear all Strain.",
|
||||
"interlude reminder line 2":"Regain all Effort.",
|
||||
"interlude reminder line 3":"Regain all HP",
|
||||
"interlude reminder line 4":"Spend any XP.",
|
||||
"rules reminders info line 0":"Click the ⓘ symbol to show / hide ALL rules reminders.",
|
||||
"roll":"roll",
|
||||
"vs":"vs."
|
||||
"vs":"vs. ",
|
||||
"progress":"progress",
|
||||
"sheet settings":"sheet settings",
|
||||
"camp name":"camp name (displayed in journal):",
|
||||
"tactics boons_curses prompt":"tactical 'boons / curses' prompt:",
|
||||
"narrative boons_curses prompt":"narrative 'boons / curses' prompt:",
|
||||
"save target":"generic save target:",
|
||||
"maxhp%":"max HP mult:",
|
||||
"bloodied%":"bloodied ratio:",
|
||||
"dash%":"dash ratio:",
|
||||
"heavy%":"heavy dmg dice:",
|
||||
"report an issue":"report issue",
|
||||
"send a tip":"send tip"
|
||||
}
|
||||
Reference in New Issue
Block a user