adding sheets for In Which We Live And Breathe

This commit is contained in:
Ashton McAllan
2018-07-12 12:42:56 +09:30
parent 8def685c55
commit e173d2dcc3
4 changed files with 410 additions and 0 deletions
+131
View File
@@ -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;
}
}
+271
View File
@@ -0,0 +1,271 @@
<input type="radio" name="attr_tab" value="character" class="sheet-tab-character"><span></span>character&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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>
&nbsp;
<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&nbsp;
<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

+8
View File
@@ -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."
}