adding sheets for In Which We Live And Breathe
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
.charsheet,.sheet-rolltemplate-iwwlab{
|
||||
background-color:#112217;
|
||||
padding:2em;
|
||||
background-color: #282426;
|
||||
background-image: url("https://acegiak.net/wp-content/uploads/2016/08/scanlines0.25.png");
|
||||
color:white;
|
||||
box-shadow: inset 0 0 10px #aaffff;
|
||||
border:1px solid #ddffff;
|
||||
border-radius:5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.sheet-rolltemplate-iwwlab .inlinerollresult{
|
||||
background-color:rgba(0,0,0,0.25) !important;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-iwwlab .sheet-img{
|
||||
float:right;
|
||||
margin-right:-1.5em;
|
||||
}
|
||||
|
||||
|
||||
.sheet-rolltemplate-iwwlab .sheet-head{
|
||||
font-family:"Contrail One",sans-serif !important;
|
||||
font-weight:bold;
|
||||
font-size:125%;
|
||||
margin-left:-0.5em;
|
||||
margin-top:-0.5em;
|
||||
}
|
||||
.sheet-rolltemplate-iwwlab .sheet-img img{
|
||||
max-height:100px;
|
||||
max-width:100px;
|
||||
box-shadow:inset 0px 0px 5px #000;
|
||||
border:2px solid #bdd;
|
||||
background-color:rgba(0,0,0,0.5) !important;
|
||||
border-radius:5px;
|
||||
|
||||
}
|
||||
.sheet-crewtab, .sheet-charactertab{
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.sheet-tab-crew:checked ~ .sheet-crewtab{
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
.sheet-tab-character:checked ~ .sheet-charactertab{
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
.sheet-image::after{
|
||||
content:attr(value url);
|
||||
|
||||
}
|
||||
label,h2,button{
|
||||
font-style: normal;
|
||||
font-family:"Contrail One",sans-serif !important;
|
||||
font-weight: normal;
|
||||
background:none;
|
||||
border:none;
|
||||
box-shadow:none;
|
||||
text-shadow: 0px 0px 5px #aaffff;
|
||||
color:#ddffff;
|
||||
}
|
||||
button::before{
|
||||
content:'' !important;
|
||||
}
|
||||
.sheet-url{
|
||||
width:8em;
|
||||
}
|
||||
.sheet-showUrl{
|
||||
float:right;
|
||||
display:inline-block;
|
||||
|
||||
}
|
||||
.sheet-showUrl button{
|
||||
font-family:"Pictos",sans-serif !important;
|
||||
}
|
||||
.sheet-hidden{
|
||||
opacity:0 !important;
|
||||
}
|
||||
/* Hide actual radio */
|
||||
input[type="radio"] {
|
||||
opacity: 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
left: 6px;
|
||||
margin: -10px;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* Fake radio */
|
||||
input[type="radio"] + span::before {
|
||||
margin-right: 4px;
|
||||
border: solid 1px #a8a8a8;
|
||||
line-height: 14px;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
box-shadow: 0 0 2px #222;
|
||||
background: #111;
|
||||
background: radial-gradient(#111, #222);
|
||||
content: "L";
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
font-size: 11px;
|
||||
border-radius: 50%;
|
||||
font-style: normal !important;
|
||||
font-family:"Pictos",sans-serif;
|
||||
}
|
||||
|
||||
/* Remove dot from all radios _after_ selected one */
|
||||
input[type="radio"]:checked ~ input[type="radio"] + span::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.sheet-attributes, .sheet-attributes label{
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
input,textarea{
|
||||
color:#ddd;
|
||||
background-color:#222;
|
||||
|
||||
}
|
||||
textarea{
|
||||
height:2.75em;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,271 @@
|
||||
|
||||
<input type="radio" name="attr_tab" value="character" class="sheet-tab-character"><span></span>character
|
||||
<input type="radio" name="attr_tab" value="crew" class="sheet-tab-crew"><span></span>crew/community<br>
|
||||
<hr class="sheet-hidden">
|
||||
<div class="sheet-charactertab"><div class="sheet-2colrow">
|
||||
|
||||
<div class="sheet-col">
|
||||
<label class="stat">Name: <input type="text" name="attr_name"></input></label>
|
||||
<input type="hidden" name="attr_character_name"></input>
|
||||
<label class="stat">Pronouns: <input type="text" name="attr_pronouns"></input></label>
|
||||
<label class="stat">Background: <input type="text" name="attr_background"></input></label>
|
||||
<label class="stat">Look:<div class="showUrl"><input type="text" name="attr_character_avatar" placeholder="url" class="url"></input><button type="roll" value="&{template:iwwlab} {{title=@{character_name}}} {{description=@{look}}} {{img=@{character_avatar}}}">E</button></div></label><textarea name="attr_look"></textarea><br>
|
||||
<label class="stat">Current Purchases:<textarea name="attr_purchases"></textarea><br>
|
||||
|
||||
<label>Hard Limits, Capabilities, Digital Spheres, Mystical Spheres
|
||||
<fieldset class="repeating_purchases">
|
||||
<input type="text" name="attr_traits"><br>
|
||||
</fieldset>
|
||||
</label>
|
||||
</div>
|
||||
<div class="sheet-col sheet-attributes">
|
||||
<h2>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=Mind}} {{name=@{character_name}}} {{result=[[{[[[[{(ceil(@{digitalwork}/100)+ceil(@{study}/100)+ceil(@{tinker}/100)+ceil(@{tskulk}/100))+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[((ceil(@{digitalwork}/100)+ceil(@{survey}/100)+ceil(@{investigate}/100))+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Mind</button>
|
||||
</h2>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=study}} {{name=@{character_name}}} {{result=[[{[[[[{@{study}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{study}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Study</button>
|
||||
|
||||
<input type="radio" name="attr_study" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_study" value="1"><span></span>
|
||||
<input type="radio" name="attr_study" value="2"><span></span>
|
||||
<input type="radio" name="attr_study" value="3"><span></span>
|
||||
<input type="radio" name="attr_study" value="4"><span></span>
|
||||
</label>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=skulk}} {{name=@{character_name}}} {{result=[[{[[[[{@{skulk}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{skulk}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Skulk</button>
|
||||
|
||||
<input type="radio" name="attr_skulk" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_skulk" value="1"><span></span>
|
||||
<input type="radio" name="attr_skulk" value="2"><span></span>
|
||||
<input type="radio" name="attr_skulk" value="3"><span></span>
|
||||
<input type="radio" name="attr_skulk" value="4"><span></span>
|
||||
</label>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=tinker}} {{name=@{character_name}}} {{result=[[{[[[[{@{tinker}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{tinker}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Tinker</button>
|
||||
|
||||
<input type="radio" name="attr_tinker" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_tinker" value="1"><span></span>
|
||||
<input type="radio" name="attr_tinker" value="2"><span></span>
|
||||
<input type="radio" name="attr_tinker" value="3"><span></span>
|
||||
<input type="radio" name="attr_tinker" value="4"><span></span>
|
||||
</label>
|
||||
<label>Digital Work
|
||||
<input type="radio" name="attr_digitalwork" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_digitalwork" value="1"><span></span>
|
||||
<input type="radio" name="attr_digitalwork" value="2"><span></span>
|
||||
<input type="radio" name="attr_digitalwork" value="3"><span></span>
|
||||
<input type="radio" name="attr_digitalwork" value="4"><span></span>
|
||||
</label>
|
||||
<label class="stat">Minor Harm: <input type="text" name="attr_mindminor"></input></label>
|
||||
<label class="stat">Major Harm: <input type="text" name="attr_mindmajor"></input></label>
|
||||
<h2>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=Body}} {{name=@{character_name}}} {{result=[[{[[[[{(ceil(@{wreck}/100)+ceil(@{scramble}/100)+ceil(@{scrap}/100)+ceil(@{capability}/100))+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[((ceil(@{wreck}/100)+ceil(@{finesse}/100)+ceil(@{capability}/100))+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Body</button>
|
||||
</h2>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=scrap}} {{name=@{character_name}}} {{result=[[{[[[[{@{scrap}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{scrap}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Scrap</button>
|
||||
|
||||
<input type="radio" name="attr_scrap" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_scrap" value="1"><span></span>
|
||||
<input type="radio" name="attr_scrap" value="2"><span></span>
|
||||
<input type="radio" name="attr_scrap" value="3"><span></span>
|
||||
<input type="radio" name="attr_scrap" value="4"><span></span>
|
||||
</label>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=scramble}} {{name=@{character_name}}} {{result=[[{[[[[{@{scramble}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{scramble}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Scramble</button>
|
||||
|
||||
<input type="radio" name="attr_scramble" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_scramble" value="1"><span></span>
|
||||
<input type="radio" name="attr_scramble" value="2"><span></span>
|
||||
<input type="radio" name="attr_scramble" value="3"><span></span>
|
||||
<input type="radio" name="attr_scramble" value="4"><span></span>
|
||||
</label>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=wreck}} {{name=@{character_name}}} {{result=[[{[[[[{@{wreck}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{wreck}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Wreck</button>
|
||||
|
||||
<input type="radio" name="attr_wreck" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_wreck" value="1"><span></span>
|
||||
<input type="radio" name="attr_wreck" value="2"><span></span>
|
||||
<input type="radio" name="attr_wreck" value="3"><span></span>
|
||||
<input type="radio" name="attr_wreck" value="4"><span></span>
|
||||
</label>
|
||||
<label>Capability
|
||||
<input type="radio" name="attr_capability" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_capability" value="1"><span></span>
|
||||
<input type="radio" name="attr_capability" value="2"><span></span>
|
||||
<input type="radio" name="attr_capability" value="3"><span></span>
|
||||
<input type="radio" name="attr_capability" value="4"><span></span>
|
||||
</label>
|
||||
<label class="stat">Minor Harm: <input type="text" name="attr_bodyminor"></input></label>
|
||||
<label class="stat">Major Harm: <input type="text" name="attr_bodymajor"></input></label>
|
||||
<h2>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=Mind}} {{name=@{character_name}}} {{result=[[{[[[[{(ceil(@{sway}/100)+ceil(@{consort}/100)+ceil(@{build}/100)+ceil(@{mysticalwork}/100))+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[((ceil(@{sway}/100)+ceil(@{consort}/100)+ceil(@{mysticalwork}/100))+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Soul</button>
|
||||
</h2>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=sway}} {{name=@{character_name}}} {{result=[[{[[[[{@{sway}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{sway}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Sway</button>
|
||||
|
||||
<input type="radio" name="attr_sway" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_sway" value="1"><span></span>
|
||||
<input type="radio" name="attr_sway" value="2"><span></span>
|
||||
<input type="radio" name="attr_sway" value="3"><span></span>
|
||||
<input type="radio" name="attr_sway" value="4"><span></span>
|
||||
</label>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=consort}} {{name=@{character_name}}} {{result=[[{[[[[{@{consort}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{consort}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Consort</button>
|
||||
|
||||
<input type="radio" name="attr_consort" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_consort" value="1"><span></span>
|
||||
<input type="radio" name="attr_consort" value="2"><span></span>
|
||||
<input type="radio" name="attr_consort" value="3"><span></span>
|
||||
<input type="radio" name="attr_consort" value="4"><span></span>
|
||||
</label>
|
||||
<label>
|
||||
<button type="roll" value="&{template:iwwlab} {{action=build}} {{name=@{character_name}}} {{result=[[{[[[[{@{build}+?{Bonus Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(@{build}+?{Bonus Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Build</button>
|
||||
|
||||
<input type="radio" name="attr_build" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_build" value="1"><span></span>
|
||||
<input type="radio" name="attr_build" value="2"><span></span>
|
||||
<input type="radio" name="attr_build" value="3"><span></span>
|
||||
<input type="radio" name="attr_build" value="4"><span></span>
|
||||
</label>
|
||||
<label>Mystical Work
|
||||
<input type="radio" name="attr_mysticalwork" value="0" checked><span class="sheet-hidden"></span>
|
||||
<input type="radio" name="attr_mysticalwork" value="1"><span></span>
|
||||
<input type="radio" name="attr_mysticalwork" value="2"><span></span>
|
||||
<input type="radio" name="attr_mysticalwork" value="3"><span></span>
|
||||
<input type="radio" name="attr_mysticalwork" value="4"><span></span>
|
||||
|
||||
</label>
|
||||
<label class="stat">Minor Harm: <input type="text" name="attr_soulminor"></input></label>
|
||||
<label class="stat">Major Harm: <input type="text" name="attr_soulmajor"></input></label>
|
||||
<label><button type="roll" value="&{template:iwwlab} {{action=?{Action}}} {{name=@{character_name}}} {{result=[[{[[[[{?{Dice|0}+d0}<0]]*2]]d6skl1cf<3, [[(?{Dice|0})d1>1]]d6skh1cf<3}kh1]]}} {{img=@{character_avatar}}}">Fortune</button>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-crewtab">
|
||||
<div class="sheet-2colrow">
|
||||
<div class="sheet-col">
|
||||
<label class="stat">Crew Name: <input type="text" name="attr_character_name"></input></label>
|
||||
<label class="stat">Crew Type: <input type="text" name="attr_type"></input></label>
|
||||
<label class="stat">What We Do: <input type="text" name="attr_xp_trigger"></input></label>
|
||||
<label class="stat">XP: <input type="number" name="attr_xp"></input></label>
|
||||
|
||||
<label class="stat">Cash: <input type="number" name="attr_cash"></input>/<input type="number" name="attr_cash_max"></input></label>
|
||||
<label class="stat">Rep: <input type="number" name="attr_rep"></input>/<input type="number" name="attr_rep_max"></input></label>
|
||||
<label class="stat">Strain: <input type="number" name="attr_strain"></input>/<input type="number" name="attr_strain_max"></input></label>
|
||||
<label>Crew Gear
|
||||
<fieldset class="repeating_crewgear">
|
||||
<input type="text" name="attr_gearname"><div class="showUrl"><input type="text" name="attr_gearimg" placeholder="url" class="url"><button type="roll" value="&{template:iwwlab} {{title=@{gearname}}} {{description=@{geardetails}}} {{img=@{gearimg}}}">E</button></div><br>
|
||||
<textarea name="attr_geardetails"></textarea><br>
|
||||
</fieldset>
|
||||
</label>
|
||||
<label>Corps
|
||||
<fieldset class="repeating_corps">
|
||||
<input type="text" name="attr_corpname">/<input type="number" name="attr_corpstrat" value="0" width="2em"><div class="showUrl"><input type="text" name="attr_corpimg" placeholder="url" class="url"><button type="roll" value="&{template:iwwlab} {{title=@{corpname} / @{corpstrat}}} {{description=@{corpdetails}}} {{img=@{corpimg}}}">E</button></div><br>
|
||||
<textarea name="attr_corpdetails"></textarea><br>
|
||||
</fieldset>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="sheet-col">
|
||||
|
||||
<label>Contacts
|
||||
<fieldset class="repeating_contacts">
|
||||
<input type="text" name="attr_contactname"><div class="showUrl"><input type="text" name="attr_contactimg" placeholder="url" class="url"><button type="roll" value="&{template:iwwlab} {{title=@{contactname}}} {{description=@{contactdetails}}} {{img=@{contactimg}}}">E</button></div><br>
|
||||
<textarea name="attr_contactdetails"></textarea><br>
|
||||
</fieldset>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label>IMPORT:<textarea name="attr_import"></textarea></label>
|
||||
|
||||
|
||||
|
||||
<script type="text/worker">
|
||||
on("change:import", function() {
|
||||
getAttrs(["import"], function(values) {
|
||||
var text = values.import.replace(/(?:\r\n|\r|\n)/g, '');
|
||||
var vals = JSON.parse(text);
|
||||
|
||||
console.log("start:");
|
||||
console.log(truevals);
|
||||
|
||||
console.log("result:");
|
||||
var truevals = {};
|
||||
|
||||
|
||||
for (var property in vals) {
|
||||
if (vals.hasOwnProperty(property)) {
|
||||
if(typeof vals[property] === "string" || typeof vals[property] === "number"){
|
||||
truevals[property] = vals[property];
|
||||
}
|
||||
|
||||
if(vals[property] instanceof Array){
|
||||
for (i = 0; i < vals[property].length; ++i) {
|
||||
var currentRow = vals[property][i];
|
||||
var currentRowId = generateRowID();
|
||||
for (valProp in currentRow) {
|
||||
if (currentRow.hasOwnProperty(valProp)) {
|
||||
truevals["repeating_"+property+"_"+currentRowId+"_"+valProp] = currentRow[valProp];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(truevals);
|
||||
|
||||
setAttrs(truevals);
|
||||
setAttrs({import:""});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<!-- roll template -->
|
||||
<rolltemplate class="sheet-rolltemplate-iwwlab">
|
||||
<div class="sheet-rolltemplate-{{action}}">
|
||||
<div class="sheet-head">
|
||||
{{#name}}
|
||||
{{name}} uses {{action}}
|
||||
{{/name}}
|
||||
{{#title}}
|
||||
{{title}}
|
||||
{{/title}}
|
||||
</div>
|
||||
{{#img}}
|
||||
<div class="sheet-img">
|
||||
[Image]({{img}})
|
||||
</div>
|
||||
{{/img}}
|
||||
|
||||
<br>
|
||||
|
||||
{{#result}}
|
||||
Result: {{result}}
|
||||
{{/result}}
|
||||
|
||||
{{#description}}
|
||||
{{description}}
|
||||
|
||||
{{/description}}
|
||||
</div>
|
||||
|
||||
</rolltemplate>
|
||||
|
||||
|
||||
<script type="text/worker">
|
||||
on("change:name change:pronouns", function() {
|
||||
getAttrs(["name", "pronouns"], function(values) {
|
||||
var name = "";
|
||||
name += values.name;
|
||||
name += " ("+values.pronouns+")";
|
||||
setAttrs({
|
||||
character_name: name
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 79 KiB |
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"html": "iwwlab.html",
|
||||
"css": "iwwlab.css",
|
||||
"authors": "Ashton McAllan",
|
||||
"roll20userid": "666728",
|
||||
"preview": "iwwlab.png",
|
||||
"instructions": "Main sheet for In Which We Live And Breathe, still partially in development for early access game."
|
||||
}
|
||||
Reference in New Issue
Block a user