[Butterfly aspect] first release (#5768)

* spelling & burst

* First Release

* Revert "spelling & burst"

This reverts commit f322adbde0c4b0e1e155d47f1ce4343ad5e9313a.

* formating error
This commit is contained in:
Tealk
2020-01-06 10:29:02 -06:00
committed by Cassie Levett
parent 92b28483d3
commit 677f59e7fc
6 changed files with 656 additions and 0 deletions
File diff suppressed because one or more lines are too long
+393
View File
@@ -0,0 +1,393 @@
/* Allgemein */
input {
background: transparent;
width: 100%;
border: 1px solid #ddd;
border-radius: 3px;
}
input[type=number] {
text-align: center;
-moz-appearance: textfield;
-webkit-appearance: textfield;
}
textarea {
margin: 0;
width: 100%;
height: 65px;
resize: vertical;
box-sizing: border-box;
border: 1px solid #ddd;
border-radius: 3px;
}
span {
text-transform: uppercase;
}
label {
width: min-content;
}
/* Global Config */
.sheet-api-toggle[value="1"] ~ .sheet-no-api {
display: none;
}
.sheet-api-toggle[value="0"] ~ .sheet-api {
display: none;
}
/* Button Roll */
.sheet-container button[type="roll"] {
width: 100%;
height:24px;
padding: 0;
margin: 0;
border-top-left-radius: 10px;
border-bottom-right-radius: 10px;
border-radius: unset;
background-image: none;
background-color: transparent;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.sheet-container button[type="roll"]:hover {
background: black;
color: white;
}
.sheet-container button[type="roll"] label,
.sheet-container button[type="roll"] input {
line-height: 24px;
font-size: 13px;
text-align:center;
font-weight:700;
}
/* Tabelle */
.sheet-container .sheet-grid,
.sheet-container .sheet-gridplace .repcontainer .repitem {
display: grid;
grid-template-columns: 405px 155px 75px 75px 55px 55px;
grid-gap: 5px;
}
.sheet-container .sheet-grid > div {
background-color: #EEE;
font-weight: bold;
text-align: center;
}
.sheet-container .sheet-gridplace .repcontainer .repitem input,
.sheet-container .sheet-gridplace .repcontainer .repitem select,
.sheet-container .sheet-gridplace .repcontainer .repitem button {
width: -webkit-fill-available;
width: -moz-available;
}
.sheet-container .sheet-gridplace .repcontainer .repitem button.repcontrol_del {
width: auto;
}
/* Global */
.sheet-container {
width: 850px;
}
.sheet-container .sheet-number-20 {
font-size: 20px;
}
.sheet-container .sheet-float {
float: left;
box-sizing: border-box;
width: 100%;
margin: 4px 0;
padding-right: 5px;
}
.sheet-container .sheet-full {
ma-width: 100%;
}
.sheet-container .sheet-threequarters {
max-width: 75%;
}
.sheet-container .sheet-half {
max-width: 50%;
}
.sheet-container .sheet-quarter {
max-width: 25%;
}
.sheet-container .sheet-textcenter {
text-align: center;
}
.sheet-container .sheet-bottomspace {
margin-bottom: 5px;
}
.sheet-container .sheet-formular {
padding: 9px;
margin-top: 15px;
border: 1px solid #ddd;
border-radius: 3px;
}
.sheet-container .sheet-formular label {
display: block;
float: left;
height: 20px;
margin-top: -19px;
margin-bottom: 0px;
background: #fff;
padding: 2px 5px 2px 5px;
color: #b9b9b9;
font-weight: normal;
}
.sheet-container .sheet-formular input {
box-sizing: border-box;
border: 0;
}
.sheet-container .sheet-header {
margin-bottom: 4px;
padding: 2px 8px;
background: black;
color: white;
font-weight: bold;
border-top-left-radius: 10px;
border-bottom-right-radius: 10px;
}
/* Head */
.sheet-container .sheet-head-logo {
width: 200px;
vertical-align: middle;
}
.sheet-container .sheet-logo {
height: 200px;
}
.sheet-container .sheet-gmroll {
text-align: center;
}
.sheet-container .sheet-gmroll select{
width: -webkit-fill-available;
width: -moz-available;
}
.sheet-container .sheet-schicksal {
text-align: center;
}
.sheet-container .sheet-schicksal .sheet-bspace {
padding-bottom: 2px;
}
.sheet-container .sheet-schicksal .sheet-input {
height: 100%;
margin:0;
padding:0;
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
}
.sheet-container .sheet-schicksal .sheet-button {
height: 25px;
width: 25px;
}
.sheet-container .sheet-schicksal .sheet-button::before {
display: none;
}
.sheet-container .sheet-schicksal .sheet-input {
border: none;
margin: 0;
height: 100%;
}
.sheet-container .sheet-schicksal .sheet-input::after {
display: block;
width: 100%;
height: 100%;
text-align: center;
font-size: 16px;
line-height: normal;
}
.sheet-container .sheet-schicksal .sheet-input.sheet-s0::after {content:"0";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s1::after {content:"1";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s2::after {content:"2";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s3::after {content:"3";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s4::after {content:"4";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s5::after {content:"5";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s6::after {content:"6";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s7::after {content:"7";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s8::after {content:"8";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s9::after {content:"9";}
.sheet-container .sheet-schicksal .sheet-input.sheet-s10::after {content:"10";}
.sheet-container .sheet-schicksal input:checked {
background-color: black;
color: white;
}
.sheet-container .sheet-head-info {
width: calc(100% - 200px);
}
.sheet-container .sheet-head-info-boxes {
width: 100%;
max-width: calc(100% - 100px);
}
.sheet-container .sheet-head-info-boxes input {
width: 100%;
box-sizing: border-box;
}
.sheet-container .sheet-head-info-boxes textarea {
height: 64px;
border: none;
}
.sheet-container .sheet-head-info-sideboxes {
width: 100px;
float: right;
}
.sheet-container .sheet-head-info-sideboxes > div {
}
.sheet-container .sheet-head-info-sideboxes button,
.sheet-container .sheet-attribut-stats button {
display: block;
float: left;
margin-top: -21px;
background: #fff;
padding: 2px 5px 2px 5px;
color: #b9b9b9;
border: none;
}
.sheet-container .sheet-head-info-sideboxes input {
width: -webkit-fill-available;
width: -moz-available;
text-align: center;
}
.sheet-container .sheet-head-info-sideboxes button[type="roll"]:before,
.sheet-container .sheet-attribut-stats button[type="roll"]:before {
content: "";
display: none;
}
.sheet-container .sheet-head-stats {
display: flex;
width: 100%;
justify-content: space-between;
}
.sheet-container .sheet-head-stats > div {
width: min-content;
}
.sheet-container .sheet-head-stats input {
max-width: 100px;
float: right;
text-align: center;
}
.sheet-container .sheet-head-stats-health,
.sheet-container .sheet-head-stats-bewegung{
display: flex;
width: max-content;
}
.sheet-container .sheet-head-stats-health input{
max-width: 80px;
}
.sheet-container .sheet-head-stats .sheet-formular > input {
width: -webkit-fill-available;
width: -moz-available;
}
/* First Row */
.sheet-container .sheet-attribut {
}
.sheet-container .sheet-attribut-stats {
display: flex;
width: 100%;
justify-content: space-evenly;
flex-flow: row wrap;
}
.sheet-container .sheet-attribut-stats .sheet-formular {
width: 26%;
}
.sheet-container .sheet-attribut-stats input {
width: -webkit-fill-available;
width: -moz-available;
text-align: center;
}
.sheet-container .sheet-aspects {
}
/* Second Row */
.sheet-container .sheet-skills {
}
.sheet-container .sheet-skills input,
.sheet-container .sheet-skills select,
.sheet-container .sheet-skills button[type="roll"] {
border: none;
}
/* Third Row */
.sheet-container .sheet-stunts {
}
.sheet-container .sheet-inventar {
}
.sheet-container .sheet-inventar .sheet-rustung {
padding-bottom: 4px;
}
.sheet-container .sheet-inventar input:first-child{
width: 250px;
}
.sheet-container .sheet-inventar input{
width: 81px;
}
+245
View File
@@ -0,0 +1,245 @@
<div class="sheet-container">
<div class="sheet-float sheet-head">
<div class="sheet-float sheet-head-logo">
<img class="sheet-logo" src="img/logo.png" alt="AnzahCraft" />
<div class="sheet-gmroll">
<select name="attr_gmroll">
<option value="nogm" selected="selected">Für alle sichtbar w&uuml;rfelt</option>
<option value="gm">Für GM w&uuml;rfelt</option>
</select>
<input type="hidden" name="attr_abilityroll" />
</div>
</div>
<div class="sheet-float sheet-head-info">
<div class="sheet-header">
<span>Allgemeines</span>
</div>
<div class="sheet-float sheet-head-info-boxes">
<div class="sheet-formular">
<label for="attr_character_name">Charaktername</label>
<input class="sheet-bottomspace" type="text" name="attr_character_name" />
</div>
<div class="sheet-formular">
<label for="attr_character_description">Beschreibung</label>
<textarea name="attr_character_description" style="height: 102px;"></textarea>
</div>
</div>
<div class="sheet-float sheet-head-info-sideboxes">
<div class="sheet-formular">
<input type="hidden" class="sheet-api-toggle" name="api_toggle" />
<button type="roll" class="sheet-small-button no-api" name="roll_schicksalRoll" value="Die Gruppe hat jetzt noch [[@{schicksal} ?{Modifier?|+/-}]] Schicksalspunkte">Schicksal</button>
<button type="roll" class="sheet-small-button api" name="roll_schicksalRoll" value="!ammo @{Group|character_id} schicksal ?{Modifier?|+/-} Schicksal">Schicksal</button>
<input type="number" name="attr_schicksal" value="4" class="sheet-number-20" />
</div>
<div class="sheet-formular">
<label for="attr_exp">EXP</label>
<input type="number" name="attr_exp" value="0" class="sheet-number-20" />
</div>
<div class="sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_schicksalRoll" value="/w gm @{character_name} stellt sich dem Karma: [[1d10cf<@{karma}]]">Karma</button>
<input type="number" name="attr_karma" value="0" class="sheet-number-20" />
</div>
</div>
<div class="sheet-head-stats">
<div class="sheet-formular">
<label for="attr_leben">Leben</label>
<div class="sheet-head-stats-health">
<input type="number" class="sheet-number-20" name="attr_leben" placeholder="Aktuell" /> / <input type="number" class="sheet-number-20" name="attr_leben_max" readonly />
</div>
</div>
<div class="sheet-formular">
<label for="attr_verteidigung">Verteidigung</label>
<input type="number" id="attr_verteidigung" name="attr_verteidigung" class="sheet-number-20" readonly />
</div>
<div class="sheet-formular">
<label for="attr_bewegung">Bewegungsreichweite</label>
<div class="sheet-head-stats-bewegung">
<input type="text" id="attr_schritt" name="attr_schritt" placeholder="1,0m" class="sheet-number-20" />
<input type="text" id="attr_gehen" name="attr_gehen" placeholder="2,0m" class="sheet-number-20" />
<input type="text" id="attr_laufen" name="attr_laufen" placeholder="4,0m" class="sheet-number-20" />
</div>
</div>
</div>
</div>
</div>
<div class="sheet-break"></div>
<div class="sheet-float sheet-half sheet-attribut">
<div class="sheet-header">
<span>Attribute</span>
</div>
<div class="sheet-float sheet-attribut-stats">
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_NaRoll" value="@{abilityroll} versucht sich in Nahkampf [[(@{Na})d10 + ?{Modifier?|0}]]">Nahkampf</button>
<input type="number" name="attr_Na" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_FeRoll" value="@{abilityroll} versucht sich in Fernkampf [[(@{Fe}})d10 + ?{Modifier?|0]]">Fernkampf</button>
<input type="number" name="attr_Fe" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_GeRoll" value="@{abilityroll} versucht sich in Geschick [[(@{Ge})d10 + ?{Modifier?|0}]]">Geschick</button>
<input type="number" name="attr_Ge" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_WaRoll" value="@{abilityroll} versucht sich in Wahrnehmung [[(@{Wa})d10 + ?{Modifier?|0}]]">Wahrnehmung</button>
<input type="number" name="attr_Wa" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_KoRoll" value="@{abilityroll} versucht sich in Konstitution [[(@{Ko})d10 + ?{Modifier?|0}]]">Konstitution</button>
<input type="number" name="attr_Ko" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_InRoll" value="@{abilityroll} versucht sich in Intelligenz [[(@{In})d10 + ?{Modifier?|0}]]">Intelligenz</button>
<input type="number" name="attr_In" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_WiRoll" value="@{abilityroll} versucht sich in Wissen [[(@{Wi})d10 + ?{Modifier?|0}]]">Wissen</button>
<input type="number" name="attr_Wi" value="1" min="1" class="sheet-number-20" />
</div>
<div class="sheet-float sheet-formular">
<button type="roll" class="sheet-small-button" name="roll_CaRoll" value="@{abilityroll} versucht sich in Charisma [[(@{Ca})d10 + ?{Modifier?|0}]]">Charisma</button>
<input type="number" name="attr_Ca" value="1" min="1" class="sheet-number-20" />
</div>
</div>
</div>
<div class="sheet-float sheet-half sheet-aspects">
<div class="sheet-header">
<span>Aspekte</span>
</div>
<input type="text" name="attr_aspekt1" />
<input type="text" name="attr_aspekt2" />
<input type="text" name="attr_aspekt3" />
<input type="text" name="attr_aspekt4" />
<fieldset class="repeating_aspekte">
<input type="text" name="attr_aspekt" />
</fieldset>
</div>
<div class="sheet-break"></div>
<div class="sheet-float sheet-full sheet-skills">
<div class="sheet-header">
<span>Fertigkeiten</span>
</div>
<div class="sheet-grid">
<div>Fertigkeit</div>
<div>Attr.</div>
<div>Wert</div>
<div>MOD</div>
<div>PP</div>
<div>Roll</div>
</div>
<div class="sheet-gridplace">
<fieldset class="repeating_basicskills">
<div><input class="sheet-textcenter" type="text" name="attr_skillname" /></div>
<div>
<select name="attr_attribut">
<option value="@{Na}">Nahkampf</option>
<option value="@{Fe}">Fernkampf</option>
<option value="@{Ge}">Geschick</option>
<option value="@{Wa}">Wahrnehmung</option>
<option value="@{Ko}">Konstitution</option>
<option value="@{in}">Intelligenz</option>
<option value="@{Wi}">Wissen</option>
<option value="@{Ca}">Charisma</option>
</select>
</div>
<div><input type="number" name="attr_skill" value="0" /></div>
<div><input type="number" name="attr_skill_mod" value="0" /></div>
<div><input type="number" name="attr_pp" value="0" /></div>
<div><button type="roll" name="roll_skill" value="@{abilityroll} würfelt @{skillname} mit dem Ergebniss [[(@{attribut} + @{skill})d10!!kh@{attribut} + @{skill_mod} + ?{Modifier?|0}]]"></button></div>
</fieldset>
</div>
</div>
<div class="sheet-break"></div>
<div class="sheet-float sheet-half sheet-stunts">
<div class="sheet-header">
<span>Stunts</span>
</div>
<fieldset class="repeating_stunts">
<div>
<input type="text" name="attr_stunt" placeholder="Name" />
<textarea name="attr_description" placeholder="Beschriebung"></textarea>
</div>
</fieldset>
</div>
<div class="sheet-float sheet-half sheet-inventar">
<div class="sheet-header">
<span>Inventar</span>
</div>
<div class="sheet-ruestung">
<input type="text" name="attr_ruestungName" placeholder="Rüstungsart" />
<input type="text" name="attr_ruestungWight" placeholder="Gewicht" />
<input type="number" name="attr_ruestung" value="1" min="1" />
</div>
<fieldset class="repeating_extras">
<div class="sheet-options sheet-extras-row">
<input type="text" name="attr_name" placeholder="Gegenstand" />
<input type="text" name="attr_wight" placeholder="Gewicht" />
<input type="text" name="attr_costs" placeholder="Kosten" />
<textarea name="attr_description" placeholder="Beschreibung"></textarea>
</div>
</fieldset>
</div>
<div class="sheet-break"></div>
<div class="sheet-float sheet-fill sheet-notes">
<div class="sheet-header">
<span>Notitzen</span>
</div>
<fieldset class="repeating_notes">
<div class="sheet-options sheet-notes-row">
<input type="text" name="attr_title" placeholder="Titel" />
<textarea name="attr_body" placeholder="Inhalt"></textarea>
</div>
</fieldset>
</div>
</div>
<!-- worker scripts -->
<script type="text/worker">
//https://wiki.roll20.net/Sheet_Worker_Scripts#change:.3Cattribute_name.3E
on("change:gmroll", function(f) {
getAttrs(["gmroll"], function(v) {
let rollstring = "/me";
if (v.gmroll == "nogm") {
rollstring = "/me";
} else if (v.gmroll == "gm") {
rollstring = "/w GM **@{character_name}**";
}
setAttrs({
abilityroll: rollstring
});
});
});
on("change:ko", function() {
getAttrs(["ko"], function(values) {
setAttrs({
leben: Math.floor(10 + values.ko * 5)
});
setAttrs({
leben_max: Math.floor(10 + values.ko * 5)
});
});
});
on("change:ge change:ruestung", function() {
getAttrs(["ge", "ruestung"], function(values) {
setAttrs({
verteidigung: Math.floor((parseInt(values.ge) + parseInt(values.ruestung)) * 5)
});
});
});
</script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

+17
View File
@@ -0,0 +1,17 @@
{
"html": "ButterflyAspect.html",
"css": "ButterflyAspect-min.css",
"authors": "Daniel B. aka Tealk",
"roll20userid": "207181",
"preview": "ButterflyAspect.png",
"instructions": "",
"useroptions": [
{
"attribute": "api_toggle",
"displayname": "Enable API: ",
"type": "checkbox",
"value": "0",
"description": "This setting enables the API usage in the character sheet. It requires the Ammo Count Api Script written by Aaron C. Meadow at https://github.com/shdwjk/Roll20API/blob/master/Ammo/Ammo.js."
}
]
}